From ecedb95d585190007e82592598ecf8fbb33169a7 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 21 May 2023 19:44:35 +0200 Subject: [PATCH 001/109] new concrete, sound fixes, additions, slag tap --- gradle.properties | 2 +- src/main/java/com/hbm/blocks/ModBlocks.java | 17 + .../generic/BlockConcreteColoredExt.java | 35 + .../hbm/blocks/generic/BlockDynamicSlag.java | 278 ++ .../hbm/blocks/machine/FoundryChannel.java | 2 +- .../com/hbm/blocks/machine/FoundryOutlet.java | 4 +- .../hbm/blocks/machine/FoundrySlagtap.java | 35 + .../java/com/hbm/blocks/rail/IRailNTM.java | 3 +- .../com/hbm/blocks/rail/RailNarrowCurve.java | 144 + .../hbm/blocks/rail/RailNarrowStraight.java | 115 + .../hbm/blocks/rail/RailStandardCurve.java | 9 +- .../hbm/blocks/rail/RailStandardStraight.java | 7 +- .../com/hbm/inventory/OreDictManager.java | 1 + .../inventory/recipes/ChemplantRecipes.java | 13 +- .../com/hbm/items/special/ItemAutogen.java | 2 +- .../com/hbm/items/weapon/ItemGunGauss.java | 4 +- src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/java/com/hbm/main/ClientProxy.java | 15 +- .../java/com/hbm/main/CraftingManager.java | 11 +- .../java/com/hbm/main/ResourceManager.java | 4 +- src/main/java/com/hbm/main/ServerProxy.java | 3 +- .../hbm/render/block/RenderFoundryOutlet.java | 20 +- .../render/block/RenderNarrowCurveRail.java | 69 + .../block/RenderNarrowStraightRail.java | 62 + .../icon/TextureAtlasSpriteMutatable.java | 3 +- .../hbm/render/item/ItemRenderLibrary.java | 2 + .../render/tileentity/RenderChemplant.java | 2 + .../render/tileentity/RenderMicrowave.java | 41 +- src/main/java/com/hbm/sound/AudioDynamic.java | 44 +- src/main/java/com/hbm/sound/AudioWrapper.java | 9 +- .../com/hbm/sound/AudioWrapperClient.java | 18 + .../sound/AudioWrapperClientStartStop.java | 1 + .../hbm/tileentity/TileEntityLoadedBase.java | 11 + .../hbm/tileentity/TileEntityMachineBase.java | 10 - .../java/com/hbm/tileentity/TileMappings.java | 3 + .../machine/TileEntityFoundrySlagtap.java | 115 + .../machine/TileEntityHeatBoiler.java | 64 +- .../machine/TileEntityHeaterElectric.java | 56 +- .../machine/TileEntityMachineAssembler.java | 2 +- .../machine/TileEntityMachineCentrifuge.java | 8 +- .../machine/TileEntityMachineChemplant.java | 8 +- .../TileEntityMachineCombustionEngine.java | 2 +- ...eEntityMachineSchrabidiumTransmutator.java | 2 +- .../machine/TileEntityMachineTurbineGas.java | 4 +- .../machine/TileEntityMachineTurbofan.java | 2 +- .../machine/TileEntitySoyuzLauncher.java | 2 +- .../oil/TileEntityMachineRefinery.java | 60 + .../oil/TileEntityMachineVacuumDistill.java | 62 +- src/main/java/com/hbm/util/Compat.java | 29 +- src/main/resources/assets/hbm/lang/de_DE.lang | 37 +- src/main/resources/assets/hbm/lang/en_US.lang | 7 + .../assets/hbm/models/blocks/rail_narrow.obj | 314 ++ .../hbm/models/blocks/rail_narrow_bend.obj | 681 +++++ .../assets/hbm/models/chemplant_new_body.obj | 1457 +++++---- .../assets/hbm/models/machines/microwave.obj | 2600 ++++++++--------- src/main/resources/assets/hbm/sounds.json | 2 + .../assets/hbm/sounds/block/boiler.ogg | Bin 0 -> 191587 bytes .../assets/hbm/sounds/block/electricHum.ogg | Bin 0 -> 30848 bytes .../blocks/concrete_colored_ext.hazard.png | Bin 0 -> 716 bytes .../blocks/concrete_colored_ext.indigo.png | Bin 0 -> 523 bytes .../blocks/concrete_colored_ext.machine.png | Bin 0 -> 515 bytes .../concrete_colored_ext.machine_stripe.png | Bin 0 -> 507 bytes .../blocks/concrete_colored_ext.pink.png | Bin 0 -> 523 bytes .../blocks/concrete_colored_ext.purple.png | Bin 0 -> 523 bytes .../blocks/foundry_slagtap_bottom.png | Bin 0 -> 424 bytes .../textures/blocks/foundry_slagtap_front.png | Bin 0 -> 171 bytes .../textures/blocks/foundry_slagtap_inner.png | Bin 0 -> 306 bytes .../textures/blocks/foundry_slagtap_side.png | Bin 0 -> 307 bytes .../textures/blocks/foundry_slagtap_top.png | Bin 0 -> 370 bytes .../hbm/textures/blocks/rail_narrow_neo.png | Bin 0 -> 134 bytes .../assets/hbm/textures/blocks/slag.png | Bin 0 -> 775 bytes 71 files changed, 4456 insertions(+), 2059 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/generic/BlockConcreteColoredExt.java create mode 100644 src/main/java/com/hbm/blocks/generic/BlockDynamicSlag.java create mode 100644 src/main/java/com/hbm/blocks/machine/FoundrySlagtap.java create mode 100644 src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java create mode 100644 src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java create mode 100644 src/main/java/com/hbm/render/block/RenderNarrowCurveRail.java create mode 100644 src/main/java/com/hbm/render/block/RenderNarrowStraightRail.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityFoundrySlagtap.java create mode 100644 src/main/resources/assets/hbm/models/blocks/rail_narrow.obj create mode 100644 src/main/resources/assets/hbm/models/blocks/rail_narrow_bend.obj create mode 100644 src/main/resources/assets/hbm/sounds/block/boiler.ogg create mode 100644 src/main/resources/assets/hbm/sounds/block/electricHum.ogg create mode 100644 src/main/resources/assets/hbm/textures/blocks/concrete_colored_ext.hazard.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/concrete_colored_ext.indigo.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/concrete_colored_ext.machine.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/concrete_colored_ext.machine_stripe.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/concrete_colored_ext.pink.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/concrete_colored_ext.purple.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/foundry_slagtap_bottom.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/foundry_slagtap_front.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/foundry_slagtap_inner.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/foundry_slagtap_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/foundry_slagtap_top.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rail_narrow_neo.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/slag.png diff --git a/gradle.properties b/gradle.properties index 697f43ef4..c7f807b69 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4592 +mod_build_number=4606 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models, porting),\ diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index ea82b5b0f..bafc8521d 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -11,6 +11,8 @@ import com.hbm.blocks.machine.*; import com.hbm.blocks.machine.pile.*; import com.hbm.blocks.machine.rbmk.*; import com.hbm.blocks.network.*; +import com.hbm.blocks.rail.RailNarrowCurve; +import com.hbm.blocks.rail.RailNarrowStraight; import com.hbm.blocks.rail.RailStandardCurve; import com.hbm.blocks.rail.RailStandardStraight; import com.hbm.blocks.siege.*; @@ -328,6 +330,7 @@ public class ModBlocks { public static Block reinforced_stone; public static Block concrete_smooth; public static Block concrete_colored; + public static Block concrete_colored_ext; public static Block concrete; public static Block concrete_asbestos; public static Block concrete_super; @@ -664,6 +667,8 @@ public class ModBlocks { public static Block foundry_channel; public static Block foundry_tank; public static Block foundry_outlet; + public static Block foundry_slagtap; + public static Block slag; public static Block machine_difurnace_off; public static Block machine_difurnace_on; @@ -1090,6 +1095,8 @@ public class ModBlocks { public static Block rail_highspeed; public static Block rail_booster; + public static Block rail_narrow_straight; + public static Block rail_narrow_curve; public static Block rail_large_straight; public static Block rail_large_curve; @@ -1507,6 +1514,7 @@ public class ModBlocks { reinforced_stone = new BlockGeneric(Material.rock).setBlockName("reinforced_stone").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(3000.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_stone"); concrete_smooth = new BlockRadResistant(Material.rock).setBlockName("concrete_smooth").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete"); concrete_colored = new BlockConcreteColored(Material.rock).setBlockName("concrete_colored").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete"); + concrete_colored_ext = new BlockConcreteColoredExt(Material.rock).setBlockName("concrete_colored_ext").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete_colored_ext"); concrete = new BlockGeneric(Material.rock).setBlockName("concrete").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete_tile"); concrete_asbestos = new BlockGeneric(Material.rock).setBlockName("concrete_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete_asbestos"); concrete_super = new BlockUberConcrete().setBlockName("concrete_super").setCreativeTab(MainRegistry.blockTab).setHardness(150.0F).setResistance(10000.0F); @@ -1780,6 +1788,8 @@ public class ModBlocks { foundry_channel = new FoundryChannel().setBlockName("foundry_channel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); foundry_tank = new FoundryTank().setBlockName("foundry_tank").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); foundry_outlet = new FoundryOutlet().setBlockName("foundry_outlet").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); + foundry_slagtap = new FoundrySlagtap().setBlockName("foundry_slagtap").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); + slag = new BlockDynamicSlag().setBlockName("slag").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":slag"); machine_difurnace_off = new MachineDiFurnace(false).setBlockName("machine_difurnace_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_difurnace_on = new MachineDiFurnace(true).setBlockName("machine_difurnace_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); @@ -2113,6 +2123,8 @@ public class ModBlocks { rail_narrow = new RailGeneric().setBlockName("rail_narrow").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_narrow"); rail_highspeed = new RailGeneric().setMaxSpeed(1F).setFlexible(false).setBlockName("rail_highspeed").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_highspeed"); rail_booster = new RailBooster().setBlockName("rail_booster").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_booster"); + rail_narrow_straight = new RailNarrowStraight().setBlockName("rail_narrow_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_narrow_neo"); + rail_narrow_curve = new RailNarrowCurve().setBlockName("rail_narrow_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_narrow_neo"); rail_large_straight = new RailStandardStraight().setBlockName("rail_large_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":block_steel"); rail_large_curve = new RailStandardCurve().setBlockName("rail_large_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -2639,6 +2651,7 @@ public class ModBlocks { GameRegistry.registerBlock(reinforced_ducrete, ItemBlockBlastInfo.class, reinforced_ducrete.getUnlocalizedName()); GameRegistry.registerBlock(concrete_smooth, ItemBlockBlastInfo.class, concrete_smooth.getUnlocalizedName()); GameRegistry.registerBlock(concrete_colored, ItemBlockColoredConcrete.class, concrete_colored.getUnlocalizedName()); + register(concrete_colored_ext); GameRegistry.registerBlock(concrete, ItemBlockBlastInfo.class, concrete.getUnlocalizedName()); GameRegistry.registerBlock(concrete_asbestos, ItemBlockBlastInfo.class, concrete_asbestos.getUnlocalizedName()); GameRegistry.registerBlock(concrete_super, ItemBlockBlastInfo.class, concrete_super.getUnlocalizedName()); @@ -2993,6 +3006,8 @@ public class ModBlocks { register(foundry_channel); register(foundry_tank); register(foundry_outlet); + register(foundry_slagtap); + register(slag); register(machine_difurnace_off); register(machine_difurnace_on); register(machine_difurnace_extension); @@ -3337,6 +3352,8 @@ public class ModBlocks { GameRegistry.registerBlock(rail_narrow, ItemBlockBase.class, rail_narrow.getUnlocalizedName()); GameRegistry.registerBlock(rail_highspeed, ItemBlockBase.class, rail_highspeed.getUnlocalizedName()); GameRegistry.registerBlock(rail_booster, ItemBlockBase.class, rail_booster.getUnlocalizedName()); + register(rail_narrow_straight); + register(rail_narrow_curve); register(rail_large_straight); register(rail_large_curve); diff --git a/src/main/java/com/hbm/blocks/generic/BlockConcreteColoredExt.java b/src/main/java/com/hbm/blocks/generic/BlockConcreteColoredExt.java new file mode 100644 index 000000000..929d2281a --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockConcreteColoredExt.java @@ -0,0 +1,35 @@ +package com.hbm.blocks.generic; + +import com.hbm.blocks.BlockEnumMulti; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.material.Material; +import net.minecraft.util.IIcon; + +public class BlockConcreteColoredExt extends BlockEnumMulti { + + public BlockConcreteColoredExt(Material mat) { + super(mat, EnumConcreteType.class, true, true); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + + if(meta == EnumConcreteType.MACHINE_STRIPE.ordinal() && (side == 0 || side == 1)) { + return super.getIcon(side, EnumConcreteType.MACHINE.ordinal()); + } + + return super.getIcon(side, meta); + } + + public enum EnumConcreteType { + MACHINE, + MACHINE_STRIPE, + INDIGO, + PURPLE, + PINK, + HAZARD + } +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockDynamicSlag.java b/src/main/java/com/hbm/blocks/generic/BlockDynamicSlag.java new file mode 100644 index 000000000..fc053c80c --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockDynamicSlag.java @@ -0,0 +1,278 @@ +package com.hbm.blocks.generic; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Random; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.material.MaterialShapes; +import com.hbm.inventory.material.Mats; +import com.hbm.inventory.material.Mats.MaterialStack; +import com.hbm.inventory.material.NTMMaterial; +import com.hbm.items.machine.ItemScraps; +import com.hbm.render.icon.RGBMutatorInterpolatedComponentRemap; +import com.hbm.render.icon.TextureAtlasSpriteMutatable; +import com.hbm.util.Compat; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.stats.StatList; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.IIcon; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class BlockDynamicSlag extends BlockContainer { + + private HashMap iconMap = new HashMap(); + + public BlockDynamicSlag() { + super(Material.iron); + this.useNeighborBrightness = true; + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntitySlag(); + } + + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + super.registerBlockIcons(reg); + + if(reg instanceof TextureMap) { + TextureMap map = (TextureMap) reg; + + for(NTMMaterial mat : Mats.orderedList) { + if(mat.solidColorLight != mat.solidColorDark) { + String placeholderName = this.getTextureName() + "-" + mat.names[0]; + TextureAtlasSpriteMutatable mutableIcon = new TextureAtlasSpriteMutatable(placeholderName, new RGBMutatorInterpolatedComponentRemap(0xFFFFFF, 0x505050, mat.solidColorLight, mat.solidColorDark)).setBlockAtlas(); + map.setTextureEntry(placeholderName, mutableIcon); + iconMap.put(mat, mutableIcon); + } + } + } + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { + + TileEntitySlag tile = (TileEntitySlag) world.getTileEntity(x, y, z); + + if(tile != null && tile.mat != null) { + IIcon override = iconMap.get(tile.mat); + if(override != null) { + return override; + } + } + + return this.blockIcon; + } + + @Override + @SideOnly(Side.CLIENT) + public int colorMultiplier(IBlockAccess world, int x, int y, int z) { + + TileEntitySlag tile = (TileEntitySlag) world.getTileEntity(x, y, z); + + if(tile != null && tile.mat != null) { + if(!iconMap.containsKey(tile.mat)) { + return tile.mat.moltenColor; + } + } + + return 0xffffff; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { + TileEntitySlag tile = (TileEntitySlag) world.getTileEntity(x, y, z); + if(tile != null) { + this.setBlockBounds(0F, 0F, 0F, 1F, (float) tile.amount / (float) TileEntitySlag.maxAmount, 1F); + } + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + TileEntitySlag tile = (TileEntitySlag) world.getTileEntity(x, y, z); + if(tile != null) { + this.setBlockBounds(0F, 0F, 0F, 1F, (float) tile.amount / (float) TileEntitySlag.maxAmount, 1F); + } + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + } + + @Override + public void updateTick(World world, int x, int y, int z, Random rand) { + + TileEntity s = Compat.getTileStandard(world, x, y, z); + TileEntity b = Compat.getTileStandard(world, x, y - 1, z); + + /* Error here, delete the block */ + if(s == null || !(s instanceof TileEntitySlag)) { + world.setBlockToAir(x, y, z); + return; + } + + TileEntitySlag self = (TileEntitySlag) s; + + /* Flow down */ + if(world.getBlock(x, y - 1, z).isReplaceable(world, x, y - 1, z)) { + world.setBlock(x, y - 1, z, ModBlocks.slag); + TileEntitySlag tile = (TileEntitySlag) Compat.getTileStandard(world, x, y - 1, z); + tile.mat = self.mat; + tile.amount = self.amount; + world.markBlockForUpdate(x, y - 1, z); + world.setBlockToAir(x, y, z); + return; + } else if(b instanceof TileEntitySlag) { + + TileEntitySlag below = (TileEntitySlag) b; + + if(below.mat == self.mat && below.amount < TileEntitySlag.maxAmount) { + int transfer = Math.min(TileEntitySlag.maxAmount - below.amount, self.amount); + below.amount += transfer; + self.amount -= transfer; + + if(self.amount <= 0){ + world.setBlockToAir(x, y, z); + } else { + world.markBlockForUpdate(x, y, z); + } + + world.markBlockForUpdate(x, y - 1, z); + world.scheduleBlockUpdate(x, y - 1, z, ModBlocks.slag, 1); + return; + } + } + + /* Flow sideways, no neighbors */ + ForgeDirection[] sides = new ForgeDirection[] { ForgeDirection.NORTH, ForgeDirection.SOUTH, ForgeDirection.EAST, ForgeDirection.WEST }; + int count = 0; + for(ForgeDirection dir : sides) { + int iX = x + dir.offsetX; + int iZ = z + dir.offsetZ; + + if(world.getBlock(iX, y, iZ).isReplaceable(world, iX, y, iZ)) { + count++; + } + } + + if(self.amount >= self.maxAmount / 5 && count > 0) { + int toSpread = Math.max(self.amount / (count * 2), 1); + + for(ForgeDirection dir : sides) { + int iX = x + dir.offsetX; + int iZ = z + dir.offsetZ; + + if(world.getBlock(iX, y, iZ).isReplaceable(world, iX, y, iZ)) { + world.setBlock(iX, y, iZ, ModBlocks.slag); + TileEntitySlag tile = (TileEntitySlag) Compat.getTileStandard(world, iX, y, iZ); + world.markBlockForUpdate(iX, y, iZ); + world.scheduleBlockUpdate(iX, y, iZ, ModBlocks.slag, 1); + tile.mat = self.mat; + tile.amount = toSpread; + self.amount -= toSpread; + world.markBlockForUpdate(x, y, z); + } + } + } + } + + @Override + public void onBlockHarvested(World world, int x, int y, int z, int meta, EntityPlayer player) { + + if(!player.capabilities.isCreativeMode) { + harvesters.set(player); + this.dropBlockAsItem(world, x, y, z, meta, 0); + harvesters.set(null); + } + } + + @Override + public void harvestBlock(World world, EntityPlayer player, int x, int y, int z, int meta) { + player.addStat(StatList.mineBlockStatArray[getIdFromBlock(this)], 1); + player.addExhaustion(0.025F); + } + + @Override + public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { + ArrayList ret = new ArrayList(); + + TileEntitySlag tile = (TileEntitySlag) world.getTileEntity(x, y, z); + + if(tile != null && tile.mat != null && tile.amount > 0) { + ret.add(ItemScraps.create(new MaterialStack(tile.mat, tile.amount))); + } + + return ret; + } + + @Override + public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z, EntityPlayer player) { + + TileEntitySlag tile = (TileEntitySlag) world.getTileEntity(x, y, z); + + if(tile != null) { + return ItemScraps.create(new MaterialStack(tile.mat, tile.amount)); + } + + return super.getPickBlock(target, world, x, y, z, player); + } + + public static class TileEntitySlag extends TileEntity { + + public NTMMaterial mat; + public int amount; + public static int maxAmount = MaterialShapes.BLOCK.q(16); + + @Override + public boolean canUpdate() { + return false; + } + + @Override + public Packet getDescriptionPacket() { + NBTTagCompound nbt = new NBTTagCompound(); + this.writeToNBT(nbt); + return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbt); + } + + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { + this.readFromNBT(pkt.func_148857_g()); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.mat = Mats.matById.get(nbt.getInteger("mat")); + this.amount = nbt.getInteger("amount"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + if(this.mat != null) nbt.setInteger("mat", this.mat.id); + nbt.setInteger("amount", this.amount); + } + } +} diff --git a/src/main/java/com/hbm/blocks/machine/FoundryChannel.java b/src/main/java/com/hbm/blocks/machine/FoundryChannel.java index bf00c6b60..e692c3bf9 100644 --- a/src/main/java/com/hbm/blocks/machine/FoundryChannel.java +++ b/src/main/java/com/hbm/blocks/machine/FoundryChannel.java @@ -131,7 +131,7 @@ public class FoundryChannel extends BlockContainer implements ICrucibleAcceptor if(b == ModBlocks.foundry_outlet && meta == dir.ordinal()) return true; - return b == ModBlocks.foundry_channel || b == ModBlocks.foundry_mold; + return b == ModBlocks.foundry_channel || b == ModBlocks.foundry_mold || b == ModBlocks.foundry_slagtap; } public static int renderID = RenderingRegistry.getNextAvailableRenderId(); diff --git a/src/main/java/com/hbm/blocks/machine/FoundryOutlet.java b/src/main/java/com/hbm/blocks/machine/FoundryOutlet.java index de46f885b..d62f01cb0 100644 --- a/src/main/java/com/hbm/blocks/machine/FoundryOutlet.java +++ b/src/main/java/com/hbm/blocks/machine/FoundryOutlet.java @@ -167,12 +167,12 @@ public class FoundryOutlet extends BlockContainer implements ICrucibleAcceptor, @Override public boolean canAcceptPartialFlow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) { - return ((TileEntityFoundryOutlet) world.getTileEntity(x, y, z)).canAcceptPartialFlow(world, x, y, z, side, stack); + return ((ICrucibleAcceptor) world.getTileEntity(x, y, z)).canAcceptPartialFlow(world, x, y, z, side, stack); } @Override public MaterialStack flow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) { - return ((TileEntityFoundryOutlet) world.getTileEntity(x, y, z)).flow(world, x, y, z, side, stack); + return ((ICrucibleAcceptor) world.getTileEntity(x, y, z)).flow(world, x, y, z, side, stack); } public static int renderID = RenderingRegistry.getNextAvailableRenderId(); diff --git a/src/main/java/com/hbm/blocks/machine/FoundrySlagtap.java b/src/main/java/com/hbm/blocks/machine/FoundrySlagtap.java new file mode 100644 index 000000000..b001d1157 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/FoundrySlagtap.java @@ -0,0 +1,35 @@ +package com.hbm.blocks.machine; + +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityFoundrySlagtap; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; + +public class FoundrySlagtap extends FoundryOutlet { + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + super.registerBlockIcons(iconRegister); + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":foundry_slagtap_top"); + this.iconSide = iconRegister.registerIcon(RefStrings.MODID + ":foundry_slagtap_side"); + this.iconBottom = iconRegister.registerIcon(RefStrings.MODID + ":foundry_slagtap_bottom"); + this.iconInner = iconRegister.registerIcon(RefStrings.MODID + ":foundry_slagtap_inner"); + this.iconFront = iconRegister.registerIcon(RefStrings.MODID + ":foundry_slagtap_front"); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityFoundrySlagtap(); + } + + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { return false; } + @Override public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { return false; } + @Override public void printHook(Pre event, World world, int x, int y, int z) { } +} diff --git a/src/main/java/com/hbm/blocks/rail/IRailNTM.java b/src/main/java/com/hbm/blocks/rail/IRailNTM.java index 430395012..4fd66886a 100644 --- a/src/main/java/com/hbm/blocks/rail/IRailNTM.java +++ b/src/main/java/com/hbm/blocks/rail/IRailNTM.java @@ -25,7 +25,8 @@ public interface IRailNTM { public TrackGauge getGauge(World world, int x, int y, int z); public static enum TrackGauge { - STANDARD //roughly 1.5m + STANDARD, //roughly 1.5m + NARROW //roughly 0.75m } /** A wrapper for all relevant info required when leaving a rail */ diff --git a/src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java b/src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java new file mode 100644 index 000000000..1fc4c01ae --- /dev/null +++ b/src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java @@ -0,0 +1,144 @@ +package com.hbm.blocks.rail; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.lib.Library; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import cpw.mods.fml.client.registry.RenderingRegistry; +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class RailNarrowCurve extends BlockDummyable implements IRailNTM { + + public RailNarrowCurve() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return null; + } + + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + + @Override + public int getRenderType() { + return renderID; + } + + @Override + public Vec3 getSnappingPos(World world, int x, int y, int z, double trainX, double trainY, double trainZ) { + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, 0, 0, 0, 0, new RailContext()); + } + + @Override + public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info) { + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, motionX, motionY, motionZ, speed, info); + } + + /* Very simple function determining the snapping position and adding the motion value to it, if desired. */ + public Vec3 snapAndMove(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info) { + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return Vec3.createVectorHelper(trainX, trainY, trainZ); + int cX = pos[0]; + int cY = pos[1]; + int cZ = pos[2]; + int meta = world.getBlockMetadata(cX, cY, cZ) - this.offset; + ForgeDirection dir = ForgeDirection.getOrientation(meta); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + double turnRadius = 4.5D; + + Vec3 vec = Vec3.createVectorHelper(trainX, trainY, trainZ); + double axisX = cX + 0.5 + dir.offsetX * 0.5 + rot.offsetX * turnRadius; + double axisZ = cZ + 0.5 + dir.offsetZ * 0.5 + rot.offsetZ * turnRadius; + + Vec3 dist = Vec3.createVectorHelper(vec.xCoord - axisX, 0, vec.zCoord - axisZ); + dist = dist.normalize(); + dist.xCoord *= turnRadius; + dist.zCoord *= turnRadius; + + double moveAngle = Math.atan2(motionX, motionZ) * 180D / Math.PI + 90; + + if(speed == 0) { + info.dist(0).pos(new BlockPos(x, y, z)).yaw((float) moveAngle); + return Vec3.createVectorHelper(axisX + dist.xCoord, y, axisZ + dist.zCoord); + } + + double angleDeg = Math.atan2(dist.xCoord, dist.zCoord) * 180D / Math.PI + 90; + if(dir == Library.NEG_X) angleDeg -= 90; + if(dir == Library.POS_X) angleDeg += 90; + if(dir == Library.POS_Z) angleDeg += 180; + angleDeg = MathHelper.wrapAngleTo180_double(angleDeg); + double length90Deg = turnRadius * Math.PI / 2D; + double angularChange = speed / length90Deg * 90D; + + ForgeDirection moveDir = ForgeDirection.UNKNOWN; + + if(Math.abs(motionX) > Math.abs(motionZ)) { + moveDir = motionX > 0 ? Library.POS_X : Library.NEG_X; + } else { + moveDir = motionZ > 0 ? Library.POS_Z : Library.NEG_Z; + } + + if(moveDir == dir || moveDir == rot.getOpposite()) { + angularChange *= -1; + } + + double effAngle = angleDeg + angularChange; + moveAngle += angularChange; + + if(effAngle > 90) { + double angleOvershoot = effAngle - 90D; + moveAngle -= angleOvershoot; + double lengthOvershoot = angleOvershoot * length90Deg / 90D; + info.dist(lengthOvershoot * Math.signum(speed * angularChange)).pos(new BlockPos(cX - dir.offsetX * 4 + rot.offsetX * 5, y, cZ - dir.offsetZ * 4 + rot.offsetZ * 5)).yaw((float) moveAngle); + return Vec3.createVectorHelper(axisX - dir.offsetX * turnRadius, y, axisZ - dir.offsetZ * turnRadius); + } + + if(effAngle < 0) { + double angleOvershoot = -effAngle; + moveAngle -= angleOvershoot; + double lengthOvershoot = angleOvershoot * length90Deg / 90D; + info.dist(-lengthOvershoot * Math.signum(speed * angularChange)).pos(new BlockPos(cX + dir.offsetX , y, cZ + dir.offsetZ)).yaw((float) moveAngle); + return Vec3.createVectorHelper(axisX - rot.offsetX * turnRadius, y, axisZ -rot.offsetZ * turnRadius); + } + + double radianChange = angularChange * Math.PI / 180D; + dist.rotateAroundY((float) radianChange); + + return Vec3.createVectorHelper(axisX + dist.xCoord, y, axisZ + dist.zCoord); + } + + @Override + public TrackGauge getGauge(World world, int x, int y, int z) { + return TrackGauge.NARROW; + } + + @Override + public int[] getDimensions() { + return new int[] {0, 0, 4, 0, 4, 0}; + } + + @Override + public int getOffset() { + return 0; + } + + @Override + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { + this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + } +} diff --git a/src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java b/src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java new file mode 100644 index 000000000..4d51dfe07 --- /dev/null +++ b/src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java @@ -0,0 +1,115 @@ +package com.hbm.blocks.rail; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.lib.Library; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import cpw.mods.fml.client.registry.RenderingRegistry; +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class RailNarrowStraight extends BlockDummyable implements IRailNTM { + + public RailNarrowStraight() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return null; + } + + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + + @Override + public int getRenderType() { + return renderID; + } + + @Override + public int[] getDimensions() { + return new int[] {0, 0, 2, 2, 0, 0}; + } + + @Override + public int getOffset() { + return 2; + } + + @Override + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { + this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + } + + @Override + public Vec3 getSnappingPos(World world, int x, int y, int z, double trainX, double trainY, double trainZ) { + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, 0, 0, 0, 0, new RailContext()); + } + + @Override + public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info) { + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, motionX, motionY, motionZ, speed, info); + } + + /* Very simple function determining the snapping position and adding the motion value to it, if desired. */ + public Vec3 snapAndMove(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info) { + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return Vec3.createVectorHelper(trainX, trainY, trainZ); + int cX = pos[0]; + int cY = pos[1]; + int cZ = pos[2]; + int meta = world.getBlockMetadata(cX, cY, cZ) - this.offset; + ForgeDirection dir = ForgeDirection.getOrientation(meta); + + Vec3 vec = Vec3.createVectorHelper(trainX, trainY, trainZ); + + if(dir == Library.POS_X || dir == Library.NEG_X) { + double targetX = trainX; + if(motionX > 0) { + targetX += speed; + info.yaw(-90F); + } else { + targetX -= speed; + info.yaw(90F); + } + vec.xCoord = MathHelper.clamp_double(targetX, cX - 2, cX + 3); + vec.yCoord = y; + vec.zCoord = cZ + 0.5; + info.dist(Math.abs(targetX - vec.xCoord) * Math.signum(speed)); + info.pos(new BlockPos(cX + (motionX * speed > 0 ? 3 : -3), y, cZ)); + } else { + double targetZ = trainZ; + if(motionZ > 0) { + targetZ += speed; + info.yaw(0F); + } else { + targetZ -= speed; + info.yaw(180F); + } + vec.xCoord = cX + 0.5; + vec.yCoord = y; + vec.zCoord = MathHelper.clamp_double(targetZ, cZ - 2,cZ + 3); + info.dist(Math.abs(targetZ - vec.zCoord) * Math.signum(speed)); + info.pos(new BlockPos(cX, y, cZ + (motionZ * speed > 0 ? 3 : -3))); + } + + return vec; + } + + @Override + public TrackGauge getGauge(World world, int x, int y, int z) { + return TrackGauge.NARROW; + } +} diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java b/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java index 46bc0bf4d..7028571ce 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java @@ -49,12 +49,13 @@ public class RailStandardCurve extends BlockDummyable implements IRailNTM { int meta = world.getBlockMetadata(cX, cY, cZ) - this.offset; ForgeDirection dir = ForgeDirection.getOrientation(meta); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - - double turnRadius = 4.5D; + + double turnRadius = 4D; + double axisDist = 4.5D; Vec3 vec = Vec3.createVectorHelper(trainX, trainY, trainZ); - double axisX = cX + 0.5 + dir.offsetX * 0.5 + rot.offsetX * turnRadius; - double axisZ = cZ + 0.5 + dir.offsetZ * 0.5 + rot.offsetZ * turnRadius; + double axisX = cX + 0.5 + dir.offsetX * 0.5 + rot.offsetX * axisDist; + double axisZ = cZ + 0.5 + dir.offsetZ * 0.5 + rot.offsetZ * axisDist; Vec3 dist = Vec3.createVectorHelper(vec.xCoord - axisX, 0, vec.zCoord - axisZ); dist = dist.normalize(); diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java b/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java index 1c8889b0b..903e01e1b 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java @@ -31,7 +31,7 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM { @Override public int[] getDimensions() { - return new int[] {0, 0, 2, 2, 0, 0}; + return new int[] {0, 0, 2, 2, 1, 0}; } @Override @@ -69,6 +69,7 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM { int cZ = pos[2]; int meta = world.getBlockMetadata(cX, cY, cZ) - this.offset; ForgeDirection dir = ForgeDirection.getOrientation(meta); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); Vec3 vec = Vec3.createVectorHelper(trainX, trainY, trainZ); @@ -87,7 +88,7 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM { } vec.xCoord = MathHelper.clamp_double(targetX, cX - 2, cX + 3); vec.yCoord = y; - vec.zCoord = cZ + 0.5; + vec.zCoord = cZ + 0.5 + rot.offsetZ * 0.5; info.dist(Math.abs(targetX - vec.xCoord) * Math.signum(speed)); info.pos(new BlockPos(cX + (motionX * speed > 0 ? 3 : -3), y, cZ)); } else { @@ -99,7 +100,7 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM { targetZ -= speed; info.yaw(180F); } - vec.xCoord = cX + 0.5; + vec.xCoord = cX + 0.5 + rot.offsetX * 0.5; vec.yCoord = y; vec.zCoord = MathHelper.clamp_double(targetZ, cZ - 2,cZ + 3); info.dist(Math.abs(targetZ - vec.zCoord) * Math.signum(speed)); diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index fb39122a5..f85df1900 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -452,6 +452,7 @@ public class OreDictManager { ANY_HIGHEXPLOSIVE .ingot(ball_tnt).ingot(ball_tatb); ANY_CONCRETE .any(concrete, concrete_smooth, concrete_asbestos, ducrete, ducrete_smooth); for(int i = 0; i < 16; i++) { ANY_CONCRETE.any(new ItemStack(ModBlocks.concrete_colored, 1, i)); } + for(int i = 0; i < 16; i++) { ANY_CONCRETE.any(new ItemStack(ModBlocks.concrete_colored_ext, 1, i)); } ANY_COKE .gem(fromAll(coke, EnumCokeType.class)).block(fromAll(block_coke, EnumCokeType.class)); ANY_BISMOID .ingot(ingot_bismuth, ingot_arsenic).nugget(nugget_bismuth, nugget_arsenic).block(block_bismuth); diff --git a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java index 57bad806d..be6b5d8bc 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java @@ -229,14 +229,11 @@ public class ChemplantRecipes extends SerializableRecipe { .outputFluids(new FluidStack(Fluids.XENON, 50))); recipes.add(new ChemRecipe(61, "SATURN", 60) .inputItems( - new ComparableStack(ModItems.powder_dura_steel), - new OreDictStack(P_RED.dust())) - .inputFluids( - new FluidStack(Fluids.ACID, 100), - (GeneralConfig.enableLBSM && GeneralConfig.enableLBSMSimpleChemsitry) ? - new FluidStack(Fluids.WATER, 200) : - new FluidStack(Fluids.MERCURY, 50)) - .outputItems(new ItemStack(ModItems.ingot_saturnite, 2))); + new OreDictStack(DURA.dust(), 2), + new OreDictStack(CU.dust(), 1), + new OreDictStack(COAL.dust(), 1)) + .inputFluids(new FluidStack(Fluids.SULFURIC_ACID, 100)) + .outputItems(new ItemStack(ModItems.ingot_saturnite, 4))); recipes.add(new ChemRecipe(62, "BALEFIRE", 100) .inputItems(new ComparableStack(ModItems.egg_balefire_shard)) .inputFluids(new FluidStack(Fluids.KEROSENE, 6000)) diff --git a/src/main/java/com/hbm/items/special/ItemAutogen.java b/src/main/java/com/hbm/items/special/ItemAutogen.java index 9ddf38798..1e1f1d075 100644 --- a/src/main/java/com/hbm/items/special/ItemAutogen.java +++ b/src/main/java/com/hbm/items/special/ItemAutogen.java @@ -99,7 +99,7 @@ public class ItemAutogen extends Item { NTMMaterial mat = Mats.matById.get(stack.getItemDamage()); if(mat != null) { - return mat.solidColorLight; + return mat.moltenColor; } return 0xffffff; diff --git a/src/main/java/com/hbm/items/weapon/ItemGunGauss.java b/src/main/java/com/hbm/items/weapon/ItemGunGauss.java index 4db1ce526..1d53bb44c 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunGauss.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunGauss.java @@ -59,7 +59,7 @@ public class ItemGunGauss extends ItemGunBase { public void startActionClient(ItemStack stack, World world, EntityPlayer player, boolean main) { if(!main && getItemWear(stack) < mainConfig.durability && player.inventory.hasItem(ModItems.gun_xvl1456_ammo)) { - chargeLoop = MainRegistry.proxy.getLoopedSound("hbm:weapon.tauChargeLoop2", (float)player.posX, (float)player.posY, (float)player.posZ, 1.0F, 0.75F); + chargeLoop = MainRegistry.proxy.getLoopedSound("hbm:weapon.tauChargeLoop2", (float)player.posX, (float)player.posY, (float)player.posZ, 1.0F, 5F, 0.75F); world.playSoundAtEntity(player, "hbm:weapon.tauChargeLoop2", 1.0F, 0.75F); if(chargeLoop != null) { @@ -120,7 +120,7 @@ public class ItemGunGauss extends ItemGunBase { public AudioWrapper rebootAudio(AudioWrapper wrapper, EntityPlayer player) { wrapper.stopSound(); - AudioWrapper audio = MainRegistry.proxy.getLoopedSound("hbm:weapon.tauChargeLoop2", (float)player.posX, (float)player.posY, (float)player.posZ, wrapper.getVolume(), wrapper.getPitch()); + AudioWrapper audio = MainRegistry.proxy.getLoopedSound("hbm:weapon.tauChargeLoop2", (float)player.posX, (float)player.posY, (float)player.posZ, wrapper.getVolume(), wrapper.getRange(), wrapper.getPitch()); audio.startSound(); return audio; } diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 79c7e3689..7f4e466a7 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4592)"; + public static final String VERSION = "1.0.27 BETA (4606)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index a549c1204..c47b1b9e1 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -782,6 +782,9 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerBlockHandler(new RenderFoundryChannel()); RenderingRegistry.registerBlockHandler(new RenderFoundryTank()); RenderingRegistry.registerBlockHandler(new RenderFoundryOutlet()); + + RenderingRegistry.registerBlockHandler(new RenderNarrowStraightRail()); + RenderingRegistry.registerBlockHandler(new RenderNarrowCurveRail()); RenderingRegistry.registerBlockHandler(new RenderBlockRotated(ModBlocks.charge_dynamite.getRenderType(), ResourceManager.charge_dynamite)); RenderingRegistry.registerBlockHandler(new RenderBlockRotated(ModBlocks.charge_c4.getRenderType(), ResourceManager.charge_c4)); @@ -1875,13 +1878,23 @@ public class ClientProxy extends ServerProxy { } @Override - public AudioWrapper getLoopedSound(String sound, float x, float y, float z, float volume, float pitch) { + public AudioWrapper getLoopedSound(String sound, float x, float y, float z, float volume, float range, float pitch) { AudioWrapperClient audio = new AudioWrapperClient(new ResourceLocation(sound)); audio.updatePosition(x, y, z); + audio.updateVolume(volume); + audio.updateRange(range); return audio; } + @Override + public AudioWrapper getLoopedSound(String sound, float x, float y, float z, float volume, float range, float pitch, int keepAlive) { + AudioWrapper audio = getLoopedSound(sound, x, y, z, volume, range, pitch); + audio.setKeepAlive(keepAlive); + return audio; + } + + /** Only used for doors */ @Override public AudioWrapper getLoopedSoundStartStop(World world, String sound, String start, String stop, float x, float y, float z, float volume, float pitch) { AudioWrapperClientStartStop audio = new AudioWrapperClientStartStop(world, sound == null ? null : new ResourceLocation(sound), start, stop, volume * 5); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 77f0c09fa..02ce53a80 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -5,6 +5,7 @@ import java.util.List; import com.hbm.blocks.BlockEnums.DecoCabinetEnum; import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.generic.BlockConcreteColoredExt.EnumConcreteType; import com.hbm.blocks.generic.BlockGenericStairs; import com.hbm.blocks.generic.BlockMultiSlab; import com.hbm.blocks.generic.BlockNTMFlower.EnumFlowerType; @@ -406,9 +407,16 @@ public class CraftingManager { for(int i = 0; i < 16; i++) { String dyeName = "dye" + dyes[15 - i]; addRecipeAuto(new ItemStack(ModBlocks.concrete_colored, 8, i), new Object[] { "CCC", "CDC", "CCC", 'C', ModBlocks.concrete_smooth, 'D', dyeName }); - addRecipeAuto(new ItemStack(ModBlocks.concrete_colored, 8, i), new Object[] { "CCC", "CDC", "CCC", 'C', ModBlocks.concrete_colored, 'D', dyeName }); } addShapelessAuto(new ItemStack(ModBlocks.concrete_smooth, 1), new Object[] { ModBlocks.concrete_colored }); + addShapelessAuto(new ItemStack(ModBlocks.concrete_smooth, 1), new Object[] { ModBlocks.concrete_colored_ext }); + + addRecipeAuto(new ItemStack(ModBlocks.concrete_colored_ext, 6, EnumConcreteType.MACHINE.ordinal()), new Object[] { "CCC", "1 2", "CCC", 'C', ModBlocks.concrete_smooth, '1', KEY_BROWN, '2', KEY_GRAY }); + addRecipeAuto(new ItemStack(ModBlocks.concrete_colored_ext, 6, EnumConcreteType.MACHINE_STRIPE.ordinal()), new Object[] { "CCC", "1 2", "CCC", 'C', ModBlocks.concrete_smooth, '1', KEY_BROWN, '2', KEY_BLACK }); + addRecipeAuto(new ItemStack(ModBlocks.concrete_colored_ext, 6, EnumConcreteType.INDIGO.ordinal()), new Object[] { "CCC", "1 2", "CCC", 'C', ModBlocks.concrete_smooth, '1', KEY_BLUE, '2', KEY_PURPLE }); + addRecipeAuto(new ItemStack(ModBlocks.concrete_colored_ext, 6, EnumConcreteType.PURPLE.ordinal()), new Object[] { "CCC", "1 2", "CCC", 'C', ModBlocks.concrete_smooth, '1', KEY_PURPLE, '2', KEY_PURPLE }); + addRecipeAuto(new ItemStack(ModBlocks.concrete_colored_ext, 6, EnumConcreteType.PINK.ordinal()), new Object[] { "CCC", "1 2", "CCC", 'C', ModBlocks.concrete_smooth, '1', KEY_PINK, '2', KEY_RED }); + addRecipeAuto(new ItemStack(ModBlocks.concrete_colored_ext, 6, EnumConcreteType.HAZARD.ordinal()), new Object[] { "CCC", "1 2", "CCC", 'C', ModBlocks.concrete_smooth, '1', KEY_YELLOW, '2', KEY_BLACK }); addRecipeAuto(new ItemStack(ModBlocks.gneiss_tile, 4), new Object[] { "CC", "CC", 'C', ModBlocks.stone_gneiss }); addRecipeAuto(new ItemStack(ModBlocks.gneiss_brick, 4), new Object[] { "CC", "CC", 'C', ModBlocks.gneiss_tile }); @@ -961,6 +969,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.foundry_channel, 4), new Object[] { "B B", " S ", 'B', ModItems.ingot_firebrick, 'S', Blocks.stone_slab }); addRecipeAuto(new ItemStack(ModBlocks.foundry_tank), new Object[] { "B B", "I I", "BSB", 'B', ModItems.ingot_firebrick, 'I', STEEL.ingot(), 'S', Blocks.stone_slab }); addShapelessAuto(new ItemStack(ModBlocks.foundry_outlet), new Object[] { ModBlocks.foundry_channel, STEEL.plate() }); + addShapelessAuto(new ItemStack(ModBlocks.foundry_slagtap), new Object[] { ModBlocks.foundry_channel, Blocks.stonebrick }); addRecipeAuto(new ItemStack(ModItems.mold_base), new Object[] { " B ", "BIB", " B ", 'B', ModItems.ingot_firebrick, 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.brick_fire), new Object[] { "BB", "BB", 'B', ModItems.ingot_firebrick }); addShapelessAuto(new ItemStack(ModItems.ingot_firebrick, 4), new Object[] { ModBlocks.brick_fire }); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 12bc57f09..c947a97be 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -129,7 +129,7 @@ public class ResourceManager { public static final IModelCustom assemfac = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/assemfac.obj")); //Chemplant - public static final IModelCustom chemplant_body = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/chemplant_new_body.obj")); + public static final IModelCustom chemplant_body = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/chemplant_new_body.obj")); public static final IModelCustom chemplant_spinner = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/chemplant_new_spinner.obj")); public static final IModelCustom chemplant_piston = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/chemplant_new_piston.obj")); public static final IModelCustom chemplant_fluid = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/chemplant_new_fluid.hmf")); @@ -1327,6 +1327,8 @@ public class ResourceManager { public static final IModelCustom pipe_neo = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/pipe_neo.obj")); public static final IModelCustom difurnace_extension = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/difurnace_extension.obj")); public static final IModelCustom splitter = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/splitter.obj")); + public static final IModelCustom rail_narrow_straight = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_narrow.obj")); + public static final IModelCustom rail_narrow_curve = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_narrow_bend.obj")); public static final IModelCustom charge_dynamite = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/charge_dynamite.obj")); public static final IModelCustom charge_c4 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/charge_c4.obj")); diff --git a/src/main/java/com/hbm/main/ServerProxy.java b/src/main/java/com/hbm/main/ServerProxy.java index d479b8790..d296c9ab3 100644 --- a/src/main/java/com/hbm/main/ServerProxy.java +++ b/src/main/java/com/hbm/main/ServerProxy.java @@ -41,7 +41,8 @@ public class ServerProxy { public void registerMissileItems() { } - public AudioWrapper getLoopedSound(String sound, float x, float y, float z, float volume, float pitch) { return null; } + public AudioWrapper getLoopedSound(String sound, float x, float y, float z, float volume, float range, float pitch) { return null; } + public AudioWrapper getLoopedSound(String sound, float x, float y, float z, float volume, float range, float pitch, int keepAlive) { return null; } public AudioWrapper getLoopedSoundStartStop(World world, String sound, String start, String stop, float x, float y, float z, float volume, float pitch) { return null; } public void playSound(String sound, Object data) { } diff --git a/src/main/java/com/hbm/render/block/RenderFoundryOutlet.java b/src/main/java/com/hbm/render/block/RenderFoundryOutlet.java index 743ba6306..1e5b52354 100644 --- a/src/main/java/com/hbm/render/block/RenderFoundryOutlet.java +++ b/src/main/java/com/hbm/render/block/RenderFoundryOutlet.java @@ -10,6 +10,7 @@ import net.minecraft.block.Block; import net.minecraft.client.renderer.EntityRenderer; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.Tessellator; +import net.minecraft.tileentity.TileEntity; import net.minecraft.world.IBlockAccess; public class RenderFoundryOutlet implements ISimpleBlockRenderingHandler { @@ -82,7 +83,8 @@ public class RenderFoundryOutlet implements ISimpleBlockRenderingHandler { FoundryOutlet outlet = (FoundryOutlet) block; int meta = world.getBlockMetadata(x, y, z); - TileEntityFoundryOutlet tile = (TileEntityFoundryOutlet) world.getTileEntity(x, y, z); + TileEntity tile = world.getTileEntity(x, y, z); + TileEntityFoundryOutlet tileOutlet = tile instanceof TileEntityFoundryOutlet ? (TileEntityFoundryOutlet) tile : null; int brightness = block.getMixedBrightnessForBlock(world, x, y, z); tessellator.setBrightness(brightness); @@ -105,13 +107,13 @@ public class RenderFoundryOutlet implements ISimpleBlockRenderingHandler { renderer.renderFaceXPos(block, x, y, z, outlet.iconFront); renderer.renderFaceXNeg(block, x, y, z, outlet.iconFront); - if(tile.filter != null) { + if(tileOutlet != null && tileOutlet.filter != null) { renderer.setRenderBounds(0.96875D, 0.0625, 0.375D, 0.96875D, top, 0.625D); renderer.renderFaceXPos(block, x, y, z, outlet.iconFilter); renderer.renderFaceXNeg(block, x, y, z, outlet.iconFilter); } - if(tile.isClosed()) { + if(tileOutlet != null && tileOutlet.isClosed()) { renderer.setRenderBounds(0.9375D, 0.0625, 0.375D, 0.9375D, top, 0.625D); renderer.renderFaceXPos(block, x, y, z, outlet.iconLock); renderer.renderFaceXNeg(block, x, y, z, outlet.iconLock); @@ -136,13 +138,13 @@ public class RenderFoundryOutlet implements ISimpleBlockRenderingHandler { renderer.renderFaceXPos(block, x, y, z, outlet.iconFront); renderer.renderFaceXNeg(block, x, y, z, outlet.iconFront); - if(tile.filter != null) { + if(tileOutlet != null && tileOutlet.filter != null) { renderer.setRenderBounds(0.03125D, 0.0625, 0.375D, 0.03125D, top, 0.625D); renderer.renderFaceXPos(block, x, y, z, outlet.iconFilter); renderer.renderFaceXNeg(block, x, y, z, outlet.iconFilter); } - if(tile.isClosed()) { + if(tileOutlet != null && tileOutlet.isClosed()) { renderer.setRenderBounds(0.0625D, 0.0625, 0.375D, 0.0625D, top, 0.625D); renderer.renderFaceXPos(block, x, y, z, outlet.iconLock); renderer.renderFaceXNeg(block, x, y, z, outlet.iconLock); @@ -167,13 +169,13 @@ public class RenderFoundryOutlet implements ISimpleBlockRenderingHandler { renderer.renderFaceZPos(block, x, y, z, outlet.iconFront); renderer.renderFaceZNeg(block, x, y, z, outlet.iconFront); - if(tile.filter != null) { + if(tileOutlet != null && tileOutlet.filter != null) { renderer.setRenderBounds(0.375D, 0.0625, 0.96875D, 0.625D, top, 0.96875D); renderer.renderFaceZPos(block, x, y, z, outlet.iconFilter); renderer.renderFaceZNeg(block, x, y, z, outlet.iconFilter); } - if(tile.isClosed()) { + if(tileOutlet != null && tileOutlet.isClosed()) { renderer.setRenderBounds(0.375D, 0.0625, 0.9375D, 0.625D, top, 0.9375D); renderer.renderFaceZPos(block, x, y, z, outlet.iconLock); renderer.renderFaceZNeg(block, x, y, z, outlet.iconLock); @@ -198,13 +200,13 @@ public class RenderFoundryOutlet implements ISimpleBlockRenderingHandler { renderer.renderFaceZPos(block, x, y, z, outlet.iconFront); renderer.renderFaceZNeg(block, x, y, z, outlet.iconFront); - if(tile.filter != null) { + if(tileOutlet != null && tileOutlet.filter != null) { renderer.setRenderBounds(0.375D, 0.0625D, 0.03125, 0.625D, top, 0.03125D); renderer.renderFaceZPos(block, x, y, z, outlet.iconFilter); renderer.renderFaceZNeg(block, x, y, z, outlet.iconFilter); } - if(tile.isClosed()) { + if(tileOutlet != null && tileOutlet.isClosed()) { renderer.setRenderBounds(0.375D, 0.0625, 0.0625D, 0.625D, top, 0.0625D); renderer.renderFaceZPos(block, x, y, z, outlet.iconLock); renderer.renderFaceZNeg(block, x, y, z, outlet.iconLock); diff --git a/src/main/java/com/hbm/render/block/RenderNarrowCurveRail.java b/src/main/java/com/hbm/render/block/RenderNarrowCurveRail.java new file mode 100644 index 000000000..0cb029690 --- /dev/null +++ b/src/main/java/com/hbm/render/block/RenderNarrowCurveRail.java @@ -0,0 +1,69 @@ +package com.hbm.render.block; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.rail.RailNarrowCurve; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.client.model.obj.WavefrontObject; + +public class RenderNarrowCurveRail implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + + GL11.glPushMatrix(); + Tessellator tessellator = Tessellator.instance; + + GL11.glScaled(0.2, 0.2, 0.2); + GL11.glTranslated(2.5, -0.0625, -1.5); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_narrow_curve, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + + GL11.glPopMatrix(); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + + int meta = world.getBlockMetadata(x, y, z); + if(meta < 12) return true; + + Tessellator tessellator = Tessellator.instance; + + tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); + tessellator.setColorOpaque_F(1, 1, 1); + + float rotation = 0; + + if(meta == 12) + rotation = 90F / 180F * (float) Math.PI; + if(meta == 14) + rotation = 180F / 180F * (float) Math.PI; + if(meta == 13) + rotation = 270F / 180F * (float) Math.PI; + + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_narrow_curve, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return RailNarrowCurve.renderID; + } +} diff --git a/src/main/java/com/hbm/render/block/RenderNarrowStraightRail.java b/src/main/java/com/hbm/render/block/RenderNarrowStraightRail.java new file mode 100644 index 000000000..3f2c40c78 --- /dev/null +++ b/src/main/java/com/hbm/render/block/RenderNarrowStraightRail.java @@ -0,0 +1,62 @@ +package com.hbm.render.block; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.rail.RailNarrowStraight; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.client.model.obj.WavefrontObject; + +public class RenderNarrowStraightRail implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + + GL11.glPushMatrix(); + Tessellator tessellator = Tessellator.instance; + + GL11.glTranslated(0, -0.0625, 0); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_narrow_straight, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + + GL11.glPopMatrix(); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + + Tessellator tessellator = Tessellator.instance; + + tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); + tessellator.setColorOpaque_F(1, 1, 1); + int meta = world.getBlockMetadata(x, y, z); + + float rotation = 0; + + if(meta == 2 || meta == 3 || meta == 12 || meta == 13) + rotation = 90F / 180F * (float) Math.PI; + + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_narrow_straight, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return RailNarrowStraight.renderID; + } +} diff --git a/src/main/java/com/hbm/render/icon/TextureAtlasSpriteMutatable.java b/src/main/java/com/hbm/render/icon/TextureAtlasSpriteMutatable.java index 5a0e97ee2..3c596db64 100644 --- a/src/main/java/com/hbm/render/icon/TextureAtlasSpriteMutatable.java +++ b/src/main/java/com/hbm/render/icon/TextureAtlasSpriteMutatable.java @@ -52,7 +52,8 @@ public class TextureAtlasSpriteMutatable extends TextureAtlasSprite { if(mutator != null) { for(int i = 0; i < frames.length; i++) { BufferedImage frame = frames[i]; - mutator.mutate(frame, i, frames.length); + + if(frame != null) mutator.mutate(frame, i, frames.length); } } diff --git a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java index 9e15b0a08..52222f734 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java +++ b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java @@ -257,7 +257,9 @@ public class ItemRenderLibrary { } public void renderCommon() { GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.chemplant_body_tex); ResourceManager.chemplant_body.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); bindTexture(ResourceManager.chemplant_piston_tex); ResourceManager.chemplant_piston.renderAll(); bindTexture(ResourceManager.chemplant_spinner_tex); GL11.glTranslated(-0.625, 0, 0.625); diff --git a/src/main/java/com/hbm/render/tileentity/RenderChemplant.java b/src/main/java/com/hbm/render/tileentity/RenderChemplant.java index da86e40ec..6a1a936ac 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderChemplant.java +++ b/src/main/java/com/hbm/render/tileentity/RenderChemplant.java @@ -42,7 +42,9 @@ public class RenderChemplant extends TileEntitySpecialRenderer { bindTexture(ResourceManager.chemplant_body_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); ResourceManager.chemplant_body.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); GL11.glPopMatrix(); diff --git a/src/main/java/com/hbm/render/tileentity/RenderMicrowave.java b/src/main/java/com/hbm/render/tileentity/RenderMicrowave.java index cfdc25b26..fbe36e6e2 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderMicrowave.java +++ b/src/main/java/com/hbm/render/tileentity/RenderMicrowave.java @@ -10,36 +10,35 @@ import net.minecraft.tileentity.TileEntity; public class RenderMicrowave extends TileEntitySpecialRenderer { - @Override - public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) - { - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5D, y - 0.75, z + 0.5D); - GL11.glEnable(GL11.GL_LIGHTING); - + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y - 0.785, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + switch(tileEntity.getBlockMetadata()) { case 2: GL11.glRotatef(0, 0F, 1F, 0F); break; case 4: GL11.glRotatef(90, 0F, 1F, 0F); break; case 3: GL11.glRotatef(180, 0F, 1F, 0F); break; case 5: GL11.glRotatef(270, 0F, 1F, 0F); break; } - GL11.glTranslated(-0.5D, 0.0D, 0.5D); - - TileEntityMicrowave mic = (TileEntityMicrowave)tileEntity; + GL11.glTranslated(-0.5D, 0.0D, 0.65D); + + TileEntityMicrowave mic = (TileEntityMicrowave) tileEntity; bindTexture(ResourceManager.microwave_tex); - ResourceManager.microwave.renderPart("mainbody_Cube.001"); - ResourceManager.microwave.renderPart("window_Cube.002"); + ResourceManager.microwave.renderPart("mainbody_Cube.001"); + ResourceManager.microwave.renderPart("window_Cube.002"); - double rot = (System.currentTimeMillis() * mic.speed / 10D) % 360; - - if(mic.time > 0) { - GL11.glTranslated(0.575D, 0.0D, -0.45D); + double rot = (System.currentTimeMillis() * mic.speed / 10D) % 360; + + if(mic.time > 0) { + GL11.glTranslated(0.575D, 0.0D, -0.45D); GL11.glRotated(rot, 0F, 1F, 0F); - GL11.glTranslated(-0.575D, 0.0D, 0.45D); - } - ResourceManager.microwave.renderPart("plate_Cylinder"); + GL11.glTranslated(-0.575D, 0.0D, 0.45D); + } + ResourceManager.microwave.renderPart("plate_Cylinder"); - GL11.glPopMatrix(); - } + GL11.glPopMatrix(); + } } diff --git a/src/main/java/com/hbm/sound/AudioDynamic.java b/src/main/java/com/hbm/sound/AudioDynamic.java index 8bc976d0d..3799b7d05 100644 --- a/src/main/java/com/hbm/sound/AudioDynamic.java +++ b/src/main/java/com/hbm/sound/AudioDynamic.java @@ -10,14 +10,18 @@ import net.minecraft.util.ResourceLocation; @SideOnly(Side.CLIENT) public class AudioDynamic extends MovingSound { - - public float intendedVolume; + + public float maxVolume = 1; + public float range; + public int keepAlive; + public int timeSinceKA;; + public boolean shouldExpire = false;; protected AudioDynamic(ResourceLocation loc) { super(loc); this.repeat = true; - this.field_147666_i = ISound.AttenuationType.LINEAR; - this.intendedVolume = 10; + this.field_147666_i = ISound.AttenuationType.NONE; + this.range = 10; } public void setPosition(float x, float y, float z) { @@ -34,9 +38,18 @@ public class AudioDynamic extends MovingSound { if(player != null) { f = (float)Math.sqrt(Math.pow(xPosF - player.posX, 2) + Math.pow(yPosF - player.posY, 2) + Math.pow(zPosF - player.posZ, 2)); - volume = func(f, intendedVolume); + volume = func(f); } else { - volume = intendedVolume; + volume = maxVolume; + } + + if(this.shouldExpire) { + + if(this.timeSinceKA > this.keepAlive) { + this.stop(); + } + + this.timeSinceKA++; } } @@ -49,15 +62,28 @@ public class AudioDynamic extends MovingSound { } public void setVolume(float volume) { - this.intendedVolume = volume; + this.volume = volume; + } + + public void setRange(float range) { + this.range = range; + } + + public void setKeepAlive(int keepAlive) { + this.keepAlive = keepAlive; + this.shouldExpire = true; + } + + public void keepAlive() { + this.timeSinceKA = 0; } public void setPitch(float pitch) { this.field_147663_c = pitch; } - public float func(float f, float v) { - return (f / v) * -2 + 2; + public float func(float dist) { + return (dist / range) * -maxVolume + maxVolume; } public boolean isPlaying() { diff --git a/src/main/java/com/hbm/sound/AudioWrapper.java b/src/main/java/com/hbm/sound/AudioWrapper.java index 9c99bf096..e3830d5d8 100644 --- a/src/main/java/com/hbm/sound/AudioWrapper.java +++ b/src/main/java/com/hbm/sound/AudioWrapper.java @@ -1,14 +1,19 @@ package com.hbm.sound; public class AudioWrapper { + + public void setKeepAlive(int keepAlive) { } + public void keepAlive() { } public void updatePosition(float x, float y, float z) { } - + public void updateVolume(float volume) { } + public void updateRange(float range) { } public void updatePitch(float pitch) { } - + public float getVolume() { return 0F; } + public float getRange() { return 0F; } public float getPitch() { return 0F; } diff --git a/src/main/java/com/hbm/sound/AudioWrapperClient.java b/src/main/java/com/hbm/sound/AudioWrapperClient.java index 34a72dc06..bc259c1dd 100644 --- a/src/main/java/com/hbm/sound/AudioWrapperClient.java +++ b/src/main/java/com/hbm/sound/AudioWrapperClient.java @@ -14,6 +14,18 @@ public class AudioWrapperClient extends AudioWrapper { sound = new AudioDynamic(source); } + @Override + public void setKeepAlive(int keepAlive) { + if(sound != null) + sound.setKeepAlive(keepAlive); + } + + @Override + public void keepAlive() { + if(sound != null) + sound.keepAlive(); + } + @Override public void updatePosition(float x, float y, float z) { if(sound != null) @@ -26,6 +38,12 @@ public class AudioWrapperClient extends AudioWrapper { sound.setVolume(volume); } + @Override + public void updateRange(float range) { + if(sound != null) + sound.setRange(range); + } + @Override public void updatePitch(float pitch) { if(sound != null) diff --git a/src/main/java/com/hbm/sound/AudioWrapperClientStartStop.java b/src/main/java/com/hbm/sound/AudioWrapperClientStartStop.java index 663981b9e..6df22c652 100644 --- a/src/main/java/com/hbm/sound/AudioWrapperClientStartStop.java +++ b/src/main/java/com/hbm/sound/AudioWrapperClientStartStop.java @@ -3,6 +3,7 @@ package com.hbm.sound; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; +/** Only used for doors */ public class AudioWrapperClientStartStop extends AudioWrapperClient { public String start; diff --git a/src/main/java/com/hbm/tileentity/TileEntityLoadedBase.java b/src/main/java/com/hbm/tileentity/TileEntityLoadedBase.java index baec2d8d4..f2ab912aa 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityLoadedBase.java +++ b/src/main/java/com/hbm/tileentity/TileEntityLoadedBase.java @@ -1,5 +1,7 @@ package com.hbm.tileentity; +import com.hbm.sound.AudioWrapper; + import api.hbm.energy.ILoadedTile; import net.minecraft.tileentity.TileEntity; @@ -17,4 +19,13 @@ public class TileEntityLoadedBase extends TileEntity implements ILoadedTile { super.onChunkUnload(); this.isLoaded = false; } + + public AudioWrapper createAudioLoop() { return null; } + + public AudioWrapper rebootAudio(AudioWrapper wrapper) { + wrapper.stopSound(); + AudioWrapper audio = createAudioLoop(); + audio.startSound(); + return audio; + } } diff --git a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java index 5c5c26d5d..d71c1ab66 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java +++ b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java @@ -4,7 +4,6 @@ import com.hbm.blocks.ModBlocks; import com.hbm.packet.AuxGaugePacket; import com.hbm.packet.NBTPacket; import com.hbm.packet.PacketDispatcher; -import com.hbm.sound.AudioWrapper; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.player.EntityPlayer; @@ -222,13 +221,4 @@ public abstract class TileEntityMachineBase extends TileEntityLoadedBase impleme return Math.max(volume, 0); } - - public AudioWrapper createAudioLoop() { return null; } - - public AudioWrapper rebootAudio(AudioWrapper wrapper) { - wrapper.stopSound(); - AudioWrapper audio = createAudioLoop(); - audio.startSound(); - return audio; - } } diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 96cdeb446..824ecb205 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -7,6 +7,7 @@ import java.util.List; import com.hbm.blocks.bomb.BlockVolcano.TileEntityVolcanoCore; import com.hbm.blocks.generic.BlockBedrockOreTE.TileEntityBedrockOre; import com.hbm.blocks.generic.BlockBobble.TileEntityBobble; +import com.hbm.blocks.generic.BlockDynamicSlag.TileEntitySlag; import com.hbm.blocks.generic.BlockEmitter.TileEntityEmitter; import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; import com.hbm.blocks.generic.BlockMotherOfAllOres.TileEntityRandomOre; @@ -268,6 +269,8 @@ public class TileMappings { put(TileEntityFoundryChannel.class, "tileentity_foundry_channel"); put(TileEntityFoundryTank.class, "tileentity_foundry_tank"); put(TileEntityFoundryOutlet.class, "tileentity_foundry_outlet"); + put(TileEntityFoundrySlagtap.class, "tileentity_foundry_slagtap"); + put(TileEntitySlag.class, "tileentity_foundry_slag"); put(TileEntityMachineAutocrafter.class, "tileentity_autocrafter"); put(TileEntityDiFurnaceRTG.class, "tileentity_rtg_difurnace"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundrySlagtap.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundrySlagtap.java new file mode 100644 index 000000000..ef09f7257 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundrySlagtap.java @@ -0,0 +1,115 @@ +package com.hbm.tileentity.machine; + +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.generic.BlockDynamicSlag.TileEntitySlag; +import com.hbm.inventory.material.Mats.MaterialStack; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; +import com.hbm.util.Compat; + +import api.hbm.block.ICrucibleAcceptor; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.block.Block; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityFoundrySlagtap extends TileEntity implements ICrucibleAcceptor { + + @Override + public boolean canAcceptPartialFlow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) { + + Vec3 start = Vec3.createVectorHelper(x + 0.5, y - 0.125, z + 0.5); + Vec3 end = Vec3.createVectorHelper(x + 0.5, y + 0.125 - 15, z + 0.5); + + MovingObjectPosition mop = world.func_147447_a(start, end, true, true, true); + + if(mop == null || mop.typeOfHit != mop.typeOfHit.BLOCK) { + return false; + } + + return true; + } + + @Override + public MaterialStack flow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) { + + if(stack == null || stack.material == null || stack.amount <= 0) { + return null; + } + + Vec3 start = Vec3.createVectorHelper(x + 0.5, y - 0.125, z + 0.5); + Vec3 end = Vec3.createVectorHelper(x + 0.5, y + 0.125 - 15, z + 0.5); + + MovingObjectPosition mop = world.func_147447_a(start, end, true, true, true); + + if(mop == null || mop.typeOfHit != mop.typeOfHit.BLOCK) { + return null; + } + + Block hit = world.getBlock(mop.blockX, mop.blockY, mop.blockZ); + Block above = world.getBlock(mop.blockX, mop.blockY + 1, mop.blockZ); + + boolean didFlow = false; + + if(hit == ModBlocks.slag) { + TileEntitySlag tile = (TileEntitySlag) Compat.getTileStandard(world, mop.blockX, mop.blockY, mop.blockZ); + if(tile.mat == stack.material) { + int transfer = Math.min(tile.maxAmount - tile.amount, stack.amount); + tile.amount += transfer; + stack.amount -= transfer; + didFlow = didFlow || transfer > 0; + world.markBlockForUpdate(mop.blockX, mop.blockY, mop.blockZ); + world.scheduleBlockUpdate(mop.blockX, mop.blockY, mop.blockZ, ModBlocks.slag, 1); + } + } else if(hit.isReplaceable(world, mop.blockX, mop.blockY, mop.blockZ)) { + world.setBlock(mop.blockX, mop.blockY, mop.blockZ, ModBlocks.slag); + TileEntitySlag tile = (TileEntitySlag) Compat.getTileStandard(world, mop.blockX, mop.blockY, mop.blockZ); + tile.mat = stack.material; + int transfer = Math.min(tile.maxAmount, stack.amount); + tile.amount += transfer; + stack.amount -= transfer; + didFlow = didFlow || transfer > 0; + world.markBlockForUpdate(mop.blockX, mop.blockY, mop.blockZ); + world.scheduleBlockUpdate(mop.blockX, mop.blockY, mop.blockZ, ModBlocks.slag, 1); + } + + if(stack.amount > 0 && above.isReplaceable(world, mop.blockX, mop.blockY + 1, mop.blockZ)) { + world.setBlock(mop.blockX, mop.blockY + 1, mop.blockZ, ModBlocks.slag); + TileEntitySlag tile = (TileEntitySlag) Compat.getTileStandard(world, mop.blockX, mop.blockY + 1, mop.blockZ); + tile.mat = stack.material; + int transfer = Math.min(tile.maxAmount, stack.amount); + tile.amount += transfer; + stack.amount -= transfer; + didFlow = didFlow || transfer > 0; + world.markBlockForUpdate(mop.blockX, mop.blockY + 1, mop.blockZ); + world.scheduleBlockUpdate(mop.blockX, mop.blockY + 1, mop.blockZ, ModBlocks.slag, 1); + } + + if(didFlow) { + ForgeDirection dir = side.getOpposite(); + double hitY = mop.blockY; + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "foundry"); + data.setInteger("color", stack.material.moltenColor); + data.setByte("dir", (byte) dir.ordinal()); + data.setFloat("off", 0.375F); + data.setFloat("base", 0F); + data.setFloat("len", Math.max(1F, yCoord - (float) (Math.ceil(hitY)))); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, xCoord + 0.5D - dir.offsetX * 0.125, yCoord + 0.125, zCoord + 0.5D - dir.offsetZ * 0.125), new TargetPoint(worldObj.provider.dimensionId, xCoord + 0.5, yCoord, zCoord + 0.5, 50)); + } + + if(stack.amount <= 0) { + stack = null; + } + + return stack; + } + + @Override public boolean canAcceptPartialPour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, MaterialStack stack) { return false; } + @Override public MaterialStack pour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, MaterialStack stack) { return stack; } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java index c7c98008d..bcda9f18b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java @@ -20,7 +20,9 @@ import com.hbm.inventory.fluid.trait.FT_Heatable; import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingStep; import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingType; import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; import com.hbm.saveddata.TomSaveData; +import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.TileEntityLoadedBase; @@ -41,8 +43,12 @@ public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IFluid public int heat; public FluidTank[] tanks; public List list = new ArrayList(); + public boolean isOn; public boolean hasExploded = false; + private AudioWrapper audio; + private int audioTime; + /* CONFIGURABLE */ public static int maxHeat = 12_800_000; //the heat required to turn 64k of water into steam public static double diffusion = 0.1D; @@ -76,6 +82,7 @@ public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IFluid data.setInteger("heat", lastHeat); tanks[0].writeToNBT(data, "0"); + this.isOn = false; this.tryConvert(); tanks[1].writeToNBT(data, "1"); @@ -84,9 +91,59 @@ public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IFluid fillFluidInit(tanks[1].getTankType()); } } - + data.setBoolean("exploded", this.hasExploded); + data.setBoolean("isOn", this.isOn); INBTPacketReceiver.networkPack(this, data, 25); + } else { + + if(this.isOn) audioTime = 20; + + if(audioTime > 0) { + + audioTime--; + + if(audio == null) { + audio = createAudioLoop(); + audio.startSound(); + } else if(!audio.isPlaying()) { + audio = rebootAudio(audio); + } + + audio.keepAlive(); + + } else { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + } + } + + @Override + public AudioWrapper createAudioLoop() { + return MainRegistry.proxy.getLoopedSound("hbm:block.boiler", xCoord, yCoord, zCoord, 0.125F, 10F, 1.0F, 20); + } + + @Override + public void onChunkUnload() { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + @Override + public void invalidate() { + + super.invalidate(); + + if(audio != null) { + audio.stopSound(); + audio = null; } } @@ -96,6 +153,7 @@ public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IFluid this.heat = nbt.getInteger("heat"); this.tanks[0].readFromNBT(nbt, "0"); this.tanks[1].readFromNBT(nbt, "1"); + this.isOn = nbt.getBoolean("isOn"); } protected void tryPullHeat() { @@ -159,6 +217,10 @@ public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IFluid worldObj.playSoundEffect(xCoord + 0.5, yCoord + 2, zCoord + 0.5, "hbm:block.boilerGroan", 0.5F, 1.0F); } + if(ops > 0) { + this.isOn = true; + } + if(outputOps == 0 && canExplode) { this.hasExploded = true; BlockDummyable.safeRem = true; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterElectric.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterElectric.java index 7a3dacf54..35569da50 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterElectric.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterElectric.java @@ -1,6 +1,8 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.BlockDummyable; +import com.hbm.main.MainRegistry; +import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.TileEntityLoadedBase; @@ -17,7 +19,10 @@ public class TileEntityHeaterElectric extends TileEntityLoadedBase implements IH public long power; public int heatEnergy; + public boolean isOn; protected int setting = 0; + + private AudioWrapper audio; @Override public void updateEntity() { @@ -32,16 +37,64 @@ public class TileEntityHeaterElectric extends TileEntityLoadedBase implements IH this.heatEnergy *= 0.999; this.tryPullHeat(); - + + this.isOn = false; if(setting > 0 && this.power >= this.getConsumption()) { this.power -= this.getConsumption(); this.heatEnergy += getHeatGen(); + this.isOn = true; } NBTTagCompound data = new NBTTagCompound(); data.setByte("s", (byte) this.setting); data.setInteger("h", this.heatEnergy); + data.setBoolean("o", isOn); INBTPacketReceiver.networkPack(this, data, 25); + } else { + + if(isOn) { + + if(audio == null) { + audio = createAudioLoop(); + audio.startSound(); + } else if(!audio.isPlaying()) { + audio = rebootAudio(audio); + } + + audio.keepAlive(); + + } else { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + } + } + + @Override + public AudioWrapper createAudioLoop() { + return MainRegistry.proxy.getLoopedSound("hbm:block.electricHum", xCoord, yCoord, zCoord, 0.25F, 7.5F, 1.0F, 20); + } + + @Override + public void onChunkUnload() { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + @Override + public void invalidate() { + + super.invalidate(); + + if(audio != null) { + audio.stopSound(); + audio = null; } } @@ -49,6 +102,7 @@ public class TileEntityHeaterElectric extends TileEntityLoadedBase implements IH public void networkUnpack(NBTTagCompound nbt) { this.setting = nbt.getByte("s"); this.heatEnergy = nbt.getInteger("h"); + this.isOn = nbt.getBoolean("o"); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java index 826bf7ffd..33c973b89 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java @@ -256,7 +256,7 @@ public class TileEntityMachineAssembler extends TileEntityMachineBase implements @Override public AudioWrapper createAudioLoop() { - return MainRegistry.proxy.getLoopedSound("hbm:block.assemblerOperate", xCoord, yCoord, zCoord, 1.0F, 1.0F); + return MainRegistry.proxy.getLoopedSound("hbm:block.assemblerOperate", xCoord, yCoord, zCoord, 1.0F, 10F, 1.0F); } private void updateConnections() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java index b35ad6c76..8add21027 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java @@ -223,15 +223,17 @@ public class TileEntityMachineCentrifuge extends TileEntityMachineBase implement } } } - + + @Override public void networkUnpack(NBTTagCompound data) { this.power = data.getLong("power"); this.progress = data.getInteger("progress"); this.isProgressing = data.getBoolean("isProgressing"); } - + + @Override public AudioWrapper createAudioLoop() { - return MainRegistry.proxy.getLoopedSound("hbm:block.centrifugeOperate", xCoord, yCoord, zCoord, 2.0F, 1.0F); + return MainRegistry.proxy.getLoopedSound("hbm:block.centrifugeOperate", xCoord, yCoord, zCoord, 1.0F, 10F, 1.0F); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java index b40be0fdc..9aea57727 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java @@ -93,8 +93,8 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements this.isProgressing = false; this.power = Library.chargeTEFromItems(slots, 0, power, maxPower); - if(!tanks[0].loadTank(17, 19, slots)) tanks[0].unloadTank(17, 19, slots); - if(!tanks[1].loadTank(18, 20, slots)) tanks[1].unloadTank(18, 20, slots); + if(!tanks[0].loadTank(17, 19, slots) && (slots[17] == null || slots[17].getItem() != ModItems.fluid_barrel_infinite)) tanks[0].unloadTank(17, 19, slots); + if(!tanks[1].loadTank(18, 20, slots) && (slots[18] == null || slots[18].getItem() != ModItems.fluid_barrel_infinite)) tanks[1].unloadTank(18, 20, slots); tanks[2].unloadTank(9, 11, slots); tanks[3].unloadTank(10, 12, slots); @@ -162,7 +162,7 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements worldObj.spawnParticle("cloud", x, y, z, 0.0, 0.1, 0.0); } - float volume = this.getVolume(2); + float volume = 1;//this.getVolume(2); if(isProgressing && volume > 0) { @@ -187,7 +187,7 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements @Override public AudioWrapper createAudioLoop() { - return MainRegistry.proxy.getLoopedSound("hbm:block.chemplantOperate", xCoord, yCoord, zCoord, 1.0F, 1.0F); + return MainRegistry.proxy.getLoopedSound("hbm:block.chemplantOperate", xCoord, yCoord, zCoord, 1.0F, 10F, 1.0F); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java index 592854660..18d48904a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java @@ -157,7 +157,7 @@ public class TileEntityMachineCombustionEngine extends TileEntityMachineBase imp } public AudioWrapper createAudioLoop() { - return MainRegistry.proxy.getLoopedSound("hbm:block.igeneratorOperate", xCoord, yCoord, zCoord, 2.0F, 1.0F); + return MainRegistry.proxy.getLoopedSound("hbm:block.igeneratorOperate", xCoord, yCoord, zCoord, 1.0F, 10F, 1.0F); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java index d6e7d9e1a..12bdd43ec 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java @@ -196,7 +196,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB } public AudioWrapper createAudioLoop() { - return MainRegistry.proxy.getLoopedSound("hbm:weapon.tauChargeLoop", xCoord, yCoord, zCoord, 1.0F, 1.0F); + return MainRegistry.proxy.getLoopedSound("hbm:weapon.tauChargeLoop", xCoord, yCoord, zCoord, 1.0F, 10F, 1.0F); } private void updateConnections() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java index e2b64dde5..419664383 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java @@ -170,12 +170,12 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement if(audio == null) { //if there is no sound playing, start it - audio = MainRegistry.proxy.getLoopedSound("hbm:block.turbinegasRunning", xCoord, yCoord, zCoord, 1.0F, 1.0F); + audio = MainRegistry.proxy.getLoopedSound("hbm:block.turbinegasRunning", xCoord, yCoord, zCoord, 1.0F, 20F, 1.0F); audio.startSound(); } else if(!audio.isPlaying()) { audio.stopSound(); - audio = MainRegistry.proxy.getLoopedSound("hbm:block.turbinegasRunning", xCoord, yCoord, zCoord, 1.0F, 1.0F); + audio = MainRegistry.proxy.getLoopedSound("hbm:block.turbinegasRunning", xCoord, yCoord, zCoord, 1.0F, 20F, 1.0F); audio.startSound(); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java index bd87b519c..942732fa1 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java @@ -382,7 +382,7 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements } public AudioWrapper createAudioLoop() { - return MainRegistry.proxy.getLoopedSound("hbm:block.turbofanOperate", xCoord, yCoord, zCoord, 5.0F, 1.0F); + return MainRegistry.proxy.getLoopedSound("hbm:block.turbofanOperate", xCoord, yCoord, zCoord, 1.0F, 50F, 1.0F, 20); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java index 20204ca0d..6f85b34fd 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java @@ -171,7 +171,7 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS @Override public AudioWrapper createAudioLoop() { - return MainRegistry.proxy.getLoopedSound("hbm:block.soyuzReady", xCoord, yCoord, zCoord, 1.0F, 1.0F); + return MainRegistry.proxy.getLoopedSound("hbm:block.soyuzReady", xCoord, yCoord, zCoord, 2.0F, 100F, 1.0F); } public void onChunkUnload() { diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java index 8cac21820..ee2d7b79a 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java @@ -24,6 +24,8 @@ import com.hbm.inventory.gui.GUIMachineRefinery; import com.hbm.inventory.recipes.RefineryRecipes; import com.hbm.items.ModItems; import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; +import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IOverpressurable; import com.hbm.tileentity.IPersistentNBT; @@ -65,6 +67,10 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements public boolean hasExploded = false; public boolean onFire = false; public Explosion lastExplosion = null; + + private AudioWrapper audio; + private int audioTime; + public boolean isOn; private static final int[] slot_access = new int[] {11}; @@ -138,6 +144,8 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements if(!worldObj.isRemote) { + this.isOn = false; + if(this.getBlockMetadata() < 12) { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()).getRotation(ForgeDirection.DOWN); worldObj.removeTileEntity(xCoord, yCoord, zCoord); @@ -201,7 +209,57 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements for(int i = 0; i < 5; i++) tanks[i].writeToNBT(data, "" + i); data.setBoolean("exploded", hasExploded); data.setBoolean("onFire", onFire); + data.setBoolean("isOn", this.isOn); this.networkPack(data, 150); + } else { + + if(this.isOn) audioTime = 20; + + if(audioTime > 0) { + + audioTime--; + + if(audio == null) { + audio = createAudioLoop(); + audio.startSound(); + } else if(!audio.isPlaying()) { + audio = rebootAudio(audio); + } + + audio.keepAlive(); + + } else { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + } + } + + @Override + public AudioWrapper createAudioLoop() { + return MainRegistry.proxy.getLoopedSound("hbm:block.boiler", xCoord, yCoord, zCoord, 0.25F, 15F, 1.0F, 20); + } + + @Override + public void onChunkUnload() { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + @Override + public void invalidate() { + + super.invalidate(); + + if(audio != null) { + audio.stopSound(); + audio = null; } } @@ -211,6 +269,7 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements for(int i = 0; i < 5; i++) tanks[i].readFromNBT(nbt, "" + i); this.hasExploded = nbt.getBoolean("exploded"); this.onFire = nbt.getBoolean("onFire"); + this.isOn = nbt.getBoolean("isOn"); } private void refine() { @@ -233,6 +292,7 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements } } + this.isOn = true; tanks[0].setFill(tanks[0].getFill() - 100); for(int i = 0; i < stacks.length; i++) diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java index 81ef2baa8..bc2ba6469 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java @@ -7,6 +7,8 @@ import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIMachineVacuumDistill; import com.hbm.inventory.recipes.RefineryRecipes; import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; +import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityMachineBase; @@ -30,6 +32,10 @@ public class TileEntityMachineVacuumDistill extends TileEntityMachineBase implem public static final long maxPower = 1_000_000; public FluidTank[] tanks; + + private AudioWrapper audio; + private int audioTime; + public boolean isOn; public TileEntityMachineVacuumDistill() { super(11); @@ -52,6 +58,8 @@ public class TileEntityMachineVacuumDistill extends TileEntityMachineBase implem if(!worldObj.isRemote) { + this.isOn = false; + this.updateConnections(); power = Library.chargeTEFromItems(slots, 0, power, maxPower); tanks[0].loadTank(1, 2, slots); @@ -73,14 +81,65 @@ public class TileEntityMachineVacuumDistill extends TileEntityMachineBase implem NBTTagCompound data = new NBTTagCompound(); data.setLong("power", this.power); + data.setBoolean("isOn", this.isOn); for(int i = 0; i < 5; i++) tanks[i].writeToNBT(data, "" + i); this.networkPack(data, 150); + } else { + + if(this.isOn) audioTime = 20; + + if(audioTime > 0) { + + audioTime--; + + if(audio == null) { + audio = createAudioLoop(); + audio.startSound(); + } else if(!audio.isPlaying()) { + audio = rebootAudio(audio); + } + + audio.keepAlive(); + + } else { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + } + } + + @Override + public AudioWrapper createAudioLoop() { + return MainRegistry.proxy.getLoopedSound("hbm:block.boiler", xCoord, yCoord, zCoord, 0.25F, 15F, 1.0F, 20); + } + + @Override + public void onChunkUnload() { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + @Override + public void invalidate() { + + super.invalidate(); + + if(audio != null) { + audio.stopSound(); + audio = null; } } @Override public void networkUnpack(NBTTagCompound nbt) { this.power = nbt.getLong("power"); + this.isOn = nbt.getBoolean("isOn"); for(int i = 0; i < 5; i++) tanks[i].readFromNBT(nbt, "" + i); } @@ -92,7 +151,8 @@ public class TileEntityMachineVacuumDistill extends TileEntityMachineBase implem if(tanks[2].getFill() + RefineryRecipes.vac_frac_reform > tanks[2].getMaxFill()) return; if(tanks[3].getFill() + RefineryRecipes.vac_frac_light > tanks[3].getMaxFill()) return; if(tanks[4].getFill() + RefineryRecipes.vac_frac_sour > tanks[4].getMaxFill()) return; - + + this.isOn = true; power -= 10_000; tanks[0].setFill(tanks[0].getFill() - 100); tanks[1].setFill(tanks[1].getFill() + RefineryRecipes.vac_frac_heavy); diff --git a/src/main/java/com/hbm/util/Compat.java b/src/main/java/com/hbm/util/Compat.java index ff7da1c9d..3a8a4a9a6 100644 --- a/src/main/java/com/hbm/util/Compat.java +++ b/src/main/java/com/hbm/util/Compat.java @@ -100,24 +100,25 @@ public class Compat { public static List scrapeItemFromME(ItemStack meDrive) { List stacks = new ArrayList(); - if(meDrive != null && meDrive.hasTagCompound()) { - NBTTagCompound nbt = meDrive.getTagCompound(); - int types = nbt.getShort("it"); //ITEM_TYPE_TAG - - for(int i = 0; i < types; i++) { - NBTBase stackTag = nbt.getTag("#" + i); + try { + if(meDrive != null && meDrive.hasTagCompound()) { + NBTTagCompound nbt = meDrive.getTagCompound(); + int types = nbt.getShort("it"); //ITEM_TYPE_TAG - if(stackTag instanceof NBTTagCompound) { - NBTTagCompound compound = (NBTTagCompound) stackTag; - ItemStack stack = ItemStack.loadItemStackFromNBT(compound); + for(int i = 0; i < types; i++) { + NBTBase stackTag = nbt.getTag("#" + i); - int count = nbt.getInteger("@" + i); - stack.stackSize = count; - - stacks.add(stack); + if(stackTag instanceof NBTTagCompound) { + NBTTagCompound compound = (NBTTagCompound) stackTag; + ItemStack stack = ItemStack.loadItemStackFromNBT(compound); + + int count = nbt.getInteger("@" + i); + stack.stackSize = count; + stacks.add(stack); + } } } - } + } catch(Exception ex) { } return stacks; } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 1bc1639b7..4a9c5faf2 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -3590,22 +3590,28 @@ tile.concrete_brick_slab.brick_concrete_broken.name=Rissige Betonziegelstufe tile.concrete_brick_slab.brick_concrete_cracked.name=Gebrochene Betonziegelstufe tile.concrete_brick_slab.brick_concrete_mossy.name=Bemooste Betonziegelstufe tile.concrete_brick_slab.brick_ducrete.name=Ducreteziegelstufe -tile.concrete_colored.black.name=Schwarzer Beton -tile.concrete_colored.blue.name=Blauer Beton -tile.concrete_colored.brown.name=Brauner Beton -tile.concrete_colored.cyan.name=Türkiser Beton -tile.concrete_colored.gray.name=Grauer Beton -tile.concrete_colored.green.name=Grüner Beton -tile.concrete_colored.lightBlue.name=Hellblauer Beton -tile.concrete_colored.lime.name=Hellgrüner Beton -tile.concrete_colored.magenta.name=Magenta Beton -tile.concrete_colored.orange.name=Oranger Beton -tile.concrete_colored.pink.name=Rosa Beton -tile.concrete_colored.purple.name=Lila Beton -tile.concrete_colored.red.name=Roter Beton +tile.concrete_colored.black.name=Schwarzer Beton +tile.concrete_colored.blue.name=Blauer Beton +tile.concrete_colored.brown.name=Brauner Beton +tile.concrete_colored.cyan.name=Türkiser Beton +tile.concrete_colored.gray.name=Grauer Beton +tile.concrete_colored.green.name=Grüner Beton +tile.concrete_colored.lightBlue.name=Hellblauer Beton +tile.concrete_colored.lime.name=Hellgrüner Beton +tile.concrete_colored.magenta.name=Magenta Beton +tile.concrete_colored.orange.name=Oranger Beton +tile.concrete_colored.pink.name=Rosa Beton +tile.concrete_colored.purple.name=Lila Beton +tile.concrete_colored.red.name=Roter Beton tile.concrete_colored.silver.name=Hellgrauer Beton -tile.concrete_colored.white.name=Weißer Beton -tile.concrete_colored.yellow.name=Gelber Beton +tile.concrete_colored.white.name=Weißer Beton +tile.concrete_colored.yellow.name=Gelber Beton +tile.concrete_colored_ext.hazard.name=Builder's Choice Concrete - Gefahrenstreifen +tile.concrete_colored_ext.indigo.name=Builder's Choice Concrete - Tiefes Indigo +tile.concrete_colored_ext.machine.name=Builder's Choice Concrete - Industrieller Ton +tile.concrete_colored_ext.machine_stripe.name=Builder's Choice Concrete - Industrieller Streifen +tile.concrete_colored_ext.pink.name=Builder's Choice Concrete - Männliches Pink +tile.concrete_colored_ext.purple.name=Builder's Choice Concrete - Mysteriöses Lila tile.concrete_pillar.name=Stahlbetonsäule tile.concrete_slab.concrete.name=Betonfliesenstufe tile.concrete_slab.concrete_asbestos.name=Asbestbetonstufe @@ -3745,6 +3751,7 @@ tile.foundry_channel.name=Gusskanal tile.foundry_tank.name=Gießerei-Lagerbecken tile.foundry_mold.name=Seichtes Gussbecken tile.foundry_outlet.name=Ausguss +tile.foundry_slagtap.name=Schlackeausguss tile.fraction_spacer.name=Fraktionierungsturm-Teiler tile.frozen_dirt.name=Gefrorene Erde tile.frozen_grass.name=Gefrorenes Gras diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 994b22798..b179aee53 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -4418,6 +4418,12 @@ tile.concrete_colored.red.name=Red Concrete tile.concrete_colored.silver.name=Light Gray Concrete tile.concrete_colored.white.name=White Concrete tile.concrete_colored.yellow.name=Yellow Concrete +tile.concrete_colored_ext.hazard.name=Builder's Choice Concrete - Hazard Stripe +tile.concrete_colored_ext.indigo.name=Builder's Choice Concrete - Deep Indigo +tile.concrete_colored_ext.machine.name=Builder's Choice Concrete - Industrial Tinge +tile.concrete_colored_ext.machine_stripe.name=Builder's Choice Concrete - Industrial Stripe +tile.concrete_colored_ext.pink.name=Builder's Choice Concrete - Manly Pink +tile.concrete_colored_ext.purple.name=Builder's Choice Concrete - Mysterious Purple tile.concrete_pillar.name=Rebar Reinforced Concrete Pillar tile.concrete_slab.concrete.name=Concrete Tile Slab tile.concrete_slab.concrete_asbestos.name=Asbestos Concrete Slab @@ -4562,6 +4568,7 @@ tile.foundry_channel.name=Foundry Channel tile.foundry_tank.name=Foundry Storage Basin tile.foundry_mold.name=Shallow Foundry Basin tile.foundry_outlet.name=Foundry Outlet +tile.foundry_slagtap.name=Foundry Slag Outlet tile.fraction_spacer.name=Fractioning Tower Separator tile.frozen_dirt.name=Frozen Dirt tile.frozen_grass.name=Frozen Grass diff --git a/src/main/resources/assets/hbm/models/blocks/rail_narrow.obj b/src/main/resources/assets/hbm/models/blocks/rail_narrow.obj new file mode 100644 index 000000000..ae0ae0946 --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/rail_narrow.obj @@ -0,0 +1,314 @@ +# Blender v2.79 (sub 0) OBJ File: 'rail_narrow.blend' +# www.blender.org +o Plane +v 0.500000 0.125000 0.375000 +v -0.500000 0.125000 0.375000 +v -0.500000 0.125000 -0.375000 +v 0.500000 0.125000 -0.375000 +v -0.500000 0.000000 0.375000 +v 0.500000 0.000000 0.375000 +v -0.500000 0.000000 -0.437500 +v 0.500000 0.000000 -0.437500 +v -0.500000 0.000000 0.437500 +v 0.500000 0.000000 0.437500 +v -0.500000 0.000000 -0.375000 +v 0.500000 0.000000 -0.375000 +v -0.500000 0.125000 0.437500 +v 0.500000 0.125000 0.437500 +v 0.500000 0.125000 -0.437500 +v -0.500000 0.125000 -0.437500 +v 0.187500 0.000000 0.375000 +v 0.312500 0.000000 0.375000 +v 0.187500 0.000000 -0.375000 +v 0.312500 0.000000 -0.375000 +v 0.187500 0.062500 -0.375000 +v 0.187500 0.062500 0.375000 +v 0.312500 0.062500 0.375000 +v 0.312500 0.062500 -0.375000 +v 0.187500 0.000000 -0.437500 +v 0.312500 0.000000 -0.437500 +v 0.187500 0.062500 -0.437500 +v 0.312500 0.062500 -0.437500 +v 0.187500 0.000000 -0.500000 +v 0.312500 0.000000 -0.500000 +v 0.187500 0.062500 -0.500000 +v 0.312500 0.062500 -0.500000 +v 0.187500 0.000000 0.437500 +v 0.312500 0.000000 0.437500 +v 0.187500 0.062500 0.437500 +v 0.312500 0.062500 0.437500 +v 0.187500 0.000000 0.500000 +v 0.312500 0.000000 0.500000 +v 0.187500 0.062500 0.500000 +v 0.312500 0.062500 0.500000 +v -0.312500 0.000000 0.375000 +v -0.187500 0.000000 0.375000 +v -0.312500 0.000000 -0.375000 +v -0.187500 0.000000 -0.375000 +v -0.312500 0.062500 -0.375000 +v -0.312500 0.062500 0.375000 +v -0.187500 0.062500 0.375000 +v -0.187500 0.062500 -0.375000 +v -0.312500 0.000000 -0.437500 +v -0.187500 0.000000 -0.437500 +v -0.312500 0.062500 -0.437500 +v -0.187500 0.062500 -0.437500 +v -0.312500 0.000000 -0.500000 +v -0.187500 0.000000 -0.500000 +v -0.312500 0.062500 -0.500000 +v -0.187500 0.062500 -0.500000 +v -0.312500 0.000000 0.437500 +v -0.187500 0.000000 0.437500 +v -0.312500 0.062500 0.437500 +v -0.187500 0.062500 0.437500 +v -0.312500 0.000000 0.500000 +v -0.187500 0.000000 0.500000 +v -0.312500 0.062500 0.500000 +v -0.187500 0.062500 0.500000 +vt 0.125000 0.000000 +vt 0.062500 1.000000 +vt 0.062500 0.000000 +vt 0.937500 1.000000 +vt 0.875000 0.000000 +vt 0.937500 0.000000 +vt 0.062500 1.000000 +vt 0.125000 0.000000 +vt 0.125000 1.000000 +vt 0.875000 0.000000 +vt 0.937500 1.000000 +vt 0.875000 1.000000 +vt 0.125000 -0.000000 +vt 0.062500 0.125000 +vt 0.062500 -0.000000 +vt 1.000000 0.000000 +vt -0.000000 0.125000 +vt -0.000000 0.000000 +vt 1.000000 0.000000 +vt -0.000000 0.125000 +vt -0.000000 0.000000 +vt 0.937500 -0.000000 +vt 0.875000 0.125000 +vt 0.875000 -0.000000 +vt 0.937500 0.000000 +vt 0.875000 0.125000 +vt 0.875000 0.000000 +vt 1.000000 -0.000000 +vt -0.000000 0.125000 +vt -0.000000 -0.000000 +vt 1.000000 -0.000000 +vt -0.000000 0.125000 +vt -0.000000 -0.000000 +vt 0.125000 0.000000 +vt 0.062500 0.125000 +vt 0.062500 0.000000 +vt 0.875000 0.687500 +vt 0.125000 0.812500 +vt 0.125000 0.687500 +vt 0.875000 0.812500 +vt 0.125000 0.687500 +vt 0.875000 0.687500 +vt 0.875000 0.000000 +vt 0.125000 0.062500 +vt 0.125000 0.000000 +vt 0.875000 -0.000000 +vt 0.125000 0.062500 +vt 0.125000 -0.000000 +vt 0.062500 0.812500 +vt 0.000000 0.687500 +vt 0.062500 0.687500 +vt 0.062500 0.062500 +vt -0.000000 -0.000000 +vt 0.062500 -0.000000 +vt 0.937500 0.000000 +vt 1.000000 0.062500 +vt 0.937500 0.062500 +vt 1.000000 0.687500 +vt 0.937500 0.812500 +vt 0.937500 0.687500 +vt 0.312500 0.062500 +vt 0.187500 -0.000000 +vt 0.312500 -0.000000 +vt 0.062500 0.062500 +vt 0.000000 0.000000 +vt 0.062500 0.000000 +vt 0.000000 0.812500 +vt 0.062500 0.687500 +vt 0.062500 0.812500 +vt 0.937500 -0.000000 +vt 1.000000 0.062500 +vt 0.937500 0.062500 +vt 0.937500 0.687500 +vt 1.000000 0.812500 +vt 0.937500 0.812500 +vt 0.812500 0.062500 +vt 0.687500 0.000000 +vt 0.812500 0.000000 +vt 0.875000 0.187500 +vt 0.125000 0.312500 +vt 0.125000 0.187500 +vt 0.875000 0.312500 +vt 0.125000 0.187500 +vt 0.875000 0.187500 +vt 0.875000 0.000000 +vt 0.125000 0.062500 +vt 0.125000 0.000000 +vt 0.875000 -0.000000 +vt 0.125000 0.062500 +vt 0.125000 -0.000000 +vt 0.062500 0.312500 +vt 0.000000 0.187500 +vt 0.062500 0.187500 +vt 0.062500 0.062500 +vt -0.000000 -0.000000 +vt 0.062500 -0.000000 +vt 0.937500 0.000000 +vt 1.000000 0.062500 +vt 0.937500 0.062500 +vt 1.000000 0.187500 +vt 0.937500 0.312500 +vt 0.937500 0.187500 +vt 0.812500 0.062500 +vt 0.687500 -0.000000 +vt 0.812500 -0.000000 +vt 0.062500 0.062500 +vt 0.000000 0.000000 +vt 0.062500 0.000000 +vt 0.000000 0.312500 +vt 0.062500 0.187500 +vt 0.062500 0.312500 +vt 0.937500 -0.000000 +vt 1.000000 0.062500 +vt 0.937500 0.062500 +vt 0.937500 0.187500 +vt 1.000000 0.312500 +vt 0.937500 0.312500 +vt 0.312500 0.062500 +vt 0.187500 0.000000 +vt 0.312500 0.000000 +vt 0.125000 1.000000 +vt 0.875000 1.000000 +vt 0.062500 0.000000 +vt 0.937500 0.000000 +vt 0.125000 0.125000 +vt 1.000000 0.125000 +vt 1.000000 0.125000 +vt 0.937500 0.125000 +vt 0.937500 0.125000 +vt 1.000000 0.125000 +vt 1.000000 0.125000 +vt 0.125000 0.125000 +vt 0.875000 0.812500 +vt 0.125000 0.812500 +vt 0.875000 0.062500 +vt 0.875000 0.062500 +vt 0.000000 0.812500 +vt -0.000000 0.062500 +vt 1.000000 0.000000 +vt 1.000000 0.812500 +vt 0.187500 0.062500 +vt 0.000000 0.062500 +vt 0.000000 0.687500 +vt 1.000000 -0.000000 +vt 1.000000 0.687500 +vt 0.687500 0.062500 +vt 0.875000 0.312500 +vt 0.125000 0.312500 +vt 0.875000 0.062500 +vt 0.875000 0.062500 +vt 0.000000 0.312500 +vt -0.000000 0.062500 +vt 1.000000 0.000000 +vt 1.000000 0.312500 +vt 0.687500 0.062500 +vt 0.000000 0.062500 +vt 0.000000 0.187500 +vt 1.000000 -0.000000 +vt 1.000000 0.187500 +vt 0.187500 0.062500 +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.0000 0.0000 -1.0000 +s off +f 3/1/1 15/2/1 16/3/1 +f 8/4/2 11/5/2 7/6/2 +f 10/7/2 5/8/2 6/9/2 +f 2/10/1 14/11/1 1/12/1 +f 11/13/3 16/14/3 7/15/3 +f 10/16/4 13/17/4 9/18/4 +f 12/19/4 3/20/4 11/21/4 +f 9/22/3 2/23/3 5/24/3 +f 8/25/5 4/26/5 12/27/5 +f 7/28/6 15/29/6 8/30/6 +f 5/31/6 1/32/6 6/33/6 +f 6/34/5 14/35/5 10/36/5 +f 19/37/2 18/38/2 17/39/2 +f 23/40/1 21/41/1 22/42/1 +f 20/43/5 23/44/5 18/45/5 +f 17/46/3 21/47/3 19/48/3 +f 28/49/1 31/50/1 27/51/1 +f 27/52/3 29/53/3 25/54/3 +f 26/55/5 32/56/5 28/57/5 +f 29/58/2 26/59/2 25/60/2 +f 31/61/6 30/62/6 29/63/6 +f 36/64/5 38/65/5 34/66/5 +f 38/67/2 33/68/2 34/69/2 +f 33/70/3 39/71/3 35/72/3 +f 35/73/1 40/74/1 36/75/1 +f 40/76/4 37/77/4 38/78/4 +f 43/79/2 42/80/2 41/81/2 +f 47/82/1 45/83/1 46/84/1 +f 44/85/5 47/86/5 42/87/5 +f 41/88/3 45/89/3 43/90/3 +f 52/91/1 55/92/1 51/93/1 +f 51/94/3 53/95/3 49/96/3 +f 50/97/5 56/98/5 52/99/5 +f 53/100/2 50/101/2 49/102/2 +f 55/103/6 54/104/6 53/105/6 +f 60/106/5 62/107/5 58/108/5 +f 62/109/2 57/110/2 58/111/2 +f 57/112/3 63/113/3 59/114/3 +f 59/115/1 64/116/1 60/117/1 +f 64/118/4 61/119/4 62/120/4 +f 3/1/1 4/121/1 15/2/1 +f 8/4/2 12/122/2 11/5/2 +f 10/7/2 9/123/2 5/8/2 +f 2/10/1 13/124/1 14/11/1 +f 11/13/3 3/125/3 16/14/3 +f 10/16/4 14/126/4 13/17/4 +f 12/19/4 4/127/4 3/20/4 +f 9/22/3 13/128/3 2/23/3 +f 8/25/5 15/129/5 4/26/5 +f 7/28/6 16/130/6 15/29/6 +f 5/31/6 2/131/6 1/32/6 +f 6/34/5 1/132/5 14/35/5 +f 19/37/2 20/133/2 18/38/2 +f 23/40/1 24/134/1 21/41/1 +f 20/43/5 24/135/5 23/44/5 +f 17/46/3 22/136/3 21/47/3 +f 28/49/1 32/137/1 31/50/1 +f 27/52/3 31/138/3 29/53/3 +f 26/55/5 30/139/5 32/56/5 +f 29/58/2 30/140/2 26/59/2 +f 31/61/6 32/141/6 30/62/6 +f 36/64/5 40/142/5 38/65/5 +f 38/67/2 37/143/2 33/68/2 +f 33/70/3 37/144/3 39/71/3 +f 35/73/1 39/145/1 40/74/1 +f 40/76/4 39/146/4 37/77/4 +f 43/79/2 44/147/2 42/80/2 +f 47/82/1 48/148/1 45/83/1 +f 44/85/5 48/149/5 47/86/5 +f 41/88/3 46/150/3 45/89/3 +f 52/91/1 56/151/1 55/92/1 +f 51/94/3 55/152/3 53/95/3 +f 50/97/5 54/153/5 56/98/5 +f 53/100/2 54/154/2 50/101/2 +f 55/103/6 56/155/6 54/104/6 +f 60/106/5 64/156/5 62/107/5 +f 62/109/2 61/157/2 57/110/2 +f 57/112/3 61/158/3 63/113/3 +f 59/115/1 63/159/1 64/116/1 +f 64/118/4 63/160/4 61/119/4 diff --git a/src/main/resources/assets/hbm/models/blocks/rail_narrow_bend.obj b/src/main/resources/assets/hbm/models/blocks/rail_narrow_bend.obj new file mode 100644 index 000000000..426e32d48 --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/rail_narrow_bend.obj @@ -0,0 +1,681 @@ +# Blender v2.79 (sub 0) OBJ File: 'rail_narrow_bend.blend' +# www.blender.org +o Plane +v 0.500000 0.125000 0.375000 +v 0.500000 0.125000 -0.375000 +v 0.500000 0.000000 0.375000 +v 0.500000 0.000000 -0.437500 +v -0.463258 0.125000 -0.342627 +v 0.500000 0.000000 0.437500 +v -0.292554 0.125000 0.515560 +v 0.500000 0.000000 -0.375000 +v -0.451065 0.000000 -0.281328 +v 0.500000 0.125000 0.437500 +v 0.500000 0.125000 -0.437500 +v -0.292554 0.000000 0.515560 +v -3.325402 0.062500 1.279721 +v -3.404702 0.062500 1.376347 +v -3.325402 0.000000 1.279721 +v -3.404702 0.000000 1.376347 +v -3.057147 0.000000 2.669533 +v -2.998222 0.000000 2.559293 +v -3.057147 0.062500 2.669533 +v -2.998222 0.062500 2.559293 +v -0.601330 0.062500 0.654096 +v -0.720948 0.062500 0.690382 +v -0.601330 0.000000 0.654096 +v -0.720948 0.000000 0.690382 +v -0.052285 0.000000 -0.469798 +v 0.072113 0.000000 -0.482049 +v -0.052285 0.062500 -0.469798 +v 0.072113 0.062500 -0.482049 +v -0.891615 0.062500 -0.302844 +v -1.011232 0.062500 -0.266559 +v -0.891615 0.000000 -0.302844 +v -1.011232 0.000000 -0.266559 +v 0.045732 0.000000 0.525387 +v 0.170130 0.000000 0.513135 +v 0.045732 0.062500 0.525387 +v 0.170130 0.062500 0.513135 +v -0.463258 0.000000 -0.342627 +v -0.304748 0.000000 0.454261 +v -0.451065 0.125000 -0.281328 +v -0.304748 0.125000 0.454261 +v -3.605381 0.125000 1.756872 +v -2.877845 0.125000 2.242996 +v -3.553414 0.000000 1.791595 +v -2.877845 0.000000 2.242996 +v -3.605381 0.000000 1.756872 +v -2.929812 0.000000 2.208273 +v -3.553414 0.125000 1.791595 +v -2.929812 0.125000 2.208273 +v -2.243128 0.125000 0.394619 +v -1.757004 0.125000 1.122155 +v -2.208405 0.000000 0.446586 +v -1.757004 0.000000 1.122155 +v -2.243128 0.000000 0.394619 +v -1.791727 0.000000 1.070188 +v -2.208405 0.125000 0.446586 +v -1.791727 0.125000 1.070188 +v -4.342627 0.125000 3.536741 +v -3.484440 0.125000 3.707446 +v -4.281328 0.000000 3.548935 +v -3.484440 0.000000 3.707446 +v -4.342627 0.000000 3.536741 +v -3.545739 0.000000 3.695252 +v -4.281328 0.125000 3.548935 +v -3.545739 0.125000 3.695252 +v 0.500000 0.000000 4.500000 +v -3.625000 0.125000 4.500000 +v -4.375000 0.125000 4.500000 +v -3.625000 0.000000 4.500000 +v -4.437500 0.000000 4.500000 +v -3.562500 0.000000 4.500000 +v -4.375000 0.000000 4.500000 +v -3.562500 0.125000 4.500000 +v -4.437500 0.125000 4.500000 +v -2.416816 0.125000 1.583184 +v -2.947145 0.125000 1.052855 +v -2.416816 0.000000 1.583184 +v -2.991340 0.000000 1.008660 +v -2.372621 0.000000 1.627379 +v -2.947145 0.000000 1.052855 +v -2.372621 0.125000 1.627379 +v -2.991340 0.125000 1.008660 +v -3.311003 0.125000 2.921431 +v -4.003912 0.125000 2.634418 +v -3.311003 0.000000 2.921431 +v -4.061655 0.000000 2.610501 +v -3.253261 0.000000 2.945349 +v -4.003912 0.000000 2.634418 +v -3.253261 0.125000 2.945349 +v -4.061655 0.125000 2.610501 +v -1.078569 0.125000 0.688997 +v -1.365582 0.125000 -0.003912 +v -1.078569 0.000000 0.688997 +v -1.389499 0.000000 -0.061655 +v -1.054651 0.000000 0.746740 +v -1.365582 0.000000 -0.003912 +v -1.054651 0.125000 0.746740 +v -1.389499 0.125000 -0.061655 +v -3.880144 0.062500 2.087896 +v -3.939068 0.062500 2.198136 +v -3.880144 0.000000 2.087896 +v -3.939068 0.000000 2.198136 +v -2.631691 0.000000 2.010740 +v -2.552392 0.000000 1.914114 +v -2.631691 0.062500 2.010740 +v -2.552392 0.062500 1.914114 +v -4.266559 0.062500 2.988768 +v -4.302845 0.062500 3.108386 +v -4.266559 0.000000 2.988768 +v -4.302845 0.000000 3.108386 +v -3.486865 0.000000 4.170131 +v -3.474612 0.000000 4.045732 +v -3.486865 0.062500 4.170131 +v -3.474612 0.062500 4.045732 +v -1.989260 0.062500 1.368309 +v -2.085886 0.062500 1.447608 +v -1.989260 0.000000 1.368309 +v -2.085886 0.000000 1.447608 +v -1.912104 0.000000 0.119856 +v -1.801864 0.000000 0.060932 +v -1.912104 0.062500 0.119856 +v -1.801864 0.062500 0.060932 +v -2.623653 0.062500 0.595299 +v -2.720279 0.062500 0.674598 +v -2.623653 0.000000 0.595299 +v -2.720279 0.000000 0.674598 +v -1.440707 0.000000 1.001778 +v -1.330467 0.000000 0.942852 +v -1.440707 0.062500 1.001778 +v -1.330467 0.062500 0.942852 +v -4.469797 0.062500 3.947715 +v -4.482049 0.062500 4.072114 +v -4.469797 0.000000 3.947715 +v -4.482049 0.000000 4.072114 +v -3.345904 0.000000 3.398670 +v -3.309618 0.000000 3.279053 +v -3.345904 0.062500 3.398670 +v -3.309618 0.062500 3.279053 +vt 0.615249 0.562500 +vt 0.726069 0.437500 +vt 0.615249 0.437500 +vt 0.678003 0.453027 +vt 0.764947 0.316851 +vt 0.688434 0.459997 +vt 0.613503 0.437500 +vt 0.722644 0.562500 +vt 0.613503 0.562500 +vt 0.828202 0.562500 +vt 0.828202 0.437500 +vt 0.812063 0.161529 +vt 0.753357 0.312051 +vt 0.799759 0.159082 +vt 0.823229 0.437500 +vt 0.823229 0.562500 +vt 0.812063 0.161529 +vt 0.753357 0.312051 +vt 0.764947 0.316851 +vt 0.678003 0.453027 +vt 0.688434 0.459997 +vt 1.000000 0.437500 +vt 0.993671 0.562500 +vt 0.993671 0.437500 +vt 0.576594 0.576594 +vt 0.585465 0.585465 +vt 0.459997 0.688434 +vt 0.917722 0.437500 +vt 0.911392 0.562500 +vt 0.911392 0.437500 +vt 0.777932 0.500000 +vt 0.762144 0.437500 +vt 0.777932 0.437500 +vt 0.283574 0.500000 +vt 0.325146 0.437500 +vt 0.325146 0.500000 +vt 0.342277 0.500000 +vt 0.342277 0.437500 +vt 0.626982 0.783754 +vt 0.519041 0.612678 +vt 0.499646 0.628595 +vt 0.829653 0.500000 +vt 0.762144 0.500000 +vt 0.797787 0.091181 +vt 1.000000 0.085886 +vt 0.800246 0.066212 +vt 0.845441 0.437500 +vt 0.829653 0.437500 +vt 0.964030 0.279326 +vt 0.764669 0.245069 +vt 0.771952 0.221060 +vt 0.947343 0.500000 +vt 0.961181 0.437500 +vt 0.947343 0.437500 +vt 0.856491 0.437500 +vt 0.856491 0.500000 +vt 1.000000 0.085886 +vt 0.797787 0.091181 +vt 0.800246 0.066212 +vt 0.956746 0.303335 +vt 0.771952 0.221060 +vt 0.764669 0.245069 +vt 0.870329 0.500000 +vt 0.870329 0.437500 +vt 0.312050 0.753357 +vt 0.316851 0.764947 +vt 0.159082 0.799759 +vt 0.161529 0.812063 +vt 0.171798 0.437501 +vt 0.273931 0.562500 +vt 0.273931 0.437500 +vt 0.161529 0.812063 +vt 0.312050 0.753357 +vt 0.316851 0.764947 +vt 0.176771 0.562500 +vt 0.277356 0.437500 +vt 0.277356 0.562500 +vt 0.107153 0.562500 +vt 0.000000 0.437501 +vt 0.000000 0.562500 +vt 0.000000 0.991058 +vt 0.190898 0.959711 +vt 0.193346 0.972015 +vt 0.006329 0.437501 +vt 0.112125 0.562500 +vt 0.006329 0.562500 +vt 0.000000 0.991058 +vt 0.190898 0.959711 +vt 0.000000 0.978513 +vt 0.171798 0.562500 +vt 0.082278 0.437501 +vt 0.082278 0.562500 +vt 0.000000 0.815428 +vt 0.000000 0.827972 +vt 0.088607 0.437501 +vt 0.088607 0.562500 +vt 0.000000 0.827972 +vt 0.000000 0.815428 +vt 0.892847 0.562499 +vt 1.000000 0.562499 +vt 0.991058 0.000000 +vt 0.959711 0.190898 +vt 0.978513 0.000000 +vt 0.887875 0.562499 +vt 0.959711 0.190898 +vt 0.991058 0.000000 +vt 0.978513 0.000000 +vt 0.917722 0.562500 +vt 0.827972 0.000000 +vt 0.815427 0.000000 +vt 0.827972 0.000000 +vt 0.799759 0.159082 +vt 0.500000 0.562500 +vt 0.585465 0.585465 +vt 0.500000 0.437500 +vt 0.386497 0.437500 +vt 0.500000 0.437500 +vt 0.453027 0.678003 +vt 0.459997 0.688434 +vt 0.384751 0.437500 +vt 0.500000 0.562500 +vt 0.193346 0.972015 +vt 0.374461 0.904028 +vt 0.550602 0.824035 +vt 0.543633 0.813604 +vt 0.691913 0.691913 +vt 0.824035 0.550602 +vt 0.813604 0.543633 +vt 0.915618 0.379261 +vt 0.904028 0.374461 +vt 0.972015 0.193346 +vt 0.767173 0.562499 +vt 0.887875 0.437500 +vt 0.915618 0.379261 +vt 0.904028 0.374461 +vt 0.892847 0.437500 +vt 0.770598 0.562499 +vt 0.636203 0.437500 +vt 0.636203 0.562500 +vt 0.813604 0.543633 +vt 0.824035 0.550602 +vt 0.637950 0.437500 +vt 0.637950 0.562499 +vt 0.500000 0.562500 +vt 0.691913 0.691913 +vt 0.500000 0.562500 +vt 0.363797 0.437500 +vt 0.363797 0.562500 +vt 0.550602 0.824035 +vt 0.543633 0.813604 +vt 0.362050 0.437500 +vt 0.362050 0.562500 +vt 0.232827 0.562500 +vt 0.374461 0.904028 +vt 0.229402 0.562500 +vt 0.112125 0.437501 +vt 0.107153 0.437501 +vt 0.300705 0.437500 +vt 0.283574 0.437500 +vt 0.484159 0.879185 +vt 0.367412 0.713993 +vt 0.389540 0.702165 +vt 0.420906 0.500000 +vt 0.438722 0.437500 +vt 0.420906 0.437500 +vt 0.434944 0.437500 +vt 0.434944 0.500000 +vt 0.646376 0.767837 +vt 0.499646 0.628595 +vt 0.519041 0.612678 +vt 0.367412 0.713993 +vt 0.484159 0.879185 +vt 0.389540 0.702165 +vt 0.452759 0.500000 +vt 0.452759 0.437500 +vt 0.565056 0.500000 +vt 0.547241 0.437500 +vt 0.565056 0.437500 +vt 0.038819 0.500001 +vt 0.129671 0.437501 +vt 0.129671 0.500001 +vt 0.143509 0.500001 +vt 0.143509 0.437501 +vt 0.221060 0.771952 +vt 0.303335 0.956746 +vt 0.245069 0.764669 +vt 0.561278 0.500000 +vt 0.547241 0.500000 +vt 0.879185 0.484159 +vt 0.713993 0.367412 +vt 0.702165 0.389540 +vt 0.579094 0.437500 +vt 0.561278 0.437500 +vt 0.628595 0.499646 +vt 0.767837 0.646376 +vt 0.612678 0.519041 +vt 0.699295 0.500000 +vt 0.716426 0.437500 +vt 0.699295 0.437500 +vt 0.657723 0.437500 +vt 0.657723 0.500000 +vt 0.713993 0.367412 +vt 0.879185 0.484159 +vt 0.702165 0.389540 +vt 0.767837 0.646376 +vt 0.628595 0.499646 +vt 0.612678 0.519041 +vt 0.674854 0.500000 +vt 0.674854 0.437500 +vt 0.052657 0.437501 +vt 0.038819 0.437501 +vt 0.110855 0.997541 +vt 0.066211 0.800246 +vt 0.091181 0.797787 +vt 0.154559 0.500000 +vt 0.170347 0.437500 +vt 0.154559 0.437500 +vt 0.222068 0.437501 +vt 0.222068 0.500000 +vt 0.303335 0.956746 +vt 0.221060 0.771952 +vt 0.245069 0.764669 +vt 0.085886 1.000000 +vt 0.091181 0.797787 +vt 0.066211 0.800246 +vt 0.237856 0.500000 +vt 0.237856 0.437501 +vt 0.726069 0.562500 +vt 0.722644 0.437500 +vt 0.453027 0.678003 +vt 0.646376 0.767837 +vt 0.997541 0.110855 +vt 0.845441 0.500000 +vt 0.956746 0.303335 +vt 0.961181 0.500000 +vt 0.997541 0.110855 +vt 0.964030 0.279326 +vt 0.159082 0.799759 +vt 0.176771 0.437501 +vt 0.000000 0.978513 +vt 0.972015 0.193346 +vt 0.815427 0.000000 +vt 0.576594 0.576594 +vt 0.386497 0.562500 +vt 0.384751 0.562500 +vt 0.379261 0.915618 +vt 0.700784 0.700784 +vt 0.767173 0.437500 +vt 0.770598 0.437500 +vt 0.500000 0.437500 +vt 0.700784 0.700784 +vt 0.500000 0.437500 +vt 0.232827 0.437500 +vt 0.379261 0.915618 +vt 0.229402 0.437500 +vt 0.300705 0.500000 +vt 0.462031 0.891012 +vt 0.438722 0.500000 +vt 0.626982 0.783754 +vt 0.462031 0.891012 +vt 0.279326 0.964030 +vt 0.891012 0.462031 +vt 0.579094 0.500000 +vt 0.783754 0.626981 +vt 0.716426 0.500000 +vt 0.891012 0.462031 +vt 0.783754 0.626981 +vt 0.052657 0.500000 +vt 0.085886 1.000000 +vt 0.170347 0.500000 +vt 0.279326 0.964030 +vt 0.110855 0.997541 +vn -0.4714 0.0000 -0.8819 +vn 0.0000 1.0000 0.0000 +vn 0.4714 0.0000 0.8819 +vn -0.2903 0.0000 -0.9569 +vn 0.2903 0.0000 0.9569 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -0.4714 0.0000 0.8819 +vn 0.8819 0.0000 0.4714 +vn -0.9569 0.0000 0.2903 +vn -0.0980 0.0000 -0.9952 +vn -0.9952 0.0000 0.0980 +vn 0.9952 0.0000 -0.0980 +vn 0.0980 0.0000 0.9952 +vn -0.9569 0.0000 -0.2903 +vn 0.9569 0.0000 0.2903 +vn -0.9952 0.0000 -0.0980 +vn 0.9952 0.0000 0.0980 +vn 0.0000 0.0000 1.0000 +vn 0.6344 0.0000 0.7730 +vn -0.6344 0.0000 -0.7730 +vn 0.7730 0.0000 0.6344 +vn -0.7730 0.0000 -0.6344 +vn -0.8819 0.0000 -0.4714 +vn 0.9569 0.0000 -0.2903 +vn -0.6344 0.0000 0.7730 +vn 0.6344 0.0000 -0.7730 +vn 0.4714 0.0000 -0.8819 +vn -0.0980 0.0000 0.9952 +vn -0.7730 0.0000 0.6344 +vn -0.8819 0.0000 0.4714 +vn 0.8819 0.0000 -0.4714 +vn 0.7730 0.0000 -0.6344 +vn -0.2903 0.0000 0.9569 +vn 0.2903 0.0000 -0.9569 +vn 0.0980 0.0000 -0.9952 +s off +f 56/1/1 92/2/1 54/3/1 +f 50/4/2 90/5/2 56/6/2 +f 52/7/3 96/8/3 50/9/3 +f 92/2/4 40/10/4 38/11/4 +f 40/12/2 96/13/2 7/14/2 +f 96/8/5 12/15/5 7/16/5 +f 38/17/6 94/18/6 92/19/6 +f 92/19/6 52/20/6 54/21/6 +f 4/22/7 2/23/7 8/24/7 +f 54/21/6 78/25/6 76/26/6 +f 78/25/6 46/27/6 76/26/6 +f 3/28/7 10/29/7 6/30/7 +f 21/31/5 24/32/5 23/33/5 +f 99/34/8 17/35/8 19/36/8 +f 20/37/9 17/35/9 18/38/9 +f 16/39/6 103/40/6 102/41/6 +f 30/42/10 24/32/10 22/43/10 +f 33/44/6 26/45/6 34/46/6 +f 30/42/4 31/47/4 32/48/4 +f 29/49/2 22/50/2 21/51/2 +f 27/52/11 26/53/11 25/54/11 +f 27/52/12 33/55/12 35/56/12 +f 28/57/2 35/58/2 36/59/2 +f 32/60/6 23/61/6 24/62/6 +f 26/53/13 36/63/13 34/64/13 +f 36/63/14 33/55/14 34/64/14 +f 46/27/6 86/65/6 84/66/6 +f 84/66/6 60/67/6 62/68/6 +f 62/69/15 82/70/15 84/71/15 +f 64/72/2 88/73/2 82/74/2 +f 58/75/16 86/76/16 88/77/16 +f 57/78/17 69/79/17 73/80/17 +f 73/81/2 63/82/2 57/83/2 +f 71/84/18 63/85/18 67/86/18 +f 69/87/6 59/88/6 71/89/6 +f 64/90/17 68/91/17 66/92/17 +f 72/93/2 64/72/2 66/94/2 +f 70/95/18 58/75/18 72/96/18 +f 68/97/6 60/67/6 70/98/6 +f 4/22/11 5/99/11 11/100/11 +f 11/101/2 39/102/2 2/103/2 +f 67/86/19 69/79/19 71/84/19 +f 72/96/19 68/91/19 70/95/19 +f 39/104/14 8/24/14 2/23/14 +f 9/105/6 4/106/6 8/107/6 +f 38/11/11 1/108/11 3/28/11 +f 1/109/2 7/14/2 10/110/2 +f 7/16/14 6/30/14 10/29/14 +f 3/111/6 12/112/6 38/17/6 +f 80/113/20 52/7/20 50/9/20 +f 74/114/2 50/4/2 56/6/2 +f 76/115/21 56/1/21 54/3/21 +f 80/113/22 44/116/22 78/117/22 +f 42/118/2 74/114/2 48/119/2 +f 46/120/23 74/121/23 76/115/23 +f 44/116/9 88/77/9 86/76/9 +f 82/74/2 42/118/2 48/119/2 +f 82/70/24 46/120/24 84/71/24 +f 61/122/6 87/123/6 59/88/6 +f 87/123/6 45/124/6 43/125/6 +f 45/124/6 79/126/6 43/125/6 +f 79/126/6 53/127/6 51/128/6 +f 51/128/6 93/129/6 95/130/6 +f 95/130/6 37/131/6 9/105/6 +f 91/132/5 9/133/5 39/104/5 +f 39/102/2 97/134/2 91/135/2 +f 37/136/4 97/137/4 5/99/4 +f 51/138/3 91/132/3 55/139/3 +f 55/140/2 97/134/2 49/141/2 +f 97/137/1 53/142/1 49/143/1 +f 75/144/20 51/138/20 55/139/20 +f 49/141/2 75/145/2 55/140/2 +f 53/142/21 81/146/21 49/143/21 +f 43/147/22 75/144/22 47/148/22 +f 75/145/2 41/149/2 47/150/2 +f 81/146/23 45/151/23 41/152/23 +f 83/153/9 43/147/9 47/148/9 +f 41/149/2 83/154/2 47/150/2 +f 45/151/24 89/155/24 41/152/24 +f 59/156/16 83/153/16 63/85/16 +f 83/154/2 57/83/2 63/82/2 +f 89/155/15 61/157/15 57/78/15 +f 31/47/25 21/31/25 23/33/25 +f 99/34/24 100/158/24 101/159/24 +f 98/160/2 19/161/2 20/162/2 +f 14/163/23 15/164/23 16/165/23 +f 14/163/26 102/166/26 104/167/26 +f 13/168/2 104/169/2 105/170/2 +f 17/171/6 100/172/6 18/173/6 +f 15/164/27 105/174/27 103/175/27 +f 105/174/22 102/166/22 103/175/22 +f 100/158/28 20/37/28 18/38/28 +f 114/176/20 117/177/20 116/178/20 +f 131/179/29 110/180/29 112/181/29 +f 113/182/18 110/180/18 111/183/18 +f 134/184/6 108/185/6 135/186/6 +f 123/187/30 117/177/30 115/188/30 +f 118/189/6 127/190/6 126/191/6 +f 123/187/21 124/192/21 125/193/21 +f 114/194/2 123/195/2 115/196/2 +f 120/197/1 119/198/1 118/199/1 +f 120/197/31 126/200/31 128/201/31 +f 129/202/2 120/203/2 128/204/2 +f 125/205/6 116/206/6 117/207/6 +f 119/198/32 129/208/32 127/209/32 +f 129/208/3 126/200/3 127/209/3 +f 124/192/33 114/176/33 116/178/33 +f 131/179/17 132/210/17 133/211/17 +f 130/212/2 112/213/2 113/214/2 +f 107/215/15 108/216/15 109/217/15 +f 107/215/34 134/218/34 136/219/34 +f 106/220/2 136/221/2 137/222/2 +f 133/223/6 111/224/6 110/225/6 +f 108/216/35 137/226/35 135/227/35 +f 137/226/16 134/218/16 135/227/16 +f 132/210/36 113/182/36 111/183/36 +f 56/1/1 90/228/1 92/2/1 +f 50/4/2 96/13/2 90/5/2 +f 52/7/3 94/229/3 96/8/3 +f 92/2/4 90/228/4 40/10/4 +f 40/12/2 90/5/2 96/13/2 +f 96/8/5 94/229/5 12/15/5 +f 38/17/6 12/112/6 94/18/6 +f 92/19/6 94/18/6 52/20/6 +f 4/22/7 11/100/7 2/23/7 +f 54/21/6 52/20/6 78/25/6 +f 78/25/6 44/230/6 46/27/6 +f 3/28/7 1/108/7 10/29/7 +f 21/31/5 22/43/5 24/32/5 +f 99/34/8 101/159/8 17/35/8 +f 20/37/9 19/36/9 17/35/9 +f 16/39/6 15/231/6 103/40/6 +f 30/42/10 32/48/10 24/32/10 +f 33/44/6 25/232/6 26/45/6 +f 30/42/4 29/233/4 31/47/4 +f 29/49/2 30/234/2 22/50/2 +f 27/52/11 28/235/11 26/53/11 +f 27/52/12 25/54/12 33/55/12 +f 28/57/2 27/236/2 35/58/2 +f 32/60/6 31/237/6 23/61/6 +f 26/53/13 28/235/13 36/63/13 +f 36/63/14 35/56/14 33/55/14 +f 46/27/6 44/230/6 86/65/6 +f 84/66/6 86/65/6 60/67/6 +f 62/69/15 64/90/15 82/70/15 +f 64/72/2 58/238/2 88/73/2 +f 58/75/16 60/239/16 86/76/16 +f 57/78/17 61/157/17 69/79/17 +f 73/81/2 67/240/2 63/82/2 +f 71/84/18 59/156/18 63/85/18 +f 69/87/6 61/122/6 59/88/6 +f 64/90/17 62/69/17 68/91/17 +f 72/93/2 58/238/2 64/72/2 +f 70/95/18 60/239/18 58/75/18 +f 68/97/6 62/68/6 60/67/6 +f 4/22/11 37/136/11 5/99/11 +f 11/101/2 5/241/2 39/102/2 +f 67/86/19 73/80/19 69/79/19 +f 72/96/19 66/92/19 68/91/19 +f 39/104/14 9/133/14 8/24/14 +f 9/105/6 37/131/6 4/106/6 +f 38/11/11 40/10/11 1/108/11 +f 1/109/2 40/12/2 7/14/2 +f 7/16/14 12/15/14 6/30/14 +f 3/111/6 6/242/6 12/112/6 +f 80/113/20 78/117/20 52/7/20 +f 74/114/2 80/243/2 50/4/2 +f 76/115/21 74/121/21 56/1/21 +f 80/113/22 42/244/22 44/116/22 +f 42/118/2 80/243/2 74/114/2 +f 46/120/23 48/245/23 74/121/23 +f 44/116/9 42/244/9 88/77/9 +f 82/74/2 88/73/2 42/118/2 +f 82/70/24 48/245/24 46/120/24 +f 61/122/6 85/246/6 87/123/6 +f 87/123/6 85/246/6 45/124/6 +f 45/124/6 77/247/6 79/126/6 +f 79/126/6 77/247/6 53/127/6 +f 51/128/6 53/127/6 93/129/6 +f 95/130/6 93/129/6 37/131/6 +f 91/132/5 95/248/5 9/133/5 +f 39/102/2 5/241/2 97/134/2 +f 37/136/4 93/249/4 97/137/4 +f 51/138/3 95/248/3 91/132/3 +f 55/140/2 91/135/2 97/134/2 +f 97/137/1 93/249/1 53/142/1 +f 75/144/20 79/250/20 51/138/20 +f 49/141/2 81/251/2 75/145/2 +f 53/142/21 77/252/21 81/146/21 +f 43/147/22 79/250/22 75/144/22 +f 75/145/2 81/251/2 41/149/2 +f 81/146/23 77/252/23 45/151/23 +f 83/153/9 87/253/9 43/147/9 +f 41/149/2 89/254/2 83/154/2 +f 45/151/24 85/255/24 89/155/24 +f 59/156/16 87/253/16 83/153/16 +f 83/154/2 89/254/2 57/83/2 +f 89/155/15 85/255/15 61/157/15 +f 31/47/25 29/233/25 21/31/25 +f 99/34/24 98/256/24 100/158/24 +f 98/160/2 99/257/2 19/161/2 +f 14/163/23 13/258/23 15/164/23 +f 14/163/26 16/165/26 102/166/26 +f 13/168/2 14/259/2 104/169/2 +f 17/171/6 101/260/6 100/172/6 +f 15/164/27 13/258/27 105/174/27 +f 105/174/22 104/167/22 102/166/22 +f 100/158/28 98/256/28 20/37/28 +f 114/176/20 115/188/20 117/177/20 +f 131/179/29 133/211/29 110/180/29 +f 113/182/18 112/181/18 110/180/18 +f 134/184/6 109/261/6 108/185/6 +f 123/187/30 125/193/30 117/177/30 +f 118/189/6 119/262/6 127/190/6 +f 123/187/21 122/263/21 124/192/21 +f 114/194/2 122/264/2 123/195/2 +f 120/197/1 121/265/1 119/198/1 +f 120/197/31 118/199/31 126/200/31 +f 129/202/2 121/266/2 120/203/2 +f 125/205/6 124/267/6 116/206/6 +f 119/198/32 121/265/32 129/208/32 +f 129/208/3 128/201/3 126/200/3 +f 124/192/33 122/263/33 114/176/33 +f 131/179/17 130/268/17 132/210/17 +f 130/212/2 131/269/2 112/213/2 +f 107/215/15 106/270/15 108/216/15 +f 107/215/34 109/217/34 134/218/34 +f 106/220/2 107/271/2 136/221/2 +f 133/223/6 132/272/6 111/224/6 +f 108/216/35 106/270/35 137/226/35 +f 137/226/16 136/219/16 134/218/16 +f 132/210/36 130/268/36 113/182/36 diff --git a/src/main/resources/assets/hbm/models/chemplant_new_body.obj b/src/main/resources/assets/hbm/models/chemplant_new_body.obj index c2342adcd..e958c24e3 100644 --- a/src/main/resources/assets/hbm/models/chemplant_new_body.obj +++ b/src/main/resources/assets/hbm/models/chemplant_new_body.obj @@ -1,4 +1,4 @@ -# Blender v2.76 (sub 0) OBJ File: 'chemplant_new_body.blend' +# Blender v2.79 (sub 0) OBJ File: 'chemplant_new_body.blend' # www.blender.org o Cube_Cube.001 v -1.500000 0.000000 1.500000 @@ -282,715 +282,918 @@ v -0.500000 2.750000 -0.625000 v -0.516747 2.750000 -0.687500 v -0.562500 2.750000 -0.733253 vt 0.000000 0.317073 -vt 0.000000 0.292683 vt 0.292683 0.292683 -vt -0.000000 0.000000 +vt 0.292683 0.317073 +vt 0.000000 0.317073 +vt 0.292683 0.292683 +vt 0.292683 0.317073 +vt -0.000000 0.317073 +vt 0.292683 0.292683 +vt 0.292683 0.317073 +vt 0.000000 0.317073 +vt 0.292683 0.292683 +vt 0.292683 0.317073 +vt 0.000000 0.292683 vt 0.292683 -0.000000 vt 0.024390 0.353659 -vt 0.292683 0.317073 vt 0.268293 0.353659 +vt 0.268293 0.353659 +vt 0.024390 0.353659 +vt 0.268293 0.353659 +vt 0.024390 0.353659 +vt 0.024390 0.353659 vt 0.292683 0.207317 -vt 0.390244 0.207317 vt 0.390244 0.256098 +vt 0.292683 0.256098 vt 0.390244 0.109756 -vt 0.378049 0.121951 vt 0.304878 0.121951 +vt 0.292683 0.109756 vt 0.365854 0.310976 +vt 0.292683 0.256098 +vt 0.390244 0.256098 +vt 0.390244 0.207317 +vt 0.292683 0.256098 +vt 0.292683 0.207317 +vt 0.390244 0.256098 vt 0.317073 0.310976 vt 0.292683 0.256098 -vt 0.323171 0.140244 +vt 0.390244 0.207317 +vt 0.292683 0.207317 +vt 0.292683 0.207317 +vt 0.390244 0.207317 +vt 0.365854 0.310976 +vt 0.317073 0.310976 vt 0.323171 0.176829 vt 0.304878 0.195122 vt 0.378049 0.195122 -vt 0.292683 0.109756 +vt 0.378049 0.121951 vt 0.359756 0.140244 vt 0.359756 0.176829 +vt 0.323171 0.140244 +vt 0.292683 0.256098 +vt 0.390244 0.207317 +vt 0.390244 0.256098 +vt 0.304878 0.195122 +vt 0.390244 0.207317 +vt 0.292683 0.207317 +vt 0.390244 0.256098 +vt 0.317073 0.310976 +vt 0.292683 0.256098 +vt 0.390244 0.256098 +vt 0.292683 0.256098 +vt 0.365854 0.310976 +vt 0.292683 0.256098 +vt 0.390244 0.256098 +vt 0.292683 0.207317 +vt 0.390244 0.207317 +vt 0.390244 0.207317 +vt 0.292683 0.207317 +vt 0.317073 0.310976 +vt 0.365854 0.310976 +vt 0.323171 0.140244 +vt 0.304878 0.121951 +vt 0.378049 0.121951 +vt 0.292683 0.109756 +vt 0.390244 0.109756 +vt 0.378049 0.195122 +vt 0.359756 0.176829 +vt 0.359756 0.140244 +vt 0.323171 0.176829 vt 0.902439 0.262195 -vt 0.902439 0.335366 vt 0.871951 0.335366 -vt 0.841463 0.262195 -vt 0.841463 0.335366 -vt 0.810976 0.335366 vt 0.871951 0.262195 +vt 0.841463 0.262195 +vt 0.810976 0.335366 vt 0.810976 0.262195 +vt 0.841463 0.335366 vt 0.780488 0.335366 -vt 0.780488 0.365854 vt 0.780488 0.262195 +vt 0.780488 0.365854 vt 0.810976 0.365854 +vt 0.902439 0.262195 +vt 0.871951 0.335366 +vt 0.871951 0.262195 +vt 0.841463 0.262195 +vt 0.810976 0.335366 +vt 0.810976 0.262195 +vt 0.841463 0.335366 +vt 0.780488 0.335366 +vt 0.780488 0.262195 +vt 0.780488 0.365854 +vt 0.810976 0.365854 +vt 0.841463 0.335366 +vt 0.810976 0.262195 +vt 0.841463 0.262195 +vt 0.902439 0.335366 +vt 0.871951 0.262195 +vt 0.902439 0.262195 +vt 0.871951 0.335366 +vt 0.810976 0.335366 +vt 0.780488 0.262195 +vt 0.780488 0.335366 +vt 0.810976 0.365854 +vt 0.780488 0.365854 +vt 0.841463 0.335366 +vt 0.810976 0.262195 +vt 0.841463 0.262195 +vt 0.902439 0.335366 +vt 0.871951 0.262195 +vt 0.902439 0.262195 +vt 0.871951 0.335366 +vt 0.810976 0.335366 +vt 0.780488 0.262195 +vt 0.780488 0.335366 +vt 0.810976 0.365854 +vt 0.780488 0.365854 +vt 0.365854 0.359756 +vt 0.365854 0.310976 +vt 0.341463 0.335366 vt 0.365854 0.359756 vt 0.341463 0.335366 +vt 0.365854 0.310976 vt 0.341463 0.359756 vt 0.341463 0.310976 vt 0.317073 0.335366 +vt 0.341463 0.359756 +vt 0.317073 0.335366 +vt 0.341463 0.310976 vt 0.268293 0.378049 vt 0.024390 0.378049 +vt 0.024390 0.378049 +vt 0.268293 0.378049 +vt 0.268293 0.378049 +vt 0.024390 0.378049 +vt 0.268293 0.378049 vt 0.024390 0.621951 +vt 0.268293 0.621951 vt 0.292683 0.012195 -vt 0.390244 0.012195 +vt 0.390244 0.109756 +vt 0.292683 0.109756 vt 0.390244 -0.000000 +vt 0.292683 -0.000000 +vt 0.390244 0.000000 +vt 0.292683 0.012195 +vt 0.292683 -0.000000 +vt 0.390244 0.000000 +vt 0.292683 0.012195 +vt 0.292683 -0.000000 +vt 0.390244 -0.000000 +vt 0.292683 0.012195 +vt 0.292683 -0.000000 +vt 0.292683 0.012195 +vt 0.390244 0.109756 +vt 0.292683 0.109756 +vt 0.390244 -0.000000 +vt 0.292683 -0.000000 +vt 0.390244 0.000000 +vt 0.292683 0.012195 +vt 0.292683 -0.000000 +vt 0.390244 0.000000 +vt 0.292683 0.012195 +vt 0.292683 -0.000000 +vt 0.390244 -0.000000 +vt 0.292683 0.012195 +vt 0.292683 -0.000000 vt 0.487805 0.146341 -vt 0.585366 0.146341 vt 0.560976 0.182927 +vt 0.512195 0.182927 vt 0.487805 -0.000000 vt 0.390244 0.146341 +vt 0.390244 -0.000000 vt 0.585366 0.000000 vt 0.780488 -0.000000 -vt 0.780488 0.146341 vt 0.682927 0.146341 +vt 0.682927 0.000000 vt 0.707317 0.182927 -vt 0.756098 0.182927 vt 0.756098 0.231707 -vt 0.463415 0.182927 +vt 0.707317 0.231707 +vt 0.780488 0.146341 +vt 0.707317 0.182927 vt 0.414634 0.182927 +vt 0.585366 0.146341 vt 0.658537 0.182927 vt 0.609756 0.182927 -vt 0.682927 0.000000 +vt 0.292683 0.012195 +vt 0.390244 0.109756 +vt 0.292683 0.109756 +vt 0.390244 -0.000000 +vt 0.292683 -0.000000 +vt 0.390244 0.000000 +vt 0.292683 0.012195 +vt 0.292683 -0.000000 +vt 0.390244 0.000000 +vt 0.292683 0.012195 +vt 0.292683 -0.000000 +vt 0.390244 -0.000000 +vt 0.292683 0.012195 +vt 0.292683 -0.000000 vt 0.847561 0.207317 -vt 0.786585 0.243902 +vt 0.786585 0.207317 vt 0.817073 0.262195 -vt 0.853659 0.164634 -vt 0.853659 0.189024 -vt 0.835366 0.189024 -vt 0.871951 0.164634 -vt 0.871951 0.189024 -vt 0.835366 0.164634 -vt 0.817073 0.189024 -vt 0.817073 0.164634 -vt 0.798781 0.189024 -vt 0.798781 0.164634 -vt 0.780488 0.189024 -vt 1.000000 0.164634 -vt 1.000000 0.189024 -vt 0.981707 0.189024 -vt 0.981707 0.164634 -vt 0.963415 0.189024 -vt 0.963415 0.164634 -vt 0.945122 0.189024 -vt 0.890244 0.164634 -vt 0.890244 0.189024 -vt 0.908537 0.164634 -vt 0.908537 0.189024 -vt 0.926829 0.164634 -vt 0.926829 0.189024 -vt 0.945122 0.164634 -vt 0.817073 0.146341 -vt 0.835366 0.146341 -vt 0.798781 0.146341 -vt 0.981707 0.146341 -vt 1.000000 0.146341 -vt 0.963415 0.146341 -vt 0.945122 0.146341 -vt 0.926829 0.146341 -vt 0.853659 0.146341 -vt 0.871951 0.146341 -vt 0.890244 0.146341 -vt 0.908537 0.146341 -vt 0.945122 -0.000000 -vt 0.908537 0.000000 -vt 0.926829 -0.000000 -vt 0.963415 0.000000 -vt 0.981707 0.000000 -vt 1.000000 0.000000 -vt 0.890244 -0.000000 -vt 0.798781 -0.000000 -vt 0.817073 0.000000 -vt 0.835366 -0.000000 -vt 0.853659 -0.000000 -vt 0.871951 -0.000000 -vt 0.908537 0.237805 -vt 0.908537 0.213415 -vt 0.914634 0.213415 vt 0.902439 0.237805 -vt 0.890244 0.237805 vt 0.890244 0.231707 -vt 0.865854 0.189024 -vt 0.865854 0.213415 -vt 0.853659 0.213415 -vt 0.975610 0.189024 -vt 0.975610 0.213415 -vt 0.963415 0.213415 -vt 0.914634 0.189024 -vt 0.902439 0.213415 -vt 0.939024 0.189024 -vt 0.939024 0.213415 -vt 0.926829 0.213415 -vt 0.878049 0.189024 -vt 0.878049 0.213415 -vt 0.987805 0.189024 -vt 0.987805 0.213415 -vt 0.951219 0.189024 -vt 0.951219 0.213415 -vt 0.890244 0.213415 -vt 1.000000 0.213415 -vt 0.902439 0.189024 +vt 0.896341 0.225610 vt 0.890244 0.256098 -vt 0.884146 0.250000 vt 0.890244 0.243902 -vt 0.878049 0.225610 +vt 0.896341 0.250000 +vt 0.878049 0.213415 vt 0.871951 0.225610 +vt 0.865854 0.219512 vt 0.853659 0.237805 -vt 0.865854 0.237805 vt 0.865854 0.243902 +vt 0.859756 0.250000 vt 0.878049 0.262195 +vt 0.884146 0.250000 +vt 0.884146 0.225610 +vt 0.878049 0.225610 +vt 0.859756 0.225610 +vt 0.865854 0.237805 +vt 0.865854 0.256098 vt 0.878049 0.250000 vt 0.890244 0.219512 -vt 0.884146 0.225610 -vt 0.859756 0.225610 +vt 0.890244 0.237805 vt 0.865854 0.231707 -vt 0.865854 0.256098 vt 0.871951 0.250000 -vt 0.896341 0.225610 -vt 0.896341 0.250000 -vt 0.865854 0.219512 -vt 0.859756 0.250000 -vt 0.939024 0.237805 -vt 0.945122 0.213415 -vt 0.926829 0.237805 -vt 0.932927 0.213415 -vt 0.957317 0.237805 -vt 0.957317 0.213415 -vt 0.920732 0.237805 -vt 0.920732 0.213415 -vt 0.951219 0.237805 -vt 0.969512 0.237805 -vt 0.969512 0.213415 -vt 0.914634 0.237805 -vt 0.945122 0.237805 -vt 0.932927 0.237805 -vt 0.963415 0.237805 -vt 0.341463 0.524390 vt 0.298781 0.548781 +vt 0.298781 0.597561 vt 0.341463 0.621951 -vt 0.463415 0.402439 -vt 0.487805 0.402439 -vt 0.487805 0.621951 -vt 0.512195 0.402439 -vt 0.512195 0.621951 -vt 0.536585 0.402439 -vt 0.536585 0.621951 -vt 0.560976 0.402439 -vt 0.585366 0.402439 -vt 0.585366 0.621951 -vt 0.609756 0.402439 -vt 0.609756 0.621951 -vt 0.634146 0.402439 -vt 0.634146 0.621951 -vt 0.414634 0.402439 -vt 0.439024 0.402439 -vt 0.439024 0.621951 -vt 0.390244 0.402439 -vt 0.414634 0.621951 -vt 0.658537 0.402439 -vt 0.682927 0.402439 -vt 0.682927 0.621951 -vt 0.658537 0.621951 -vt 0.560976 0.621951 -vt 0.463415 0.621951 -vt 0.341463 0.426829 vt 0.298781 0.451219 -vt 0.439024 0.182927 -vt 0.487805 0.182927 -vt 0.512195 0.182927 -vt 0.536585 0.182927 -vt 0.585366 0.182927 -vt 0.634146 0.182927 -vt 0.682927 0.182927 -vt 0.390244 0.182927 -vt 0.268293 0.621951 -vt 0.707317 0.231707 +vt 0.298781 0.500000 +vt 0.341463 0.524390 +vt 0.000000 0.292683 +vt -0.000000 0.292683 +vt 0.000000 0.292683 +vt -0.000000 0.000000 +vt 0.268293 0.353659 +vt 0.390244 0.207317 +vt 0.317073 0.310976 +vt 0.390244 0.256098 +vt 0.365854 0.310976 +vt 0.292683 0.207317 +vt 0.365854 0.310976 +vt 0.317073 0.310976 +vt 0.902439 0.335366 +vt 0.902439 0.335366 +vt 0.024390 0.378049 +vt 0.390244 0.012195 +vt 0.390244 0.012195 +vt 0.390244 0.012195 +vt 0.390244 0.012195 +vt 0.390244 0.012195 +vt 0.390244 0.012195 +vt 0.390244 0.012195 +vt 0.390244 0.012195 +vt 0.756098 0.182927 +vt 0.756098 0.182927 +vt 0.463415 0.182927 +vt 0.390244 0.012195 +vt 0.390244 0.012195 +vt 0.390244 0.012195 +vt 0.390244 0.012195 vt 0.835366 0.256098 vt 0.847561 0.243902 vt 0.853659 0.225610 vt 0.835366 0.195122 +vt 0.817073 0.189024 vt 0.798781 0.195122 -vt 0.786585 0.207317 vt 0.780488 0.225610 +vt 0.786585 0.243902 vt 0.798781 0.256098 -vt 0.780488 0.164634 -vt 0.975610 0.237805 vt 0.365854 0.615854 vt 0.384146 0.597561 vt 0.390244 0.573171 vt 0.384146 0.548781 vt 0.365854 0.530488 +vt 0.341463 0.524390 vt 0.317073 0.530488 vt 0.292683 0.573171 -vt 0.298781 0.597561 vt 0.317073 0.615854 -vt 0.390244 0.621951 vt 0.365854 0.518293 vt 0.384146 0.500000 vt 0.390244 0.475610 vt 0.384146 0.451219 vt 0.365854 0.432927 +vt 0.341463 0.426829 vt 0.317073 0.432927 vt 0.292683 0.475610 -vt 0.298781 0.500000 vt 0.317073 0.518293 -vn -1.000000 0.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.707100 0.707100 0.000000 -vn -0.707100 0.707100 0.000000 -vn 0.000000 0.707100 -0.707100 -vn 0.000000 0.707100 0.707100 -vn -0.447200 0.000000 0.894400 -vn -0.447200 0.894400 0.000000 -vn 0.000000 1.000000 0.000000 -vn -0.447200 0.000000 -0.894400 -vn 0.351100 0.000000 -0.936300 -vn 0.351100 0.000000 0.936300 -vn 0.351100 0.936300 0.000000 -vn 0.351100 -0.936300 0.000000 -vn 0.447200 0.000000 0.894400 -vn 0.447200 0.894400 0.000000 -vn 0.447200 0.000000 -0.894400 -vn -0.351100 0.000000 -0.936300 -vn -0.351100 0.000000 0.936300 -vn -0.351100 0.936300 0.000000 -vn -0.351100 -0.936300 0.000000 -vn 0.965900 0.000000 -0.258800 -vn 0.707100 0.000000 -0.707100 -vn 0.965900 0.000000 0.258800 -vn 0.707100 0.000000 0.707100 -vn 0.258800 0.000000 0.965900 -vn -0.258800 0.000000 0.965900 -vn -0.707100 0.000000 0.707100 -vn -0.965900 0.000000 0.258800 -vn 0.258800 0.000000 -0.965900 -vn -0.258800 0.000000 -0.965900 -vn -0.707100 0.000000 -0.707100 -vn -0.965900 0.000000 -0.258800 -vn 0.694700 -0.694700 0.186200 -vn 0.508600 -0.694700 0.508600 -vn 0.186200 -0.694700 0.694700 -vn -0.186200 -0.694700 0.694700 -vn -0.508600 -0.694700 0.508600 -vn -0.694700 -0.694700 0.186200 -vn -0.694700 -0.694700 -0.186200 -vn 0.694700 -0.694700 -0.186200 -vn 0.508600 -0.694700 -0.508600 -vn 0.186200 -0.694700 -0.694700 -vn -0.186200 -0.694700 -0.694700 -vn -0.508600 -0.694700 -0.508600 -vn -0.962800 0.080200 -0.258000 -vn -0.704800 0.080200 -0.704800 -vn -0.962800 0.080200 0.258000 -vn -0.704800 0.080200 0.704800 -vn -0.258000 0.080200 0.962800 -vn -0.258000 0.080200 -0.962800 -vn 0.258000 0.080200 -0.962800 -vn 0.258000 0.080200 0.962800 -vn 0.704800 0.080200 0.704800 -vn 0.962800 0.080200 0.258000 -vn 0.962800 0.080200 -0.258000 -vn 0.704800 0.080200 -0.704800 +vt 0.853659 0.164634 +vt 0.835366 0.189024 +vt 0.835366 0.164634 +vt 0.871951 0.164634 +vt 0.853659 0.189024 +vt 0.817073 0.189024 +vt 0.817073 0.164634 +vt 0.798781 0.189024 +vt 0.798781 0.164634 +vt 0.780488 0.189024 +vt 0.780488 0.164634 +vt 1.000000 0.164634 +vt 0.981707 0.189024 +vt 0.981707 0.164634 +vt 0.963415 0.189024 +vt 0.963415 0.164634 +vt 0.945122 0.189024 +vt 0.945122 0.164634 +vt 0.890244 0.164634 +vt 0.871951 0.189024 +vt 0.908537 0.164634 +vt 0.890244 0.189024 +vt 0.926829 0.164634 +vt 0.908537 0.189024 +vt 0.926829 0.189024 +vt 0.817073 0.146341 +vt 0.780488 0.146341 +vt 0.981707 0.146341 +vt 0.945122 0.146341 +vt 0.926829 0.146341 +vt 0.835366 0.146341 +vt 0.853659 0.146341 +vt 0.871951 0.146341 +vt 0.890244 0.146341 +vt 0.908537 0.146341 +vt 0.945122 -0.000000 +vt 0.926829 -0.000000 +vt 0.908537 0.000000 +vt 0.963415 0.000000 +vt 0.981707 0.000000 +vt 0.963415 0.146341 +vt 1.000000 0.000000 +vt 0.890244 -0.000000 +vt 0.871951 -0.000000 +vt 0.798781 -0.000000 +vt 0.780488 -0.000000 +vt 0.817073 0.000000 +vt 0.798781 0.146341 +vt 0.853659 -0.000000 +vt 0.835366 -0.000000 +vt 0.908537 0.237805 +vt 0.914634 0.213415 +vt 0.914634 0.237805 +vt 0.865854 0.189024 +vt 0.853659 0.213415 +vt 0.853659 0.189024 +vt 0.975610 0.189024 +vt 0.963415 0.213415 +vt 0.963415 0.189024 +vt 0.902439 0.189024 +vt 0.914634 0.213415 +vt 0.902439 0.213415 +vt 0.926829 0.189024 +vt 0.939024 0.213415 +vt 0.926829 0.213415 +vt 0.878049 0.189024 +vt 0.865854 0.213415 +vt 0.987805 0.189024 +vt 0.975610 0.213415 +vt 0.914634 0.189024 +vt 0.939024 0.189024 +vt 0.951219 0.213415 +vt 0.890244 0.189024 +vt 0.878049 0.213415 +vt 1.000000 0.189024 +vt 0.987805 0.213415 +vt 0.951219 0.189024 +vt 0.890244 0.213415 +vt 0.939024 0.237805 +vt 0.945122 0.213415 +vt 0.945122 0.237805 +vt 0.926829 0.237805 +vt 0.932927 0.213415 +vt 0.932927 0.237805 +vt 0.957317 0.237805 +vt 0.963415 0.213415 +vt 0.963415 0.237805 +vt 0.902439 0.237805 +vt 0.908537 0.213415 +vt 0.920732 0.237805 +vt 0.926829 0.213415 +vt 0.951219 0.237805 +vt 0.957317 0.213415 +vt 0.969512 0.237805 +vt 0.975610 0.213415 +vt 0.975610 0.237805 +vt 0.920732 0.213415 +vt 0.951219 0.213415 +vt 0.939024 0.213415 +vt 0.969512 0.213415 +vt 0.463415 0.402439 +vt 0.487805 0.621951 +vt 0.463415 0.621951 +vt 0.487805 0.402439 +vt 0.512195 0.621951 +vt 0.512195 0.402439 +vt 0.536585 0.621951 +vt 0.560976 0.402439 +vt 0.585366 0.621951 +vt 0.560976 0.621951 +vt 0.585366 0.402439 +vt 0.609756 0.621951 +vt 0.609756 0.402439 +vt 0.634146 0.621951 +vt 0.414634 0.402439 +vt 0.439024 0.621951 +vt 0.414634 0.621951 +vt 0.390244 0.402439 +vt 0.390244 0.621951 +vt 0.658537 0.402439 +vt 0.682927 0.621951 +vt 0.658537 0.621951 +vt 0.634146 0.402439 +vt 0.536585 0.402439 +vt 0.439024 0.402439 +vt 0.439024 0.182927 +vt 0.463415 0.402439 +vt 0.439024 0.402439 +vt 0.463415 0.182927 +vt 0.487805 0.402439 +vt 0.487805 0.182927 +vt 0.512195 0.402439 +vt 0.512195 0.182927 +vt 0.536585 0.402439 +vt 0.536585 0.182927 +vt 0.560976 0.402439 +vt 0.560976 0.182927 +vt 0.585366 0.402439 +vt 0.585366 0.182927 +vt 0.609756 0.402439 +vt 0.609756 0.182927 +vt 0.634146 0.402439 +vt 0.634146 0.182927 +vt 0.658537 0.402439 +vt 0.658537 0.182927 +vt 0.682927 0.402439 +vt 0.390244 0.182927 +vt 0.414634 0.402439 +vt 0.390244 0.402439 +vt 0.414634 0.182927 +vt 1.000000 0.189024 +vt 1.000000 0.146341 +vt 1.000000 0.213415 +vt 0.902439 0.213415 +vt 0.682927 0.402439 +vt 0.682927 0.182927 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.7071 0.7071 +vn -0.4472 0.0000 0.8944 +vn -0.4472 0.8944 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.4472 0.0000 -0.8944 +vn 0.3511 0.0000 -0.9363 +vn 0.3511 0.0000 0.9363 +vn 0.3511 0.9363 0.0000 +vn 0.3511 -0.9363 0.0000 +vn 0.4472 0.0000 0.8944 +vn 0.4472 0.8944 0.0000 +vn 0.4472 0.0000 -0.8944 +vn -0.3511 0.0000 -0.9363 +vn -0.3511 0.0000 0.9363 +vn -0.3511 0.9363 0.0000 +vn -0.3511 -0.9363 0.0000 +vn 0.8660 0.0000 -0.5000 +vn 0.5000 0.0000 -0.8660 +vn 0.8660 0.0000 0.5000 +vn 0.5000 0.0000 0.8660 +vn -0.5000 0.0000 0.8660 +vn -0.8660 0.0000 0.5000 +vn -0.5000 0.0000 -0.8660 +vn -0.8660 0.0000 -0.5000 +vn 0.6124 -0.7071 0.3536 +vn 0.7071 -0.7071 0.0000 +vn 0.3536 -0.7071 0.6124 +vn -0.0000 -0.7071 0.7071 +vn -0.3536 -0.7071 0.6124 +vn -0.6124 -0.7071 0.3536 +vn -0.7071 -0.7071 -0.0000 +vn -0.6124 -0.7071 -0.3536 +vn 0.6124 -0.7071 -0.3536 +vn 0.3536 -0.7071 -0.6124 +vn 0.0000 -0.7071 -0.7071 +vn -0.3536 -0.7071 -0.6124 +vn -0.9965 0.0830 0.0000 +vn -0.8630 0.0830 -0.4983 +vn -0.4983 0.0830 -0.8630 +vn -0.8630 0.0830 0.4983 +vn -0.4983 0.0830 0.8630 +vn -0.0000 0.0830 0.9965 +vn 0.0000 0.0830 -0.9965 +vn 0.4983 0.0830 -0.8630 +vn 0.4983 0.0830 0.8630 +vn 0.8630 0.0830 0.4983 +vn 0.9965 0.0830 0.0000 +vn 0.8630 0.0830 -0.4983 s off -f 4/1/1 3/2/1 1/3/1 -f 8/1/2 7/2/2 3/3/2 -f 6/1/3 5/2/3 7/3/3 -f 2/1/4 1/2/4 5/3/4 -f 3/2/5 7/4/5 5/5/5 -f 12/6/6 6/1/6 8/7/6 -f 4/1/7 2/7/7 9/8/7 -f 8/1/8 4/7/8 10/8/8 -f 6/7/9 12/8/9 9/6/9 -f 20/9/2 19/10/2 22/11/2 -f 19/12/3 26/13/3 28/14/3 -f 14/15/10 13/16/10 24/17/10 -f 22/10/5 19/11/5 17/17/5 -f 21/11/11 16/15/11 14/16/11 -f 20/10/12 21/11/12 23/17/12 -f 23/11/4 24/17/4 17/9/4 -f 21/17/13 22/11/13 15/15/13 -f 28/14/14 32/18/14 31/19/14 -f 18/9/3 27/20/3 25/21/3 -f 20/10/3 25/21/3 26/13/3 -f 17/22/3 28/14/3 27/20/3 -f 31/19/3 32/18/3 30/23/3 -f 25/21/15 29/24/15 30/23/15 -f 26/13/16 30/23/16 32/18/16 -f 27/20/17 31/19/17 29/24/17 -f 42/17/2 39/9/2 40/10/2 -f 48/20/1 46/21/1 39/10/1 -f 44/11/18 33/15/18 34/16/18 -f 37/9/5 39/10/5 42/11/5 -f 34/15/19 36/16/19 41/17/19 -f 43/11/12 41/17/12 40/9/12 -f 37/10/4 44/11/4 43/17/4 -f 35/16/20 42/17/20 41/11/20 -f 51/18/21 52/19/21 48/20/21 -f 45/13/1 47/14/1 38/22/1 -f 46/21/1 45/13/1 40/12/1 -f 47/14/1 48/20/1 37/9/1 -f 50/24/1 52/19/1 51/18/1 -f 50/24/22 49/23/22 45/13/22 -f 52/19/23 50/24/23 46/21/23 -f 49/23/24 51/18/24 47/14/24 -f 59/25/3 53/26/3 54/27/3 -f 56/28/1 58/29/1 57/30/1 -f 60/31/12 54/27/12 58/29/12 -f 55/32/5 57/30/5 53/33/5 -f 54/34/2 53/33/2 57/30/2 -f 67/25/3 61/26/3 62/27/3 -f 64/28/1 66/29/1 65/30/1 -f 68/31/12 62/27/12 66/29/12 -f 63/32/5 65/30/5 61/33/5 -f 62/34/2 61/33/2 65/30/2 -f 70/29/3 69/30/3 75/32/3 -f 73/26/1 74/27/1 72/31/1 -f 74/27/12 70/29/12 76/28/12 -f 69/30/5 73/33/5 71/35/5 -f 73/33/4 69/30/4 70/36/4 -f 78/29/3 77/30/3 83/32/3 -f 81/26/1 82/27/1 80/31/1 -f 82/27/12 78/29/12 84/28/12 -f 77/30/5 81/33/5 79/35/5 -f 81/33/4 77/30/4 78/36/4 -f 86/37/2 85/15/2 87/38/2 -f 89/37/4 90/38/4 88/15/4 -f 92/39/2 91/40/2 93/41/2 -f 95/39/4 96/41/4 94/40/4 -f 10/6/1 9/8/1 98/42/1 -f 97/43/3 12/6/3 11/8/3 -f 9/6/4 12/8/4 97/42/4 -f 99/42/2 100/43/2 11/6/2 -f 98/44/12 97/43/12 100/42/12 -f 131/45/12 132/46/12 129/12/12 -f 128/47/3 132/46/3 131/45/3 -f 125/47/1 130/46/1 129/45/1 -f 127/47/2 129/46/2 132/45/2 -f 126/47/4 131/46/4 130/45/4 -f 163/45/12 164/46/12 161/12/12 -f 160/47/3 164/46/3 163/45/3 -f 157/47/1 162/46/1 161/45/1 -f 159/47/2 161/46/2 164/45/2 -f 158/47/4 163/46/4 162/45/4 -f 172/48/8 169/49/8 173/50/8 -f 168/51/3 172/48/3 171/52/3 -f 167/53/2 169/49/2 172/48/2 -f 166/54/4 171/55/4 170/56/4 -f 175/57/12 176/58/12 173/59/12 -f 171/55/9 175/58/9 174/57/9 -f 172/48/6 176/60/6 175/61/6 -f 170/56/7 174/62/7 173/63/7 -f 167/53/1 165/64/1 170/56/1 -f 207/45/12 208/46/12 205/12/12 -f 204/47/3 208/46/3 207/45/3 -f 201/47/1 206/46/1 205/45/1 -f 203/47/2 205/46/2 208/45/2 -f 202/47/4 207/46/4 206/45/4 -f 197/65/12 191/66/12 179/67/12 -f 215/68/25 194/69/25 195/70/25 -f 216/71/26 193/72/26 194/69/26 -f 214/73/27 195/70/27 196/74/27 -f 213/75/28 196/74/28 197/76/28 -f 212/77/29 197/76/29 198/78/29 -f 211/79/30 198/80/30 199/81/30 -f 210/82/31 199/81/31 200/83/31 -f 209/84/32 200/83/32 179/85/32 -f 217/86/33 192/87/33 193/72/33 -f 218/88/34 191/89/34 192/87/34 -f 219/90/35 180/91/35 191/89/35 -f 220/92/36 179/85/36 180/91/36 -f 229/93/37 230/94/37 214/73/37 -f 212/77/38 228/95/38 229/93/38 -f 227/55/39 228/95/39 212/77/39 -f 226/96/40 227/97/40 211/79/40 -f 209/84/41 225/98/41 226/96/41 -f 224/99/42 225/98/42 209/84/42 -f 223/100/43 224/99/43 220/92/43 -f 214/73/44 230/94/44 231/101/44 -f 231/101/45 232/102/45 216/71/45 -f 216/71/46 232/102/46 221/103/46 -f 221/103/47 222/104/47 218/88/47 -f 222/104/48 223/100/48 219/90/48 -f 190/105/49 224/99/49 223/100/49 -f 188/106/50 189/107/50 223/100/50 -f 190/105/51 177/108/51 225/98/51 -f 178/109/52 226/96/52 225/98/52 -f 181/110/53 227/97/53 226/96/53 -f 187/111/54 188/106/54 222/104/54 -f 187/111/55 221/103/55 232/102/55 -f 182/112/56 228/95/56 227/55/56 -f 183/113/57 229/93/57 228/95/57 -f 184/114/58 230/94/58 229/93/58 -f 185/115/59 231/101/59 230/94/59 -f 185/115/60 186/116/60 232/102/60 -f 262/117/26 274/118/26 273/119/26 -f 246/120/12 258/121/12 268/122/12 -f 240/123/29 252/124/29 251/125/29 -f 237/126/32 249/127/32 248/128/32 -f 244/129/26 256/119/26 255/130/26 -f 234/131/34 245/132/34 246/133/34 -f 241/134/28 253/135/28 252/124/28 -f 237/126/31 238/136/31 250/137/31 -f 233/91/33 246/133/33 256/119/33 -f 235/138/35 247/139/35 245/132/35 -f 242/87/27 254/140/27 253/135/27 -f 239/80/30 251/141/30 250/137/30 -f 236/83/36 248/128/36 247/139/36 -f 243/142/25 255/130/25 254/140/25 -f 247/143/12 259/144/12 257/145/12 -f 254/135/12 266/146/12 265/147/12 -f 251/148/12 263/149/12 262/150/12 -f 248/151/12 260/152/12 259/144/12 -f 254/135/12 255/153/12 267/154/12 -f 251/148/12 252/155/12 264/156/12 -f 249/157/12 261/158/12 260/152/12 -f 256/159/12 268/122/12 267/154/12 -f 245/160/12 257/145/12 258/121/12 -f 253/161/12 265/147/12 264/156/12 -f 250/162/12 262/150/12 261/158/12 -f 258/163/30 270/132/30 280/164/30 -f 259/165/28 271/133/28 269/166/28 -f 266/167/36 278/168/36 277/128/36 -f 263/120/33 275/130/33 274/118/33 -f 260/169/27 272/170/27 271/133/27 -f 267/171/32 279/139/32 278/168/32 -f 264/172/34 276/173/34 275/127/34 -f 261/174/25 273/119/25 272/170/25 -f 268/175/31 280/164/31 279/139/31 -f 257/176/29 269/166/29 270/132/29 -f 265/177/35 277/128/35 276/173/35 -f 107/178/12 109/179/12 101/180/12 -f 116/181/32 117/182/32 105/183/32 -f 117/182/31 118/184/31 106/185/31 -f 118/184/30 119/186/30 107/187/30 -f 120/188/28 121/189/28 109/190/28 -f 121/189/27 122/191/27 110/192/27 -f 122/191/25 123/193/25 111/194/25 -f 113/195/35 115/196/35 103/197/35 -f 114/198/34 113/195/34 102/199/34 -f 124/200/33 114/201/33 101/202/33 -f 123/193/26 124/200/26 112/203/26 -f 119/186/29 120/188/29 108/204/29 -f 115/196/36 116/181/36 104/205/36 -f 139/206/12 141/207/12 133/178/12 -f 147/208/36 148/60/36 136/181/36 -f 148/60/32 149/209/32 137/182/32 -f 149/209/31 150/210/31 138/184/31 -f 150/210/30 151/211/30 139/186/30 -f 151/211/29 152/50/29 140/188/29 -f 152/50/28 153/212/28 141/189/28 -f 153/212/27 154/63/27 142/191/27 -f 154/63/25 155/213/25 143/193/25 -f 155/213/26 156/62/26 144/200/26 -f 156/62/33 146/214/33 133/201/33 -f 146/215/34 145/61/34 134/195/34 -f 145/61/35 147/208/35 135/196/35 -f 2/7/1 4/1/1 1/3/1 -f 4/7/2 8/1/2 3/3/2 -f 8/7/3 6/1/3 7/3/3 -f 6/7/4 2/1/4 5/3/4 -f 1/3/5 3/2/5 5/5/5 -f 11/8/6 12/6/6 8/7/6 -f 10/6/7 4/1/7 9/8/7 -f 11/6/8 8/1/8 10/8/8 -f 2/1/9 6/7/9 9/6/9 -f 21/17/2 20/9/2 22/11/2 -f 17/22/3 19/12/3 28/14/3 -f 23/11/10 14/15/10 24/17/10 -f 24/9/5 22/10/5 17/17/5 -f 23/17/11 21/11/11 14/16/11 -f 18/9/12 20/10/12 23/17/12 -f 18/10/4 23/11/4 17/9/4 -f 16/16/13 21/17/13 15/15/13 -f 27/20/14 28/14/14 31/19/14 -f 20/10/3 18/9/3 25/21/3 -f 19/12/3 20/10/3 26/13/3 -f 18/9/3 17/22/3 27/20/3 -f 29/24/3 31/19/3 30/23/3 -f 26/13/15 25/21/15 30/23/15 -f 28/14/16 26/13/16 32/18/16 -f 25/21/17 27/20/17 29/24/17 -f 41/11/2 42/17/2 40/10/2 -f 37/9/1 48/20/1 39/10/1 -f 43/17/18 44/11/18 34/16/18 -f 44/17/5 37/9/5 42/11/5 -f 43/11/19 34/15/19 41/17/19 -f 38/10/12 43/11/12 40/9/12 -f 38/9/4 37/10/4 43/17/4 -f 36/15/20 35/16/20 41/11/20 -f 47/14/21 51/18/21 48/20/21 -f 40/12/1 45/13/1 38/22/1 -f 39/10/1 46/21/1 40/12/1 -f 38/22/1 47/14/1 37/9/1 -f 49/23/1 50/24/1 51/18/1 -f 46/21/22 50/24/22 45/13/22 -f 48/20/23 52/19/23 46/21/23 -f 45/13/24 49/23/24 47/14/24 -f 60/31/3 59/25/3 54/27/3 -f 55/32/1 56/28/1 57/30/1 -f 56/28/12 60/31/12 58/29/12 -f 59/35/5 55/32/5 53/33/5 -f 58/36/2 54/34/2 57/30/2 -f 68/31/3 67/25/3 62/27/3 -f 63/32/1 64/28/1 65/30/1 -f 64/28/12 68/31/12 66/29/12 -f 67/35/5 63/32/5 61/33/5 -f 66/36/2 62/34/2 65/30/2 -f 76/28/3 70/29/3 75/32/3 -f 71/25/1 73/26/1 72/31/1 -f 72/31/12 74/27/12 76/28/12 -f 75/32/5 69/30/5 71/35/5 -f 74/34/4 73/33/4 70/36/4 -f 84/28/3 78/29/3 83/32/3 -f 79/25/1 81/26/1 80/31/1 -f 80/31/12 82/27/12 84/28/12 -f 83/32/5 77/30/5 79/35/5 -f 82/34/4 81/33/4 78/36/4 -f 99/43/1 10/6/1 98/42/1 -f 100/42/3 97/43/3 11/8/3 -f 98/43/4 9/6/4 97/42/4 -f 10/8/2 99/42/2 11/6/2 -f 99/216/12 98/44/12 100/42/12 -f 130/22/12 131/45/12 129/12/12 -f 126/5/3 128/47/3 131/45/3 -f 127/5/1 125/47/1 129/45/1 -f 128/5/2 127/47/2 132/45/2 -f 125/5/4 126/47/4 130/45/4 -f 162/22/12 163/45/12 161/12/12 -f 158/5/3 160/47/3 163/45/3 -f 159/5/1 157/47/1 161/45/1 -f 160/5/2 159/47/2 164/45/2 -f 157/5/4 158/47/4 162/45/4 -f 176/210/8 172/48/8 173/50/8 -f 166/47/3 168/51/3 171/52/3 -f 168/51/2 167/53/2 172/48/2 -f 165/64/4 166/54/4 170/56/4 -f 174/217/12 175/57/12 173/59/12 -f 170/56/9 171/55/9 174/57/9 -f 171/52/6 172/48/6 175/61/6 -f 169/49/7 170/56/7 173/63/7 -f 169/49/1 167/53/1 170/56/1 -f 206/22/12 207/45/12 205/12/12 -f 202/5/3 204/47/3 207/45/3 -f 203/5/1 201/47/1 205/45/1 -f 204/5/2 203/47/2 208/45/2 -f 201/5/4 202/47/4 206/45/4 -f 179/67/12 200/218/12 199/219/12 -f 199/219/12 198/220/12 197/65/12 -f 197/65/12 196/221/12 195/74/12 -f 195/74/12 194/222/12 193/223/12 -f 193/223/12 192/224/12 191/66/12 -f 191/66/12 180/225/12 179/67/12 -f 179/67/12 199/219/12 197/65/12 -f 197/65/12 195/74/12 193/223/12 -f 193/223/12 191/66/12 197/65/12 -f 214/73/25 215/68/25 195/70/25 -f 215/68/26 216/71/26 194/69/26 -f 213/75/27 214/73/27 196/74/27 -f 212/77/28 213/75/28 197/76/28 -f 211/226/29 212/77/29 198/78/29 -f 210/82/30 211/79/30 199/81/30 -f 209/84/31 210/82/31 200/83/31 -f 220/92/32 209/84/32 179/85/32 -f 216/71/33 217/86/33 193/72/33 -f 217/86/34 218/88/34 192/87/34 -f 218/88/35 219/90/35 191/89/35 -f 219/90/36 220/92/36 180/91/36 -f 213/75/37 229/93/37 214/73/37 -f 213/75/38 212/77/38 229/93/38 -f 211/226/39 227/55/39 212/77/39 -f 210/82/40 226/96/40 211/79/40 -f 210/82/41 209/84/41 226/96/41 -f 220/92/42 224/99/42 209/84/42 -f 219/90/43 223/100/43 220/92/43 -f 215/68/44 214/73/44 231/101/44 -f 215/68/45 231/101/45 216/71/45 -f 217/86/46 216/71/46 221/103/46 -f 217/86/47 221/103/47 218/88/47 -f 218/88/48 222/104/48 219/90/48 -f 189/107/49 190/105/49 223/100/49 -f 222/104/50 188/106/50 223/100/50 -f 224/99/51 190/105/51 225/98/51 -f 177/108/52 178/109/52 225/98/52 -f 178/109/53 181/110/53 226/96/53 -f 221/103/54 187/111/54 222/104/54 -f 186/116/55 187/111/55 232/102/55 -f 181/54/56 182/112/56 227/55/56 -f 182/112/57 183/113/57 228/95/57 -f 183/113/58 184/114/58 229/93/58 -f 184/114/59 185/115/59 230/94/59 -f 231/101/60 185/115/60 232/102/60 -f 261/174/26 262/117/26 273/119/26 -f 256/159/12 246/120/12 268/122/12 -f 239/69/29 240/123/29 251/125/29 -f 236/83/32 237/126/32 248/128/32 -f 243/142/26 244/129/26 255/130/26 -f 233/91/34 234/131/34 246/133/34 -f 240/123/28 241/134/28 252/124/28 -f 249/127/31 237/126/31 250/137/31 -f 244/129/33 233/91/33 256/119/33 -f 234/131/35 235/138/35 245/132/35 -f 241/134/27 242/87/27 253/135/27 -f 238/136/30 239/80/30 250/137/30 -f 235/138/36 236/83/36 247/139/36 -f 242/87/25 243/142/25 254/140/25 -f 245/160/12 247/143/12 257/145/12 -f 253/161/12 254/135/12 265/147/12 -f 250/162/12 251/148/12 262/150/12 -f 247/143/12 248/151/12 259/144/12 -f 266/146/12 254/135/12 267/154/12 -f 263/149/12 251/148/12 264/156/12 -f 248/151/12 249/157/12 260/152/12 -f 255/153/12 256/159/12 267/154/12 -f 246/120/12 245/160/12 258/121/12 -f 252/155/12 253/161/12 264/156/12 -f 249/157/12 250/162/12 261/158/12 -f 268/175/30 258/163/30 280/164/30 -f 257/176/28 259/165/28 269/166/28 -f 265/177/36 266/167/36 277/128/36 -f 262/117/33 263/120/33 274/118/33 -f 259/165/27 260/169/27 271/133/27 -f 266/167/32 267/171/32 278/168/32 -f 263/227/34 264/172/34 275/127/34 -f 260/169/25 261/174/25 272/170/25 -f 267/171/31 268/175/31 279/139/31 -f 258/163/29 257/176/29 270/132/29 -f 264/172/35 265/177/35 276/173/35 -f 101/180/12 102/228/12 103/229/12 -f 103/229/12 104/230/12 105/231/12 -f 105/231/12 106/232/12 107/178/12 -f 107/178/12 108/233/12 109/179/12 -f 109/179/12 110/234/12 111/235/12 -f 111/235/12 112/236/12 101/180/12 -f 101/180/12 103/229/12 105/231/12 -f 105/231/12 107/178/12 101/180/12 -f 109/179/12 111/235/12 101/180/12 -f 104/205/32 116/181/32 105/183/32 -f 105/183/31 117/182/31 106/185/31 -f 106/185/30 118/184/30 107/187/30 -f 108/204/28 120/188/28 109/190/28 -f 109/190/27 121/189/27 110/192/27 -f 110/192/25 122/191/25 111/194/25 -f 102/199/35 113/195/35 103/197/35 -f 101/237/34 114/198/34 102/199/34 -f 112/203/33 124/200/33 101/202/33 -f 111/194/26 123/193/26 112/203/26 -f 107/187/29 119/186/29 108/204/29 -f 103/197/36 115/196/36 104/205/36 -f 133/178/12 134/238/12 135/239/12 -f 135/239/12 136/240/12 133/178/12 -f 137/241/12 138/242/12 139/206/12 -f 139/206/12 140/243/12 141/207/12 -f 141/207/12 142/244/12 143/245/12 -f 143/245/12 144/246/12 133/178/12 -f 133/178/12 136/240/12 137/241/12 -f 137/241/12 139/206/12 133/178/12 -f 141/207/12 143/245/12 133/178/12 -f 135/196/36 147/208/36 136/181/36 -f 136/181/32 148/60/32 137/182/32 -f 137/182/31 149/209/31 138/184/31 -f 138/184/30 150/210/30 139/186/30 -f 139/186/29 151/211/29 140/188/29 -f 140/188/28 152/50/28 141/189/28 -f 141/189/27 153/212/27 142/191/27 -f 142/191/25 154/63/25 143/193/25 -f 143/193/26 155/213/26 144/200/26 -f 144/200/33 156/62/33 133/201/33 -f 133/198/34 146/215/34 134/195/34 -f 134/195/35 145/61/35 135/196/35 +f 4/1/1 1/2/1 2/3/1 +f 8/4/2 3/5/2 4/6/2 +f 6/7/3 7/8/3 8/9/3 +f 2/10/4 5/11/4 6/12/4 +f 3/13/5 5/14/5 1/2/5 +f 12/15/6 8/9/6 11/16/6 +f 4/1/7 9/17/7 10/18/7 +f 8/4/8 10/19/8 11/20/8 +f 6/12/9 9/21/9 2/10/9 +f 20/22/2 22/23/2 21/24/2 +f 19/25/3 28/26/3 17/27/3 +f 14/28/10 24/29/10 23/30/10 +f 22/31/5 17/32/5 24/33/5 +f 21/34/11 14/35/11 23/36/11 +f 20/37/12 23/36/12 18/38/12 +f 23/30/4 17/39/4 18/40/4 +f 21/24/13 15/41/13 16/42/13 +f 28/26/14 31/43/14 27/44/14 +f 18/38/3 25/45/3 20/37/3 +f 20/37/3 26/46/3 19/25/3 +f 17/27/3 27/44/3 18/38/3 +f 31/43/3 30/47/3 29/48/3 +f 25/45/15 30/47/15 26/46/15 +f 26/46/16 32/49/16 28/26/16 +f 27/44/17 29/48/17 25/45/17 +f 42/50/2 40/51/2 41/52/2 +f 48/53/1 39/54/1 37/55/1 +f 44/56/18 34/57/18 43/58/18 +f 37/55/5 42/59/5 44/60/5 +f 34/61/19 41/62/19 43/63/19 +f 43/63/12 40/64/12 38/65/12 +f 37/66/4 43/58/4 38/67/4 +f 35/68/20 41/52/20 36/69/20 +f 51/70/21 48/53/21 47/71/21 +f 45/72/1 38/73/1 40/74/1 +f 46/75/1 40/74/1 39/54/1 +f 47/71/1 37/55/1 38/73/1 +f 50/76/1 51/70/1 49/77/1 +f 50/76/22 45/72/22 46/75/22 +f 52/78/23 46/75/23 48/53/23 +f 49/77/24 47/71/24 45/72/24 +f 59/79/3 54/80/3 60/81/3 +f 56/82/1 57/83/1 55/84/1 +f 60/81/12 58/85/12 56/82/12 +f 55/84/5 53/86/5 59/87/5 +f 54/88/2 57/83/2 58/89/2 +f 67/90/3 62/91/3 68/92/3 +f 64/93/1 65/94/1 63/95/1 +f 68/92/12 66/96/12 64/93/12 +f 63/95/5 61/97/5 67/98/5 +f 62/99/2 65/94/2 66/100/2 +f 70/101/3 75/102/3 76/103/3 +f 73/104/1 72/105/1 71/106/1 +f 74/107/12 76/103/12 72/105/12 +f 69/108/5 71/109/5 75/102/5 +f 73/110/4 70/111/4 74/112/4 +f 78/113/3 83/114/3 84/115/3 +f 81/116/1 80/117/1 79/118/1 +f 82/119/12 84/115/12 80/117/12 +f 77/120/5 79/121/5 83/114/5 +f 81/122/4 78/123/4 82/124/4 +f 86/125/2 85/126/2 87/127/2 +f 89/128/4 90/129/4 88/130/4 +f 92/131/2 91/132/2 93/133/2 +f 95/134/4 96/135/4 94/136/4 +f 10/18/1 98/137/1 99/138/1 +f 97/139/3 11/16/3 100/140/3 +f 9/21/4 97/141/4 98/142/4 +f 99/143/2 11/20/2 10/19/2 +f 98/144/12 100/140/12 99/145/12 +f 131/146/12 129/147/12 130/148/12 +f 128/149/3 131/146/3 126/150/3 +f 125/151/1 129/152/1 127/153/1 +f 127/154/2 132/155/2 128/156/2 +f 126/157/4 130/158/4 125/159/4 +f 163/160/12 161/161/12 162/162/12 +f 160/163/3 163/160/3 158/164/3 +f 157/165/1 161/166/1 159/167/1 +f 159/168/2 164/169/2 160/170/2 +f 158/171/4 162/172/4 157/173/4 +f 172/174/8 173/175/8 176/176/8 +f 168/177/3 171/178/3 166/179/3 +f 167/180/2 172/174/2 168/177/2 +f 166/181/4 170/182/4 165/183/4 +f 175/184/12 173/185/12 174/186/12 +f 171/187/9 174/188/9 170/182/9 +f 172/174/6 175/189/6 171/178/6 +f 169/190/7 174/191/7 173/192/7 +f 167/180/1 170/182/1 169/190/1 +f 207/193/12 205/194/12 206/195/12 +f 204/196/3 207/193/3 202/197/3 +f 201/198/1 205/199/1 203/200/1 +f 203/201/2 208/202/2 204/203/2 +f 202/204/4 206/205/4 201/206/4 +f 197/207/12 193/208/12 179/209/12 +f 246/210/12 268/211/12 256/212/12 +f 247/213/12 257/214/12 245/215/12 +f 254/216/12 265/217/12 253/218/12 +f 251/219/12 262/220/12 250/221/12 +f 248/222/12 259/223/12 247/213/12 +f 254/216/12 267/224/12 266/225/12 +f 252/226/12 263/227/12 251/219/12 +f 249/228/12 260/229/12 248/222/12 +f 256/212/12 267/224/12 255/230/12 +f 245/215/12 258/231/12 246/210/12 +f 253/218/12 264/232/12 252/226/12 +f 250/221/12 261/233/12 249/228/12 +f 109/234/12 111/235/12 101/236/12 +f 141/237/12 143/238/12 133/239/12 +f 4/1/1 3/13/1 1/2/1 +f 8/4/2 7/240/2 3/5/2 +f 6/7/3 5/241/3 7/8/3 +f 2/10/4 1/242/4 5/11/4 +f 3/13/5 7/243/5 5/14/5 +f 12/15/6 6/7/6 8/9/6 +f 4/1/7 2/3/7 9/17/7 +f 8/4/8 4/6/8 10/19/8 +f 6/12/9 12/244/9 9/21/9 +f 20/22/2 19/245/2 22/23/2 +f 19/25/3 26/46/3 28/26/3 +f 14/28/10 13/246/10 24/29/10 +f 22/31/5 19/247/5 17/32/5 +f 21/34/11 16/248/11 14/35/11 +f 20/37/12 21/34/12 23/36/12 +f 23/30/4 24/29/4 17/39/4 +f 21/24/13 22/23/13 15/41/13 +f 28/26/14 32/49/14 31/43/14 +f 18/38/3 27/44/3 25/45/3 +f 20/37/3 25/45/3 26/46/3 +f 17/27/3 28/26/3 27/44/3 +f 31/43/3 32/49/3 30/47/3 +f 25/45/15 29/48/15 30/47/15 +f 26/46/16 30/47/16 32/49/16 +f 27/44/17 31/43/17 29/48/17 +f 42/50/2 39/249/2 40/51/2 +f 48/53/1 46/75/1 39/54/1 +f 44/56/18 33/250/18 34/57/18 +f 37/55/5 39/54/5 42/59/5 +f 34/61/19 36/251/19 41/62/19 +f 43/63/12 41/62/12 40/64/12 +f 37/66/4 44/56/4 43/58/4 +f 35/68/20 42/50/20 41/52/20 +f 51/70/21 52/78/21 48/53/21 +f 45/72/1 47/71/1 38/73/1 +f 46/75/1 45/72/1 40/74/1 +f 47/71/1 48/53/1 37/55/1 +f 50/76/1 52/78/1 51/70/1 +f 50/76/22 49/77/22 45/72/22 +f 52/78/23 50/76/23 46/75/23 +f 49/77/24 51/70/24 47/71/24 +f 59/79/3 53/252/3 54/80/3 +f 56/82/1 58/85/1 57/83/1 +f 60/81/12 54/80/12 58/85/12 +f 55/84/5 57/83/5 53/86/5 +f 54/88/2 53/86/2 57/83/2 +f 67/90/3 61/253/3 62/91/3 +f 64/93/1 66/96/1 65/94/1 +f 68/92/12 62/91/12 66/96/12 +f 63/95/5 65/94/5 61/97/5 +f 62/99/2 61/97/2 65/94/2 +f 70/101/3 69/108/3 75/102/3 +f 73/104/1 74/107/1 72/105/1 +f 74/107/12 70/101/12 76/103/12 +f 69/108/5 73/110/5 71/109/5 +f 73/110/4 69/108/4 70/111/4 +f 78/113/3 77/120/3 83/114/3 +f 81/116/1 82/119/1 80/117/1 +f 82/119/12 78/113/12 84/115/12 +f 77/120/5 81/122/5 79/121/5 +f 81/122/4 77/120/4 78/123/4 +f 10/18/1 9/17/1 98/137/1 +f 97/139/3 12/15/3 11/16/3 +f 9/21/4 12/244/4 97/141/4 +f 99/143/2 100/254/2 11/20/2 +f 98/144/12 97/139/12 100/140/12 +f 131/146/12 132/255/12 129/147/12 +f 128/149/3 132/255/3 131/146/3 +f 125/151/1 130/256/1 129/152/1 +f 127/154/2 129/257/2 132/155/2 +f 126/157/4 131/258/4 130/158/4 +f 163/160/12 164/259/12 161/161/12 +f 160/163/3 164/259/3 163/160/3 +f 157/165/1 162/260/1 161/166/1 +f 159/168/2 161/261/2 164/169/2 +f 158/171/4 163/262/4 162/172/4 +f 172/174/8 169/190/8 173/175/8 +f 168/177/3 172/174/3 171/178/3 +f 167/180/2 169/190/2 172/174/2 +f 166/181/4 171/187/4 170/182/4 +f 175/184/12 176/263/12 173/185/12 +f 171/187/9 175/264/9 174/188/9 +f 172/174/6 176/265/6 175/189/6 +f 169/190/7 170/182/7 174/191/7 +f 167/180/1 165/183/1 170/182/1 +f 207/193/12 208/266/12 205/194/12 +f 204/196/3 208/266/3 207/193/3 +f 201/198/1 206/267/1 205/199/1 +f 203/201/2 205/268/2 208/202/2 +f 202/204/4 207/269/4 206/205/4 +f 179/209/12 200/270/12 199/271/12 +f 199/271/12 198/272/12 197/207/12 +f 197/207/12 196/273/12 195/274/12 +f 195/274/12 194/275/12 193/208/12 +f 193/208/12 192/276/12 191/277/12 +f 191/277/12 180/278/12 193/208/12 +f 180/278/12 179/209/12 193/208/12 +f 179/209/12 199/271/12 197/207/12 +f 197/207/12 195/274/12 193/208/12 +f 246/210/12 258/231/12 268/211/12 +f 247/213/12 259/223/12 257/214/12 +f 254/216/12 266/225/12 265/217/12 +f 251/219/12 263/227/12 262/220/12 +f 248/222/12 260/229/12 259/223/12 +f 254/216/12 255/230/12 267/224/12 +f 252/226/12 264/232/12 263/227/12 +f 249/228/12 261/233/12 260/229/12 +f 256/212/12 268/211/12 267/224/12 +f 245/215/12 257/214/12 258/231/12 +f 253/218/12 265/217/12 264/232/12 +f 250/221/12 262/220/12 261/233/12 +f 101/236/12 102/279/12 103/280/12 +f 103/280/12 104/281/12 105/282/12 +f 105/282/12 106/283/12 107/284/12 +f 107/284/12 108/285/12 109/234/12 +f 109/234/12 110/286/12 111/235/12 +f 111/235/12 112/287/12 101/236/12 +f 101/236/12 103/280/12 105/282/12 +f 105/282/12 107/284/12 101/236/12 +f 107/284/12 109/234/12 101/236/12 +f 133/239/12 134/288/12 135/289/12 +f 135/289/12 136/290/12 133/239/12 +f 136/290/12 137/291/12 133/239/12 +f 137/291/12 138/292/12 139/293/12 +f 139/293/12 140/294/12 141/237/12 +f 141/237/12 142/295/12 143/238/12 +f 143/238/12 144/296/12 133/239/12 +f 137/291/12 139/293/12 133/239/12 +f 139/293/12 141/237/12 133/239/12 +s 1 +f 215/297/25 195/298/3 214/299/3 +f 216/300/26 194/301/25 215/297/25 +f 214/299/3 196/302/27 213/303/27 +f 213/303/27 197/304/28 212/305/28 +f 212/305/28 198/306/4 211/307/4 +f 211/308/4 199/309/29 210/310/29 +f 210/310/29 200/311/30 209/312/30 +f 209/312/30 179/313/1 220/314/1 +f 217/315/2 193/316/26 216/300/26 +f 218/317/31 192/318/2 217/315/2 +f 219/319/32 191/320/31 218/317/31 +f 220/314/1 180/321/32 219/319/32 +f 229/322/33 214/299/34 213/303/33 +f 212/305/35 229/322/33 213/303/33 +f 227/323/36 212/305/35 211/307/36 +f 226/324/37 211/308/36 210/310/37 +f 209/312/38 226/324/37 210/310/37 +f 224/325/39 209/312/38 220/314/39 +f 223/326/40 220/314/39 219/319/40 +f 230/327/34 215/297/41 214/299/34 +f 231/328/41 216/300/42 215/297/41 +f 232/329/42 217/315/43 216/300/42 +f 221/330/43 218/317/44 217/315/43 +f 222/331/44 219/319/40 218/317/44 +f 190/332/45 223/326/46 189/333/46 +f 189/333/46 222/331/47 188/334/47 +f 177/335/48 224/325/45 190/332/45 +f 178/336/49 225/337/48 177/335/48 +f 181/338/50 226/324/49 178/336/49 +f 188/334/47 221/330/51 187/339/51 +f 187/339/51 232/329/52 186/340/52 +f 182/341/53 227/323/50 181/342/50 +f 183/343/54 228/344/53 182/341/53 +f 183/343/54 230/327/55 229/322/54 +f 185/345/56 230/327/55 184/346/55 +f 186/340/52 231/328/56 185/345/56 +f 262/347/26 273/348/25 261/349/25 +f 240/350/28 251/351/4 239/352/4 +f 237/353/30 248/354/1 236/355/1 +f 243/356/25 256/357/26 255/358/25 +f 233/359/2 245/360/31 246/361/2 +f 241/362/27 252/363/28 240/350/28 +f 238/364/29 249/365/30 237/353/30 +f 244/366/26 246/361/2 256/357/26 +f 234/367/31 247/368/32 245/360/31 +f 242/369/3 253/370/27 241/362/27 +f 239/371/4 250/372/29 238/364/29 +f 236/355/1 247/368/32 235/373/32 +f 243/356/25 254/374/3 242/369/3 +f 258/375/4 280/376/29 268/377/29 +f 259/378/27 269/379/28 257/380/28 +f 266/381/1 277/382/32 265/383/32 +f 263/384/2 274/385/26 262/347/26 +f 260/386/3 271/387/27 259/378/27 +f 267/388/30 278/389/1 266/381/1 +f 264/390/31 275/391/2 263/392/2 +f 261/349/25 272/393/3 260/386/3 +f 268/377/29 279/394/30 267/388/30 +f 257/380/28 270/395/4 258/375/4 +f 265/383/32 276/396/31 264/390/31 +f 116/397/1 105/398/30 104/399/1 +f 117/400/30 106/401/29 105/398/30 +f 118/402/29 107/403/4 106/401/29 +f 120/404/28 109/405/27 108/406/28 +f 121/407/27 110/408/3 109/405/27 +f 122/409/3 111/410/25 110/408/3 +f 113/411/31 103/412/32 102/413/31 +f 114/414/2 102/413/31 101/415/2 +f 124/416/26 101/417/2 112/418/26 +f 123/419/25 112/418/26 111/410/25 +f 119/420/4 108/406/28 107/403/4 +f 115/421/32 104/399/1 103/412/32 +f 147/422/32 136/423/1 135/424/32 +f 148/425/1 137/426/30 136/423/1 +f 149/427/30 138/428/29 137/426/30 +f 150/429/29 139/430/4 138/428/29 +f 151/431/4 140/432/28 139/430/4 +f 152/433/28 141/434/27 140/432/28 +f 153/435/27 142/436/3 141/434/27 +f 154/437/3 143/438/25 142/436/3 +f 155/439/25 144/440/26 143/438/25 +f 156/441/26 133/442/2 144/440/26 +f 146/443/2 134/444/31 133/445/2 +f 145/446/31 135/424/32 134/444/31 +f 215/297/25 194/301/25 195/298/3 +f 216/300/26 193/316/26 194/301/25 +f 214/299/3 195/298/3 196/302/27 +f 213/303/27 196/302/27 197/304/28 +f 212/305/28 197/304/28 198/306/4 +f 211/308/4 198/447/4 199/309/29 +f 210/310/29 199/309/29 200/311/30 +f 209/312/30 200/311/30 179/313/1 +f 217/315/2 192/318/2 193/316/26 +f 218/317/31 191/320/31 192/318/2 +f 219/319/32 180/321/32 191/320/31 +f 220/314/1 179/313/1 180/321/32 +f 229/322/33 230/327/34 214/299/34 +f 212/305/35 228/344/35 229/322/33 +f 227/323/36 228/344/35 212/305/35 +f 226/324/37 227/448/36 211/308/36 +f 209/312/38 225/337/38 226/324/37 +f 224/325/39 225/337/38 209/312/38 +f 223/326/40 224/325/39 220/314/39 +f 230/327/34 231/328/41 215/297/41 +f 231/328/41 232/329/42 216/300/42 +f 232/329/42 221/330/43 217/315/43 +f 221/330/43 222/331/44 218/317/44 +f 222/331/44 223/326/40 219/319/40 +f 190/332/45 224/325/45 223/326/46 +f 189/333/46 223/326/46 222/331/47 +f 177/335/48 225/337/48 224/325/45 +f 178/336/49 226/324/49 225/337/48 +f 181/338/50 227/448/50 226/324/49 +f 188/334/47 222/331/47 221/330/51 +f 187/339/51 221/330/51 232/329/52 +f 182/341/53 228/344/53 227/323/50 +f 183/343/54 229/322/54 228/344/53 +f 183/343/54 184/346/55 230/327/55 +f 185/345/56 231/328/56 230/327/55 +f 186/340/52 232/329/52 231/328/56 +f 262/347/26 274/385/26 273/348/25 +f 240/350/28 252/363/28 251/351/4 +f 237/353/30 249/365/30 248/354/1 +f 243/356/25 244/366/26 256/357/26 +f 233/359/2 234/367/31 245/360/31 +f 241/362/27 253/370/27 252/363/28 +f 238/364/29 250/372/29 249/365/30 +f 244/366/26 233/359/2 246/361/2 +f 234/367/31 235/373/32 247/368/32 +f 242/369/3 254/374/3 253/370/27 +f 239/371/4 251/449/4 250/372/29 +f 236/355/1 248/354/1 247/368/32 +f 243/356/25 255/358/25 254/374/3 +f 258/375/4 270/395/4 280/376/29 +f 259/378/27 271/387/27 269/379/28 +f 266/381/1 278/389/1 277/382/32 +f 263/384/2 275/450/2 274/385/26 +f 260/386/3 272/393/3 271/387/27 +f 267/388/30 279/394/30 278/389/1 +f 264/390/31 276/396/31 275/391/2 +f 261/349/25 273/348/25 272/393/3 +f 268/377/29 280/376/29 279/394/30 +f 257/380/28 269/379/28 270/395/4 +f 265/383/32 277/382/32 276/396/31 +f 116/397/1 117/400/30 105/398/30 +f 117/400/30 118/402/29 106/401/29 +f 118/402/29 119/420/4 107/403/4 +f 120/404/28 121/407/27 109/405/27 +f 121/407/27 122/409/3 110/408/3 +f 122/409/3 123/419/25 111/410/25 +f 113/411/31 115/421/32 103/412/32 +f 114/414/2 113/411/31 102/413/31 +f 124/416/26 114/451/2 101/417/2 +f 123/419/25 124/416/26 112/418/26 +f 119/420/4 120/404/28 108/406/28 +f 115/421/32 116/397/1 104/399/1 +f 147/422/32 148/425/1 136/423/1 +f 148/425/1 149/427/30 137/426/30 +f 149/427/30 150/429/29 138/428/29 +f 150/429/29 151/431/4 139/430/4 +f 151/431/4 152/433/28 140/432/28 +f 152/433/28 153/435/27 141/434/27 +f 153/435/27 154/437/3 142/436/3 +f 154/437/3 155/439/25 143/438/25 +f 155/439/25 156/441/26 144/440/26 +f 156/441/26 146/452/2 133/442/2 +f 146/443/2 145/446/31 134/444/31 +f 145/446/31 147/422/32 135/424/32 diff --git a/src/main/resources/assets/hbm/models/machines/microwave.obj b/src/main/resources/assets/hbm/models/machines/microwave.obj index 2f258c742..b13288dd5 100644 --- a/src/main/resources/assets/hbm/models/machines/microwave.obj +++ b/src/main/resources/assets/hbm/models/machines/microwave.obj @@ -1,963 +1,9 @@ -# Blender v2.82 (sub 7) OBJ File: 'microwave.blend' +# Blender v2.79 (sub 0) OBJ File: '' # www.blender.org -mtllib microwave.mtl -o mainbody_Cube.001 -v 0.238197 1.183358 -0.728996 -v 0.234821 1.183358 -0.728996 -v 0.238197 1.183358 -0.735637 -v 0.234821 1.183358 -0.735637 -v 0.238197 0.787154 -0.728996 -v 0.234821 0.787154 -0.728996 -v 0.234338 0.840926 -0.735637 -v 0.234821 1.127133 -0.735637 -v 0.238197 1.127133 -0.735637 -v 0.238197 0.840926 -0.735637 -v 0.155271 1.127133 -0.735637 -v 0.149897 1.125951 -0.735637 -v 0.838582 1.118357 -0.735637 -v 0.836356 1.121211 -0.735637 -v 0.827432 1.125951 -0.735637 -v 0.822058 1.127133 -0.735637 -v 0.826572 0.842109 -0.735637 -v 0.821198 0.840926 -0.735637 -v 0.837722 0.849703 -0.735637 -v 0.835496 0.846848 -0.735637 -v 0.140113 0.846848 -0.735637 -v 0.137887 0.849703 -0.735637 -v 0.154411 0.840926 -0.735637 -v 0.149037 0.842109 -0.735637 -v 0.138747 1.118357 -0.735637 -v 0.140973 1.121211 -0.735637 -v 0.234338 0.840926 -0.731795 -v 0.234821 1.127133 -0.731795 -v 0.140973 1.121211 -0.731795 -v 0.138747 1.118357 -0.731795 -v 0.149897 1.125951 -0.731795 -v 0.155271 1.127133 -0.731795 -v 0.137887 0.849703 -0.731795 -v 0.140113 0.846848 -0.731795 -v 0.149037 0.842109 -0.731795 -v 0.154411 0.840926 -0.731795 -v 0.303131 1.127133 -0.732176 -v 0.303131 0.840926 -0.732176 -v 0.820933 1.127133 -0.732176 -v 0.826308 1.125951 -0.732176 -v 0.835231 1.121211 -0.732176 -v 0.837458 1.118357 -0.732176 -v 0.836597 0.849703 -0.732176 -v 0.834371 0.846848 -0.732176 -v 0.825447 0.842109 -0.732176 -v 0.820073 0.840926 -0.732176 -v 0.234821 0.787154 -0.735637 -v 0.238197 0.787154 -0.735637 -v 0.114423 1.183358 -0.161513 -v 0.117047 1.181387 -0.156304 -v 0.127829 1.183358 -0.151007 -v 0.121182 1.181387 -0.153063 -v 0.127829 1.183358 -0.735637 -v 0.121182 1.181387 -0.733581 -v 0.117047 1.181387 -0.730340 -v 0.114423 1.183358 -0.725132 -v 0.862732 0.787154 -0.159690 -v 0.857794 0.789125 -0.156304 -v 0.849338 0.787154 -0.151007 -v 0.853658 0.789125 -0.153063 -v 0.847012 1.183358 -0.151007 -v 0.853658 1.181387 -0.153063 -v 0.857794 1.181387 -0.156304 -v 0.860417 1.183358 -0.161513 -v 0.853658 0.789125 -0.733581 -v 0.857794 0.789125 -0.730340 -v 0.860417 0.787154 -0.726955 -v 0.848027 0.787154 -0.735637 -v 0.860417 1.183358 -0.725132 -v 0.857794 1.181387 -0.730340 -v 0.853658 1.181387 -0.733581 -v 0.847012 1.183358 -0.735637 -v 0.112109 0.787154 -0.726955 -v 0.115750 0.789125 -0.732973 -v 0.120534 0.789125 -0.735475 -v 0.126814 0.787154 -0.735637 -v 0.125502 0.787154 -0.149193 -v 0.121182 0.789125 -0.153063 -v 0.117047 0.789125 -0.156304 -v 0.114423 0.787154 -0.159690 -v 0.246749 0.852258 -0.727568 -v 0.246749 1.118254 -0.727568 -v 0.246749 0.852258 -0.734150 -v 0.246749 1.118254 -0.734150 -v 0.282202 0.852258 -0.727568 -v 0.282202 1.118254 -0.727568 -v 0.282202 0.852258 -0.734150 -v 0.282202 1.118254 -0.734150 -v 0.246749 0.985256 -0.755632 -v 0.246749 0.985256 -0.762214 -v 0.264475 0.852258 -0.734150 -v 0.264475 1.118254 -0.734150 -v 0.282202 0.985256 -0.762214 -v 0.282202 0.985256 -0.755632 -v 0.264475 0.852258 -0.727568 -v 0.264475 1.118254 -0.727568 -v 0.264475 0.985256 -0.755632 -v 0.264475 0.985256 -0.762214 -v 0.246749 0.852258 -0.730859 -v 0.246749 1.051755 -0.751094 -v 0.246749 1.118254 -0.730859 -v 0.246749 0.918757 -0.754385 -v 0.255612 0.852258 -0.734150 -v 0.273339 1.118254 -0.734150 -v 0.282202 0.918757 -0.754385 -v 0.282202 0.852258 -0.730859 -v 0.282202 1.118254 -0.730859 -v 0.282202 0.918757 -0.747802 -v 0.273339 0.852258 -0.727568 -v 0.255612 1.118254 -0.727568 -v 0.246749 0.918757 -0.747802 -v 0.246749 1.051755 -0.757676 -v 0.273339 0.852258 -0.734150 -v 0.255612 1.118254 -0.734150 -v 0.282202 1.051755 -0.757676 -v 0.282202 1.051755 -0.751094 -v 0.255612 0.852258 -0.727568 -v 0.273339 1.118254 -0.727568 -v 0.264475 1.118254 -0.730849 -v 0.264475 0.852258 -0.730849 -v 0.255612 0.985256 -0.755632 -v 0.273339 0.985256 -0.755632 -v 0.264475 0.918757 -0.747802 -v 0.264475 1.051755 -0.751094 -v 0.282202 0.985256 -0.758923 -v 0.273339 0.985256 -0.762214 -v 0.255612 0.985256 -0.762214 -v 0.264475 0.918757 -0.754385 -v 0.264475 1.051755 -0.757676 -v 0.246749 0.985256 -0.758923 -v 0.246749 0.918757 -0.751094 -v 0.255612 1.051755 -0.757676 -v 0.255612 0.918757 -0.754385 -v 0.273339 0.918757 -0.754385 -v 0.282202 0.918757 -0.751094 -v 0.273339 1.051755 -0.751094 -v 0.273339 0.918757 -0.747802 -v 0.255612 0.918757 -0.747802 -v 0.255612 0.852258 -0.730849 -v 0.273339 1.118254 -0.730849 -v 0.255612 1.118254 -0.730849 -v 0.273339 0.852258 -0.730849 -v 0.255612 1.051755 -0.751094 -v 0.282202 1.051755 -0.754385 -v 0.273339 1.051755 -0.757676 -v 0.246749 1.051755 -0.754385 -v 0.303131 1.127133 -0.208209 -v 0.303131 0.840926 -0.208209 -v 0.820933 1.127133 -0.208209 -v 0.826308 1.125951 -0.208209 -v 0.835231 1.121211 -0.208209 -v 0.837458 1.118357 -0.208209 -v 0.836597 0.849703 -0.208209 -v 0.834371 0.846848 -0.208209 -v 0.825447 0.842109 -0.208209 -v 0.820073 0.840926 -0.208209 -v 0.339101 1.091541 -0.732176 -v 0.339101 0.874846 -0.732176 -v 0.796813 1.091541 -0.732176 -v 0.800847 1.090653 -0.732176 -v 0.807544 1.087096 -0.732176 -v 0.809215 1.084954 -0.732176 -v 0.808569 0.881432 -0.732176 -v 0.806898 0.879290 -0.732176 -v 0.800201 0.875733 -0.732176 -v 0.796168 0.874846 -0.732176 -v 0.238197 0.840926 -0.731795 -v 0.238197 1.127133 -0.731795 -v 0.415576 0.913412 -0.000812 -v 0.415576 1.057100 -0.000812 -v 0.415576 0.913412 -0.157633 -v 0.415576 1.057100 -0.157633 -v 0.559264 0.913412 -0.000812 -v 0.559264 1.057100 -0.000812 -v 0.559264 0.913412 -0.157633 -v 0.559264 1.057100 -0.157633 -vt 0.187756 0.185116 -vt 0.190250 0.359586 -vt 0.187359 0.359553 -vt 0.184816 0.183014 -vt 0.011904 0.361665 -vt 0.011410 0.182951 -vt 0.434160 0.035160 -vt 0.437617 0.233175 -vt 0.433848 0.233203 -vt 0.421314 0.234632 -vt 0.421314 0.024505 -vt 0.424461 0.141338 -vt 0.180342 0.556180 -vt 0.006258 0.555192 -vt 0.180341 0.553216 -vt 0.619010 0.294600 -vt 0.615336 0.293939 -vt 0.618997 0.293255 -vt 0.560911 0.771909 -vt 0.499383 0.771947 -vt 0.573681 0.763070 -vt 0.551781 0.278506 -vt 0.554882 0.277399 -vt 0.554849 0.278591 -vt 0.477598 0.276038 -vt 0.480699 0.274931 -vt 0.480666 0.276123 -vt 0.456844 0.275464 -vt 0.476217 0.274807 -vt 0.476184 0.275999 -vt 0.556296 0.277438 -vt 0.556263 0.278630 -vt 0.477631 0.274846 -vt 0.575727 0.277976 -vt 0.575694 0.279168 -vt 0.550366 0.278467 -vt 0.551814 0.277314 -vt 0.482080 0.276163 -vt 0.550399 0.277275 -vt 0.482113 0.274971 -vt 0.529499 0.294540 -vt 0.531162 0.293570 -vt 0.531174 0.294916 -vt 0.615349 0.295285 -vt 0.613628 0.294117 -vt 0.536559 0.295677 -vt 0.613641 0.295463 -vt 0.534848 0.295531 -vt 0.536546 0.294332 -vt 0.620678 0.294193 -vt 0.620665 0.292848 -vt 0.534835 0.294186 -vt 0.390231 0.176341 -vt 0.365296 0.176585 -vt 0.365277 0.174628 -vt 0.008379 0.053132 -vt 0.010531 0.175541 -vt 0.008501 0.175525 -vt 0.678815 0.051868 -vt 0.681765 0.009865 -vt 0.681766 0.212069 -vt 0.191651 0.177060 -vt 0.014270 0.002844 -vt 0.192984 0.003659 -vt 0.661827 0.216665 -vt 0.508504 0.216408 -vt 0.472754 0.213047 -vt 0.182461 0.549659 -vt 0.002549 0.378060 -vt 0.181254 0.376258 -vt 0.008747 0.359552 -vt 0.004975 0.185105 -vt 0.008120 0.184943 -vt 0.006284 0.051542 -vt 0.010601 0.053093 -vt 0.004000 0.561180 -vt 0.003756 0.551834 -vt 0.006284 0.177060 -vt 0.012743 0.177034 -vt 0.012878 0.051518 -vt 0.184195 0.361727 -vt 0.193393 0.361723 -vt 0.190903 0.184977 -vt 0.194207 0.183009 -vt 0.182571 0.559338 -vt 0.182461 0.550031 -vt 0.006443 0.558120 -vt 0.002020 0.183025 -vt 0.004195 0.360497 -vt 0.005856 0.359540 -vt 0.363575 0.189539 -vt 0.388348 0.187899 -vt 0.391408 0.191039 -vt 0.913862 0.374962 -vt 0.932207 0.411652 -vt 0.913862 0.411652 -vt 0.947121 0.484382 -vt 0.928948 0.502555 -vt 0.928948 0.484382 -vt 0.922832 0.558833 -vt 0.904487 0.595522 -vt 0.904487 0.558833 -vt 0.904487 0.650556 -vt 0.922832 0.668901 -vt 0.904487 0.668901 -vt 0.831108 0.558833 -vt 0.849453 0.595522 -vt 0.831108 0.595522 -vt 0.977866 0.558833 -vt 0.996210 0.595522 -vt 0.977866 0.595522 -vt 0.959521 0.558833 -vt 0.941176 0.595522 -vt 0.941176 0.558833 -vt 0.812764 0.558833 -vt 0.794419 0.595522 -vt 0.794419 0.558833 -vt 0.886142 0.650556 -vt 0.867798 0.668901 -vt 0.867798 0.650556 -vt 0.867798 0.613867 -vt 0.886142 0.632212 -vt 0.867798 0.632212 -vt 0.922832 0.613867 -vt 0.904487 0.632212 -vt 0.904487 0.613867 -vt 0.867798 0.558833 -vt 0.886142 0.595522 -vt 0.867798 0.595522 -vt 0.899580 0.488095 -vt 0.881478 0.506196 -vt 0.881478 0.488095 -vt 0.899580 0.451892 -vt 0.881478 0.469993 -vt 0.881478 0.451892 -vt 0.947121 0.448035 -vt 0.928948 0.466208 -vt 0.928948 0.448035 -vt 0.895517 0.374962 -vt 0.877173 0.411652 -vt 0.877173 0.374962 -vt 0.858828 0.411652 -vt 0.858828 0.374962 -vt 0.877173 0.338273 -vt 0.858828 0.338273 -vt 0.895517 0.338273 -vt 0.917681 0.451892 -vt 0.899580 0.469993 -vt 0.917681 0.433790 -vt 0.899580 0.433790 -vt 0.947121 0.429861 -vt 0.928948 0.429861 -vt 0.867173 0.448727 -vt 0.848828 0.467071 -vt 0.848828 0.448727 -vt 0.867173 0.430382 -vt 0.848828 0.430382 -vt 0.881478 0.433790 -vt 0.867173 0.485416 -vt 0.848828 0.503761 -vt 0.848828 0.485416 -vt 0.867173 0.467071 -vt 0.849453 0.558833 -vt 0.849453 0.522144 -vt 0.867798 0.522144 -vt 0.886142 0.558833 -vt 0.886142 0.613867 -vt 0.922832 0.595522 -vt 0.849453 0.632212 -vt 0.849453 0.613867 -vt 0.849453 0.668901 -vt 0.849453 0.650556 -vt 0.776074 0.595522 -vt 0.776074 0.558833 -vt 0.794419 0.522144 -vt 0.776074 0.522144 -vt 0.812764 0.522144 -vt 0.941176 0.522144 -vt 0.922832 0.522144 -vt 0.959521 0.522144 -vt 0.959521 0.595522 -vt 0.977866 0.522144 -vt 0.996210 0.558833 -vt 0.812764 0.595522 -vt 0.831108 0.522144 -vt 0.886142 0.668901 -vt 0.922832 0.632212 -vt 0.904487 0.522144 -vt 0.886142 0.522144 -vt 0.917681 0.488095 -vt 0.899580 0.506196 -vt 0.917681 0.469993 -vt 0.947121 0.466208 -vt 0.895517 0.411652 -vt 0.913862 0.338273 -vt 0.932207 0.374962 -vt 0.002361 0.690819 -vt 0.139582 0.797050 -vt 0.002382 0.797077 -vt 0.002401 0.574653 -vt 0.139602 0.577216 -vt 0.002401 0.577243 -vt 0.002381 0.685835 -vt 0.139582 0.688398 -vt 0.002381 0.688425 -vt 0.002381 0.579638 -vt 0.139602 0.683414 -vt 0.002401 0.683441 -vt 0.142087 0.686223 -vt 0.139686 0.823759 -vt 0.139686 0.686202 -vt 0.139581 0.685808 -vt 0.139686 0.574626 -vt 0.278011 0.686118 -vt 0.139686 0.686118 -vt 0.248444 0.686223 -vt 0.142087 0.823780 -vt 0.139581 0.579611 -vt 0.139561 0.690792 -vt 0.250041 0.742196 -vt 0.249216 0.741377 -vt 0.249011 0.740883 -vt 0.774121 0.040412 -vt 0.741243 0.024151 -vt 0.740050 0.027021 -vt 0.969467 0.033059 -vt 0.943495 0.044419 -vt 0.971709 0.034142 -vt 0.946381 0.253662 -vt 0.739889 0.270791 -vt 0.975938 0.269283 -vt 0.769234 0.254505 -vt 0.778655 0.034951 -vt 0.748853 0.018299 -vt 0.746005 0.019438 -vt 0.975297 0.038147 -vt 0.946804 0.049219 -vt 0.976119 0.040486 -vt 0.775156 0.037976 -vt 0.946189 0.047450 -vt 0.941812 0.043603 -vt 0.456798 0.276753 -vt 0.529486 0.293195 -vt 0.696767 0.284505 -vt 0.696612 0.283178 -vt 0.740071 0.299235 -vt 0.431207 0.203196 -vt 0.430221 0.118309 -vt 0.434139 0.035214 -vt 0.688985 0.442006 -vt 0.730728 0.480254 -vt 0.688985 0.480254 -vt 0.730728 0.556749 -vt 0.688985 0.518501 -vt 0.730728 0.518501 -vt 0.754269 0.654412 -vt 0.666048 0.576401 -vt 0.754269 0.576401 -vt 0.730728 0.442006 -vt 0.688985 0.403759 -vt 0.730728 0.403759 -vt 0.437617 0.035132 -vt 0.428782 0.141338 -vt 0.428782 0.234632 -vt 0.422863 0.024375 -vt 0.423529 0.042958 -vt 0.424425 0.042882 -vt 0.499383 0.483956 -vt 0.561202 0.483917 -vt 0.573995 0.492741 -vt 0.572269 0.489869 -vt 0.565361 0.485105 -vt 0.571963 0.765944 -vt 0.565067 0.770717 -vt 0.456877 0.274272 -vt 0.362261 0.174619 -vt 0.362252 0.177081 -vt 0.221168 0.176128 -vt 0.218310 0.173556 -vt 0.218310 0.006092 -vt 0.221417 0.003539 -vt 0.388881 0.003540 -vt 0.391433 0.006646 -vt 0.393601 0.173750 -vt 0.525055 0.212989 -vt 0.674718 0.186092 -vt 0.524902 0.186971 -vt 0.472754 0.045915 -vt 0.472804 0.009580 -vt 0.673151 0.046188 -vt 0.676096 0.185512 -vt 0.678376 0.183205 -vt 0.674995 0.046955 -vt 0.678054 0.050022 -vt 0.678940 0.181820 -vt 0.012947 0.175130 -vt 0.698934 0.213354 -vt 0.698934 0.245794 -vt 0.666837 0.221675 -vt 0.666837 0.245794 -vt 0.503488 0.245686 -vt 0.472755 0.245833 -vt 0.503488 0.221424 -vt 0.666162 0.220045 -vt 0.663456 0.217340 -vt 0.504163 0.219793 -vt 0.506872 0.217084 -vt 0.004989 0.551834 -vt 0.390747 0.356145 -vt 0.386158 0.360486 -vt 0.360628 0.189572 -vt 0.219798 0.360486 -vt 0.216697 0.357385 -vt 0.216697 0.191025 -vt 0.219798 0.187924 -vt 0.360628 0.187426 -vt 0.363600 0.187579 -vt 0.947121 0.502555 -vt 0.922832 0.650556 -vt 0.867173 0.503761 -vt 0.996210 0.522144 -vt 0.917681 0.506196 -vt 0.932207 0.338273 -vt 0.139601 0.574626 -vt 0.278011 0.574626 -vt 0.248444 0.823780 -vt 0.249011 0.687906 -vt 0.294366 0.687906 -vt 0.294366 0.740616 -vt 0.294160 0.741111 -vt 0.292839 0.742143 -vt 0.250538 0.742399 -vt 0.293336 0.741935 -vt 0.781306 0.033891 -vt 0.457098 0.275488 -vt 0.976119 0.297728 -vt 0.433827 0.231012 -vt 0.431907 0.231171 -vt 0.429916 0.203288 -vt 0.426195 0.118261 -vt 0.427181 0.035132 -vt 0.688985 0.556749 -vt 0.666048 0.654412 -vn 0.6168 0.0000 0.7871 -vn 0.0025 0.0046 1.0000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 0.0000 -vn -0.6168 0.0073 -0.7871 -vn -0.4637 -0.8731 -0.1506 -vn 0.4691 0.8832 0.0000 -vn 0.4691 -0.8832 0.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.2148 0.9766 0.0000 -vn 0.2148 -0.9766 0.0000 -vn 0.0000 1.0000 0.0000 -vn 0.7885 0.6150 0.0000 -vn 1.0000 -0.0032 0.0000 -vn 0.7885 -0.6150 0.0000 -vn -0.2143 0.9743 -0.0697 -vn -0.7638 -0.5958 -0.2482 -vn -0.9511 0.0030 -0.3090 -vn -0.7639 0.5958 -0.2482 -vn -0.2143 -0.9743 -0.0696 -vn -0.4637 0.8731 -0.1507 -vn 0.6168 0.0000 -0.7871 -vn 1.0000 0.0058 -0.0041 -vn -1.0000 0.0058 0.0041 -vn -0.6168 0.0000 0.7871 -vn 0.5448 -0.4689 -0.6952 -vn -0.2589 -0.8607 -0.4385 -vn 0.3836 0.7831 -0.4895 -vn 0.8931 0.0000 -0.4499 -vn 0.3427 0.0009 -0.9394 -vn 0.3836 0.7831 0.4895 -vn 0.2955 0.0000 0.9553 -vn 0.5448 -0.4690 0.6952 -vn 0.5674 0.0071 0.8234 -vn -0.3836 0.7831 -0.4895 -vn -0.2969 0.0051 -0.9549 -vn -0.8565 0.0063 -0.5161 -vn -0.5448 -0.4689 0.6952 -vn -0.6654 0.0073 0.7465 -vn -0.3836 0.7831 0.4895 -vn -0.8931 0.0000 0.4499 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.3335 -0.9427 -vn 0.0000 -0.3335 0.9427 -vn 0.0000 0.1169 0.9931 -vn 0.0000 -0.1169 -0.9931 -vn 0.0000 0.0681 -0.9977 -vn 0.0000 -0.2911 -0.9567 -vn 0.0000 -0.0681 0.9977 -vn 0.0000 0.2911 0.9567 -vn -0.4691 0.8832 0.0000 -vn -0.4691 -0.8832 0.0000 -vn -1.0000 0.0032 0.0000 -vn -0.2149 0.9766 0.0000 -vn -0.7885 -0.6150 0.0000 -vn -0.7886 0.6150 0.0000 -vn -0.2148 -0.9766 0.0000 -vn -0.0059 0.0000 -1.0000 -vn 0.0000 0.0000 1.0000 -vn 1.0000 0.0090 0.0000 -vn 0.9796 -0.0017 -0.2012 -vn -0.4635 0.0050 -0.8861 -vn -0.4637 -0.8731 -0.1507 -vn -0.2143 0.9743 -0.0696 -vn -0.7639 -0.5957 -0.2482 -vn -0.7639 0.5957 -0.2482 -vn 0.4513 -0.6177 -0.6440 -vn -0.2689 -0.8145 -0.5141 -vn 0.7912 0.0028 -0.6115 -vn 0.2956 0.0000 -0.9553 -vn 0.3836 0.7831 0.4894 -vn 0.4288 0.0025 0.9034 -vn 0.5423 -0.0782 0.8365 -vn 0.8931 0.0000 0.4499 -vn -0.3836 0.7831 -0.4894 -vn -0.0258 0.0001 -0.9997 -vn -0.8920 0.0073 -0.4520 -vn -0.6855 -0.0817 0.7235 -vn -0.2955 0.0000 0.9553 -vn -0.7912 0.0028 0.6115 -vn -0.7885 0.6150 0.0000 -usemtl Material.002 -s off -f 60/1/1 63/2/1 62/3/1 -f 59/4/2 51/5/2 77/6/2 -f 5/7/3 2/8/3 1/9/3 -f 2/10/4 6/11/4 28/12/4 -f 54/13/5 74/14/5 55/15/5 -f 15/16/6 41/17/6 40/18/6 -f 32/19/3 28/20/3 30/21/3 -f 21/22/7 35/23/7 24/24/7 -f 12/25/8 29/26/8 26/27/8 -f 8/28/9 32/29/9 11/30/9 -f 24/24/10 36/31/10 23/32/10 -f 11/30/11 31/33/11 12/25/11 -f 23/32/12 27/34/12 7/35/12 -f 22/36/13 34/37/13 21/22/13 -f 25/38/14 33/39/14 22/36/14 -f 26/27/15 30/40/15 25/38/15 -f 18/41/16 45/42/16 17/43/16 -f 14/44/17 42/45/17 41/17/17 -f 19/46/18 42/45/18 13/47/18 -f 20/48/19 43/49/19 19/46/19 -f 16/50/20 40/18/20 39/51/20 -f 17/43/21 44/52/21 20/48/21 -f 76/53/9 47/54/9 6/55/9 -f 66/56/22 71/57/22 70/58/22 -f 13/59/3 72/60/3 68/61/3 -f 67/62/23 64/63/23 57/64/23 -f 25/65/3 22/66/3 76/67/3 -f 80/68/24 56/69/24 73/70/24 -f 52/71/25 79/72/25 78/73/25 -f 67/74/26 65/75/26 66/56/26 -f 74/14/27 76/76/27 73/77/27 -f 69/78/28 71/57/28 72/79/28 -f 69/78/29 66/56/29 70/58/29 -f 72/79/30 65/75/30 68/80/30 -f 61/81/31 63/2/31 64/82/31 -f 61/81/32 60/1/32 62/3/32 -f 59/4/33 58/83/33 60/1/33 -f 64/82/34 58/83/34 57/84/34 -f 53/85/35 55/15/35 56/86/35 -f 53/85/36 75/87/36 54/13/36 -f 73/77/37 55/15/37 74/14/37 -f 80/88/38 78/73/38 79/72/38 -f 51/5/39 78/73/39 77/6/39 -f 49/89/40 52/71/40 51/5/40 -f 49/89/41 79/72/41 50/90/41 -f 2/91/12 53/92/12 56/93/12 -f 146/94/42 84/95/42 112/96/42 -f 104/97/43 115/98/43 145/99/43 -f 107/100/4 116/101/4 144/102/4 -f 143/103/44 82/104/44 100/105/44 -f 142/106/9 85/107/9 109/108/9 -f 141/109/12 82/110/12 110/111/12 -f 119/112/12 118/113/12 140/114/12 -f 120/115/9 117/116/9 139/117/9 -f 121/118/45 111/119/45 138/120/45 -f 137/121/45 97/122/45 123/123/45 -f 118/124/44 124/125/44 136/126/44 -f 135/127/4 94/128/4 108/129/4 -f 126/130/46 105/131/46 134/132/46 -f 127/133/46 128/134/46 133/135/46 -f 114/136/43 129/137/43 132/138/43 -f 130/139/42 102/140/42 131/141/42 -f 131/141/42 83/142/42 99/143/42 -f 111/144/42 99/143/42 81/145/42 -f 89/146/42 131/141/42 111/144/42 -f 132/147/47 98/148/47 127/133/47 -f 112/149/47 127/133/47 90/150/47 -f 84/151/43 132/138/43 112/152/43 -f 133/153/48 91/154/48 103/155/48 -f 102/156/48 103/155/48 83/157/48 -f 90/150/46 133/135/46 102/158/46 -f 134/159/48 87/160/48 113/161/48 -f 128/162/48 113/161/48 91/154/48 -f 98/148/46 134/132/46 128/134/46 -f 106/163/4 108/129/4 85/107/4 -f 87/164/4 135/127/4 106/163/4 -f 105/165/4 125/166/4 135/127/4 -f 136/126/49 97/122/49 122/167/49 -f 116/101/49 122/167/49 94/128/49 -f 86/168/44 136/126/44 116/101/44 -f 137/121/50 95/169/50 109/170/50 -f 108/129/50 109/170/50 85/107/50 -f 94/128/45 137/121/45 108/129/45 -f 138/120/50 81/171/50 117/172/50 -f 123/123/50 117/172/50 95/169/50 -f 97/122/45 138/120/45 123/123/45 -f 139/117/9 81/173/9 99/174/9 -f 103/175/9 99/174/9 83/176/9 -f 91/177/9 139/117/9 103/175/9 -f 140/114/12 86/168/12 107/100/12 -f 104/178/12 107/100/12 88/179/12 -f 92/180/12 140/114/12 104/178/12 -f 141/109/12 96/181/12 119/112/12 -f 114/182/12 119/112/12 92/180/12 -f 114/182/12 101/183/12 141/109/12 -f 142/106/9 95/184/9 120/115/9 -f 113/185/9 120/115/9 91/177/9 -f 113/185/9 106/163/9 142/106/9 -f 143/103/49 89/186/49 121/118/49 -f 124/125/49 121/118/49 97/122/49 -f 96/187/44 143/103/44 124/125/44 -f 144/102/4 94/128/4 125/166/4 -f 115/188/4 125/166/4 93/189/4 -f 88/179/4 144/102/4 115/188/4 -f 145/190/47 93/191/47 126/130/47 -f 129/192/47 126/130/47 98/148/47 -f 92/193/43 145/99/43 129/137/43 -f 130/139/42 112/96/42 90/194/42 -f 89/146/42 146/94/42 130/139/42 -f 100/195/42 101/196/42 146/94/42 -f 39/197/9 147/198/9 37/199/9 -f 45/200/51 154/201/51 44/202/51 -f 41/203/52 150/204/52 40/205/52 -f 43/206/53 152/207/53 42/208/53 -f 46/209/54 155/210/54 45/211/54 -f 42/208/55 151/212/55 41/203/55 -f 37/213/4 148/214/4 38/215/4 -f 38/216/12 156/217/12 46/209/12 -f 44/202/56 153/218/56 43/206/56 -f 40/205/57 149/219/57 39/197/57 -f 154/220/3 155/221/3 156/222/3 -f 166/223/3 45/224/3 46/225/3 -f 42/226/3 161/227/3 41/228/3 -f 157/229/3 38/230/3 37/231/3 -f 158/232/3 46/225/3 38/230/3 -f 164/233/3 43/234/3 44/235/3 -f 40/236/3 159/237/3 39/238/3 -f 39/238/3 157/229/3 37/231/3 -f 165/239/3 44/235/3 45/224/3 -f 41/228/3 160/240/3 40/236/3 -f 43/234/3 162/241/3 42/226/3 -f 10/242/12 46/243/12 18/41/12 -f 9/244/9 39/51/9 168/245/9 -f 167/246/58 37/231/58 38/230/58 -f 168/247/42 167/248/42 5/249/42 -f 170/250/42 171/251/42 169/252/42 -f 176/253/4 173/254/4 175/255/4 -f 174/256/59 169/257/59 173/258/59 -f 175/255/9 169/252/9 171/251/9 -f 172/259/12 174/260/12 176/261/12 -f 60/1/1 58/83/1 63/2/1 -f 59/4/59 61/81/59 51/5/59 -f 5/7/3 6/262/3 2/8/3 -f 8/263/4 4/264/4 28/12/4 -f 4/264/4 2/10/4 28/12/4 -f 6/11/60 47/265/60 27/266/60 -f 47/265/60 7/267/60 27/266/60 -f 6/11/61 27/266/61 28/12/61 -f 54/13/62 75/87/62 74/14/62 -f 15/16/63 14/44/63 41/17/63 -f 28/20/3 27/268/3 30/21/3 -f 27/268/3 36/269/3 33/270/3 -f 33/270/3 36/269/3 34/271/3 -f 36/269/3 35/272/3 34/271/3 -f 33/270/3 30/21/3 27/268/3 -f 30/21/3 29/273/3 31/274/3 -f 31/274/3 32/19/3 30/21/3 -f 21/22/7 34/37/7 35/23/7 -f 12/25/8 31/33/8 29/26/8 -f 8/28/9 28/275/9 32/29/9 -f 24/24/10 35/23/10 36/31/10 -f 11/30/11 32/29/11 31/33/11 -f 23/32/12 36/31/12 27/34/12 -f 22/36/13 33/39/13 34/37/13 -f 25/38/14 30/40/14 33/39/14 -f 26/27/15 29/26/15 30/40/15 -f 18/41/64 46/243/64 45/42/64 -f 14/44/65 13/47/65 42/45/65 -f 19/46/18 43/49/18 42/45/18 -f 20/48/66 44/52/66 43/49/66 -f 16/50/20 15/16/20 40/18/20 -f 17/43/21 45/42/21 44/52/21 -f 5/276/9 48/277/9 68/278/9 -f 68/278/9 67/279/9 5/276/9 -f 67/279/9 57/280/9 59/281/9 -f 5/276/9 67/279/9 59/281/9 -f 59/281/9 77/282/9 80/283/9 -f 5/276/9 59/281/9 80/283/9 -f 80/283/9 73/284/9 6/55/9 -f 5/276/9 80/283/9 6/55/9 -f 73/284/9 76/53/9 6/55/9 -f 66/56/22 65/75/22 71/57/22 -f 68/61/3 48/285/3 18/286/3 -f 48/285/3 10/287/3 18/286/3 -f 9/288/3 3/289/3 16/290/3 -f 3/289/3 72/60/3 16/290/3 -f 68/61/3 18/286/3 17/291/3 -f 68/61/3 17/291/3 20/292/3 -f 15/293/3 16/290/3 72/60/3 -f 14/294/3 15/293/3 72/60/3 -f 68/61/3 20/292/3 19/295/3 -f 13/59/3 14/294/3 72/60/3 -f 68/61/3 19/295/3 13/59/3 -f 67/62/4 69/296/4 64/63/4 -f 53/297/3 4/298/3 11/299/3 -f 4/298/3 8/300/3 11/299/3 -f 7/301/3 47/302/3 23/303/3 -f 47/302/3 76/67/3 23/303/3 -f 53/297/3 11/299/3 12/304/3 -f 53/297/3 12/304/3 26/305/3 -f 24/306/3 23/303/3 76/67/3 -f 21/307/3 24/306/3 76/67/3 -f 53/297/3 26/305/3 25/65/3 -f 22/66/3 21/307/3 76/67/3 -f 53/297/3 25/65/3 76/67/3 -f 80/68/42 49/308/42 56/69/42 -f 52/71/25 50/90/25 79/72/25 -f 67/74/67 68/80/67 65/75/67 -f 74/14/68 75/87/68 76/76/68 -f 69/78/28 70/58/28 71/57/28 -f 69/78/69 67/74/69 66/56/69 -f 72/79/70 71/57/70 65/75/70 -f 61/81/71 62/3/71 63/2/71 -f 61/81/72 59/4/72 60/1/72 -f 59/4/73 57/84/73 58/83/73 -f 64/82/74 63/2/74 58/83/74 -f 53/85/75 54/13/75 55/15/75 -f 53/85/76 76/76/76 75/87/76 -f 73/77/77 56/86/77 55/15/77 -f 80/88/78 77/6/78 78/73/78 -f 51/5/79 52/71/79 78/73/79 -f 49/89/40 50/90/40 52/71/40 -f 49/89/80 80/88/80 79/72/80 -f 56/93/12 49/309/12 2/91/12 -f 49/309/12 51/310/12 1/311/12 -f 2/91/12 49/309/12 1/311/12 -f 51/310/12 61/312/12 1/311/12 -f 61/312/12 64/313/12 1/311/12 -f 64/313/12 69/314/12 1/311/12 -f 69/314/12 72/315/12 1/311/12 -f 72/315/12 3/316/12 1/311/12 -f 2/91/12 4/317/12 53/92/12 -f 146/94/42 101/196/42 84/95/42 -f 104/97/43 88/318/43 115/98/43 -f 107/100/4 86/168/4 116/101/4 -f 143/103/44 110/319/44 82/104/44 -f 142/106/9 106/163/9 85/107/9 -f 141/109/12 101/183/12 82/110/12 -f 119/112/12 96/181/12 118/113/12 -f 120/115/9 95/184/9 117/116/9 -f 121/118/45 89/186/45 111/119/45 -f 137/121/45 122/167/45 97/122/45 -f 118/124/44 96/187/44 124/125/44 -f 135/127/4 125/166/4 94/128/4 -f 126/130/46 93/191/46 105/131/46 -f 127/133/46 98/148/46 128/134/46 -f 114/136/43 92/193/43 129/137/43 -f 130/139/42 90/194/42 102/140/42 -f 131/141/42 102/140/42 83/142/42 -f 111/144/42 131/141/42 99/143/42 -f 89/146/42 130/139/42 131/141/42 -f 132/147/47 129/192/47 98/148/47 -f 112/149/47 132/147/47 127/133/47 -f 84/151/43 114/136/43 132/138/43 -f 133/153/48 128/162/48 91/154/48 -f 102/156/48 133/153/48 103/155/48 -f 90/150/46 127/133/46 133/135/46 -f 134/159/48 105/320/48 87/160/48 -f 128/162/48 134/159/48 113/161/48 -f 98/148/46 126/130/46 134/132/46 -f 106/163/4 135/127/4 108/129/4 -f 87/164/4 105/165/4 135/127/4 -f 105/165/4 93/189/4 125/166/4 -f 136/126/49 124/125/49 97/122/49 -f 116/101/49 136/126/49 122/167/49 -f 86/168/44 118/124/44 136/126/44 -f 137/121/50 123/123/50 95/169/50 -f 108/129/50 137/121/50 109/170/50 -f 94/128/45 122/167/45 137/121/45 -f 138/120/50 111/119/50 81/171/50 -f 123/123/50 138/120/50 117/172/50 -f 97/122/45 121/118/45 138/120/45 -f 139/117/9 117/116/9 81/173/9 -f 103/175/9 139/117/9 99/174/9 -f 91/177/9 120/115/9 139/117/9 -f 140/114/12 118/113/12 86/168/12 -f 104/178/12 140/114/12 107/100/12 -f 92/180/12 119/112/12 140/114/12 -f 141/109/12 110/111/12 96/181/12 -f 114/182/12 141/109/12 119/112/12 -f 114/182/12 84/321/12 101/183/12 -f 142/106/9 109/108/9 95/184/9 -f 113/185/9 142/106/9 120/115/9 -f 113/185/9 87/164/9 106/163/9 -f 143/103/49 100/105/49 89/186/49 -f 124/125/49 143/103/49 121/118/49 -f 96/187/44 110/319/44 143/103/44 -f 144/102/4 116/101/4 94/128/4 -f 115/188/4 144/102/4 125/166/4 -f 88/179/4 107/100/4 144/102/4 -f 145/190/47 115/322/47 93/191/47 -f 129/192/47 145/190/47 126/130/47 -f 92/193/43 104/97/43 145/99/43 -f 130/139/42 146/94/42 112/96/42 -f 89/146/42 100/195/42 146/94/42 -f 100/195/42 82/323/42 101/196/42 -f 39/197/9 149/219/9 147/198/9 -f 45/200/51 155/324/51 154/201/51 -f 41/203/52 151/212/52 150/204/52 -f 43/206/53 153/218/53 152/207/53 -f 46/209/54 156/217/54 155/210/54 -f 42/208/55 152/207/55 151/212/55 -f 37/213/4 147/325/4 148/214/4 -f 38/216/12 148/326/12 156/217/12 -f 44/202/81 154/201/81 153/218/81 -f 40/205/57 150/204/57 149/219/57 -f 156/222/3 148/327/3 147/328/3 -f 147/328/3 149/329/3 156/222/3 -f 149/329/3 150/330/3 152/331/3 -f 156/222/3 149/329/3 153/332/3 -f 150/330/3 151/333/3 152/331/3 -f 152/331/3 153/332/3 149/329/3 -f 153/332/3 154/220/3 156/222/3 -f 166/223/3 165/239/3 45/224/3 -f 42/226/3 162/241/3 161/227/3 -f 157/229/3 158/232/3 38/230/3 -f 158/232/3 166/223/3 46/225/3 -f 164/233/3 163/334/3 43/234/3 -f 40/236/3 160/240/3 159/237/3 -f 39/238/3 159/237/3 157/229/3 -f 165/239/3 164/233/3 44/235/3 -f 41/228/3 161/227/3 160/240/3 -f 43/234/3 163/334/3 162/241/3 -f 10/242/12 167/335/12 46/243/12 -f 9/244/9 16/50/9 39/51/9 -f 167/246/58 168/336/58 37/231/58 -f 1/337/42 3/338/42 168/247/42 -f 3/338/42 9/339/42 168/247/42 -f 10/340/42 48/341/42 167/248/42 -f 48/341/42 5/249/42 167/248/42 -f 1/337/42 168/247/42 5/249/42 -f 170/250/42 172/259/42 171/251/42 -f 176/253/4 174/342/4 173/254/4 -f 174/256/59 170/343/59 169/257/59 -f 175/255/9 173/254/9 169/252/9 -f 172/259/12 170/250/12 174/260/12 -o window_Cube.002 -v 0.809482 1.091828 -0.732264 -v 0.338840 1.091828 -0.732264 -v 0.338840 0.874469 -0.732264 -v 0.809482 0.874469 -0.732264 -vt 0.978282 0.984581 -vt 0.711622 0.781054 -vt 0.978133 0.780594 -vt 0.713513 0.984128 -vn 0.0000 0.0000 -1.0000 -usemtl Material.002 -s off -f 178/344/82 180/345/82 179/346/82 -f 178/344/82 177/347/82 180/345/82 o plate_Cylinder -v 0.573046 0.817783 -0.643769 v 0.573046 0.868036 -0.643769 v 0.729762 0.817783 -0.568299 +v 0.573046 0.817783 -0.643769 v 0.729762 0.868036 -0.568299 v 0.768467 0.817783 -0.398719 v 0.768467 0.868036 -0.398719 @@ -969,132 +15,132 @@ v 0.377625 0.817783 -0.398719 v 0.377625 0.868036 -0.398719 v 0.416330 0.817783 -0.568299 v 0.416330 0.868036 -0.568299 -v 0.572966 0.867427 -0.529802 -v 0.572966 0.983075 -0.566974 -v 0.647860 0.867427 -0.486562 -v 0.680052 0.983075 -0.505148 -v 0.647860 0.867427 -0.400082 -v 0.680052 0.983075 -0.381496 -v 0.572966 0.867427 -0.356843 -v 0.572966 0.983075 -0.319670 -v 0.498072 0.867427 -0.400082 -v 0.465880 0.983075 -0.381496 -v 0.498072 0.867427 -0.486562 -v 0.465880 0.983075 -0.505148 -v 0.610413 0.867427 -0.508182 v 0.626509 0.983075 -0.536061 -v 0.572966 0.941312 -0.556665 v 0.671124 0.941312 -0.499994 -v 0.647860 0.867427 -0.443322 +v 0.622045 0.941312 -0.528329 v 0.680052 0.983075 -0.443322 v 0.671124 0.941312 -0.386651 -v 0.610413 0.867427 -0.378463 +v 0.671124 0.941312 -0.443322 v 0.626509 0.983075 -0.350583 v 0.572966 0.941312 -0.329980 -v 0.535519 0.867427 -0.378463 +v 0.622045 0.941312 -0.358315 v 0.519423 0.983075 -0.350583 v 0.474808 0.941312 -0.386651 -v 0.498072 0.867427 -0.443322 +v 0.523887 0.941312 -0.358315 +v 0.572966 0.983075 -0.347524 +v 0.531484 0.983075 -0.371474 v 0.465880 0.983075 -0.443322 v 0.474808 0.941312 -0.499994 -v 0.535519 0.867427 -0.508182 -v 0.519423 0.983075 -0.536061 -v 0.523887 0.941312 -0.528329 v 0.474808 0.941312 -0.443322 -v 0.523887 0.941312 -0.358315 -v 0.622045 0.941312 -0.358315 -v 0.671124 0.941312 -0.443322 -v 0.622045 0.941312 -0.528329 -v 0.572966 0.983075 -0.539121 -v 0.655930 0.983075 -0.491222 -v 0.655930 0.983075 -0.395423 -v 0.572966 0.983075 -0.347524 -v 0.490002 0.983075 -0.395423 -v 0.490002 0.983075 -0.491222 -v 0.614448 0.983075 -0.515171 -v 0.655930 0.983075 -0.443322 +v 0.519423 0.983075 -0.536061 +v 0.572966 0.941312 -0.556665 +v 0.523887 0.941312 -0.528329 +v 0.572966 0.867427 -0.529802 +v 0.535519 0.867427 -0.508182 +v 0.498072 0.867427 -0.486562 +v 0.498072 0.867427 -0.443322 +v 0.498072 0.867427 -0.400082 +v 0.535519 0.867427 -0.378463 +v 0.572966 0.867427 -0.356843 +v 0.610413 0.867427 -0.378463 +v 0.647860 0.867427 -0.400082 +v 0.647860 0.867427 -0.443322 +v 0.647860 0.867427 -0.486562 +v 0.610413 0.867427 -0.508182 v 0.614448 0.983075 -0.371474 -v 0.531484 0.983075 -0.371474 -v 0.490002 0.983075 -0.443322 -v 0.531484 0.983075 -0.515171 -v 0.572966 0.962908 -0.514054 -v 0.634221 0.962908 -0.478688 v 0.634221 0.962908 -0.407956 -v 0.572966 0.962908 -0.372591 -v 0.511710 0.962908 -0.407956 -v 0.511710 0.962908 -0.478688 -v 0.603594 0.962908 -0.496371 -v 0.634221 0.962908 -0.443322 v 0.603594 0.962908 -0.390274 +v 0.572966 0.983075 -0.539121 +v 0.572966 0.983075 -0.566974 +v 0.614448 0.983075 -0.515171 +v 0.655930 0.983075 -0.395423 +v 0.490002 0.983075 -0.491222 +v 0.465880 0.983075 -0.505148 +v 0.655930 0.983075 -0.491222 +v 0.655930 0.983075 -0.443322 +v 0.490002 0.983075 -0.395423 +v 0.465880 0.983075 -0.381496 +v 0.680052 0.983075 -0.505148 +v 0.572966 0.983075 -0.319670 +v 0.680052 0.983075 -0.381496 +v 0.531484 0.983075 -0.515171 +v 0.490002 0.983075 -0.443322 v 0.542338 0.962908 -0.390274 +v 0.634221 0.962908 -0.443322 +v 0.511710 0.962908 -0.407956 +v 0.634221 0.962908 -0.478688 +v 0.572966 0.962908 -0.372591 +v 0.511710 0.962908 -0.478688 +v 0.572966 0.962908 -0.514054 +v 0.603594 0.962908 -0.496371 v 0.511710 0.962908 -0.443322 v 0.542338 0.962908 -0.496371 -v 0.595406 0.982933 -0.519550 -v 0.702492 0.982933 -0.457724 -v 0.702492 0.982933 -0.334072 -v 0.595406 0.982933 -0.272246 -v 0.488321 0.982933 -0.334072 -v 0.488321 0.982933 -0.457724 -v 0.648949 0.982933 -0.488637 -v 0.702492 0.982933 -0.395898 -v 0.648949 0.982933 -0.303159 v 0.541863 0.982933 -0.303159 -v 0.488321 0.982933 -0.395898 -v 0.541863 0.982933 -0.488637 -v 0.678370 0.982933 -0.347999 -v 0.512442 0.982933 -0.347999 -v 0.553924 0.982933 -0.324049 -v 0.553924 0.982933 -0.467747 -v 0.648949 0.999716 -0.488637 -v 0.595406 0.999716 -0.519550 -v 0.702492 0.999716 -0.395898 -v 0.702492 0.999716 -0.457724 -v 0.648949 0.999716 -0.303159 -v 0.702492 0.999716 -0.334072 -v 0.541863 0.999716 -0.303159 -v 0.595406 0.999716 -0.272246 -v 0.488321 0.999716 -0.395898 -v 0.488321 0.999716 -0.334072 -v 0.541863 0.999716 -0.488637 -v 0.488321 0.999716 -0.457724 -v 0.595406 0.999716 -0.491697 -v 0.636888 0.999716 -0.324049 -v 0.553924 0.999716 -0.324049 -v 0.512442 0.999716 -0.395898 -v 0.553924 0.999716 -0.467747 -v 0.595406 0.982933 -0.491697 -v 0.678370 0.982933 -0.443797 v 0.595406 0.982933 -0.300100 +v 0.595406 0.982933 -0.272246 +v 0.595406 0.982933 -0.491697 +v 0.541863 0.982933 -0.488637 +v 0.595406 0.982933 -0.519550 +v 0.648949 0.982933 -0.488637 +v 0.648949 0.982933 -0.303159 +v 0.678370 0.982933 -0.347999 +v 0.702492 0.982933 -0.334072 v 0.512442 0.982933 -0.443797 -v 0.636888 0.982933 -0.467747 -v 0.678370 0.982933 -0.395898 -v 0.636888 0.982933 -0.324049 -v 0.512442 0.982933 -0.395898 -v 0.636888 0.999716 -0.467747 -v 0.678370 0.999716 -0.395898 -v 0.678370 0.999716 -0.443797 -v 0.678370 0.999716 -0.347999 +v 0.488321 0.982933 -0.395898 +v 0.488321 0.982933 -0.457724 +v 0.702492 0.982933 -0.395898 +v 0.678370 0.982933 -0.443797 +v 0.702492 0.982933 -0.457724 +v 0.512442 0.982933 -0.347999 +v 0.488321 0.982933 -0.334072 +v 0.541863 0.999716 -0.303159 v 0.595406 0.999716 -0.300100 -v 0.512442 0.999716 -0.347999 +v 0.553924 0.999716 -0.324049 +v 0.541863 0.999716 -0.488637 +v 0.595406 0.999716 -0.491697 +v 0.595406 0.999716 -0.519550 +v 0.648949 0.999716 -0.488637 +v 0.636888 0.999716 -0.467747 +v 0.648949 0.999716 -0.303159 +v 0.678370 0.999716 -0.347999 +v 0.636888 0.999716 -0.324049 +v 0.488321 0.999716 -0.395898 v 0.512442 0.999716 -0.443797 -v 0.556395 0.998139 -0.385001 -v 0.526238 0.998974 -0.385001 -v 0.556395 0.998139 -0.406796 -v 0.526238 0.998974 -0.406796 -v 0.634417 0.998139 -0.385001 -v 0.667116 0.998562 -0.385001 -v 0.634417 0.998139 -0.406796 -v 0.667116 0.998562 -0.406796 -v 0.556395 0.998139 -0.395898 -v 0.526238 0.998974 -0.395898 +v 0.488321 0.999716 -0.457724 +v 0.702492 0.999716 -0.395898 +v 0.678370 0.999716 -0.443797 +v 0.678370 0.999716 -0.395898 +v 0.512442 0.999716 -0.347999 +v 0.488321 0.999716 -0.334072 +v 0.702492 0.999716 -0.457724 +v 0.595406 0.999716 -0.272246 +v 0.702492 0.999716 -0.334072 +v 0.553924 0.999716 -0.467747 +v 0.512442 0.999716 -0.395898 v 0.595406 1.026090 -0.406796 -v 0.595406 1.052068 -0.406796 -v 0.634417 0.998139 -0.395898 -v 0.667116 0.998562 -0.395898 +v 0.667116 0.998562 -0.406796 +v 0.634417 0.998139 -0.406796 v 0.595406 1.026090 -0.385001 +v 0.526238 0.998974 -0.385001 +v 0.556395 0.998139 -0.385001 +v 0.634417 0.998139 -0.395898 +v 0.595406 1.026090 -0.395898 +v 0.526238 0.998974 -0.395898 v 0.595406 1.052068 -0.385001 v 0.595406 1.052068 -0.395898 -v 0.595406 1.026090 -0.395898 +v 0.667116 0.998562 -0.385001 +v 0.667116 0.998562 -0.395898 +v 0.595406 1.052068 -0.406796 +v 0.526238 0.998974 -0.406796 +v 0.556395 0.998139 -0.395898 +v 0.556395 0.998139 -0.406796 +v 0.634417 0.998139 -0.385001 +v 0.553924 0.982933 -0.324049 +v 0.636888 0.982933 -0.324049 +v 0.678370 0.982933 -0.395898 +v 0.553924 0.982933 -0.467747 +v 0.636888 0.982933 -0.467747 +v 0.512442 0.982933 -0.395898 vt 0.516568 0.925663 vt 0.501815 0.874025 vt 0.516568 0.874025 @@ -1345,26 +391,32 @@ vn 0.0000 1.0000 0.0000 vn -0.9749 0.0000 -0.2225 vn -0.4339 0.0000 -0.9010 vn 0.4890 -0.2091 -0.8469 +vn 0.4889 -0.2090 -0.8469 +vn 0.4889 -0.2091 -0.8469 vn 0.9779 -0.2091 0.0000 -vn 0.4890 -0.2091 0.8469 +vn 0.4889 -0.2091 0.8469 +vn -0.4889 -0.2091 0.8469 vn -0.4890 -0.2091 0.8469 vn -0.9779 -0.2091 0.0000 +vn -0.4890 -0.2091 -0.8469 vn -0.4889 -0.2091 -0.8469 vn -0.4769 -0.3003 -0.8260 -vn -0.4890 -0.2091 -0.8469 +vn -0.4889 -0.2090 -0.8469 vn -0.9538 -0.3003 0.0000 vn -0.4769 -0.3003 0.8260 vn 0.4769 -0.3003 0.8260 +vn 0.4769 -0.3003 0.8261 +vn 0.4890 -0.2091 0.8469 vn 0.9538 -0.3003 0.0000 vn 0.4769 -0.3003 -0.8260 -vn 0.4889 -0.2091 -0.8469 vn -0.3403 0.7326 -0.5894 vn 0.3403 0.7326 -0.5894 vn -0.3403 0.7326 0.5894 +vn -0.3403 0.7327 0.5894 vn 0.6806 0.7326 0.0000 vn -0.6806 0.7326 0.0000 vn 0.3403 0.7326 0.5894 -vn 0.0000 -1.0000 0.0000 +vn 0.0000 -1.0000 -0.0000 vn -0.5000 0.0000 -0.8660 vn 0.5000 0.0000 -0.8660 vn 1.0000 0.0000 0.0000 @@ -1373,251 +425,1187 @@ vn -0.5000 0.0000 0.8660 vn -1.0000 0.0000 0.0000 vn 0.0000 0.0000 -1.0000 vn -0.5824 -0.8129 0.0000 -vn -0.6089 0.7933 0.0000 +vn -0.6089 0.7932 0.0000 vn 0.5980 0.8015 0.0000 vn 0.5824 -0.8129 0.0000 -vn -0.6089 0.7932 0.0000 -usemtl Material.002 -s off -f 182/348/83 183/349/83 181/350/83 -f 184/351/84 185/352/84 183/349/84 -f 186/353/85 187/354/85 185/352/85 -f 188/355/86 189/356/86 187/354/86 -f 190/357/87 191/358/87 189/356/87 -f 190/359/88 188/360/88 182/361/88 -f 192/362/89 193/363/89 191/358/89 -f 194/364/90 181/365/90 193/363/90 -f 208/366/91 210/367/91 230/368/91 -f 212/369/92 213/370/92 229/371/92 -f 215/372/93 216/373/93 228/374/93 -f 218/375/94 219/376/94 227/377/94 -f 218/375/88 234/378/88 240/379/88 -f 221/380/95 222/381/95 226/382/95 -f 224/383/96 209/384/96 225/385/96 -f 225/385/97 195/386/97 223/387/97 -f 205/388/97 225/385/97 223/387/97 -f 222/381/98 224/383/98 225/385/98 -f 226/382/99 205/388/99 220/389/99 -f 203/390/99 226/382/99 220/389/99 -f 219/376/95 221/380/95 226/382/95 -f 227/377/100 203/390/100 217/391/100 -f 201/392/100 227/377/100 217/391/100 -f 216/373/94 218/375/94 227/377/94 -f 228/374/101 201/392/101 214/393/101 -f 199/394/101 228/374/101 214/393/101 -f 213/370/93 215/372/93 228/374/93 -f 229/371/102 199/394/102 211/395/102 -f 197/396/102 229/371/102 211/395/102 -f 210/367/92 212/369/92 229/371/92 -f 230/368/103 197/396/103 207/397/103 -f 195/398/103 230/368/103 207/397/103 -f 209/399/104 208/366/104 230/368/104 -f 239/400/105 245/401/105 251/402/105 -f 224/383/88 231/403/88 196/404/88 -f 208/366/88 231/405/88 237/406/88 -f 215/372/88 233/407/88 239/408/88 -f 221/380/88 236/409/88 206/410/88 -f 212/369/88 232/411/88 238/412/88 -f 218/375/88 235/413/88 204/414/88 -f 208/366/88 232/411/88 198/415/88 -f 215/372/88 234/378/88 202/416/88 -f 212/369/88 233/407/88 200/417/88 -f 224/383/88 236/409/88 242/418/88 -f 221/380/88 235/413/88 241/419/88 -f 252/420/88 251/421/88 250/422/88 -f 240/423/106 247/424/106 235/425/106 -f 237/426/107 244/427/107 232/428/107 -f 240/423/106 246/429/106 252/430/106 -f 241/431/108 248/432/108 236/433/108 -f 237/426/107 243/434/107 249/435/107 -f 238/436/109 245/401/109 233/437/109 -f 241/431/108 247/424/108 253/438/108 -f 242/439/110 243/434/110 231/440/110 -f 238/436/109 244/427/109 250/441/109 -f 239/400/105 246/429/105 234/442/105 -f 242/439/110 248/432/110 254/443/110 -f 264/444/111 290/445/111 258/446/111 -f 288/447/111 266/448/111 255/449/111 -f 261/450/111 288/447/111 255/449/111 -f 263/451/111 267/452/111 257/453/111 -f 291/454/111 265/455/111 260/456/111 -f 262/457/111 289/458/111 256/459/111 -f 268/460/111 264/444/111 259/461/111 -f 289/458/111 261/450/111 256/459/111 -f 290/445/111 263/451/111 258/446/111 -f 267/452/111 262/457/111 257/453/111 -f 266/448/111 291/454/111 260/456/111 -f 265/455/111 268/460/111 259/461/111 -f 277/462/88 300/463/88 285/464/88 -f 281/465/88 283/466/88 272/467/88 -f 271/468/88 283/466/88 296/469/88 -f 275/470/88 299/471/88 284/472/88 -f 279/473/88 302/474/88 282/475/88 -f 273/476/88 298/477/88 297/478/88 -f 277/462/88 301/479/88 280/480/88 -f 271/468/88 298/477/88 274/481/88 -f 275/470/88 300/463/88 278/482/88 -f 273/476/88 299/471/88 276/483/88 -f 281/465/88 302/474/88 287/484/88 -f 279/473/88 301/479/88 286/485/88 -f 260/486/112 281/487/112 266/488/112 -f 261/489/113 274/490/113 256/491/113 -f 262/492/114 276/493/114 257/494/114 -f 255/495/113 271/496/113 261/489/113 -f 263/497/115 278/498/115 258/499/115 -f 256/500/114 273/501/114 262/492/114 -f 264/502/116 280/503/116 259/504/116 -f 257/494/115 275/505/115 263/497/115 -f 265/506/117 282/507/117 260/486/117 -f 258/499/116 277/508/116 264/502/116 -f 266/488/112 272/509/112 255/495/112 -f 259/504/117 279/510/117 265/506/117 -f 285/511/88 284/512/88 297/513/88 -f 313/514/118 310/515/118 309/516/118 -f 317/517/86 304/518/86 303/519/86 -f 315/520/119 317/521/119 320/522/119 -f 312/523/120 318/524/120 319/525/120 -f 319/526/121 308/527/121 316/528/121 -f 314/529/121 316/530/121 310/515/121 -f 306/531/120 319/532/120 314/533/120 -f 320/534/122 303/519/122 311/535/122 -f 313/536/122 311/537/122 305/538/122 -f 309/516/119 320/539/119 313/514/119 -f 308/527/86 317/521/86 307/540/86 -f 306/531/118 313/536/118 305/538/118 -f 269/541/88 294/542/88 293/543/88 -f 182/348/83 184/351/83 183/349/83 -f 184/351/84 186/353/84 185/352/84 -f 186/353/85 188/355/85 187/354/85 -f 188/355/86 190/357/86 189/356/86 -f 190/357/87 192/362/87 191/358/87 -f 186/544/88 184/545/88 188/360/88 -f 184/545/88 182/361/88 188/360/88 -f 182/361/88 194/546/88 192/547/88 -f 192/547/88 190/359/88 182/361/88 -f 192/362/89 194/364/89 193/363/89 -f 194/364/90 182/548/90 181/365/90 -f 208/366/91 198/415/91 210/367/91 -f 212/369/92 200/417/92 213/370/92 -f 215/372/93 202/416/93 216/373/93 -f 218/375/94 204/414/94 219/376/94 -f 218/375/88 202/416/88 234/378/88 -f 221/380/95 206/410/95 222/381/95 -f 224/383/98 196/404/98 209/384/98 -f 225/385/97 209/384/97 195/386/97 -f 205/388/97 222/381/97 225/385/97 -f 222/381/98 206/410/98 224/383/98 -f 226/382/99 222/381/99 205/388/99 -f 203/390/99 219/376/99 226/382/99 -f 219/376/95 204/414/95 221/380/95 -f 227/377/100 219/376/100 203/390/100 -f 201/392/100 216/373/100 227/377/100 -f 216/373/94 202/416/94 218/375/94 -f 228/374/101 216/373/101 201/392/101 -f 199/394/101 213/370/101 228/374/101 -f 213/370/93 200/417/93 215/372/93 -f 229/371/102 213/370/102 199/394/102 -f 197/396/102 210/367/102 229/371/102 -f 210/367/92 198/415/92 212/369/92 -f 230/368/103 210/367/103 197/396/103 -f 195/398/103 209/399/103 230/368/103 -f 209/399/91 196/549/91 208/366/91 -f 239/400/105 233/437/105 245/401/105 -f 224/383/88 242/418/88 231/403/88 -f 208/366/88 196/549/88 231/405/88 -f 215/372/88 200/417/88 233/407/88 -f 221/380/88 241/419/88 236/409/88 -f 212/369/88 198/415/88 232/411/88 -f 218/375/88 240/379/88 235/413/88 -f 208/366/88 237/406/88 232/411/88 -f 215/372/88 239/408/88 234/378/88 -f 212/369/88 238/412/88 233/407/88 -f 224/383/88 206/410/88 236/409/88 -f 221/380/88 204/414/88 235/413/88 -f 250/422/88 244/550/88 249/551/88 -f 249/551/88 243/552/88 254/553/88 -f 254/553/88 248/554/88 253/555/88 -f 253/555/88 247/556/88 252/420/88 -f 252/420/88 246/557/88 251/421/88 -f 251/421/88 245/558/88 250/422/88 -f 250/422/88 249/551/88 252/420/88 -f 249/551/88 254/553/88 252/420/88 -f 254/553/88 253/555/88 252/420/88 -f 240/423/106 252/430/106 247/424/106 -f 237/426/107 249/435/107 244/427/107 -f 240/423/106 234/442/106 246/429/106 -f 241/431/108 253/438/108 248/432/108 -f 237/426/107 231/440/107 243/434/107 -f 238/436/109 250/441/109 245/401/109 -f 241/431/108 235/425/108 247/424/108 -f 242/439/110 254/443/110 243/434/110 -f 238/436/109 232/428/109 244/427/109 -f 239/400/105 251/402/105 246/429/105 -f 242/439/110 236/433/110 248/432/110 -f 264/444/111 269/559/111 290/445/111 -f 288/447/111 270/560/111 266/448/111 -f 261/450/111 292/561/111 288/447/111 -f 263/451/111 294/562/111 267/452/111 -f 291/454/111 295/563/111 265/455/111 -f 262/457/111 293/564/111 289/458/111 -f 268/460/111 269/559/111 264/444/111 -f 289/458/111 292/561/111 261/450/111 -f 290/445/111 294/562/111 263/451/111 -f 267/452/111 293/564/111 262/457/111 -f 266/448/111 270/560/111 291/454/111 -f 265/455/111 295/563/111 268/460/111 -f 277/462/88 278/482/88 300/463/88 -f 281/465/88 287/484/88 283/466/88 -f 271/468/88 272/467/88 283/466/88 -f 275/470/88 276/483/88 299/471/88 -f 279/473/88 286/485/88 302/474/88 -f 273/476/88 274/481/88 298/477/88 -f 277/462/88 285/464/88 301/479/88 -f 271/468/88 296/469/88 298/477/88 -f 275/470/88 284/472/88 300/463/88 -f 273/476/88 297/478/88 299/471/88 -f 281/465/88 282/475/88 302/474/88 -f 279/473/88 280/480/88 301/479/88 -f 260/486/112 282/507/112 281/487/112 -f 261/489/113 271/496/113 274/490/113 -f 262/492/114 273/501/114 276/493/114 -f 255/495/113 272/509/113 271/496/113 -f 263/497/115 275/505/115 278/498/115 -f 256/500/114 274/565/114 273/501/114 -f 264/502/116 277/508/116 280/503/116 -f 257/494/115 276/493/115 275/505/115 -f 265/506/117 279/510/117 282/507/117 -f 258/499/116 278/498/116 277/508/116 -f 266/488/112 281/487/112 272/509/112 -f 259/504/117 280/503/117 279/510/117 -f 297/513/88 298/566/88 296/567/88 -f 296/567/88 283/568/88 287/569/88 -f 287/569/88 302/570/88 286/571/88 -f 286/571/88 301/572/88 285/511/88 -f 285/511/88 300/573/88 284/512/88 -f 284/512/88 299/574/88 297/513/88 -f 297/513/88 296/567/88 285/511/88 -f 296/567/88 287/569/88 285/511/88 -f 287/569/88 286/571/88 285/511/88 -f 313/514/118 314/529/118 310/515/118 -f 317/517/86 318/524/86 304/518/86 -f 315/520/119 307/540/119 317/521/119 -f 312/523/123 304/518/123 318/524/123 -f 319/526/121 318/575/121 308/527/121 -f 314/529/121 319/576/121 316/530/121 -f 306/531/123 312/577/123 319/532/123 -f 320/534/122 317/517/122 303/519/122 -f 313/536/122 320/578/122 311/537/122 -f 309/516/119 315/579/119 320/539/119 -f 308/527/86 318/575/86 317/521/86 -f 306/531/118 314/533/118 313/536/118 -f 293/543/88 289/580/88 292/581/88 -f 292/581/88 288/582/88 270/583/88 -f 270/583/88 291/584/88 295/585/88 -f 295/585/88 268/586/88 269/541/88 -f 269/541/88 290/587/88 294/542/88 -f 294/542/88 267/588/88 293/543/88 -f 293/543/88 292/581/88 269/541/88 -f 292/581/88 270/583/88 269/541/88 -f 270/583/88 295/585/88 269/541/88 -l 289 298 +vn 0.4890 -0.2090 -0.8469 +vn -0.4769 -0.3003 -0.8261 +vn -0.4890 -0.2090 -0.8469 +vn -0.4769 -0.3003 0.8261 +vn 0.4769 -0.3003 -0.8261 +s 1 +f 1/1/1 2/2/1 3/3/1 +f 4/4/2 5/5/2 2/2/2 +f 6/6/3 7/7/3 5/5/3 +f 8/8/4 9/9/4 7/7/4 +f 10/10/5 11/11/5 9/9/5 +f 10/12/6 8/13/6 1/14/6 +f 12/15/7 13/16/7 11/11/7 +f 14/17/8 3/18/8 13/16/8 +f 15/19/9 16/20/10 17/21/11 +f 18/22/12 19/23/12 20/24/12 +f 21/25/13 22/26/13 23/27/13 +f 24/28/14 25/29/15 26/30/14 +f 24/28/6 27/31/6 28/32/6 +f 29/33/16 30/34/16 31/35/16 +f 32/36/17 33/37/17 34/38/18 +f 34/38/19 35/39/19 36/40/19 +f 37/41/19 34/38/19 36/40/19 +f 30/34/20 32/36/17 34/38/18 +f 31/35/21 37/41/21 38/42/21 +f 39/43/21 31/35/21 38/42/21 +f 25/29/16 29/33/16 31/35/16 +f 26/30/22 39/43/22 40/44/22 +f 41/45/22 26/30/22 40/44/22 +f 22/26/14 24/28/14 26/30/14 +f 23/27/23 41/45/23 42/46/23 +f 43/47/24 23/27/23 42/46/23 +f 19/23/25 21/25/13 23/27/13 +f 20/24/26 43/47/26 44/48/26 +f 45/49/26 20/24/26 44/48/26 +f 16/20/12 18/22/12 20/24/12 +f 17/21/27 45/49/27 46/50/27 +f 35/51/27 17/21/27 46/50/27 +f 33/52/9 15/19/9 17/21/11 +f 47/53/28 48/54/28 49/55/28 +f 32/36/6 50/56/6 51/57/6 +f 15/19/6 50/58/6 52/59/6 +f 21/25/6 53/60/6 47/61/6 +f 29/33/6 54/62/6 55/63/6 +f 18/22/6 56/64/6 57/65/6 +f 24/28/6 58/66/6 59/67/6 +f 15/19/6 56/64/6 60/68/6 +f 21/25/6 27/31/6 61/69/6 +f 18/22/6 53/60/6 62/70/6 +f 32/36/6 54/62/6 63/71/6 +f 29/33/6 58/66/6 64/72/6 +f 65/73/6 49/74/6 66/75/6 +f 28/76/29 67/77/29 58/78/29 +f 52/79/30 68/80/30 56/81/31 +f 28/76/29 69/82/29 65/83/29 +f 64/84/32 70/85/32 54/86/32 +f 52/79/30 71/87/30 72/88/30 +f 57/89/33 48/54/33 53/90/33 +f 64/84/32 67/77/32 73/91/32 +f 63/92/34 71/87/34 50/93/34 +f 57/89/33 68/80/33 66/94/33 +f 47/53/28 69/82/28 27/95/28 +f 63/92/34 70/85/34 74/96/34 +f 75/97/35 76/98/35 77/99/35 +f 78/100/35 79/101/35 80/102/35 +f 81/103/35 78/100/35 80/102/35 +f 82/104/35 83/105/35 84/106/35 +f 85/107/35 86/108/35 87/109/35 +f 88/110/35 89/111/35 90/112/35 +f 91/113/35 75/97/35 92/114/35 +f 89/111/35 81/103/35 90/112/35 +f 76/98/35 82/104/35 77/99/35 +f 83/105/35 88/110/35 84/106/35 +f 79/101/35 85/107/35 87/109/35 +f 86/108/35 91/113/35 92/114/35 +f 93/115/6 94/116/6 95/117/6 +f 96/118/6 97/119/6 98/120/6 +f 99/121/6 97/119/6 100/122/6 +f 101/123/6 102/124/6 103/125/6 +f 104/126/6 105/127/6 106/128/6 +f 107/129/6 108/130/6 109/131/6 +f 93/115/6 110/132/6 111/133/6 +f 99/121/6 108/130/6 112/134/6 +f 101/123/6 94/116/6 113/135/6 +f 107/129/6 102/124/6 114/136/6 +f 96/118/6 105/127/6 115/137/6 +f 104/126/6 110/132/6 116/138/6 +f 87/139/36 96/140/36 79/141/36 +f 81/142/37 112/143/37 90/144/37 +f 88/145/38 114/146/38 84/147/38 +f 80/148/37 99/149/37 81/142/37 +f 82/150/39 113/151/39 77/152/39 +f 90/153/38 107/154/38 88/145/38 +f 75/155/40 111/156/40 92/157/40 +f 84/147/39 101/158/39 82/150/39 +f 86/159/41 106/160/41 87/139/41 +f 77/152/40 93/161/40 75/155/40 +f 79/141/36 98/162/36 80/148/36 +f 92/157/41 104/163/41 86/159/41 +f 95/164/6 103/165/6 109/166/6 +f 117/167/42 118/168/42 119/169/42 +f 120/170/4 121/171/4 122/172/4 +f 123/173/43 120/174/43 124/175/43 +f 125/176/44 126/177/44 127/178/44 +f 127/179/45 128/180/45 129/181/45 +f 130/182/45 129/183/45 118/168/45 +f 131/184/44 127/185/44 130/186/44 +f 124/187/46 122/172/46 132/188/46 +f 117/189/46 132/190/46 133/191/46 +f 119/169/43 124/192/43 117/167/43 +f 128/180/4 120/174/4 134/193/4 +f 131/184/42 117/189/42 133/191/42 +f 135/194/6 136/195/6 137/196/6 +f 1/1/1 4/4/1 2/2/1 +f 4/4/2 6/6/2 5/5/2 +f 6/6/3 8/8/3 7/7/3 +f 8/8/4 10/10/4 9/9/4 +f 10/10/5 12/15/5 11/11/5 +f 6/197/6 4/198/6 8/13/6 +f 4/198/6 1/14/6 8/13/6 +f 1/14/6 14/199/6 12/200/6 +f 12/200/6 10/12/6 1/14/6 +f 12/15/7 14/17/7 13/16/7 +f 14/17/8 1/201/8 3/18/8 +f 15/19/9 60/68/47 16/20/10 +f 18/22/12 62/70/12 19/23/12 +f 21/25/13 61/69/13 22/26/13 +f 24/28/14 59/67/15 25/29/15 +f 24/28/6 61/69/6 27/31/6 +f 29/33/16 55/63/16 30/34/16 +f 32/36/17 51/57/17 33/37/17 +f 34/38/19 33/37/19 35/39/19 +f 37/41/48 30/34/48 34/38/48 +f 30/34/20 55/63/49 32/36/17 +f 31/35/21 30/34/21 37/41/21 +f 39/43/21 25/29/21 31/35/21 +f 25/29/16 59/67/16 29/33/16 +f 26/30/22 25/29/22 39/43/22 +f 41/45/50 22/26/50 26/30/50 +f 22/26/14 61/69/14 24/28/14 +f 23/27/23 22/26/24 41/45/23 +f 43/47/23 19/23/23 23/27/23 +f 19/23/25 62/70/25 21/25/13 +f 20/24/26 19/23/26 43/47/26 +f 45/49/26 16/20/26 20/24/26 +f 16/20/12 60/68/12 18/22/12 +f 17/21/27 16/20/51 45/49/27 +f 35/51/27 33/52/27 17/21/27 +f 33/52/9 51/202/9 15/19/9 +f 47/53/28 53/90/28 48/54/28 +f 32/36/6 63/71/6 50/56/6 +f 15/19/6 51/202/6 50/58/6 +f 21/25/6 62/70/6 53/60/6 +f 29/33/6 64/72/6 54/62/6 +f 18/22/6 60/68/6 56/64/6 +f 24/28/6 28/32/6 58/66/6 +f 15/19/6 52/59/6 56/64/6 +f 21/25/6 47/61/6 27/31/6 +f 18/22/6 57/65/6 53/60/6 +f 32/36/6 55/63/6 54/62/6 +f 29/33/6 59/67/6 58/66/6 +f 66/75/6 68/203/6 72/204/6 +f 72/204/6 71/205/6 74/206/6 +f 74/206/6 70/207/6 73/208/6 +f 73/208/6 67/209/6 65/73/6 +f 65/73/6 69/210/6 49/74/6 +f 49/74/6 48/211/6 66/75/6 +f 66/75/6 72/204/6 65/73/6 +f 72/204/6 74/206/6 65/73/6 +f 74/206/6 73/208/6 65/73/6 +f 28/76/29 65/83/29 67/77/29 +f 52/79/30 72/88/30 68/80/30 +f 28/76/29 27/95/29 69/82/29 +f 64/84/32 73/91/32 70/85/32 +f 52/79/30 50/93/30 71/87/30 +f 57/89/33 66/94/33 48/54/33 +f 64/84/32 58/78/32 67/77/32 +f 63/92/34 74/96/34 71/87/34 +f 57/89/33 56/81/33 68/80/33 +f 47/53/28 49/55/28 69/82/28 +f 63/92/34 54/86/34 70/85/34 +f 75/97/35 135/212/35 76/98/35 +f 78/100/35 138/213/35 79/101/35 +f 81/103/35 139/214/35 78/100/35 +f 82/104/35 136/215/35 83/105/35 +f 85/107/35 140/216/35 86/108/35 +f 88/110/35 137/217/35 89/111/35 +f 91/113/35 135/212/35 75/97/35 +f 89/111/35 139/214/35 81/103/35 +f 76/98/35 136/215/35 82/104/35 +f 83/105/35 137/217/35 88/110/35 +f 79/101/35 138/213/35 85/107/35 +f 86/108/35 140/216/35 91/113/35 +f 93/115/6 113/135/6 94/116/6 +f 96/118/6 115/137/6 97/119/6 +f 99/121/6 98/120/6 97/119/6 +f 101/123/6 114/136/6 102/124/6 +f 104/126/6 116/138/6 105/127/6 +f 107/129/6 112/134/6 108/130/6 +f 93/115/6 95/117/6 110/132/6 +f 99/121/6 100/122/6 108/130/6 +f 101/123/6 103/125/6 94/116/6 +f 107/129/6 109/131/6 102/124/6 +f 96/118/6 106/128/6 105/127/6 +f 104/126/6 111/133/6 110/132/6 +f 87/139/36 106/160/36 96/140/36 +f 81/142/37 99/149/37 112/143/37 +f 88/145/38 107/154/38 114/146/38 +f 80/148/37 98/162/37 99/149/37 +f 82/150/39 101/158/39 113/151/39 +f 90/153/38 112/218/38 107/154/38 +f 75/155/40 93/161/40 111/156/40 +f 84/147/39 114/146/39 101/158/39 +f 86/159/41 104/163/41 106/160/41 +f 77/152/40 113/151/40 93/161/40 +f 79/141/36 96/140/36 98/162/36 +f 92/157/41 111/156/41 104/163/41 +f 109/166/6 108/219/6 100/220/6 +f 100/220/6 97/221/6 115/222/6 +f 115/222/6 105/223/6 116/224/6 +f 116/224/6 110/225/6 95/164/6 +f 95/164/6 94/226/6 103/165/6 +f 103/165/6 102/227/6 109/166/6 +f 109/166/6 100/220/6 95/164/6 +f 100/220/6 115/222/6 95/164/6 +f 115/222/6 116/224/6 95/164/6 +f 117/167/42 130/182/42 118/168/42 +f 120/170/4 126/177/4 121/171/4 +f 123/173/43 134/193/43 120/174/43 +f 125/176/44 121/171/44 126/177/44 +f 127/179/45 126/228/45 128/180/45 +f 130/182/45 127/229/45 129/183/45 +f 131/184/44 125/230/44 127/185/44 +f 124/187/46 120/170/46 122/172/46 +f 117/189/46 124/231/46 132/190/46 +f 119/169/43 123/232/43 124/192/43 +f 128/180/4 126/228/4 120/174/4 +f 131/184/42 130/186/42 117/189/42 +f 137/196/6 89/233/6 139/234/6 +f 139/234/6 78/235/6 138/236/6 +f 138/236/6 85/237/6 140/238/6 +f 140/238/6 91/239/6 135/194/6 +f 135/194/6 76/240/6 136/195/6 +f 136/195/6 83/241/6 137/196/6 +f 137/196/6 139/234/6 135/194/6 +f 139/234/6 138/236/6 135/194/6 +f 138/236/6 140/238/6 135/194/6 +l 89 108 +o window_Cube.002 +v 0.338840 1.091828 -0.732264 +v 0.809482 0.874469 -0.732264 +v 0.338840 0.874469 -0.732264 +v 0.809482 1.091828 -0.732264 +vt 0.978282 0.984581 +vt 0.711622 0.781054 +vt 0.978133 0.780594 +vt 0.713513 0.984128 +vn 0.0000 0.0000 -1.0000 +s 1 +f 141/242/52 142/243/52 143/244/52 +f 141/242/52 144/245/52 142/243/52 +o mainbody_Cube.001 +v 0.853658 0.789125 -0.153063 +v 0.857794 1.181387 -0.156304 +v 0.853658 1.181387 -0.153063 +v 0.849338 0.787154 -0.151007 +v 0.127829 1.183358 -0.151007 +v 0.125502 0.787154 -0.149193 +v 0.238197 0.787154 -0.728996 +v 0.234821 1.183358 -0.728996 +v 0.238197 1.183358 -0.728996 +v 0.234821 0.787154 -0.728996 +v 0.234821 1.127133 -0.731795 +v 0.121182 1.181387 -0.733581 +v 0.115750 0.789125 -0.732973 +v 0.117047 1.181387 -0.730340 +v 0.827432 1.125951 -0.735637 +v 0.835231 1.121211 -0.732176 +v 0.826308 1.125951 -0.732176 +v 0.155271 1.127133 -0.731795 +v 0.138747 1.118357 -0.731795 +v 0.140113 0.846848 -0.735637 +v 0.149037 0.842109 -0.731795 +v 0.149037 0.842109 -0.735637 +v 0.149897 1.125951 -0.735637 +v 0.140973 1.121211 -0.731795 +v 0.140973 1.121211 -0.735637 +v 0.234821 1.127133 -0.735637 +v 0.155271 1.127133 -0.735637 +v 0.154411 0.840926 -0.731795 +v 0.154411 0.840926 -0.735637 +v 0.149897 1.125951 -0.731795 +v 0.234338 0.840926 -0.731795 +v 0.234338 0.840926 -0.735637 +v 0.137887 0.849703 -0.735637 +v 0.140113 0.846848 -0.731795 +v 0.138747 1.118357 -0.735637 +v 0.137887 0.849703 -0.731795 +v 0.821198 0.840926 -0.735637 +v 0.825447 0.842109 -0.732176 +v 0.826572 0.842109 -0.735637 +v 0.836356 1.121211 -0.735637 +v 0.837458 1.118357 -0.732176 +v 0.837722 0.849703 -0.735637 +v 0.838582 1.118357 -0.735637 +v 0.835496 0.846848 -0.735637 +v 0.836597 0.849703 -0.732176 +v 0.822058 1.127133 -0.735637 +v 0.820933 1.127133 -0.732176 +v 0.834371 0.846848 -0.732176 +v 0.126814 0.787154 -0.735637 +v 0.234821 0.787154 -0.735637 +v 0.857794 0.789125 -0.730340 +v 0.853658 1.181387 -0.733581 +v 0.857794 1.181387 -0.730340 +v 0.847012 1.183358 -0.735637 +v 0.848027 0.787154 -0.735637 +v 0.860417 0.787154 -0.726955 +v 0.860417 1.183358 -0.161513 +v 0.862732 0.787154 -0.159690 +v 0.114423 0.787154 -0.159690 +v 0.114423 1.183358 -0.725132 +v 0.112109 0.787154 -0.726955 +v 0.121182 1.181387 -0.153063 +v 0.117047 0.789125 -0.156304 +v 0.121182 0.789125 -0.153063 +v 0.853658 0.789125 -0.733581 +v 0.860417 1.183358 -0.725132 +v 0.847012 1.183358 -0.151007 +v 0.857794 0.789125 -0.156304 +v 0.127829 1.183358 -0.735637 +v 0.120534 0.789125 -0.735475 +v 0.114423 1.183358 -0.161513 +v 0.117047 1.181387 -0.156304 +v 0.246749 1.051755 -0.754385 +v 0.246749 1.118254 -0.734150 +v 0.246749 1.051755 -0.757676 +v 0.273339 1.118254 -0.734150 +v 0.282202 1.051755 -0.757676 +v 0.273339 1.051755 -0.757676 +v 0.282202 1.118254 -0.730859 +v 0.282202 1.051755 -0.751094 +v 0.282202 1.051755 -0.754385 +v 0.255612 1.051755 -0.751094 +v 0.246749 1.118254 -0.727568 +v 0.246749 1.051755 -0.751094 +v 0.273339 0.852258 -0.730849 +v 0.282202 0.852258 -0.727568 +v 0.273339 0.852258 -0.727568 +v 0.255612 1.118254 -0.730849 +v 0.255612 1.118254 -0.727568 +v 0.264475 1.118254 -0.730849 +v 0.273339 1.118254 -0.727568 +v 0.273339 1.118254 -0.730849 +v 0.264475 0.852258 -0.730849 +v 0.255612 0.852258 -0.727568 +v 0.255612 0.852258 -0.730849 +v 0.255612 0.985256 -0.755632 +v 0.246749 0.918757 -0.747802 +v 0.255612 0.918757 -0.747802 +v 0.273339 0.918757 -0.747802 +v 0.264475 0.985256 -0.755632 +v 0.264475 0.918757 -0.747802 +v 0.264475 1.051755 -0.751094 +v 0.273339 1.051755 -0.751094 +v 0.282202 0.918757 -0.751094 +v 0.282202 0.985256 -0.755632 +v 0.282202 0.918757 -0.747802 +v 0.273339 0.985256 -0.762214 +v 0.282202 0.918757 -0.754385 +v 0.273339 0.918757 -0.754385 +v 0.255612 0.985256 -0.762214 +v 0.264475 0.918757 -0.754385 +v 0.255612 0.918757 -0.754385 +v 0.255612 1.118254 -0.734150 +v 0.264475 1.051755 -0.757676 +v 0.255612 1.051755 -0.757676 +v 0.246749 0.985256 -0.758923 +v 0.246749 0.918757 -0.754385 +v 0.246749 0.918757 -0.751094 +v 0.246749 0.852258 -0.734150 +v 0.246749 0.852258 -0.730859 +v 0.246749 0.852258 -0.727568 +v 0.246749 0.985256 -0.755632 +v 0.264475 0.985256 -0.762214 +v 0.246749 0.985256 -0.762214 +v 0.264475 0.852258 -0.734150 +v 0.255612 0.852258 -0.734150 +v 0.282202 0.852258 -0.734150 +v 0.273339 0.852258 -0.734150 +v 0.282202 0.852258 -0.730859 +v 0.282202 0.985256 -0.758923 +v 0.273339 0.985256 -0.755632 +v 0.282202 1.118254 -0.727568 +v 0.264475 0.852258 -0.727568 +v 0.282202 1.118254 -0.734150 +v 0.264475 1.118254 -0.734150 +v 0.264475 1.118254 -0.727568 +v 0.246749 1.118254 -0.730859 +v 0.282202 0.985256 -0.762214 +v 0.303131 1.127133 -0.208209 +v 0.303131 1.127133 -0.732176 +v 0.834371 0.846848 -0.208209 +v 0.826308 1.125951 -0.208209 +v 0.837458 1.118357 -0.208209 +v 0.820073 0.840926 -0.732176 +v 0.825447 0.842109 -0.208209 +v 0.835231 1.121211 -0.208209 +v 0.303131 0.840926 -0.208209 +v 0.303131 0.840926 -0.732176 +v 0.820073 0.840926 -0.208209 +v 0.836597 0.849703 -0.208209 +v 0.820933 1.127133 -0.208209 +v 0.796168 0.874846 -0.732176 +v 0.807544 1.087096 -0.732176 +v 0.339101 1.091541 -0.732176 +v 0.339101 0.874846 -0.732176 +v 0.806898 0.879290 -0.732176 +v 0.796813 1.091541 -0.732176 +v 0.800201 0.875733 -0.732176 +v 0.800847 1.090653 -0.732176 +v 0.809215 1.084954 -0.732176 +v 0.238197 0.840926 -0.735637 +v 0.238197 1.127133 -0.735637 +v 0.238197 1.127133 -0.731795 +v 0.238197 0.840926 -0.731795 +v 0.234821 1.183358 -0.735637 +v 0.238197 0.787154 -0.735637 +v 0.238197 1.183358 -0.735637 +v 0.808569 0.881432 -0.732176 +vt 0.187756 0.185116 +vt 0.190250 0.359586 +vt 0.187359 0.359553 +vt 0.184816 0.183014 +vt 0.011904 0.361665 +vt 0.011410 0.182951 +vt 0.434160 0.035160 +vt 0.437617 0.233175 +vt 0.433848 0.233203 +vt 0.421314 0.234632 +vt 0.421314 0.024505 +vt 0.424461 0.141338 +vt 0.180342 0.556180 +vt 0.006258 0.555192 +vt 0.180341 0.553216 +vt 0.619010 0.294600 +vt 0.615336 0.293939 +vt 0.618997 0.293255 +vt 0.560911 0.771909 +vt 0.499383 0.771947 +vt 0.573681 0.763070 +vt 0.551781 0.278506 +vt 0.554882 0.277399 +vt 0.554849 0.278591 +vt 0.477598 0.276038 +vt 0.480699 0.274931 +vt 0.480666 0.276123 +vt 0.456844 0.275464 +vt 0.476217 0.274807 +vt 0.476184 0.275999 +vt 0.556296 0.277438 +vt 0.556263 0.278630 +vt 0.477631 0.274846 +vt 0.575727 0.277976 +vt 0.575694 0.279168 +vt 0.550366 0.278467 +vt 0.551814 0.277314 +vt 0.482080 0.276163 +vt 0.550399 0.277275 +vt 0.482113 0.274971 +vt 0.529499 0.294540 +vt 0.531162 0.293570 +vt 0.531174 0.294916 +vt 0.615349 0.295285 +vt 0.613628 0.294117 +vt 0.536559 0.295677 +vt 0.613641 0.295463 +vt 0.534848 0.295531 +vt 0.536546 0.294332 +vt 0.620678 0.294193 +vt 0.620665 0.292848 +vt 0.534835 0.294186 +vt 0.390231 0.176341 +vt 0.365296 0.176585 +vt 0.365277 0.174628 +vt 0.008379 0.053132 +vt 0.010531 0.175541 +vt 0.008501 0.175525 +vt 0.678815 0.051868 +vt 0.681765 0.009865 +vt 0.681766 0.212069 +vt 0.191651 0.177060 +vt 0.014270 0.002844 +vt 0.192984 0.003659 +vt 0.661827 0.216665 +vt 0.508504 0.216408 +vt 0.472754 0.213047 +vt 0.182461 0.549659 +vt 0.002549 0.378060 +vt 0.181254 0.376258 +vt 0.008747 0.359552 +vt 0.004975 0.185105 +vt 0.008120 0.184943 +vt 0.006284 0.051542 +vt 0.010601 0.053093 +vt 0.004000 0.561180 +vt 0.003756 0.551834 +vt 0.006284 0.177060 +vt 0.012743 0.177034 +vt 0.012878 0.051518 +vt 0.184195 0.361727 +vt 0.193393 0.361723 +vt 0.190903 0.184977 +vt 0.194207 0.183009 +vt 0.182571 0.559338 +vt 0.182461 0.550031 +vt 0.006443 0.558120 +vt 0.002020 0.183025 +vt 0.004195 0.360497 +vt 0.005856 0.359540 +vt 0.363575 0.189539 +vt 0.388348 0.187899 +vt 0.391408 0.191039 +vt 0.913862 0.374962 +vt 0.932207 0.411652 +vt 0.913862 0.411652 +vt 0.947121 0.484382 +vt 0.928948 0.502555 +vt 0.928948 0.484382 +vt 0.922832 0.558833 +vt 0.904487 0.595522 +vt 0.904487 0.558833 +vt 0.904487 0.650556 +vt 0.922832 0.668901 +vt 0.904487 0.668901 +vt 0.831108 0.558833 +vt 0.849453 0.595522 +vt 0.831108 0.595522 +vt 0.977866 0.558833 +vt 0.996210 0.595522 +vt 0.977866 0.595522 +vt 0.959521 0.558833 +vt 0.941176 0.595522 +vt 0.941176 0.558833 +vt 0.812764 0.558833 +vt 0.794419 0.595522 +vt 0.794419 0.558833 +vt 0.886142 0.650556 +vt 0.867798 0.668901 +vt 0.867798 0.650556 +vt 0.867798 0.613867 +vt 0.886142 0.632212 +vt 0.867798 0.632212 +vt 0.922832 0.613867 +vt 0.904487 0.632212 +vt 0.904487 0.613867 +vt 0.867798 0.558833 +vt 0.886142 0.595522 +vt 0.867798 0.595522 +vt 0.899580 0.488095 +vt 0.881478 0.506196 +vt 0.881478 0.488095 +vt 0.899580 0.451892 +vt 0.881478 0.469993 +vt 0.881478 0.451892 +vt 0.947121 0.448035 +vt 0.928948 0.466208 +vt 0.928948 0.448035 +vt 0.895517 0.374962 +vt 0.877173 0.411652 +vt 0.877173 0.374962 +vt 0.858828 0.411652 +vt 0.858828 0.374962 +vt 0.877173 0.338273 +vt 0.858828 0.338273 +vt 0.895517 0.338273 +vt 0.917681 0.451892 +vt 0.899580 0.469993 +vt 0.917681 0.433790 +vt 0.899580 0.433790 +vt 0.947121 0.429861 +vt 0.928948 0.429861 +vt 0.867173 0.448727 +vt 0.848828 0.467071 +vt 0.848828 0.448727 +vt 0.867173 0.430382 +vt 0.848828 0.430382 +vt 0.881478 0.433790 +vt 0.867173 0.485416 +vt 0.848828 0.503761 +vt 0.848828 0.485416 +vt 0.867173 0.467071 +vt 0.849453 0.558833 +vt 0.849453 0.522144 +vt 0.867798 0.522144 +vt 0.886142 0.558833 +vt 0.886142 0.613867 +vt 0.922832 0.595522 +vt 0.849453 0.632212 +vt 0.849453 0.613867 +vt 0.849453 0.668901 +vt 0.849453 0.650556 +vt 0.776074 0.595522 +vt 0.776074 0.558833 +vt 0.794419 0.522144 +vt 0.776074 0.522144 +vt 0.812764 0.522144 +vt 0.941176 0.522144 +vt 0.922832 0.522144 +vt 0.959521 0.522144 +vt 0.959521 0.595522 +vt 0.977866 0.522144 +vt 0.996210 0.558833 +vt 0.812764 0.595522 +vt 0.831108 0.522144 +vt 0.886142 0.668901 +vt 0.922832 0.632212 +vt 0.904487 0.522144 +vt 0.886142 0.522144 +vt 0.917681 0.488095 +vt 0.899580 0.506196 +vt 0.917681 0.469993 +vt 0.947121 0.466208 +vt 0.895517 0.411652 +vt 0.913862 0.338273 +vt 0.932207 0.374962 +vt 0.002361 0.690819 +vt 0.139582 0.797050 +vt 0.002382 0.797077 +vt 0.002401 0.574653 +vt 0.139602 0.577216 +vt 0.002401 0.577243 +vt 0.002381 0.685835 +vt 0.139582 0.688398 +vt 0.002381 0.688425 +vt 0.002381 0.579638 +vt 0.139602 0.683414 +vt 0.002401 0.683441 +vt 0.142087 0.686223 +vt 0.139686 0.823759 +vt 0.139686 0.686202 +vt 0.139581 0.685808 +vt 0.139686 0.574626 +vt 0.278011 0.686118 +vt 0.139686 0.686118 +vt 0.248444 0.686223 +vt 0.142087 0.823780 +vt 0.139581 0.579611 +vt 0.139561 0.690792 +vt 0.250041 0.742196 +vt 0.249216 0.741377 +vt 0.249011 0.740883 +vt 0.774121 0.040412 +vt 0.741243 0.024151 +vt 0.740050 0.027021 +vt 0.969467 0.033059 +vt 0.943495 0.044419 +vt 0.971709 0.034142 +vt 0.946381 0.253662 +vt 0.739889 0.270791 +vt 0.975938 0.269283 +vt 0.769234 0.254505 +vt 0.778655 0.034951 +vt 0.748853 0.018299 +vt 0.746005 0.019438 +vt 0.975297 0.038147 +vt 0.946804 0.049219 +vt 0.976119 0.040486 +vt 0.775156 0.037976 +vt 0.946189 0.047450 +vt 0.941812 0.043603 +vt 0.456798 0.276753 +vt 0.529486 0.293195 +vt 0.696767 0.284505 +vt 0.696612 0.283178 +vt 0.740071 0.299235 +vt 0.431207 0.203196 +vt 0.430221 0.118309 +vt 0.434139 0.035214 +vt 0.437617 0.035132 +vt 0.428782 0.141338 +vt 0.428782 0.234632 +vt 0.422863 0.024375 +vt 0.423529 0.042958 +vt 0.424425 0.042882 +vt 0.499383 0.483956 +vt 0.561202 0.483917 +vt 0.573995 0.492741 +vt 0.572269 0.489869 +vt 0.565361 0.485105 +vt 0.571963 0.765944 +vt 0.565067 0.770717 +vt 0.456877 0.274272 +vt 0.362261 0.174619 +vt 0.362252 0.177081 +vt 0.221168 0.176128 +vt 0.218310 0.173556 +vt 0.218310 0.006092 +vt 0.221417 0.003539 +vt 0.388881 0.003540 +vt 0.391433 0.006646 +vt 0.393601 0.173750 +vt 0.525055 0.212989 +vt 0.674718 0.186092 +vt 0.524902 0.186971 +vt 0.472754 0.045915 +vt 0.472804 0.009580 +vt 0.673151 0.046188 +vt 0.676096 0.185512 +vt 0.678376 0.183205 +vt 0.674995 0.046955 +vt 0.678054 0.050022 +vt 0.678940 0.181820 +vt 0.012947 0.175130 +vt 0.698934 0.213354 +vt 0.698934 0.245794 +vt 0.666837 0.221675 +vt 0.666837 0.245794 +vt 0.503488 0.245686 +vt 0.472755 0.245833 +vt 0.503488 0.221424 +vt 0.666162 0.220045 +vt 0.663456 0.217340 +vt 0.504163 0.219793 +vt 0.506872 0.217084 +vt 0.004989 0.551834 +vt 0.390747 0.356145 +vt 0.386158 0.360486 +vt 0.360628 0.189572 +vt 0.219798 0.360486 +vt 0.216697 0.357385 +vt 0.216697 0.191025 +vt 0.219798 0.187924 +vt 0.360628 0.187426 +vt 0.363600 0.187579 +vt 0.947121 0.502555 +vt 0.922832 0.650556 +vt 0.867173 0.503761 +vt 0.996210 0.522144 +vt 0.917681 0.506196 +vt 0.932207 0.338273 +vt 0.139601 0.574626 +vt 0.278011 0.574626 +vt 0.248444 0.823780 +vt 0.249011 0.687906 +vt 0.294366 0.687906 +vt 0.294366 0.740616 +vt 0.294160 0.741111 +vt 0.292839 0.742143 +vt 0.250538 0.742399 +vt 0.293336 0.741935 +vt 0.781306 0.033891 +vt 0.457098 0.275488 +vt 0.976119 0.297728 +vt 0.433827 0.231012 +vt 0.431907 0.231171 +vt 0.429916 0.203288 +vt 0.426195 0.118261 +vt 0.427181 0.035132 +vn 0.6168 0.0000 0.7871 +vn 0.0021 0.0039 1.0000 +vn 0.0003 0.0007 1.0000 +vn 0.0025 0.0046 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn -0.6169 0.0073 -0.7870 +vn -0.4638 -0.8731 -0.1507 +vn -0.4637 -0.8731 -0.1507 +vn 0.4690 0.8832 0.0000 +vn 0.4691 -0.8832 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.2150 0.9766 0.0000 +vn 0.2148 -0.9767 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.7883 0.6153 0.0000 +vn 0.7884 0.6151 0.0000 +vn 1.0000 -0.0032 0.0000 +vn 0.7885 -0.6150 0.0000 +vn -0.2141 0.9743 -0.0697 +vn -0.7638 -0.5958 -0.2482 +vn -0.7637 -0.5959 -0.2482 +vn -0.9511 0.0030 -0.3089 +vn -0.7639 0.5956 -0.2483 +vn -0.2143 -0.9743 -0.0696 +vn -0.4636 0.8731 -0.1507 +vn 0.6168 0.0000 -0.7871 +vn 1.0000 0.0052 -0.0037 +vn 1.0000 0.0005 -0.0005 +vn 1.0000 0.0058 -0.0041 +vn -1.0000 0.0052 0.0037 +vn -1.0000 0.0005 0.0005 +vn -1.0000 0.0058 0.0041 +vn -0.6169 -0.0000 0.7871 +vn 0.5448 -0.4689 -0.6952 +vn -0.2589 -0.8606 -0.4385 +vn 0.3836 0.7830 -0.4896 +vn 0.3837 0.7830 -0.4896 +vn 0.8931 0.0000 -0.4498 +vn 0.3427 0.0009 -0.9394 +vn 0.3836 0.7832 0.4893 +vn 0.3836 0.7831 0.4895 +vn 0.2955 -0.0000 0.9553 +vn 0.5448 -0.4689 0.6952 +vn 0.5674 0.0071 0.8234 +vn -0.3835 0.7833 -0.4892 +vn -0.3835 0.7833 -0.4893 +vn -0.2969 0.0051 -0.9549 +vn -0.8565 0.0063 -0.5161 +vn -0.5449 -0.4688 0.6952 +vn -0.6654 0.0073 0.7465 +vn -0.3837 0.7830 0.4895 +vn -0.3836 0.7831 0.4895 +vn -0.8931 -0.0000 0.4499 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.3335 -0.9427 +vn 0.0000 -0.3335 0.9427 +vn 0.0000 0.1169 0.9931 +vn 0.0000 -0.1169 -0.9931 +vn 0.0000 0.0681 -0.9977 +vn 0.0000 -0.2911 -0.9567 +vn 0.0000 -0.0681 0.9977 +vn 0.0000 0.2911 0.9567 +vn -0.4690 0.8832 0.0000 +vn -0.4691 -0.8831 0.0000 +vn -1.0000 0.0032 0.0000 +vn -0.2150 0.9766 0.0000 +vn -0.7886 -0.6149 -0.0000 +vn -0.7886 0.6149 0.0000 +vn -0.2148 -0.9767 0.0000 +vn 0.0000 -1.0000 0.0001 +vn -0.0059 0.0000 -1.0000 +vn 0.0000 -0.0000 1.0000 +vn 1.0000 0.0090 0.0000 +vn 0.9796 -0.0017 -0.2008 +vn -0.4634 0.0050 -0.8861 +vn 0.7886 0.6149 0.0000 +vn -0.2142 0.9743 -0.0695 +vn -0.7639 -0.5958 -0.2481 +vn -0.9511 0.0029 -0.3088 +vn 0.4513 -0.6178 -0.6439 +vn -0.2689 -0.8145 -0.5141 +vn 0.7912 0.0028 -0.6115 +vn 0.2955 0.0000 -0.9553 +vn 0.3837 0.7830 0.4897 +vn 0.4288 0.0025 0.9034 +vn 0.5423 -0.0784 0.8365 +vn 0.8932 -0.0000 0.4498 +vn -0.3836 0.7831 -0.4895 +vn -0.0258 0.0001 -0.9997 +vn -0.8919 0.0073 -0.4521 +vn -0.6855 -0.0819 0.7235 +vn -0.2955 -0.0000 0.9553 +vn -0.7912 0.0028 0.6115 +vn -0.7887 -0.6148 -0.0000 +s 1 +f 145/246/53 146/247/53 147/248/53 +f 148/249/54 149/250/55 150/251/56 +f 151/252/57 152/253/57 153/254/57 +f 152/255/58 154/256/58 155/257/58 +f 156/258/59 157/259/59 158/260/59 +f 159/261/60 160/262/61 161/263/60 +f 162/264/57 155/265/57 163/266/57 +f 164/267/62 165/268/62 166/269/62 +f 167/270/63 168/271/63 169/272/63 +f 170/273/64 162/274/64 171/275/64 +f 166/269/65 172/276/65 173/277/65 +f 171/275/66 174/278/66 167/270/66 +f 173/277/67 175/279/67 176/280/67 +f 177/281/68 178/282/69 164/267/69 +f 179/283/70 180/284/70 177/281/70 +f 169/272/71 163/285/71 179/283/71 +f 181/286/72 182/287/72 183/288/72 +f 184/289/73 185/290/73 160/262/74 +f 186/291/75 185/290/75 187/292/75 +f 188/293/76 189/294/76 186/291/76 +f 190/295/77 161/263/77 191/296/77 +f 183/288/78 192/297/78 188/293/78 +f 193/298/64 194/299/64 154/300/64 +f 195/301/79 196/302/79 197/303/79 +f 187/304/57 198/305/57 199/306/57 +f 200/307/80 201/308/81 202/309/82 +f 179/310/57 177/311/57 193/312/57 +f 203/313/83 204/314/84 205/315/85 +f 206/316/86 207/317/86 208/318/86 +f 200/319/87 209/320/87 195/301/87 +f 157/259/88 193/321/88 205/322/88 +f 210/323/89 196/302/90 198/324/90 +f 210/323/91 195/301/91 197/303/91 +f 198/324/92 209/320/92 199/325/92 +f 211/326/93 146/247/94 201/327/94 +f 211/326/95 145/246/95 147/248/95 +f 148/249/96 212/328/96 145/246/96 +f 201/327/97 212/328/97 202/329/97 +f 213/330/98 158/260/99 204/331/99 +f 213/330/100 214/332/100 156/258/100 +f 205/322/101 158/260/101 157/259/101 +f 203/333/102 208/318/102 207/317/102 +f 149/250/103 208/318/103 150/251/103 +f 215/334/104 206/316/105 149/250/105 +f 215/334/106 207/317/106 216/335/106 +f 152/336/67 213/337/67 204/338/67 +f 217/339/107 218/340/107 219/341/107 +f 220/342/108 221/343/108 222/344/108 +f 223/345/58 224/346/58 225/347/58 +f 226/348/109 227/349/109 228/350/109 +f 229/351/64 230/352/64 231/353/64 +f 232/354/67 227/355/67 233/356/67 +f 234/357/67 235/358/67 236/359/67 +f 237/360/64 238/361/64 239/362/64 +f 240/363/110 241/364/110 242/365/110 +f 243/366/110 244/367/110 245/368/110 +f 235/369/109 246/370/109 247/371/109 +f 248/372/58 249/373/58 250/374/58 +f 251/375/111 252/376/111 253/377/111 +f 254/378/111 255/379/111 256/380/111 +f 257/381/108 258/382/108 259/383/108 +f 260/384/107 261/385/107 262/386/107 +f 262/386/107 263/387/107 264/388/107 +f 241/389/107 264/388/107 265/390/107 +f 266/391/107 262/386/107 241/389/107 +f 259/392/112 267/393/112 254/378/112 +f 219/394/112 254/378/112 268/395/112 +f 218/396/108 259/383/108 219/397/108 +f 256/398/113 269/399/113 270/400/113 +f 261/401/113 270/400/113 263/402/113 +f 268/395/111 256/380/111 261/403/111 +f 253/404/113 271/405/113 272/406/113 +f 255/407/113 272/406/113 269/399/113 +f 267/393/111 253/377/111 255/379/111 +f 273/408/58 250/374/58 230/352/58 +f 271/409/58 248/372/58 273/408/58 +f 252/410/58 274/411/58 248/372/58 +f 247/371/114 244/367/114 275/412/114 +f 224/346/114 275/412/114 249/373/114 +f 276/413/109 247/371/109 224/346/109 +f 243/366/115 277/414/115 231/415/115 +f 250/374/115 231/415/115 230/352/115 +f 249/373/110 243/366/110 250/374/110 +f 242/365/115 265/416/115 238/417/115 +f 245/368/115 238/417/115 277/414/115 +f 244/367/110 242/365/110 245/368/110 +f 239/362/64 265/418/64 264/419/64 +f 270/420/64 264/419/64 263/421/64 +f 269/422/64 239/362/64 270/420/64 +f 236/359/67 276/413/67 223/345/67 +f 220/423/67 223/345/67 278/424/67 +f 279/425/67 236/359/67 220/423/67 +f 232/354/67 280/426/67 234/357/67 +f 257/427/67 234/357/67 279/425/67 +f 257/427/67 281/428/67 232/354/67 +f 229/351/64 277/429/64 237/360/64 +f 272/430/64 237/360/64 269/422/64 +f 272/430/64 273/408/64 229/351/64 +f 226/348/114 266/431/114 240/363/114 +f 246/370/114 240/363/114 244/367/114 +f 280/432/109 226/348/109 246/370/109 +f 225/347/58 249/373/58 274/411/58 +f 221/433/58 274/411/58 282/434/58 +f 278/424/58 225/347/58 221/433/58 +f 222/435/112 282/436/112 251/375/112 +f 258/437/112 251/375/112 267/393/112 +f 279/438/108 222/344/108 258/382/108 +f 260/384/107 219/341/107 268/439/107 +f 266/391/107 217/339/107 260/384/107 +f 228/440/107 281/441/107 217/339/107 +f 191/442/64 283/443/64 284/444/64 +f 182/445/116 285/446/116 192/447/116 +f 160/448/117 286/449/117 161/450/117 +f 189/451/118 287/452/118 185/453/118 +f 288/454/119 289/455/119 182/456/119 +f 185/453/120 290/457/120 160/448/120 +f 284/458/58 291/459/58 292/460/58 +f 292/461/67 293/462/67 288/454/67 +f 192/447/121 294/463/121 189/451/121 +f 161/450/122 295/464/122 191/442/122 +f 285/465/57 289/466/57 293/467/57 +f 296/468/57 182/469/57 288/470/57 +f 185/471/57 297/472/57 160/473/57 +f 298/474/57 292/475/57 284/476/57 +f 299/477/57 288/470/57 292/475/57 +f 300/478/57 189/479/57 192/480/57 +f 161/481/57 301/482/57 191/483/57 +f 191/483/57 298/474/57 284/476/57 +f 302/484/57 192/480/57 182/469/57 +f 160/473/57 303/485/57 161/481/57 +f 189/479/57 304/486/57 185/471/57 +f 305/487/67 288/488/67 181/286/67 +f 306/489/64 191/296/123 307/490/64 +f 308/491/124 284/476/124 292/475/124 +f 307/492/107 308/493/107 151/494/107 +f 145/246/53 212/328/53 146/247/53 +f 148/249/54 211/326/125 149/250/55 +f 151/252/57 154/495/57 152/253/57 +f 170/496/58 309/497/58 155/257/58 +f 309/497/58 152/255/58 155/257/58 +f 154/256/126 194/498/126 175/499/126 +f 194/498/126 176/500/126 175/499/126 +f 154/256/127 175/499/127 155/257/127 +f 156/258/128 214/332/128 157/259/128 +f 159/261/60 184/289/61 160/262/61 +f 155/265/57 175/501/57 163/266/57 +f 175/501/57 172/502/57 180/503/57 +f 180/503/57 172/502/57 178/504/57 +f 172/502/57 165/505/57 178/504/57 +f 180/503/57 163/266/57 175/501/57 +f 163/266/57 168/506/57 174/507/57 +f 174/507/57 162/264/57 163/266/57 +f 164/267/62 178/282/62 165/268/62 +f 167/270/63 174/278/63 168/271/63 +f 170/273/64 155/508/64 162/274/64 +f 166/269/65 165/268/65 172/276/65 +f 171/275/66 162/274/66 174/278/66 +f 173/277/67 172/276/67 175/279/67 +f 177/281/68 180/284/129 178/282/69 +f 179/283/70 163/285/70 180/284/70 +f 169/272/71 168/271/71 163/285/71 +f 181/286/130 288/488/130 182/287/130 +f 184/289/73 187/292/131 185/290/73 +f 186/291/132 189/294/132 185/290/132 +f 188/293/76 192/297/76 189/294/76 +f 190/295/77 159/261/77 161/263/77 +f 183/288/78 182/287/78 192/297/78 +f 151/509/64 310/510/64 199/511/64 +f 199/511/64 200/512/64 151/509/64 +f 200/512/64 202/513/64 148/514/64 +f 151/509/64 200/512/64 148/514/64 +f 148/514/64 150/515/64 203/516/64 +f 151/509/64 148/514/64 203/516/64 +f 203/516/64 205/517/64 154/300/64 +f 151/509/64 203/516/64 154/300/64 +f 205/517/64 193/298/64 154/300/64 +f 195/301/79 209/320/79 196/302/79 +f 199/306/57 310/518/57 181/519/57 +f 310/518/57 305/520/57 181/519/57 +f 306/521/57 311/522/57 190/523/57 +f 311/522/57 198/305/57 190/523/57 +f 199/306/57 181/519/57 183/524/57 +f 199/306/57 183/524/57 188/525/57 +f 159/526/57 190/523/57 198/305/57 +f 184/527/57 159/526/57 198/305/57 +f 199/306/57 188/525/57 186/528/57 +f 187/304/57 184/527/57 198/305/57 +f 199/306/57 186/528/57 187/304/57 +f 200/307/80 210/529/58 201/308/81 +f 213/530/57 309/531/57 171/532/57 +f 309/531/57 170/533/57 171/532/57 +f 176/534/57 194/535/57 173/536/57 +f 194/535/57 193/312/57 173/536/57 +f 213/530/57 171/532/57 167/537/57 +f 213/530/57 167/537/57 169/538/57 +f 166/539/57 173/536/57 193/312/57 +f 164/540/57 166/539/57 193/312/57 +f 213/530/57 169/538/57 179/310/57 +f 177/311/57 164/540/57 193/312/57 +f 213/530/57 179/310/57 193/312/57 +f 203/313/83 215/541/107 204/314/84 +f 206/316/86 216/335/86 207/317/86 +f 200/319/133 199/325/133 209/320/133 +f 157/259/134 214/332/134 193/321/134 +f 210/323/89 197/303/89 196/302/90 +f 210/323/135 200/319/135 195/301/135 +f 198/324/136 196/302/136 209/320/136 +f 211/326/93 147/248/137 146/247/94 +f 211/326/138 148/249/138 145/246/138 +f 148/249/139 202/329/139 212/328/139 +f 201/327/140 146/247/140 212/328/140 +f 213/330/98 156/258/141 158/260/99 +f 213/330/142 193/321/142 214/332/142 +f 205/322/143 204/331/143 158/260/143 +f 203/333/144 150/251/144 208/318/144 +f 149/250/145 206/316/145 208/318/145 +f 215/334/104 216/335/104 206/316/105 +f 215/334/146 203/333/146 207/317/146 +f 204/338/67 215/542/67 152/336/67 +f 215/542/67 149/543/67 153/544/67 +f 152/336/67 215/542/67 153/544/67 +f 149/543/67 211/545/67 153/544/67 +f 211/545/67 201/546/67 153/544/67 +f 201/546/67 210/547/67 153/544/67 +f 210/547/67 198/548/67 153/544/67 +f 198/548/67 311/549/67 153/544/67 +f 152/336/67 309/550/67 213/337/67 +f 217/339/107 281/441/107 218/340/107 +f 220/342/108 278/551/108 221/343/108 +f 223/345/58 276/413/58 224/346/58 +f 226/348/109 233/552/109 227/349/109 +f 229/351/64 273/408/64 230/352/64 +f 232/354/67 281/428/67 227/355/67 +f 234/357/67 280/426/67 235/358/67 +f 237/360/64 277/429/64 238/361/64 +f 240/363/110 266/431/110 241/364/110 +f 243/366/110 275/412/110 244/367/110 +f 235/369/109 280/432/109 246/370/109 +f 248/372/58 274/411/58 249/373/58 +f 251/375/111 282/436/111 252/376/111 +f 254/378/111 267/393/111 255/379/111 +f 257/381/108 279/438/108 258/382/108 +f 260/384/107 268/439/107 261/385/107 +f 262/386/107 261/385/107 263/387/107 +f 241/389/107 262/386/107 264/388/107 +f 266/391/107 260/384/107 262/386/107 +f 259/392/112 258/437/112 267/393/112 +f 219/394/112 259/392/112 254/378/112 +f 218/396/108 257/381/108 259/383/108 +f 256/398/113 255/407/113 269/399/113 +f 261/401/113 256/398/113 270/400/113 +f 268/395/111 254/378/111 256/380/111 +f 253/404/113 252/553/113 271/405/113 +f 255/407/113 253/404/113 272/406/113 +f 267/393/111 251/375/111 253/377/111 +f 273/408/58 248/372/58 250/374/58 +f 271/409/58 252/410/58 248/372/58 +f 252/410/58 282/434/58 274/411/58 +f 247/371/114 246/370/114 244/367/114 +f 224/346/114 247/371/114 275/412/114 +f 276/413/109 235/369/109 247/371/109 +f 243/366/115 245/368/115 277/414/115 +f 250/374/115 243/366/115 231/415/115 +f 249/373/110 275/412/110 243/366/110 +f 242/365/115 241/364/115 265/416/115 +f 245/368/115 242/365/115 238/417/115 +f 244/367/110 240/363/110 242/365/110 +f 239/362/64 238/361/64 265/418/64 +f 270/420/64 239/362/64 264/419/64 +f 269/422/64 237/360/64 239/362/64 +f 236/359/67 235/358/67 276/413/67 +f 220/423/67 236/359/67 223/345/67 +f 279/425/67 234/357/67 236/359/67 +f 232/354/67 233/356/67 280/426/67 +f 257/427/67 232/354/67 234/357/67 +f 257/427/67 218/554/67 281/428/67 +f 229/351/64 231/353/64 277/429/64 +f 272/430/64 229/351/64 237/360/64 +f 272/430/64 271/409/64 273/408/64 +f 226/348/114 228/350/114 266/431/114 +f 246/370/114 226/348/114 240/363/114 +f 280/432/109 233/552/109 226/348/109 +f 225/347/58 224/346/58 249/373/58 +f 221/433/58 225/347/58 274/411/58 +f 278/424/58 223/345/58 225/347/58 +f 222/435/112 221/555/112 282/436/112 +f 258/437/112 222/435/112 251/375/112 +f 279/438/108 220/342/108 222/344/108 +f 260/384/107 217/339/107 219/341/107 +f 266/391/107 228/440/107 217/339/107 +f 228/440/107 227/556/107 281/441/107 +f 191/442/64 295/464/64 283/443/64 +f 182/445/116 289/557/116 285/446/116 +f 160/448/117 290/457/117 286/449/117 +f 189/451/118 294/463/118 287/452/118 +f 288/454/119 293/462/119 289/455/119 +f 185/453/147 287/452/147 290/457/147 +f 284/458/58 283/558/58 291/459/58 +f 292/461/67 291/559/67 293/462/67 +f 192/447/121 285/446/121 294/463/121 +f 161/450/122 286/449/122 295/464/122 +f 293/467/57 291/560/57 283/561/57 +f 283/561/57 295/562/57 293/467/57 +f 295/562/57 286/563/57 287/564/57 +f 293/467/57 295/562/57 294/565/57 +f 286/563/57 290/566/57 287/564/57 +f 287/564/57 294/565/57 295/562/57 +f 294/565/57 285/465/57 293/467/57 +f 296/468/57 302/484/57 182/469/57 +f 185/471/57 304/486/57 297/472/57 +f 298/474/57 299/477/57 292/475/57 +f 299/477/57 296/468/57 288/470/57 +f 300/478/57 312/567/57 189/479/57 +f 161/481/57 303/485/57 301/482/57 +f 191/483/57 301/482/57 298/474/57 +f 302/484/57 300/478/57 192/480/57 +f 160/473/57 297/472/57 303/485/57 +f 189/479/57 312/567/57 304/486/57 +f 305/487/67 308/568/67 288/488/67 +f 306/489/64 190/295/123 191/296/123 +f 308/491/124 307/569/124 284/476/124 +f 153/570/107 311/571/107 307/492/107 +f 311/571/107 306/572/107 307/492/107 +f 305/573/107 310/574/107 308/493/107 +f 310/574/107 151/494/107 308/493/107 +f 153/570/107 307/492/107 151/494/107 diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index ab2066140..4a0266d81 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -52,6 +52,8 @@ "block.turbinegasRunning": {"category": "block", "sounds": [{"name": "block/turbinegasRunning", "stream": false}]}, "block.turbinegasShutdown": {"category": "block", "sounds": [{"name": "block/turbinegasShutdown", "stream": true}]}, "block.damage": {"category": "block", "sounds": ["block/dam1", "block/dam2", "block/dam3", "block/dam4"]}, + "block.electricHum": {"category": "block", "sounds": [{"name": "block/electricHum", "stream": false}]}, + "block.boiler": {"category": "block", "sounds": [{"name": "block/boiler", "stream": false}]}, "door.TransitionSealOpen": {"category": "block", "sounds": [{"name": "block/door/transition_seal_open", "stream": true}]}, "door.wghStart": {"category": "block", "sounds": [{"name": "block/door/wgh_start", "stream": true}]}, diff --git a/src/main/resources/assets/hbm/sounds/block/boiler.ogg b/src/main/resources/assets/hbm/sounds/block/boiler.ogg new file mode 100644 index 0000000000000000000000000000000000000000..c35d584f308dde45e23d89eb1ac5b495391b83cd GIT binary patch literal 191587 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

GtP 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 z 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/sounds/block/electricHum.ogg b/src/main/resources/assets/hbm/sounds/block/electricHum.ogg new file mode 100644 index 0000000000000000000000000000000000000000..2d6a77653ac3bbae74134d66b7a648acce9c7019 GIT binary patch literal 30848 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 N002ovPDHLkV1l=$?rQ)5 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/concrete_colored_ext.machine.png b/src/main/resources/assets/hbm/textures/blocks/concrete_colored_ext.machine.png new file mode 100644 index 0000000000000000000000000000000000000000..53406350fa015e77948f54ae5f07880b0c7b6a65 GIT binary patch literal 515 zcmV+e0{s1nP)B@dw6ZoCj;E>jGz$c{)GJf^Sd&W z@IX}f`FUezjNTce0}zoEMP*S{EO$hNW=6|MB7&@ zNsEZRX-0Uk?#BRgEqZH2CZ>vtpshWR0h*cZ1K*uZ6*B_?LU>;nV~nS%s2~U)v1K4U z2>*AEOvdQ6)-Y8>jRMnQV);46WMP$-j!_4;CTpY(BA~qs|$`@T#(TJd`IA5=g zq`Q!JvpE-t?EPAZ$YxW8d^|AQl(Gt literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/concrete_colored_ext.machine_stripe.png b/src/main/resources/assets/hbm/textures/blocks/concrete_colored_ext.machine_stripe.png new file mode 100644 index 0000000000000000000000000000000000000000..e60525931563597a87ea2863b344e159d411ee96 GIT binary patch literal 507 zcmVvHo7~?UvxvG%F%4AIs-Obn>k^J)gJ5>e1*h~+$ zF{bac5wU@1SbzNa7c(X^uuXRZ5DLaaW-?QzcVv@JYmu3R0tw6p4Q;iyiS9;%s=lox5rL$KeP-wxbSvnYtwcf0 z3^ttSL4@`o^ng`0i2dD-&{kt3U`53Cd`q$ohP9IGx`+re7kKYx{Kalyg}x$@gl%#q zUCnu(?3m|awasxHguK(LF1iN{A(6S66(TdxYq>MPo_qZCB&49KP>AlKsyWvBYM^)C z+p50ezWWdn;#g~!=-#wnc}vX9%?{Ufkr_XgO@!@7=BuKw&UH7L32gtF>$wNIEv%1^ z4>FRzSyl!%|MNa$j0vqU3jcduyqzaiwJ+VVxUOPm xSk+Bt5IVW49vk_xBRxM~ReXDU+w{{U~5LP8b`ObP%1002ovPDHLkV1n0D=qCUG literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/concrete_colored_ext.pink.png b/src/main/resources/assets/hbm/textures/blocks/concrete_colored_ext.pink.png new file mode 100644 index 0000000000000000000000000000000000000000..bf6c79faba4226e9dcb380f11a2c3a48119ce6d2 GIT binary patch literal 523 zcmV+m0`&cfP)EcWSKw%sG8{ ztwryh)*5C8z!>8%KuU?$8l@EOb6poXXL|315KvWe&dv%Tgb)B6IfOt60TDq&IF7@m z0H`V=LTl|CKtz1QzsS9JwrwM&gqfkLF2l^+4=tsjs$ADa@12~p(>>3VecxTXh@h%& zxS64?HRhbWy}kLMnK8y7=gfJYhzKbquIqA;IVU1Qh%pjE_z}}ui^t=^aU6sYNGY+_ zBF4xV!!R!S*6pU)rne*l`{K`-$Logn}K N002ovPDHLkV1h0O?neLs literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/concrete_colored_ext.purple.png b/src/main/resources/assets/hbm/textures/blocks/concrete_colored_ext.purple.png new file mode 100644 index 0000000000000000000000000000000000000000..10101f3fbf21907926b7726e6836320fa96c0cc1 GIT binary patch literal 523 zcmV+m0`&cfP)EcWSKw%sG8{ ztwryh)*5C8z!>8%KuU?$8l@EOb6poXXL|315KvWe&dv%Tgb)B6IfOt60TDq&IF7@m z0H`V=LTl|CKtz1QzsS9JwrwM&gqfkLF2l^+4=tsjs$ADa@12~p(>>3VecxTXh@h%& zxS64?HRhbWy}kLMnK8y7=gfJYhzKbquIqA;IVU1Qh%pjE_z}}ui^t=^aU6sYNGY+_ zBF4xV!!R!S*6pU)rne*kXQK&Dd1p^^Xq N002ovPDHLkV1jx2@6-SQ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/foundry_slagtap_bottom.png b/src/main/resources/assets/hbm/textures/blocks/foundry_slagtap_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..07af75aca5ea06fd62623193268766d622eee7a3 GIT binary patch literal 424 zcmV;Z0ayNsP)JwoWoiR5y8yxh#(?3=b);*-*47h0GxB`TLMJ{s#<^^5x)m_ z)>?HLV9trVv-d_-5fR+IE(55Up{jLJRcWo^?wA?(eIp_Ts;a1Jsd5o1h9~mgo8CL_ zUhHWj0U`pOb0Q+lIm?QfAtH=1xUQ?b1BeI_fr$L7$&g;JSIJY=0vltL_aqaMe-_LP zGvl1|C-v4E_kCk#^xiq=U}o&Siygr8kh1dfoU^ev7XE)I znREiCh2DEvnRAwHP5Do65mD22_v${G-|u$;c|_Fm@=2$^Twd?J>b$P&kKG?>LN0q% Sd%d#&0000lF(EG8ncaA`SA;Wn?QvyZ zC#1&=2tN4)lG1U+cx^XC+AGpbu7!mx~^O<7uvQZ=L|sed_Dn) zF%o0sd_FUdBiptyO%r|Jv+p~n)9Ikj^NhPAA~f!fy940v48s6G2mv!Yb}1#yjK||~ z+=>WlW~eIrz5}4Dgb-+&1~Vh2goqq;RYg^)wZ7-?qKF){pM@ABr4&jjxH~y#+?^1@ z+n|(kDAihjX`30fRz!rhZ4nX7jMwW$&KXtxw{QMEUmUe{tgQj*wg3PC07*qoM6N<$ Ef{a>!q5uE@ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/foundry_slagtap_side.png b/src/main/resources/assets/hbm/textures/blocks/foundry_slagtap_side.png new file mode 100644 index 0000000000000000000000000000000000000000..ce3162becd18fcdc33ac5110cfb2d2c635951335 GIT binary patch literal 307 zcmV-30nGl1P)|x)8zt@oW5L*CJG0G*wEQOk9ZN!2{po zZ9U7m+{4VkmoH$B$79Jk18_c{+3j{%Yw_N*TCIpN@-yG>_W-nQ%jtB&T`rf!rmCna zx7%%*g%A)C?)N*Y3P6mJuIm7hrfC4E>l*Jp*XwnW0X!ZLhGC$TLRD1&jN?cM;dR2{ za47G>dc6j~Irp-QFpeVt)>@`%VxDJ2gq$Wq?AZ05kkNigQ}8q<_T}YX#O~JXyX6?002ovPDHLk FV1ks_h~oeN literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/foundry_slagtap_top.png b/src/main/resources/assets/hbm/textures/blocks/foundry_slagtap_top.png new file mode 100644 index 0000000000000000000000000000000000000000..945bb0bbdc372ece0e1e005ba1f9037732e8ab81 GIT binary patch literal 370 zcmV-&0ge8NP)RX_LZRX?J1T-m7vRWcNoU=V!(c@bv_&Bz zrn7>+!e79D!^7d`K3;&`q-kohEHita=eddFm~d+kwAN5c?J?$gMi2yq+j}6T#4rp* ztg4EzpAE{g1Y?Ydr_%|J$*Z~jqCMlq?9Pj5<&=A zm&@fVan7+U3oMHi`||VojA0m{wZ`Fa__@}98q=N#7S^@0!r$Kw%A)BJgbd7i)Q`Fz4IiemFpk|f4;T@v8?KANV% z{eIv0cfH4MAO2SD%7=}aw0HqY#wk4b_+jSi{=R}O62to+LKNBWIEGmC zzP+%KmqCGt+41qQPcAp>wX{XgG+a_VrN8cHXy|RTNegx>a+;szoW|m}A-AAua)a<6 e`9JLZwieBdjr-a!%gzQG#Ng@b=d#Wzp$PyNZ7Em) literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/slag.png b/src/main/resources/assets/hbm/textures/blocks/slag.png new file mode 100644 index 0000000000000000000000000000000000000000..6b39d33d52ae39ff4bebf8f273ac874920ae9715 GIT binary patch literal 775 zcmV+i1Ni)jP)_6-3 zzrd+Z?Nptzb&)tVAS9C!B;DSC&`fVYNd&pS!LQ}J^SN;EdCo!po6%?_Wm!rTMRI+8 zEg~Xmnu^w1q9~HdWFlH?Da%r{))EAPD5Yeh)9Kt;mWAUu_`XlS-=|iq@%sA8{{BAC z&(8oH9v<@Y^1|NU9=`AM_4P%!+hzUa+U+*oZkM7c zNRk8q%d*JxoH&j_MC9%5ZS}@tv5?!_TM-eN&1TCFWj32hnx>+ZlIe6RA|hp3%0{cz zx@k6>*tX5q))v0+b9s45RaNZl>=4H>pP!%X?(Xvb{*GZ70MzSsOw(lD^E`^8AdX{# zAmIG`oIKAl41+w+3BwT6G%*YVtu>8C1JCmqkH>^z$a<0_3qO9v&WOwOS-e zLKueFwoR60jK^af$D!3~ad&se>FFs&QLq+8kz`p$r_-U)Xpkfcj^mId3GH?p%d&{$ zn4&0HEEaUTU0l~Cj^n=z=JPq8=K)Yv6}?^$(=QyR%VM#R;c&PT zEz$jdX*e8;QcBV^m9^<~Dq3qC$HBI3s;a^?O?=*6>L z^?IHA`+E$-U@#bv=Q+SC151;us$xE$vo@Q}WJzI}vMkF0*xufzC<*|IqF_Fs6UQ-E zS6AeD{@0DA>so6`(^N!6lv1l+1VJF9(P(AblG?Hh{{YFm5W=G@A%Oq@002ovPDHLk FV1iioa0UPX literal 0 HcmV?d00001 From 7b0f648804af6906588852a955fa058979b4c7e8 Mon Sep 17 00:00:00 2001 From: Doctor17-git <60807716+Doctor17-git@users.noreply.github.com> Date: Sun, 21 May 2023 20:51:16 +0300 Subject: [PATCH 002/109] Updated ru_RU.lang updated russian localization --- src/main/resources/assets/hbm/lang/ru_RU.lang | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/main/resources/assets/hbm/lang/ru_RU.lang b/src/main/resources/assets/hbm/lang/ru_RU.lang index f1d124f2e..23a244c37 100644 --- a/src/main/resources/assets/hbm/lang/ru_RU.lang +++ b/src/main/resources/assets/hbm/lang/ru_RU.lang @@ -1735,6 +1735,7 @@ tile.machine_difurnace_extension.name=Расширитель доменной п container.diFurnace=Доменная печь tile.foundry_basin.name=Литейный резервуар tile.foundry_channel.name=Литейный канал +tile.foundry_slagtap.name=Литейный спуск для шлака tile.foundry_outlet.name=Литейный спуск tile.foundry_mold.name=Малый литейный резервуар tile.foundry_tank.name=Литейный бассейн @@ -2070,6 +2071,12 @@ tile.concrete_brick_slab.brick_concrete_broken.name=Плита из разруш tile.concrete_brick_slab.brick_concrete_cracked.name=Плита из потресканных бетонных кирпичей tile.concrete_brick_slab.brick_concrete_mossy.name=Плита из замшелых бетонных кирпичей tile.concrete_brick_slab.brick_ducrete.name=Плита из дюкретовых кирпичей +tile.concrete_colored_ext.hazard.name=Бетон "Выбор строителя" - Полоса опасности +tile.concrete_colored_ext.indigo.name=Бетон "Выбор строителя" - Глубокий индиго +tile.concrete_colored_ext.machine.name=Бетон "Выбор строителя" - Промышленный оттенок +tile.concrete_colored_ext.machine_stripe.name=Бетон "Выбор строителя" - Промышленная полоса +tile.concrete_colored_ext.pink.name=Бетон "Выбор строителя" - Мужественный розовый +tile.concrete_colored_ext.purple.name=Бетон "Выбор строителя" - Таинственный фиолетовый tile.concrete_slab.concrete.name=Плита из бетонной плитки tile.concrete_slab.concrete_asbestos.name=Плита из асбестобетона tile.concrete_slab.concrete_smooth.name=Плита из бетона @@ -2166,6 +2173,8 @@ item.cart.destroyer.name=Вагонетка с уничтожителем мус item.cart.empty.name=Стальная вагонетка tile.rail_narrow.name=Узкоколейные вагонеточные рельсы tile.rail_wood.name=Деревянные рельсы +container.trainTram=Трамвай с плоской платформой +item.train.cargo_tram.name=Трамвай с плоской платформой tile.factory_titanium_hull.name=Корпус базовой фабрики tile.factory_titanium_furnace.name=Люк доступа базовой фабрики @@ -2973,6 +2982,7 @@ tile.block_tritium.name=Блок тритиевых пробирок tile.hazmat.name=Блок защитной ткани tile.deco_emitter.name=Декоративный источник света tile.part_emitter.name=Декоративный источник частиц +tile.piston_inserter.name=Вставщик tile.plant_flower.foxglove.name=Наперстянка tile.plant_flower.nightshade.name=Белладонна tile.plant_flower.tobacco.name=Табак From 7acf23b2aa5a3f6bbd3019f8a99c16fa3f009215 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 21 May 2023 22:51:04 +0200 Subject: [PATCH 003/109] ow my balls --- src/main/java/com/hbm/blocks/generic/BlockTallPlant.java | 2 +- .../com/hbm/tileentity/machine/TileEntityMachineTurbofan.java | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/blocks/generic/BlockTallPlant.java b/src/main/java/com/hbm/blocks/generic/BlockTallPlant.java index 4a972a3e7..f52da4c41 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockTallPlant.java +++ b/src/main/java/com/hbm/blocks/generic/BlockTallPlant.java @@ -305,7 +305,7 @@ public class BlockTallPlant extends BlockEnumMulti implements IPlantable, IGrowa public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { ArrayList ret = super.getDrops(world, x, y, z, metadata, fortune); - if(rectify(world.getBlockMetadata(x, y, z)) == EnumTallFlower.CD4.ordinal()) { + if(metadata == EnumTallFlower.CD4.ordinal() + 8) { ret.add(DictFrame.fromOne(ModItems.plant_item, com.hbm.items.ItemEnums.EnumPlantType.MUSTARDWILLOW, 3 + world.rand.nextInt(4))); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java index 942732fa1..4610b5216 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java @@ -309,6 +309,7 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements audio = rebootAudio(audio); } + audio.keepAlive(); audio.updateVolume(momentum); audio.updatePitch(momentum / 200F + 0.5F + this.afterburner * 0.16F); From 7ecc3fb1b79b961ad31c30fe4f55f6065a232430 Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 22 May 2023 16:48:51 +0200 Subject: [PATCH 004/109] fixes, cryo cannon UV --- .../hbm/entity/projectile/EntityShrapnel.java | 12 + .../entity/projectile/EntityWaterSplash.java | 28 +- .../inventory/material/MatDistribution.java | 1 + src/main/java/com/hbm/items/ModItems.java | 2 +- .../machine/TileEntityMachineMiningLaser.java | 4 +- .../assets/hbm/models/weapons/cryo_cannon.obj | 5964 +++++++++++++++-- .../textures/models/weapons/cryo_cannon.png | Bin 2251 -> 2242 bytes .../models/weapons/cryo_cannon/fill_0.png | Bin 0 -> 144 bytes .../models/weapons/cryo_cannon/fill_1.png | Bin 0 -> 148 bytes .../models/weapons/cryo_cannon/fill_10.png | Bin 0 -> 153 bytes .../models/weapons/cryo_cannon/fill_11.png | Bin 0 -> 140 bytes .../models/weapons/cryo_cannon/fill_12.png | Bin 0 -> 142 bytes .../models/weapons/cryo_cannon/fill_13.png | Bin 0 -> 141 bytes .../models/weapons/cryo_cannon/fill_14.png | Bin 0 -> 138 bytes .../models/weapons/cryo_cannon/fill_2.png | Bin 0 -> 147 bytes .../models/weapons/cryo_cannon/fill_3.png | Bin 0 -> 152 bytes .../models/weapons/cryo_cannon/fill_4.png | Bin 0 -> 153 bytes .../models/weapons/cryo_cannon/fill_5.png | Bin 0 -> 156 bytes .../models/weapons/cryo_cannon/fill_6.png | Bin 0 -> 156 bytes .../models/weapons/cryo_cannon/fill_7.png | Bin 0 -> 151 bytes .../models/weapons/cryo_cannon/fill_8.png | Bin 0 -> 153 bytes .../models/weapons/cryo_cannon/fill_9.png | Bin 0 -> 154 bytes .../models/weapons/cryo_cannon/pressure_0.png | Bin 0 -> 220 bytes .../models/weapons/cryo_cannon/pressure_1.png | Bin 0 -> 225 bytes .../weapons/cryo_cannon/pressure_10.png | Bin 0 -> 227 bytes .../weapons/cryo_cannon/pressure_11.png | Bin 0 -> 227 bytes .../models/weapons/cryo_cannon/pressure_2.png | Bin 0 -> 225 bytes .../models/weapons/cryo_cannon/pressure_3.png | Bin 0 -> 219 bytes .../models/weapons/cryo_cannon/pressure_4.png | Bin 0 -> 224 bytes .../models/weapons/cryo_cannon/pressure_5.png | Bin 0 -> 208 bytes .../models/weapons/cryo_cannon/pressure_6.png | Bin 0 -> 204 bytes .../models/weapons/cryo_cannon/pressure_7.png | Bin 0 -> 222 bytes .../models/weapons/cryo_cannon/pressure_8.png | Bin 0 -> 213 bytes .../models/weapons/cryo_cannon/pressure_9.png | Bin 0 -> 227 bytes .../weapons/cryo_cannon/pressure_empty.png | Bin 0 -> 213 bytes .../models/weapons/cryo_cannon/turbine_0.png | Bin 0 -> 235 bytes .../models/weapons/cryo_cannon/turbine_1.png | Bin 0 -> 242 bytes .../models/weapons/cryo_cannon/turbine_2.png | Bin 0 -> 247 bytes .../models/weapons/cryo_cannon/turbine_3.png | Bin 0 -> 237 bytes .../models/weapons/cryo_cannon/turbine_4.png | Bin 0 -> 250 bytes .../models/weapons/cryo_cannon/turbine_5.png | Bin 0 -> 249 bytes .../models/weapons/cryo_cannon/turbine_6.png | Bin 0 -> 247 bytes .../models/weapons/cryo_cannon/turbine_7.png | Bin 0 -> 243 bytes .../models/weapons/cryo_cannon/turbine_8.png | Bin 0 -> 234 bytes .../weapons/cryo_cannon/turbine_empty.png | Bin 0 -> 206 bytes 45 files changed, 5359 insertions(+), 652 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_0.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_1.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_10.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_11.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_12.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_13.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_14.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_2.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_3.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_4.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_5.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_6.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_7.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_8.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_9.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_0.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_1.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_10.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_11.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_2.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_3.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_4.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_5.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_6.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_7.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_8.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_9.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_empty.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_0.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_1.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_2.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_3.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_4.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_5.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_6.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_7.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_8.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_empty.png diff --git a/src/main/java/com/hbm/entity/projectile/EntityShrapnel.java b/src/main/java/com/hbm/entity/projectile/EntityShrapnel.java index 3b1c7dea5..c7cc1a674 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityShrapnel.java +++ b/src/main/java/com/hbm/entity/projectile/EntityShrapnel.java @@ -7,6 +7,7 @@ import com.hbm.lib.ModDamageSource; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.projectile.EntityThrowable; import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; @@ -106,4 +107,15 @@ public class EntityShrapnel extends EntityThrowable { public void setWatz(boolean b) { this.dataWatcher.updateObject(16, (byte) (b ? 3 : 0)); } + + @Override + public boolean writeToNBTOptional(NBTTagCompound nbt) { + return false; + } + + @Override + public void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); + this.setDead(); + } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityWaterSplash.java b/src/main/java/com/hbm/entity/projectile/EntityWaterSplash.java index d8501c733..4eed4570b 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityWaterSplash.java +++ b/src/main/java/com/hbm/entity/projectile/EntityWaterSplash.java @@ -9,24 +9,21 @@ import net.minecraft.world.World; public class EntityWaterSplash extends EntityThrowable { - public EntityWaterSplash(World p_i1773_1_) - { - super(p_i1773_1_); - } + public EntityWaterSplash(World p_i1773_1_) { + super(p_i1773_1_); + } - public EntityWaterSplash(World p_i1774_1_, EntityLivingBase p_i1774_2_) - { - super(p_i1774_1_, p_i1774_2_); - } + public EntityWaterSplash(World p_i1774_1_, EntityLivingBase p_i1774_2_) { + super(p_i1774_1_, p_i1774_2_); + } - @Override + @Override public void entityInit() { - } + } - public EntityWaterSplash(World p_i1775_1_, double p_i1775_2_, double p_i1775_4_, double p_i1775_6_) - { - super(p_i1775_1_, p_i1775_2_, p_i1775_4_, p_i1775_6_); - } + public EntityWaterSplash(World p_i1775_1_, double p_i1775_2_, double p_i1775_4_, double p_i1775_6_) { + super(p_i1775_1_, p_i1775_2_, p_i1775_4_, p_i1775_6_); + } @Override public void onUpdate() { @@ -51,9 +48,12 @@ public class EntityWaterSplash extends EntityThrowable { } } + @Override public boolean writeToNBTOptional(NBTTagCompound nbt) { return false; } + + @Override public void readEntityFromNBT(NBTTagCompound nbt) { super.readEntityFromNBT(nbt); this.setDead(); diff --git a/src/main/java/com/hbm/inventory/material/MatDistribution.java b/src/main/java/com/hbm/inventory/material/MatDistribution.java index 71116ec6c..a8793dc1c 100644 --- a/src/main/java/com/hbm/inventory/material/MatDistribution.java +++ b/src/main/java/com/hbm/inventory/material/MatDistribution.java @@ -84,6 +84,7 @@ public class MatDistribution extends SerializableRecipe { registerEntry(DictFrame.fromOne(ModBlocks.stone_resource, EnumStoneType.LIMESTONE), MAT_FLUX, DUST.q(10)); registerEntry(ModItems.powder_flux, MAT_FLUX, DUST.q(1)); + registerEntry(new ItemStack(Items.coal, 1, 1), MAT_CARBON, NUGGET.q(3)); } public static void registerEntry(Object key, Object... matDef) { diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index d055d6f01..8fc513266 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -3280,7 +3280,7 @@ public class ModItems { }).setUnlocalizedName("iv_blood").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":iv_blood"); iv_xp_empty = new ItemSimpleConsumable().setUseActionServer((stack, user) -> { - if(user.experienceTotal >= 100) { + if(EnchantmentUtil.getTotalExperience(user) >= 100) { ItemSimpleConsumable.giveSoundAndDecrement(stack, user, "hbm:item.syringe", new ItemStack(ModItems.iv_xp)); EnchantmentUtil.setExperience(user, EnchantmentUtil.getTotalExperience(user) - 100); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java index e0e4c52f7..82076c1cf 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java @@ -262,7 +262,9 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen if(hasCrystallizer()) { CrystallizerRecipe result = CrystallizerRecipes.getOutput(stack, Fluids.ACID); - if(result != null && result.output.getItem() != ModItems.scrap) { + if(result == null) result = CrystallizerRecipes.getOutput(stack, Fluids.SULFURIC_ACID); + + if(result != null) { worldObj.spawnEntityInWorld(new EntityItem(worldObj, targetX + 0.5, targetY + 0.5, targetZ + 0.5, result.output.copy())); normal = false; } diff --git a/src/main/resources/assets/hbm/models/weapons/cryo_cannon.obj b/src/main/resources/assets/hbm/models/weapons/cryo_cannon.obj index db707ffc8..32b7cee31 100644 --- a/src/main/resources/assets/hbm/models/weapons/cryo_cannon.obj +++ b/src/main/resources/assets/hbm/models/weapons/cryo_cannon.obj @@ -1,5 +1,810 @@ # Blender v2.79 (sub 0) OBJ File: 'cryo_cannon.blend' # www.blender.org +o Plane.004 +v -0.437500 2.102596 -3.042822 +v -0.483253 2.144063 -3.023486 +v -0.500000 2.200707 -2.997072 +v -0.483253 2.257351 -2.970659 +v -0.437500 2.298818 -2.951323 +v -0.375000 2.313995 -2.944245 +v -0.312500 2.298818 -2.951323 +v -0.266747 2.257351 -2.970659 +v -0.250000 2.200707 -2.997072 +v -0.266747 2.144063 -3.023486 +v -0.312500 2.102596 -3.042822 +v -0.375000 2.087419 -3.049900 +vt 0.750000 0.933013 +vt 0.933013 0.750000 +vt 1.000000 0.500000 +vt 0.933013 0.250000 +vt 0.750000 0.066987 +vt 0.500000 0.000000 +vt 0.250000 0.066987 +vt 0.066987 0.250000 +vt 0.000000 0.500000 +vt 0.066987 0.750000 +vt 0.250000 0.933013 +vt 0.500000 1.000000 +vn -0.0000 0.4226 -0.9063 +s off +f 1/1/1 2/2/1 3/3/1 4/4/1 5/5/1 6/6/1 7/7/1 8/8/1 9/9/1 10/10/1 11/11/1 12/12/1 +o Plane.003 +v -0.216506 2.340409 -3.000889 +v -0.250000 2.227120 -3.053716 +v -0.216506 2.113832 -3.106544 +v -0.125000 2.030899 -3.145216 +v 0.000000 2.000544 -3.159371 +v 0.125000 2.030899 -3.145216 +v 0.216506 2.113832 -3.106544 +v 0.250000 2.227120 -3.053716 +v 0.216506 2.340409 -3.000889 +v 0.125000 2.423342 -2.962217 +v 0.000000 2.453697 -2.948062 +v -0.125000 2.423342 -2.962217 +vt 0.250000 0.933013 +vt 0.500000 1.000000 +vt 0.750000 0.933013 +vt 0.933013 0.750000 +vt 1.000000 0.500000 +vt 0.933013 0.250000 +vt 0.750000 0.066987 +vt 0.500000 0.000000 +vt 0.250000 0.066987 +vt 0.066987 0.250000 +vt 0.000000 0.500000 +vt 0.066987 0.750000 +vn 0.0000 0.4226 -0.9063 +s off +f 24/13/2 23/14/2 22/15/2 21/16/2 20/17/2 19/18/2 18/19/2 17/20/2 16/21/2 15/22/2 14/23/2 13/24/2 +o Plane.002 +v -0.109472 2.437500 -0.413125 +v 0.003817 2.437500 -0.360298 +v 0.109472 2.437500 -0.586875 +v -0.003817 2.437500 -0.639702 +v 0.109472 2.312500 -0.586875 +v -0.003817 2.312500 -0.639702 +v -0.109472 2.312500 -0.413125 +v 0.003817 2.312500 -0.360298 +v 0.109472 0.062500 -0.413125 +v -0.003817 0.062500 -0.360298 +v -0.109472 0.062500 -0.586875 +v 0.003816 0.062500 -0.639702 +v -0.109472 0.187500 -0.586875 +v 0.003816 0.187500 -0.639702 +v 0.109472 0.187500 -0.413125 +v -0.003817 0.187500 -0.360298 +v 1.187500 1.359472 -0.413125 +v 1.187500 1.246183 -0.360298 +v 1.187500 1.140528 -0.586875 +v 1.187500 1.253817 -0.639702 +v 1.062500 1.140528 -0.586875 +v 1.062500 1.253817 -0.639702 +v 1.062500 1.359472 -0.413125 +v 1.062500 1.246183 -0.360298 +v -1.187500 1.140528 -0.413125 +v -1.187500 1.253817 -0.360298 +v -1.187500 1.359473 -0.586875 +v -1.187500 1.246184 -0.639702 +v -1.062500 1.359473 -0.586875 +v -1.062500 1.246184 -0.639702 +v -1.062500 1.140528 -0.413125 +v -1.062500 1.253817 -0.360298 +v 0.762281 2.167098 -0.413125 +v 0.842388 2.086991 -0.360298 +v 0.917098 2.012281 -0.586875 +v 0.836990 2.092388 -0.639702 +v 0.828709 1.923892 -0.586875 +v 0.748602 2.004000 -0.639702 +v 0.673892 2.078710 -0.413125 +v 0.754000 1.998602 -0.360298 +v -0.762281 0.332902 -0.413125 +v -0.842388 0.413010 -0.360298 +v -0.917098 0.487720 -0.586875 +v -0.836991 0.407612 -0.639702 +v -0.828710 0.576108 -0.586875 +v -0.748602 0.496001 -0.639702 +v -0.673892 0.421291 -0.413125 +v -0.754000 0.501398 -0.360298 +v 0.917098 0.487720 -0.413125 +v 0.836990 0.407612 -0.360298 +v 0.762280 0.332902 -0.586875 +v 0.842388 0.413010 -0.639702 +v 0.673892 0.421291 -0.586875 +v 0.753999 0.501398 -0.639702 +v 0.828709 0.576108 -0.413125 +v 0.748602 0.496001 -0.360298 +v -0.917098 2.012281 -0.413125 +v -0.836990 2.092388 -0.360298 +v -0.762281 2.167098 -0.586875 +v -0.842388 2.086991 -0.639702 +v -0.673892 2.078710 -0.586875 +v -0.754000 1.998602 -0.639702 +v -0.828709 1.923893 -0.413125 +v -0.748602 2.004000 -0.360298 +v 1.083141 0.751056 -0.413125 +v 1.026497 0.652945 -0.360298 +v 0.973669 0.561444 -0.586875 +v 1.030313 0.659555 -0.639702 +v 0.865416 0.623944 -0.586875 +v 0.922060 0.722055 -0.639702 +v 0.974888 0.813556 -0.413125 +v 0.918243 0.715445 -0.360298 +v -1.083141 1.748945 -0.413125 +v -1.026497 1.847056 -0.360298 +v -0.973669 1.938556 -0.586875 +v -1.030313 1.840445 -0.639702 +v -0.865416 1.876056 -0.586875 +v -0.922060 1.777945 -0.639702 +v -0.974888 1.686445 -0.413125 +v -0.918244 1.784556 -0.360298 +v -0.498944 0.166859 -0.413125 +v -0.597055 0.223504 -0.360298 +v -0.688556 0.276331 -0.586875 +v -0.590445 0.219687 -0.639702 +v -0.626056 0.384585 -0.586875 +v -0.527945 0.327940 -0.639702 +v -0.436444 0.275112 -0.413125 +v -0.534555 0.331757 -0.360298 +v 0.498944 2.333141 -0.413125 +v 0.597055 2.276497 -0.360298 +v 0.688556 2.223669 -0.586875 +v 0.590445 2.280313 -0.639702 +v 0.626056 2.115416 -0.586875 +v 0.527945 2.172060 -0.639702 +v 0.436444 2.224888 -0.413125 +v 0.534555 2.168244 -0.360298 +v 0.413089 0.131297 -0.413125 +v 0.303661 0.101975 -0.360298 +v 0.201605 0.074630 -0.586875 +v 0.311034 0.103951 -0.639702 +v 0.169253 0.195371 -0.586875 +v 0.278682 0.224692 -0.639702 +v 0.380737 0.252038 -0.413125 +v 0.271308 0.222716 -0.360298 +v -0.413090 2.368703 -0.413125 +v -0.303661 2.398025 -0.360298 +v -0.201605 2.425371 -0.586875 +v -0.311034 2.396049 -0.639702 +v -0.169253 2.304630 -0.586875 +v -0.278682 2.275309 -0.639702 +v -0.380737 2.247963 -0.413125 +v -0.271308 2.277284 -0.360298 +v -1.118703 0.836911 -0.413125 +v -1.148025 0.946339 -0.360298 +v -1.175370 1.048395 -0.586875 +v -1.146049 0.938966 -0.639702 +v -1.054630 1.080747 -0.586875 +v -1.025308 0.971319 -0.639702 +v -0.997963 0.869263 -0.413125 +v -1.027284 0.978692 -0.360298 +v 1.118703 1.663090 -0.413125 +v 1.148025 1.553661 -0.360298 +v 1.175370 1.451605 -0.586875 +v 1.146049 1.561034 -0.639702 +v 1.054630 1.419253 -0.586875 +v 1.025308 1.528682 -0.639702 +v 0.997963 1.630737 -0.413125 +v 1.027284 1.521308 -0.360298 +v -0.973669 0.561445 -0.413125 +v -1.030313 0.659556 -0.360298 +v -1.083141 0.751056 -0.586875 +v -1.026497 0.652945 -0.639702 +v -0.974888 0.813556 -0.586875 +v -0.918244 0.715445 -0.639702 +v -0.865416 0.623945 -0.413125 +v -0.922060 0.722056 -0.360298 +v 0.973669 1.938556 -0.413125 +v 1.030313 1.840445 -0.360298 +v 1.083141 1.748944 -0.586875 +v 1.026497 1.847055 -0.639702 +v 0.974888 1.686444 -0.586875 +v 0.918244 1.784555 -0.639702 +v 0.865416 1.876056 -0.413125 +v 0.922060 1.777945 -0.360298 +v -0.688556 2.223669 -0.413125 +v -0.590444 2.280313 -0.360298 +v -0.498944 2.333141 -0.586875 +v -0.597055 2.276497 -0.639702 +v -0.436444 2.224888 -0.586875 +v -0.534555 2.168244 -0.639702 +v -0.626056 2.115416 -0.413125 +v -0.527944 2.172060 -0.360298 +v 0.688555 0.276331 -0.413125 +v 0.590444 0.219687 -0.360298 +v 0.498944 0.166859 -0.586875 +v 0.597055 0.223503 -0.639702 +v 0.436444 0.275112 -0.586875 +v 0.534555 0.331756 -0.639702 +v 0.626055 0.384584 -0.413125 +v 0.527944 0.327940 -0.360298 +v -1.175370 1.451606 -0.413125 +v -1.146049 1.561034 -0.360298 +v -1.118703 1.663090 -0.586875 +v -1.148025 1.553661 -0.639702 +v -0.997963 1.630738 -0.586875 +v -1.027284 1.521309 -0.639702 +v -1.054630 1.419253 -0.413125 +v -1.025308 1.528682 -0.360298 +v 1.175370 1.048394 -0.413125 +v 1.146049 0.938966 -0.360298 +v 1.118703 0.836910 -0.586875 +v 1.148024 0.946339 -0.639702 +v 0.997963 0.869263 -0.586875 +v 1.027284 0.978691 -0.639702 +v 1.054630 1.080747 -0.413125 +v 1.025308 0.971318 -0.360298 +v 0.201606 2.425370 -0.413125 +v 0.311034 2.396049 -0.360298 +v 0.413090 2.368703 -0.586875 +v 0.303661 2.398025 -0.639702 +v 0.380738 2.247962 -0.586875 +v 0.271309 2.277284 -0.639702 +v 0.169253 2.304630 -0.413125 +v 0.278682 2.275308 -0.360298 +v -0.201606 0.074630 -0.413125 +v -0.311035 0.103951 -0.360298 +v -0.413090 0.131297 -0.586875 +v -0.303662 0.101975 -0.639702 +v -0.380738 0.252038 -0.586875 +v -0.271309 0.222716 -0.639702 +v -0.169254 0.195371 -0.413125 +v -0.278682 0.224692 -0.360298 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vn 0.0000 1.0000 0.0000 +vn 0.4226 0.0000 -0.9063 +vn -0.4226 -0.0000 0.9063 +vn 0.9063 -0.0000 0.4226 +vn -0.9063 0.0000 -0.4226 +vn 0.0000 -1.0000 -0.0000 +vn -0.4226 -0.0000 -0.9063 +vn 0.4226 -0.0000 0.9063 +vn -0.9063 0.0000 0.4226 +vn 0.9063 -0.0000 -0.4226 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -0.4226 -0.9063 +vn 0.0000 0.4226 0.9063 +vn 0.0000 -0.9063 0.4226 +vn 0.0000 0.9063 -0.4226 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.4226 -0.9063 +vn 0.0000 -0.4226 0.9063 +vn 0.0000 0.9063 0.4226 +vn 0.0000 -0.9063 -0.4226 +vn 0.7071 0.7071 0.0000 +vn 0.2988 -0.2988 -0.9063 +vn -0.2988 0.2988 0.9063 +vn 0.6409 -0.6409 0.4226 +vn -0.6409 0.6409 -0.4226 +vn -0.7071 -0.7071 0.0000 +vn -0.2988 0.2988 -0.9063 +vn 0.2988 -0.2988 0.9063 +vn -0.6409 0.6409 0.4226 +vn 0.6409 -0.6409 -0.4226 +vn 0.7071 -0.7071 0.0000 +vn -0.2988 -0.2988 -0.9063 +vn 0.2988 0.2988 0.9063 +vn -0.6409 -0.6409 0.4226 +vn 0.6409 0.6409 -0.4226 +vn -0.7071 0.7071 0.0000 +vn 0.2988 0.2988 -0.9063 +vn -0.2988 -0.2988 0.9063 +vn 0.6409 0.6409 0.4226 +vn -0.6409 -0.6409 -0.4226 +vn 0.8660 -0.5000 0.0000 +vn -0.2113 -0.3660 -0.9063 +vn 0.2113 0.3660 0.9063 +vn -0.4532 -0.7849 0.4226 +vn 0.4532 0.7849 -0.4226 +vn -0.8660 0.5000 -0.0000 +vn 0.2113 0.3660 -0.9063 +vn -0.2113 -0.3660 0.9063 +vn 0.4532 0.7849 0.4226 +vn -0.4532 -0.7849 -0.4226 +vn -0.5000 -0.8660 0.0000 +vn -0.3660 0.2113 -0.9063 +vn 0.3660 -0.2113 0.9063 +vn -0.7849 0.4532 0.4226 +vn 0.7849 -0.4532 -0.4226 +vn 0.5000 0.8660 0.0000 +vn 0.3660 -0.2113 -0.9063 +vn -0.3660 0.2113 0.9063 +vn 0.7849 -0.4532 0.4226 +vn -0.7849 0.4532 -0.4226 +vn 0.2588 -0.9659 -0.0000 +vn -0.4082 -0.1094 -0.9063 +vn 0.4082 0.1094 0.9063 +vn -0.8754 -0.2346 0.4226 +vn 0.8754 0.2346 -0.4226 +vn -0.2588 0.9659 -0.0000 +vn 0.4082 0.1094 -0.9063 +vn -0.4082 -0.1094 0.9063 +vn 0.8754 0.2346 0.4226 +vn -0.8754 -0.2346 -0.4226 +vn -0.9659 -0.2588 0.0000 +vn -0.1094 0.4082 -0.9063 +vn 0.1094 -0.4082 0.9063 +vn -0.2346 0.8754 0.4226 +vn 0.2346 -0.8754 -0.4226 +vn 0.9659 0.2588 0.0000 +vn 0.1094 -0.4082 -0.9063 +vn -0.1094 0.4082 0.9063 +vn 0.2346 -0.8754 0.4226 +vn -0.2346 0.8754 -0.4226 +vn -0.8660 -0.5000 0.0000 +vn -0.2113 0.3660 -0.9063 +vn 0.2113 -0.3660 0.9063 +vn -0.4532 0.7849 0.4226 +vn 0.4532 -0.7849 -0.4226 +vn 0.8660 0.5000 0.0000 +vn 0.2113 -0.3660 -0.9063 +vn -0.2113 0.3660 0.9063 +vn 0.4532 -0.7849 0.4226 +vn -0.4532 0.7849 -0.4226 +vn -0.5000 0.8660 0.0000 +vn 0.3660 0.2113 -0.9063 +vn -0.3660 -0.2113 0.9063 +vn 0.7849 0.4532 0.4226 +vn -0.7849 -0.4532 -0.4226 +vn 0.5000 -0.8660 -0.0000 +vn -0.3660 -0.2113 -0.9063 +vn 0.3660 0.2113 0.9063 +vn -0.7849 -0.4532 0.4226 +vn 0.7849 0.4532 -0.4226 +vn -0.9659 0.2588 0.0000 +vn 0.1094 0.4082 -0.9063 +vn -0.1094 -0.4082 0.9063 +vn 0.2346 0.8754 0.4226 +vn -0.2346 -0.8754 -0.4226 +vn 0.9659 -0.2588 -0.0000 +vn -0.1094 -0.4082 -0.9063 +vn 0.1094 0.4082 0.9063 +vn -0.2346 -0.8754 0.4226 +vn 0.2346 0.8754 -0.4226 +vn 0.2588 0.9659 0.0000 +vn 0.4082 -0.1094 -0.9063 +vn -0.4082 0.1094 0.9063 +vn 0.8754 -0.2346 0.4226 +vn -0.8754 0.2346 -0.4226 +vn -0.2588 -0.9659 0.0000 +vn -0.4082 0.1094 -0.9063 +vn 0.4082 -0.1094 0.9063 +vn -0.8754 0.2346 0.4226 +vn 0.8754 -0.2346 -0.4226 +s off +f 25/25/3 26/26/3 27/27/3 28/28/3 +f 28/28/4 27/27/4 29/29/4 30/30/4 +f 26/26/5 25/25/5 31/31/5 32/32/5 +f 27/27/6 26/26/6 32/33/6 29/34/6 +f 25/25/7 28/28/7 30/35/7 31/36/7 +f 33/37/8 34/38/8 35/39/8 36/40/8 +f 36/40/9 35/39/9 37/41/9 38/42/9 +f 34/38/10 33/37/10 39/43/10 40/44/10 +f 35/39/11 34/38/11 40/45/11 37/46/11 +f 33/37/12 36/40/12 38/47/12 39/48/12 +f 41/49/13 42/50/13 43/51/13 44/52/13 +f 44/52/14 43/51/14 45/53/14 46/54/14 +f 42/50/15 41/49/15 47/55/15 48/56/15 +f 43/51/16 42/50/16 48/57/16 45/58/16 +f 41/49/17 44/52/17 46/59/17 47/60/17 +f 49/61/18 50/62/18 51/63/18 52/64/18 +f 52/64/19 51/63/19 53/65/19 54/66/19 +f 50/62/20 49/61/20 55/67/20 56/68/20 +f 51/63/21 50/62/21 56/69/21 53/70/21 +f 49/61/22 52/64/22 54/71/22 55/72/22 +f 57/73/23 58/74/23 59/75/23 60/76/23 +f 60/76/24 59/75/24 61/77/24 62/78/24 +f 58/74/25 57/73/25 63/79/25 64/80/25 +f 59/75/26 58/74/26 64/81/26 61/82/26 +f 57/73/27 60/76/27 62/83/27 63/84/27 +f 65/85/28 66/86/28 67/87/28 68/88/28 +f 68/88/29 67/87/29 69/89/29 70/90/29 +f 66/86/30 65/85/30 71/91/30 72/92/30 +f 67/87/31 66/86/31 72/93/31 69/94/31 +f 65/85/32 68/88/32 70/95/32 71/96/32 +f 73/97/33 74/98/33 75/99/33 76/100/33 +f 76/100/34 75/99/34 77/101/34 78/102/34 +f 74/98/35 73/97/35 79/103/35 80/104/35 +f 75/99/36 74/98/36 80/105/36 77/106/36 +f 73/97/37 76/100/37 78/107/37 79/108/37 +f 81/109/38 82/110/38 83/111/38 84/112/38 +f 84/112/39 83/111/39 85/113/39 86/114/39 +f 82/110/40 81/109/40 87/115/40 88/116/40 +f 83/111/41 82/110/41 88/117/41 85/118/41 +f 81/109/42 84/112/42 86/119/42 87/120/42 +f 89/121/43 90/122/43 91/123/43 92/124/43 +f 92/124/44 91/123/44 93/125/44 94/126/44 +f 90/122/45 89/121/45 95/127/45 96/128/45 +f 91/123/46 90/122/46 96/129/46 93/130/46 +f 89/121/47 92/124/47 94/131/47 95/132/47 +f 97/133/48 98/134/48 99/135/48 100/136/48 +f 100/136/49 99/135/49 101/137/49 102/138/49 +f 98/134/50 97/133/50 103/139/50 104/140/50 +f 99/135/51 98/134/51 104/141/51 101/142/51 +f 97/133/52 100/136/52 102/143/52 103/144/52 +f 105/145/53 106/146/53 107/147/53 108/148/53 +f 108/148/54 107/147/54 109/149/54 110/150/54 +f 106/146/55 105/145/55 111/151/55 112/152/55 +f 107/147/56 106/146/56 112/153/56 109/154/56 +f 105/145/57 108/148/57 110/155/57 111/156/57 +f 113/157/58 114/158/58 115/159/58 116/160/58 +f 116/160/59 115/159/59 117/161/59 118/162/59 +f 114/158/60 113/157/60 119/163/60 120/164/60 +f 115/159/61 114/158/61 120/165/61 117/166/61 +f 113/157/62 116/160/62 118/167/62 119/168/62 +f 121/169/63 122/170/63 123/171/63 124/172/63 +f 124/172/64 123/171/64 125/173/64 126/174/64 +f 122/170/65 121/169/65 127/175/65 128/176/65 +f 123/171/66 122/170/66 128/177/66 125/178/66 +f 121/169/67 124/172/67 126/179/67 127/180/67 +f 129/181/68 130/182/68 131/183/68 132/184/68 +f 132/184/69 131/183/69 133/185/69 134/186/69 +f 130/182/70 129/181/70 135/187/70 136/188/70 +f 131/183/71 130/182/71 136/189/71 133/190/71 +f 129/181/72 132/184/72 134/191/72 135/192/72 +f 137/193/73 138/194/73 139/195/73 140/196/73 +f 140/196/74 139/195/74 141/197/74 142/198/74 +f 138/194/75 137/193/75 143/199/75 144/200/75 +f 139/195/76 138/194/76 144/201/76 141/202/76 +f 137/193/77 140/196/77 142/203/77 143/204/77 +f 145/205/78 146/206/78 147/207/78 148/208/78 +f 148/208/79 147/207/79 149/209/79 150/210/79 +f 146/206/80 145/205/80 151/211/80 152/212/80 +f 147/207/81 146/206/81 152/213/81 149/214/81 +f 145/205/82 148/208/82 150/215/82 151/216/82 +f 153/217/83 154/218/83 155/219/83 156/220/83 +f 156/220/84 155/219/84 157/221/84 158/222/84 +f 154/218/85 153/217/85 159/223/85 160/224/85 +f 155/219/86 154/218/86 160/225/86 157/226/86 +f 153/217/87 156/220/87 158/227/87 159/228/87 +f 161/229/88 162/230/88 163/231/88 164/232/88 +f 164/232/89 163/231/89 165/233/89 166/234/89 +f 162/230/90 161/229/90 167/235/90 168/236/90 +f 163/231/91 162/230/91 168/237/91 165/238/91 +f 161/229/92 164/232/92 166/239/92 167/240/92 +f 169/241/93 170/242/93 171/243/93 172/244/93 +f 172/244/94 171/243/94 173/245/94 174/246/94 +f 170/242/95 169/241/95 175/247/95 176/248/95 +f 171/243/96 170/242/96 176/249/96 173/250/96 +f 169/241/97 172/244/97 174/251/97 175/252/97 +f 177/253/98 178/254/98 179/255/98 180/256/98 +f 180/256/99 179/255/99 181/257/99 182/258/99 +f 178/254/100 177/253/100 183/259/100 184/260/100 +f 179/255/101 178/254/101 184/261/101 181/262/101 +f 177/253/102 180/256/102 182/263/102 183/264/102 +f 185/265/103 186/266/103 187/267/103 188/268/103 +f 188/268/104 187/267/104 189/269/104 190/270/104 +f 186/266/105 185/265/105 191/271/105 192/272/105 +f 187/267/106 186/266/106 192/273/106 189/274/106 +f 185/265/107 188/268/107 190/275/107 191/276/107 +f 193/277/108 194/278/108 195/279/108 196/280/108 +f 196/280/109 195/279/109 197/281/109 198/282/109 +f 194/278/110 193/277/110 199/283/110 200/284/110 +f 195/279/111 194/278/111 200/285/111 197/286/111 +f 193/277/112 196/280/112 198/287/112 199/288/112 +f 201/289/113 202/290/113 203/291/113 204/292/113 +f 204/292/114 203/291/114 205/293/114 206/294/114 +f 202/290/115 201/289/115 207/295/115 208/296/115 +f 203/291/116 202/290/116 208/297/116 205/298/116 +f 201/289/117 204/292/117 206/299/117 207/300/117 +f 209/301/118 210/302/118 211/303/118 212/304/118 +f 212/304/119 211/303/119 213/305/119 214/306/119 +f 210/302/120 209/301/120 215/307/120 216/308/120 +f 211/303/121 210/302/121 216/309/121 213/310/121 +f 209/301/122 212/304/122 214/311/122 215/312/122 +o Plane.001 +v 0.000000 2.453697 -2.948062 +v 0.125000 2.423342 -2.962217 +v 0.216506 2.340409 -3.000889 +v 0.250000 2.227120 -3.053716 +v 0.216506 2.113832 -3.106544 +v 0.000000 2.566986 -2.895234 +v 0.324759 2.057188 -3.132957 +v 0.375000 2.227120 -3.053716 +v 0.324760 2.397053 -2.974475 +v 0.187500 2.521452 -2.916467 +vt 1.000000 0.000000 +vt 1.000000 0.250000 +vt 0.000000 0.250000 +vt -0.000000 -0.000000 +vt 1.000000 0.500000 +vt -0.000000 0.500000 +vt 1.000000 0.750000 +vt -0.000000 0.750000 +vt 0.000000 1.000000 +vt 1.000000 1.000000 +vn 0.0000 0.4226 -0.9063 +s off +f 221/313/123 220/314/123 224/315/123 223/316/123 +f 220/314/123 219/317/123 225/318/123 224/315/123 +f 219/317/123 218/319/123 226/320/123 225/318/123 +f 222/321/123 226/320/123 218/319/123 217/322/123 o Plane v -0.500000 -0.000000 0.125000 v -0.500000 0.000000 -0.375000 @@ -459,9 +1264,6 @@ v -0.062500 2.243718 -5.265165 v -0.062500 2.066942 -5.088388 v -0.125000 2.423342 -2.962217 v 0.000000 2.453697 -2.948062 -v 0.125000 2.423342 -2.962217 -v 0.216506 2.340409 -3.000889 -v 0.250000 2.227120 -3.053716 v 0.216506 2.113832 -3.106544 v 0.125000 2.030899 -3.145216 v 0.000000 2.000544 -3.159371 @@ -556,14 +1358,6 @@ v 0.012500 2.134191 -3.062400 v 0.012500 2.009191 -3.062400 v -0.137500 2.134191 -3.062400 v -0.012500 2.134191 -3.062400 -v -0.109472 2.437500 -0.413125 -v 0.003817 2.437500 -0.360298 -v 0.109472 2.437500 -0.586875 -v -0.003817 2.437500 -0.639702 -v 0.109472 2.312500 -0.586875 -v -0.003817 2.312500 -0.639702 -v -0.109472 2.312500 -0.413125 -v 0.003817 2.312500 -0.360298 v -0.625000 1.938500 -3.250000 v 0.625000 1.938500 -3.250000 v 0.625000 1.830247 -3.187500 @@ -837,6 +1631,2962 @@ v 1.088388 1.859835 -1.750000 v 0.698223 2.125000 -1.875000 v 1.051777 1.771446 -1.750000 v 1.000000 0.500000 -2.625000 +v 0.344030 1.791848 -0.175597 +v 0.424630 1.866847 -0.128904 +v 0.388541 1.881795 -0.128904 +v 0.328091 1.825547 -0.163924 +v 0.420670 1.976871 -0.082211 +v 0.334466 2.057472 -0.062870 +v 0.320918 2.024764 -0.079378 +v 0.385571 1.964314 -0.093884 +v 0.216518 2.061433 -0.082211 +v 0.135918 1.986435 -0.128904 +v 0.172007 1.971487 -0.128904 +v 0.232457 2.027735 -0.093884 +v 0.139879 1.876410 -0.175597 +v 0.174978 1.888968 -0.163924 +v 0.226082 1.795810 -0.194938 +v 0.239630 1.828518 -0.178429 +v 0.208096 1.956538 -0.128904 +v 0.210077 1.901526 -0.152250 +v 0.253178 1.861225 -0.161921 +v 0.312152 1.859245 -0.152250 +v 0.352451 1.896744 -0.128904 +v 0.350472 1.951756 -0.105557 +v 0.307370 1.992056 -0.095887 +v 0.248396 1.994037 -0.105557 +v 0.222349 2.003332 -0.037240 +v 0.161900 1.947084 -0.072260 +v 0.197989 1.932135 -0.072260 +v 0.238288 1.969634 -0.048913 +v 0.164869 1.864565 -0.107280 +v 0.199968 1.877123 -0.095606 +v 0.229523 1.804115 -0.121785 +v 0.243071 1.836822 -0.105277 +v 0.317984 1.801143 -0.107280 +v 0.302044 1.834842 -0.095606 +v 0.378433 1.857392 -0.072260 +v 0.342344 1.872341 -0.072260 +v 0.375462 1.939911 -0.037240 +v 0.340365 1.927353 -0.048913 +v 0.310810 2.000361 -0.022734 +v 0.297262 1.967653 -0.039243 +v -0.110485 1.735485 -0.750000 +v -0.156250 1.625000 -0.750000 +v -0.156250 1.762294 -0.418544 +v -0.110485 1.840419 -0.496669 +v -0.110485 1.514515 -0.750000 +v 0.000000 1.468750 -0.750000 +v 0.000000 1.651808 -0.308058 +v -0.110485 1.684169 -0.340419 +v 0.110486 1.514515 -0.750000 +v 0.156250 1.625000 -0.750000 +v 0.156250 1.762294 -0.418544 +v 0.110486 1.684169 -0.340419 +v 0.110486 1.735485 -0.750000 +v 0.110486 1.840419 -0.496669 +v 0.000000 1.781250 -0.750000 +v 0.000000 1.872779 -0.529029 +v 0.156250 1.914367 -0.316931 +v 0.110486 1.872086 -0.214856 +v 0.000000 1.854573 -0.172575 +v -0.110485 1.872086 -0.214856 +v -0.156250 1.914367 -0.316931 +v -0.110485 1.956648 -0.419007 +v 0.000000 1.974162 -0.461288 +v 0.110486 1.956648 -0.419007 +v -0.110485 2.093750 -0.391735 +v 0.000000 2.093750 -0.437500 +v 0.110486 2.093750 -0.391735 +v 0.156250 2.093750 -0.281250 +v 0.110486 2.093750 -0.170765 +v 0.000000 2.093750 -0.125000 +v -0.110485 2.093750 -0.170765 +v -0.156250 2.093750 -0.281250 +v 0.110486 2.315414 -0.214856 +v 0.000000 2.332927 -0.172575 +v -0.110485 2.315414 -0.214856 +v -0.156250 2.273133 -0.316932 +v -0.110485 2.230852 -0.419007 +v 0.000000 2.213339 -0.461288 +v 0.110486 2.230852 -0.419007 +v 0.156250 2.273133 -0.316932 +v 0.196566 2.132853 -0.468769 +v 0.200528 2.022828 -0.515462 +v 0.286731 1.942228 -0.534803 +v 0.404678 1.938266 -0.515462 +v 0.485279 2.013265 -0.468769 +v 0.481318 2.123290 -0.422076 +v 0.395115 2.203890 -0.402735 +v 0.277166 2.207852 -0.422076 +v -0.541848 1.594031 -0.175597 +v -0.616847 1.674630 -0.128904 +v -0.631795 1.638541 -0.128904 +v -0.575547 1.578091 -0.163924 +v -0.726871 1.670670 -0.082211 +v -0.807472 1.584466 -0.062870 +v -0.774764 1.570918 -0.079378 +v -0.714314 1.635571 -0.093884 +v -0.811433 1.466519 -0.082211 +v -0.736435 1.385918 -0.128904 +v -0.721487 1.422007 -0.128904 +v -0.777735 1.482457 -0.093884 +v -0.626410 1.389879 -0.175597 +v -0.638968 1.424978 -0.163924 +v -0.545810 1.476082 -0.194938 +v -0.578518 1.489630 -0.178429 +v -0.706538 1.458096 -0.128904 +v -0.651526 1.460078 -0.152250 +v -0.611225 1.503178 -0.161921 +v -0.609245 1.562152 -0.152250 +v -0.646744 1.602452 -0.128904 +v -0.701756 1.600472 -0.105557 +v -0.742056 1.557370 -0.095887 +v -0.744037 1.498396 -0.105557 +v -0.753332 1.472349 -0.037240 +v -0.697084 1.411900 -0.072260 +v -0.682135 1.447989 -0.072260 +v -0.719634 1.488288 -0.048913 +v -0.614565 1.414870 -0.107280 +v -0.627123 1.449969 -0.095606 +v -0.554115 1.479523 -0.121785 +v -0.586822 1.493071 -0.105277 +v -0.551143 1.567984 -0.107280 +v -0.584842 1.552044 -0.095606 +v -0.607392 1.628433 -0.072260 +v -0.622341 1.592345 -0.072260 +v -0.689911 1.625462 -0.037240 +v -0.677353 1.590365 -0.048913 +v -0.750361 1.560810 -0.022734 +v -0.717653 1.547262 -0.039243 +v -0.485485 1.139515 -0.750000 +v -0.375000 1.093750 -0.750000 +v -0.512294 1.093750 -0.418544 +v -0.590419 1.139515 -0.496669 +v -0.264515 1.139515 -0.750000 +v -0.218750 1.250000 -0.750000 +v -0.401808 1.250000 -0.308058 +v -0.434169 1.139515 -0.340419 +v -0.264515 1.360486 -0.750000 +v -0.375000 1.406250 -0.750000 +v -0.512294 1.406250 -0.418544 +v -0.434169 1.360486 -0.340419 +v -0.485485 1.360486 -0.750000 +v -0.590419 1.360486 -0.496669 +v -0.531250 1.250000 -0.750000 +v -0.622779 1.250000 -0.529029 +v -0.664367 1.406250 -0.316931 +v -0.622086 1.360486 -0.214856 +v -0.604573 1.250000 -0.172575 +v -0.622086 1.139515 -0.214856 +v -0.664367 1.093750 -0.316931 +v -0.706648 1.139515 -0.419007 +v -0.724162 1.250000 -0.461288 +v -0.706648 1.360486 -0.419007 +v -0.843750 1.139515 -0.391735 +v -0.843750 1.250000 -0.437500 +v -0.843750 1.360486 -0.391735 +v -0.843750 1.406250 -0.281250 +v -0.843750 1.360486 -0.170765 +v -0.843750 1.250000 -0.125000 +v -0.843750 1.139515 -0.170765 +v -0.843750 1.093750 -0.281250 +v -1.065414 1.360486 -0.214856 +v -1.082927 1.250000 -0.172575 +v -1.065414 1.139515 -0.214856 +v -1.023133 1.093750 -0.316932 +v -0.980852 1.139515 -0.419007 +v -0.963339 1.250000 -0.461288 +v -0.980852 1.360486 -0.419007 +v -1.023133 1.406250 -0.316932 +v -0.882853 1.446566 -0.468769 +v -0.772828 1.450528 -0.515462 +v -0.692228 1.536731 -0.534803 +v -0.688266 1.654678 -0.515462 +v -0.763265 1.735279 -0.468769 +v -0.873290 1.731318 -0.422076 +v -0.953890 1.645115 -0.402735 +v -0.957852 1.527166 -0.422076 +v 0.541848 0.905970 -0.175597 +v 0.616847 0.825370 -0.128904 +v 0.631795 0.861459 -0.128904 +v 0.575547 0.921909 -0.163924 +v 0.726871 0.829330 -0.082211 +v 0.807472 0.915534 -0.062870 +v 0.774764 0.929082 -0.079378 +v 0.714314 0.864429 -0.093884 +v 0.811433 1.033482 -0.082211 +v 0.736435 1.114082 -0.128904 +v 0.721487 1.077993 -0.128904 +v 0.777735 1.017543 -0.093884 +v 0.626410 1.110121 -0.175597 +v 0.638968 1.075022 -0.163924 +v 0.545810 1.023918 -0.194938 +v 0.578518 1.010370 -0.178429 +v 0.706538 1.041904 -0.128904 +v 0.651526 1.039923 -0.152250 +v 0.611225 0.996822 -0.161921 +v 0.609245 0.937848 -0.152250 +v 0.646744 0.897549 -0.128904 +v 0.701756 0.899529 -0.105557 +v 0.742056 0.942630 -0.095887 +v 0.744037 1.001604 -0.105557 +v 0.753332 1.027651 -0.037240 +v 0.697084 1.088100 -0.072260 +v 0.682135 1.052011 -0.072260 +v 0.719634 1.011712 -0.048913 +v 0.614565 1.085131 -0.107280 +v 0.627123 1.050032 -0.095606 +v 0.554115 1.020477 -0.121785 +v 0.586822 1.006929 -0.105277 +v 0.551143 0.932016 -0.107280 +v 0.584842 0.947956 -0.095606 +v 0.607392 0.871567 -0.072260 +v 0.622341 0.907656 -0.072260 +v 0.689911 0.874539 -0.037240 +v 0.677353 0.909636 -0.048913 +v 0.750361 0.939190 -0.022734 +v 0.717653 0.952738 -0.039243 +v 0.485485 1.360485 -0.750000 +v 0.375000 1.406250 -0.750000 +v 0.512294 1.406250 -0.418544 +v 0.590419 1.360485 -0.496669 +v 0.264515 1.360485 -0.750000 +v 0.218750 1.250000 -0.750000 +v 0.401808 1.250000 -0.308058 +v 0.434169 1.360485 -0.340419 +v 0.264515 1.139514 -0.750000 +v 0.375000 1.093750 -0.750000 +v 0.512294 1.093750 -0.418544 +v 0.434169 1.139514 -0.340419 +v 0.485485 1.139514 -0.750000 +v 0.590419 1.139514 -0.496669 +v 0.531250 1.250000 -0.750000 +v 0.622779 1.250000 -0.529029 +v 0.664367 1.093750 -0.316931 +v 0.622086 1.139514 -0.214856 +v 0.604573 1.250000 -0.172575 +v 0.622086 1.360485 -0.214856 +v 0.664367 1.406250 -0.316931 +v 0.706648 1.360485 -0.419007 +v 0.724162 1.250000 -0.461288 +v 0.706648 1.139514 -0.419007 +v 0.843750 1.360485 -0.391735 +v 0.843750 1.250000 -0.437500 +v 0.843750 1.139514 -0.391735 +v 0.843750 1.093750 -0.281250 +v 0.843750 1.139514 -0.170765 +v 0.843750 1.250000 -0.125000 +v 0.843750 1.360485 -0.170765 +v 0.843750 1.406250 -0.281250 +v 1.065414 1.139514 -0.214856 +v 1.082927 1.250000 -0.172575 +v 1.065414 1.360485 -0.214856 +v 1.023133 1.406250 -0.316932 +v 0.980852 1.360485 -0.419007 +v 0.963339 1.250000 -0.461288 +v 0.980852 1.139514 -0.419007 +v 1.023133 1.093750 -0.316932 +v 0.882853 1.053434 -0.468769 +v 0.772828 1.049472 -0.515462 +v 0.692228 0.963269 -0.534803 +v 0.688266 0.845322 -0.515462 +v 0.763265 0.764721 -0.468769 +v 0.873290 0.768682 -0.422076 +v 0.953890 0.854885 -0.402735 +v 0.957852 0.972834 -0.422076 +v -0.626411 1.110122 -0.175597 +v -0.736436 1.114082 -0.128904 +v -0.721487 1.077994 -0.128904 +v -0.638968 1.075022 -0.163924 +v -0.811434 1.033483 -0.082211 +v -0.807472 0.915534 -0.062870 +v -0.774764 0.929083 -0.079378 +v -0.777736 1.017543 -0.093884 +v -0.726871 0.829332 -0.082211 +v -0.616847 0.825370 -0.128904 +v -0.631795 0.861459 -0.128904 +v -0.714314 0.864430 -0.093884 +v -0.541848 0.905971 -0.175597 +v -0.575547 0.921910 -0.163924 +v -0.545810 1.023918 -0.194938 +v -0.578518 1.010370 -0.178429 +v -0.646744 0.897548 -0.128904 +v -0.609246 0.937849 -0.152250 +v -0.611225 0.996822 -0.161921 +v -0.651526 1.039924 -0.152250 +v -0.706538 1.041904 -0.128904 +v -0.744037 1.001604 -0.105557 +v -0.742056 0.942631 -0.095887 +v -0.701756 0.899529 -0.105557 +v -0.689911 0.874538 -0.037240 +v -0.607393 0.871567 -0.072260 +v -0.622341 0.907657 -0.072260 +v -0.677353 0.909637 -0.048913 +v -0.551143 0.932017 -0.107280 +v -0.584842 0.947956 -0.095606 +v -0.554116 1.020479 -0.121785 +v -0.586823 1.006931 -0.105277 +v -0.614565 1.085132 -0.107280 +v -0.627123 1.050032 -0.095606 +v -0.697084 1.088102 -0.072260 +v -0.682136 1.052012 -0.072260 +v -0.753332 1.027651 -0.037240 +v -0.719635 1.011713 -0.048913 +v -0.750361 0.939191 -0.022734 +v -0.717654 0.952739 -0.039243 +v -0.265165 0.828586 -0.750000 +v -0.154680 0.874350 -0.750000 +v -0.251761 0.777268 -0.418544 +v -0.339365 0.754386 -0.496669 +v -0.108916 0.984835 -0.750000 +v -0.154680 1.095320 -0.750000 +v -0.284121 0.965879 -0.308058 +v -0.228879 0.864871 -0.340419 +v -0.265166 1.141085 -0.750000 +v -0.375651 1.095320 -0.750000 +v -0.472732 0.998239 -0.418544 +v -0.385129 1.021122 -0.340419 +v -0.421415 0.984836 -0.750000 +v -0.495615 0.910636 -0.496669 +v -0.375651 0.874350 -0.750000 +v -0.440371 0.809629 -0.529029 +v -0.580264 0.890707 -0.316931 +v -0.518007 0.888244 -0.214856 +v -0.427498 0.822502 -0.172575 +v -0.361757 0.731994 -0.214856 +v -0.359293 0.669736 -0.316931 +v -0.421551 0.672200 -0.419007 +v -0.512060 0.737940 -0.461288 +v -0.577801 0.828450 -0.419007 +v -0.518497 0.575254 -0.391735 +v -0.596621 0.653379 -0.437500 +v -0.674747 0.731504 -0.391735 +v -0.707107 0.763864 -0.281250 +v -0.674747 0.731504 -0.170765 +v -0.596621 0.653379 -0.125000 +v -0.518497 0.575254 -0.170765 +v -0.486136 0.542893 -0.281250 +v -0.831487 0.574764 -0.214856 +v -0.765745 0.484255 -0.172575 +v -0.675237 0.418514 -0.214856 +v -0.612979 0.416050 -0.316932 +v -0.615442 0.478308 -0.419007 +v -0.681184 0.568817 -0.461288 +v -0.771693 0.634558 -0.419007 +v -0.833950 0.637021 -0.316932 +v -0.763264 0.764722 -0.468769 +v -0.688267 0.845323 -0.515462 +v -0.692228 0.963270 -0.534803 +v -0.772828 1.049473 -0.515462 +v -0.882854 1.053434 -0.468769 +v -0.957852 0.972834 -0.422076 +v -0.953891 0.854886 -0.402735 +v -0.873290 0.768683 -0.422076 +v 0.626411 1.389878 -0.175597 +v 0.736436 1.385918 -0.128904 +v 0.721487 1.422006 -0.128904 +v 0.638968 1.424978 -0.163924 +v 0.811434 1.466517 -0.082211 +v 0.807472 1.584466 -0.062870 +v 0.774764 1.570918 -0.079378 +v 0.777736 1.482457 -0.093884 +v 0.726872 1.670668 -0.082211 +v 0.616847 1.674630 -0.128904 +v 0.631796 1.638541 -0.128904 +v 0.714314 1.635570 -0.093884 +v 0.541848 1.594029 -0.175597 +v 0.575547 1.578090 -0.163924 +v 0.545810 1.476082 -0.194938 +v 0.578518 1.489630 -0.178429 +v 0.646744 1.602452 -0.128904 +v 0.609246 1.562152 -0.152250 +v 0.611225 1.503178 -0.161921 +v 0.651526 1.460077 -0.152250 +v 0.706538 1.458097 -0.128904 +v 0.744037 1.498396 -0.105557 +v 0.742057 1.557369 -0.095887 +v 0.701756 1.600471 -0.105557 +v 0.689911 1.625462 -0.037240 +v 0.607393 1.628433 -0.072260 +v 0.622342 1.592343 -0.072260 +v 0.677353 1.590363 -0.048913 +v 0.551144 1.567983 -0.107280 +v 0.584842 1.552044 -0.095606 +v 0.554116 1.479522 -0.121785 +v 0.586823 1.493069 -0.105277 +v 0.614566 1.414869 -0.107280 +v 0.627123 1.449969 -0.095606 +v 0.697084 1.411898 -0.072260 +v 0.682136 1.447988 -0.072260 +v 0.753332 1.472350 -0.037240 +v 0.719635 1.488287 -0.048913 +v 0.750361 1.560810 -0.022734 +v 0.717654 1.547261 -0.039243 +v 0.265165 1.671415 -0.750000 +v 0.154680 1.625651 -0.750000 +v 0.251761 1.722732 -0.418544 +v 0.339365 1.745614 -0.496669 +v 0.108916 1.515165 -0.750000 +v 0.154680 1.404680 -0.750000 +v 0.284121 1.534121 -0.308058 +v 0.228879 1.635129 -0.340419 +v 0.265166 1.358915 -0.750000 +v 0.375651 1.404680 -0.750000 +v 0.472732 1.501761 -0.418544 +v 0.385129 1.478879 -0.340419 +v 0.421415 1.515165 -0.750000 +v 0.495615 1.589364 -0.496669 +v 0.375651 1.625651 -0.750000 +v 0.440371 1.690371 -0.529029 +v 0.580264 1.609293 -0.316931 +v 0.518007 1.611756 -0.214856 +v 0.427498 1.677498 -0.172575 +v 0.361757 1.768006 -0.214856 +v 0.359293 1.830264 -0.316931 +v 0.421551 1.827801 -0.419007 +v 0.512060 1.762060 -0.461288 +v 0.577801 1.671550 -0.419007 +v 0.518497 1.924746 -0.391735 +v 0.596621 1.846622 -0.437500 +v 0.674747 1.768496 -0.391735 +v 0.707107 1.736136 -0.281250 +v 0.674747 1.768496 -0.170765 +v 0.596621 1.846622 -0.125000 +v 0.518497 1.924746 -0.170765 +v 0.486136 1.957107 -0.281250 +v 0.831487 1.925236 -0.214856 +v 0.765745 2.015745 -0.172575 +v 0.675237 2.081486 -0.214856 +v 0.612979 2.083950 -0.316932 +v 0.615442 2.021692 -0.419007 +v 0.681184 1.931184 -0.461288 +v 0.771693 1.865442 -0.419007 +v 0.833950 1.862979 -0.316932 +v 0.763264 1.735279 -0.468769 +v 0.688267 1.654677 -0.515462 +v 0.692229 1.536730 -0.534803 +v 0.772828 1.450527 -0.515462 +v 0.882854 1.446566 -0.468769 +v 0.957852 1.527166 -0.422076 +v 0.953891 1.645114 -0.402735 +v 0.873290 1.731318 -0.422076 +v -0.139878 1.876411 -0.175597 +v -0.135918 1.986436 -0.128904 +v -0.172006 1.971487 -0.128904 +v -0.174978 1.888969 -0.163924 +v -0.216517 2.061434 -0.082211 +v -0.334466 2.057472 -0.062870 +v -0.320918 2.024765 -0.079378 +v -0.232457 2.027736 -0.093884 +v -0.420668 1.976872 -0.082211 +v -0.424630 1.866847 -0.128904 +v -0.388541 1.881796 -0.128904 +v -0.385570 1.964314 -0.093884 +v -0.344029 1.791849 -0.175597 +v -0.328090 1.825547 -0.163924 +v -0.226082 1.795810 -0.194938 +v -0.239630 1.828518 -0.178429 +v -0.352452 1.896744 -0.128904 +v -0.312151 1.859246 -0.152250 +v -0.253178 1.861225 -0.161921 +v -0.210077 1.901526 -0.152250 +v -0.208096 1.956538 -0.128904 +v -0.248396 1.994038 -0.105557 +v -0.307369 1.992057 -0.095887 +v -0.350471 1.951756 -0.105557 +v -0.375462 1.939911 -0.037240 +v -0.378433 1.857393 -0.072260 +v -0.342343 1.872342 -0.072260 +v -0.340363 1.927353 -0.048913 +v -0.317983 1.801144 -0.107280 +v -0.302044 1.834842 -0.095606 +v -0.229521 1.804116 -0.121785 +v -0.243069 1.836823 -0.105277 +v -0.164869 1.864566 -0.107280 +v -0.199968 1.877123 -0.095606 +v -0.161898 1.947084 -0.072260 +v -0.197988 1.932136 -0.072260 +v -0.222349 2.003333 -0.037240 +v -0.238287 1.969635 -0.048913 +v -0.310809 2.000361 -0.022734 +v -0.297261 1.967654 -0.039243 +v -0.421415 1.515165 -0.750000 +v -0.375651 1.404680 -0.750000 +v -0.472732 1.501761 -0.418544 +v -0.495614 1.589365 -0.496669 +v -0.265165 1.358916 -0.750000 +v -0.154680 1.404680 -0.750000 +v -0.284121 1.534121 -0.308058 +v -0.385129 1.478879 -0.340419 +v -0.108915 1.515166 -0.750000 +v -0.154680 1.625651 -0.750000 +v -0.251761 1.722732 -0.418544 +v -0.228879 1.635129 -0.340419 +v -0.265164 1.671415 -0.750000 +v -0.339364 1.745615 -0.496669 +v -0.375651 1.625651 -0.750000 +v -0.440371 1.690372 -0.529029 +v -0.359293 1.830264 -0.316931 +v -0.361756 1.768007 -0.214856 +v -0.427498 1.677498 -0.172575 +v -0.518006 1.611757 -0.214856 +v -0.580264 1.609293 -0.316931 +v -0.577800 1.671551 -0.419007 +v -0.512060 1.762060 -0.461288 +v -0.421550 1.827801 -0.419007 +v -0.674746 1.768497 -0.391735 +v -0.596621 1.846622 -0.437500 +v -0.518496 1.924747 -0.391735 +v -0.486136 1.957107 -0.281250 +v -0.518496 1.924747 -0.170765 +v -0.596621 1.846622 -0.125000 +v -0.674746 1.768497 -0.170765 +v -0.707107 1.736136 -0.281250 +v -0.675236 2.081487 -0.214856 +v -0.765745 2.015745 -0.172575 +v -0.831486 1.925237 -0.214856 +v -0.833950 1.862979 -0.316932 +v -0.771692 1.865443 -0.419007 +v -0.681184 1.931184 -0.461288 +v -0.615442 2.021693 -0.419007 +v -0.612979 2.083950 -0.316932 +v -0.485278 2.013265 -0.468769 +v -0.404677 1.938267 -0.515462 +v -0.286730 1.942229 -0.534803 +v -0.200527 2.022829 -0.515462 +v -0.196566 2.132854 -0.468769 +v -0.277167 2.207852 -0.422076 +v -0.395114 2.203891 -0.402735 +v -0.481318 2.123290 -0.422076 +v 0.139878 0.623589 -0.175597 +v 0.135918 0.513564 -0.128904 +v 0.172006 0.528513 -0.128904 +v 0.174978 0.611032 -0.163924 +v 0.216517 0.438566 -0.082211 +v 0.334466 0.442528 -0.062870 +v 0.320918 0.475236 -0.079378 +v 0.232457 0.472264 -0.093884 +v 0.420668 0.523129 -0.082211 +v 0.424630 0.633153 -0.128904 +v 0.388541 0.618205 -0.128904 +v 0.385570 0.535686 -0.093884 +v 0.344029 0.708152 -0.175597 +v 0.328090 0.674453 -0.163924 +v 0.226082 0.704190 -0.194938 +v 0.239630 0.671482 -0.178429 +v 0.352452 0.603256 -0.128904 +v 0.312151 0.640754 -0.152250 +v 0.253178 0.638775 -0.161921 +v 0.210077 0.598474 -0.152250 +v 0.208096 0.543462 -0.128904 +v 0.248396 0.505963 -0.105557 +v 0.307369 0.507944 -0.095887 +v 0.350471 0.548244 -0.105557 +v 0.375462 0.560089 -0.037240 +v 0.378433 0.642607 -0.072260 +v 0.342343 0.627659 -0.072260 +v 0.340363 0.572647 -0.048913 +v 0.317983 0.698857 -0.107280 +v 0.302044 0.665158 -0.095606 +v 0.229521 0.695884 -0.121785 +v 0.243069 0.663177 -0.105277 +v 0.164869 0.635435 -0.107280 +v 0.199969 0.622877 -0.095606 +v 0.161898 0.552916 -0.072260 +v 0.197988 0.567865 -0.072260 +v 0.222349 0.496668 -0.037240 +v 0.238287 0.530365 -0.048913 +v 0.310809 0.499639 -0.022734 +v 0.297261 0.532347 -0.039243 +v 0.421415 0.984835 -0.750000 +v 0.375651 1.095320 -0.750000 +v 0.472732 0.998239 -0.418544 +v 0.495614 0.910635 -0.496669 +v 0.265165 1.141084 -0.750000 +v 0.154680 1.095320 -0.750000 +v 0.284121 0.965879 -0.308058 +v 0.385129 1.021121 -0.340419 +v 0.108915 0.984834 -0.750000 +v 0.154680 0.874350 -0.750000 +v 0.251761 0.777268 -0.418544 +v 0.228879 0.864871 -0.340419 +v 0.265164 0.828585 -0.750000 +v 0.339364 0.754385 -0.496669 +v 0.375650 0.874350 -0.750000 +v 0.440371 0.809629 -0.529029 +v 0.359293 0.669736 -0.316931 +v 0.361756 0.731993 -0.214856 +v 0.427498 0.822502 -0.172575 +v 0.518006 0.888243 -0.214856 +v 0.580264 0.890707 -0.316931 +v 0.577800 0.828449 -0.419007 +v 0.512060 0.737940 -0.461288 +v 0.421550 0.672199 -0.419007 +v 0.674746 0.731503 -0.391735 +v 0.596621 0.653379 -0.437500 +v 0.518496 0.575253 -0.391735 +v 0.486136 0.542893 -0.281250 +v 0.518496 0.575253 -0.170765 +v 0.596621 0.653379 -0.125000 +v 0.674746 0.731503 -0.170765 +v 0.707107 0.763864 -0.281250 +v 0.675236 0.418513 -0.214856 +v 0.765745 0.484255 -0.172575 +v 0.831486 0.574763 -0.214856 +v 0.833950 0.637021 -0.316932 +v 0.771692 0.634558 -0.419007 +v 0.681184 0.568816 -0.461288 +v 0.615442 0.478308 -0.419007 +v 0.612979 0.416050 -0.316932 +v 0.485278 0.486736 -0.468769 +v 0.404677 0.561733 -0.515462 +v 0.286730 0.557772 -0.534803 +v 0.200527 0.477172 -0.515462 +v 0.196566 0.367146 -0.468769 +v 0.277166 0.292148 -0.422076 +v 0.395114 0.296109 -0.402735 +v 0.481317 0.376710 -0.422076 +v 0.391169 2.232164 0.136894 +v 0.014465 2.307096 0.136894 +v 0.014465 2.197720 -0.081856 +v 0.349313 2.131115 -0.081856 +v 0.025414 2.252758 -0.109375 +v 0.360261 2.186152 -0.109375 +v 0.025414 2.362132 0.109375 +v 0.402117 2.287201 0.109375 +v -0.982164 1.641169 0.136894 +v -1.057095 1.264466 0.136894 +v -0.947720 1.264466 -0.081856 +v -0.881115 1.599313 -0.081856 +v -1.002758 1.275414 -0.109375 +v -0.936152 1.610261 -0.109375 +v -1.112132 1.275414 0.109375 +v -1.037201 1.652117 0.109375 +v 0.982164 0.858831 0.136894 +v 1.057095 1.235535 0.136894 +v 0.947720 1.235535 -0.081856 +v 0.881115 0.900687 -0.081856 +v 1.002758 1.224586 -0.109375 +v 0.936152 0.889739 -0.109375 +v 1.112132 1.224586 0.109375 +v 1.037201 0.847883 0.109375 +v -0.971093 0.832103 0.136894 +v -0.757708 0.512749 0.136894 +v -0.680368 0.590089 -0.081856 +v -0.870044 0.873959 -0.081856 +v -0.727027 0.558913 -0.109375 +v -0.916702 0.842784 -0.109375 +v -0.804366 0.481574 0.109375 +v -1.017751 0.800928 0.109375 +v 0.971093 1.667897 0.136894 +v 0.757708 1.987251 0.136894 +v 0.680368 1.909911 -0.081856 +v 0.870044 1.626041 -0.081856 +v 0.727027 1.941087 -0.109375 +v 0.916703 1.657217 -0.109375 +v 0.804366 2.018426 0.109375 +v 1.017752 1.699073 0.109375 +v -0.417897 2.221093 0.136894 +v -0.737251 2.007708 0.136894 +v -0.659911 1.930368 -0.081856 +v -0.376041 2.120044 -0.081856 +v -0.691087 1.977027 -0.109375 +v -0.407216 2.166703 -0.109375 +v -0.768426 2.054366 0.109375 +v -0.449072 2.267752 0.109375 +v 0.417897 0.278907 0.136894 +v 0.737251 0.492292 0.136894 +v 0.659911 0.569632 -0.081856 +v 0.376041 0.379956 -0.081856 +v 0.691087 0.522973 -0.109375 +v 0.407216 0.333298 -0.109375 +v 0.768426 0.445634 0.109375 +v 0.449072 0.232249 0.109375 +v -0.737251 0.492293 0.136894 +v -0.417897 0.278907 0.136894 +v -0.376041 0.379957 -0.081856 +v -0.659911 0.569632 -0.081856 +v -0.407218 0.333298 -0.109375 +v -0.691088 0.522974 -0.109375 +v -0.449074 0.232249 0.109375 +v -0.768427 0.445635 0.109375 +v 0.737251 2.007708 0.136894 +v 0.417897 2.221093 0.136894 +v 0.376041 2.120044 -0.081856 +v 0.659911 1.930368 -0.081856 +v 0.407218 2.166703 -0.109375 +v 0.691088 1.977026 -0.109375 +v 0.449074 2.267751 0.109375 +v 0.768427 2.054366 0.109375 +v -0.757708 1.987251 0.136894 +v -0.971093 1.667897 0.136894 +v -0.870044 1.626041 -0.081856 +v -0.680368 1.909911 -0.081856 +v -0.916702 1.657218 -0.109375 +v -0.727026 1.941088 -0.109375 +v -1.017751 1.699074 0.109375 +v -0.804365 2.018427 0.109375 +v 0.757708 0.512749 0.136894 +v 0.971093 0.832103 0.136894 +v 0.870044 0.873959 -0.081856 +v 0.680368 0.590089 -0.081856 +v 0.916702 0.842782 -0.109375 +v 0.727026 0.558912 -0.109375 +v 1.017751 0.800926 0.109375 +v 0.804366 0.481573 0.109375 +v -1.057095 1.235535 0.136894 +v -0.982164 0.858832 0.136894 +v -0.881115 0.900688 -0.081856 +v -0.947720 1.235535 -0.081856 +v -0.936153 0.889740 -0.109375 +v -1.002758 1.224588 -0.109375 +v -1.037201 0.847885 0.109375 +v -1.112132 1.224588 0.109375 +v 1.057095 1.264465 0.136894 +v 0.982164 1.641169 0.136894 +v 0.881115 1.599313 -0.081856 +v 0.947720 1.264465 -0.081856 +v 0.936153 1.610260 -0.109375 +v 1.002758 1.275412 -0.109375 +v 1.037202 1.652116 0.109375 +v 1.112132 1.275412 0.109375 +v -0.014465 2.307096 0.136894 +v -0.391168 2.232164 0.136894 +v -0.349312 2.131115 -0.081856 +v -0.014465 2.197721 -0.081856 +v -0.360260 2.186153 -0.109375 +v -0.025412 2.252758 -0.109375 +v -0.402115 2.287201 0.109375 +v -0.025412 2.362133 0.109375 +v 0.014465 0.192905 0.136894 +v 0.391169 0.267836 0.136894 +v 0.349312 0.368885 -0.081856 +v 0.014465 0.302280 -0.081856 +v 0.360260 0.313847 -0.109375 +v 0.025412 0.247242 -0.109375 +v 0.402115 0.212799 0.109375 +v 0.025412 0.137868 0.109375 +vt 0.227586 -0.000000 +vt 0.255172 -0.000000 +vt 0.255172 0.125000 +vt 0.227586 0.125000 +vt 0.227586 0.625000 +vt 0.227586 0.500000 +vt 0.255172 0.500000 +vt 0.255172 0.625000 +vt 0.227586 0.750000 +vt 0.255172 0.750000 +vt 0.255172 0.875000 +vt 0.227586 0.875000 +vt 0.227586 0.375000 +vt 0.227586 0.250000 +vt 0.255172 0.250000 +vt 0.255172 0.375000 +vt 0.255172 1.000000 +vt 0.227586 1.000000 +vt 0.130816 0.408077 +vt 0.185647 0.407982 +vt 0.181809 0.433762 +vt 0.158206 0.423338 +vt 0.134644 0.434152 +vt 0.227246 0.501121 +vt 0.215680 0.509781 +vt 0.201106 0.462288 +vt 0.226770 0.624909 +vt 0.215543 0.616068 +vt 0.220300 0.563004 +vt 0.185661 0.717018 +vt 0.181941 0.690910 +vt 0.202736 0.659045 +vt 0.131028 0.716313 +vt 0.134829 0.690268 +vt 0.158386 0.701199 +vt 0.089995 0.623885 +vt 0.101155 0.615205 +vt 0.113984 0.658150 +vt 0.089997 0.501305 +vt 0.101178 0.509856 +vt 0.096611 0.562314 +vt 0.113890 0.466628 +vt 0.551724 0.750000 +vt 0.682759 0.750000 +vt 0.662069 0.796875 +vt 0.662069 0.875000 +vt 0.551724 0.875000 +vt 0.606897 0.125000 +vt 0.634483 0.218750 +vt 0.662069 0.218750 +vt 0.724138 0.218750 +vt 0.724138 0.250000 +vt 0.551724 0.250000 +vt 0.551724 0.125000 +vt 0.682759 0.375000 +vt 0.551724 0.375000 +vt 0.724138 0.359375 +vt 0.703448 0.375000 +vt 0.551724 -0.000000 +vt 0.606897 -0.000000 +vt 0.662069 0.906250 +vt 0.634483 0.906250 +vt 0.606897 1.000000 +vt 0.551724 1.000000 +vt 0.413793 0.187500 +vt 0.413793 0.062500 +vt 0.441379 -0.000000 +vt 0.441379 0.250000 +vt 0.703448 0.406250 +vt 0.682759 0.406250 +vt 0.724138 0.875000 +vt 0.717241 0.875000 +vt 0.717241 0.796875 +vt 0.724138 0.765625 +vt 0.703448 0.750000 +vt 0.724138 0.906250 +vt 0.717241 0.906250 +vt 0.282759 0.796875 +vt 0.324138 0.796875 +vt 0.324138 0.812500 +vt 0.282759 0.812500 +vt 0.282759 0.828125 +vt 0.324138 0.828125 +vt 0.324138 0.843750 +vt 0.282759 0.843750 +vt 0.282759 0.859375 +vt 0.324138 0.859375 +vt 0.324138 0.875000 +vt 0.282759 0.875000 +vt 0.275862 0.906250 +vt 0.282759 0.890625 +vt 0.324138 0.890625 +vt 0.331034 0.906250 +vt 0.275862 0.765625 +vt 0.331034 0.765625 +vt 0.324138 0.781250 +vt 0.282759 0.781250 +vt 0.324138 1.000000 +vt 0.282759 1.000000 +vt 0.282759 0.984375 +vt 0.324138 0.984375 +vt 0.275862 0.984375 +vt 0.275862 0.968750 +vt 0.282759 0.968750 +vt 0.282759 0.953125 +vt 0.324138 0.953125 +vt 0.324138 0.968750 +vt 0.282759 0.968750 +vt 0.275862 0.984375 +vt 0.275862 0.968750 +vt 0.282759 0.984375 +vt 0.282759 0.984375 +vt 0.282759 0.968750 +vt 0.324138 0.968750 +vt 0.324138 0.984375 +vt 0.324138 0.968750 +vt 0.324138 0.984375 +vt 0.282759 0.968750 +vt 0.324138 0.968750 +vt 0.324138 0.984375 +vt 0.282759 0.984375 +vt 0.275862 0.984375 +vt 0.275862 0.968750 +vt 0.282759 0.953125 +vt 0.324138 0.953125 +vt 0.331034 0.968750 +vt 0.331034 0.984375 +vt 0.324138 1.000000 +vt 0.282759 1.000000 +vt 0.331034 0.968750 +vt 0.331034 0.984375 +vt 0.282759 0.953125 +vt 0.324138 0.953125 +vt 0.331034 0.968750 +vt 0.331034 0.984375 +vt 0.324138 1.000000 +vt 0.282759 1.000000 +vt 0.331034 0.968750 +vt 0.331034 0.984375 +vt 0.282759 0.953125 +vt 0.324138 0.953125 +vt 0.275862 0.984375 +vt 0.275862 0.968750 +vt 0.324138 1.000000 +vt 0.282759 1.000000 +vt 0.737931 0.250000 +vt 0.737931 0.359375 +vt 0.737931 0.218750 +vt 0.737931 0.765625 +vt 0.737931 0.875000 +vt 0.737931 0.906250 +vt 0.724138 0.375000 +vt 0.724138 0.406250 +vt 0.703448 0.718750 +vt 0.724138 0.718750 +vt 0.724138 0.750000 +vt 0.682759 0.718750 +vt 0.662069 0.625000 +vt 0.662069 0.500000 +vt 0.675862 0.500000 +vt 0.675862 0.625000 +vt 0.696552 0.421875 +vt 0.696552 0.453125 +vt 0.696552 0.671875 +vt 0.696552 0.703125 +vt 0.151724 0.046875 +vt 0.158621 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.165517 0.046875 +vt 0.172414 0.046875 +vt 0.172414 0.062500 +vt 0.165517 0.062500 +vt 0.179310 0.046875 +vt 0.186207 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.193103 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.200000 0.046875 +vt 0.200000 0.062500 +vt 0.172208 0.125000 +vt 0.170248 0.135718 +vt 0.165517 0.140158 +vt 0.160786 0.135718 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.170248 0.114281 +vt 0.179310 0.078125 +vt 0.186207 0.078125 +vt 0.186207 0.093750 +vt 0.179310 0.093750 +vt 0.193103 0.078125 +vt 0.193103 0.093750 +vt 0.200000 0.078125 +vt 0.200000 0.093750 +vt 0.144828 0.078125 +vt 0.151724 0.078125 +vt 0.151724 0.093750 +vt 0.144828 0.093750 +vt 0.158621 0.078125 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.165517 0.093750 +vt 0.172414 0.078125 +vt 0.172414 0.093750 +vt 0.096552 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.096552 0.343750 +vt 0.124138 0.296875 +vt 0.124138 0.328125 +vt 0.096552 0.281250 +vt 0.117241 0.281250 +vt 0.089655 0.328125 +vt 0.089655 0.296875 +vt 0.296552 0.031250 +vt 0.310345 0.031250 +vt 0.303448 0.046875 +vt 0.296552 0.046875 +vt 0.259370 0.124136 +vt 0.255554 0.115489 +vt 0.255554 0.103261 +vt 0.259370 0.094614 +vt 0.264768 0.094614 +vt 0.268584 0.103261 +vt 0.268584 0.115489 +vt 0.264768 0.124136 +vt 0.282759 0.031250 +vt 0.289655 0.046875 +vt 0.282759 0.046875 +vt 0.268966 0.031250 +vt 0.275862 0.046875 +vt 0.268966 0.046875 +vt 0.255172 0.031250 +vt 0.262069 0.046875 +vt 0.255172 0.046875 +vt 0.351724 0.031250 +vt 0.365517 0.031250 +vt 0.358621 0.046875 +vt 0.351724 0.046875 +vt 0.337931 0.031250 +vt 0.344828 0.046875 +vt 0.337931 0.046875 +vt 0.324138 0.031250 +vt 0.331034 0.046875 +vt 0.324138 0.046875 +vt 0.317241 0.046875 +vt 0.310345 0.046875 +vt 0.296552 0.078125 +vt 0.296552 0.062500 +vt 0.303448 0.062500 +vt 0.303448 0.078125 +vt 0.282759 0.078125 +vt 0.282759 0.062500 +vt 0.289655 0.062500 +vt 0.289655 0.078125 +vt 0.268966 0.078125 +vt 0.268966 0.062500 +vt 0.275862 0.062500 +vt 0.275862 0.078125 +vt 0.255172 0.078125 +vt 0.255172 0.062500 +vt 0.262069 0.062500 +vt 0.262069 0.078125 +vt 0.351724 0.078125 +vt 0.351724 0.062500 +vt 0.358621 0.062500 +vt 0.358621 0.078125 +vt 0.337931 0.078125 +vt 0.337931 0.062500 +vt 0.344828 0.062500 +vt 0.344828 0.078125 +vt 0.324138 0.078125 +vt 0.324138 0.062500 +vt 0.331034 0.062500 +vt 0.331034 0.078125 +vt 0.310345 0.078125 +vt 0.310345 0.062500 +vt 0.317241 0.062500 +vt 0.317241 0.078125 +vt 0.106793 0.119651 +vt 0.097935 0.106242 +vt 0.092016 0.086173 +vt 0.089938 0.062500 +vt 0.092016 0.038827 +vt 0.097935 0.018758 +vt 0.106793 0.005349 +vt 0.117241 0.000640 +vt 0.127690 0.005349 +vt 0.136548 0.018758 +vt 0.142467 0.038827 +vt 0.144545 0.062500 +vt 0.142467 0.086173 +vt 0.136548 0.106242 +vt 0.127690 0.119651 +vt 0.117241 0.124360 +vt 0.297766 0.407469 +vt 0.301337 0.432859 +vt 0.282000 0.461238 +vt 0.267164 0.508207 +vt 0.255663 0.499249 +vt 0.351705 0.408442 +vt 0.347882 0.434234 +vt 0.324503 0.423194 +vt 0.392481 0.500826 +vt 0.381418 0.509360 +vt 0.368692 0.466561 +vt 0.392687 0.622102 +vt 0.381587 0.613816 +vt 0.386036 0.561123 +vt 0.351758 0.717531 +vt 0.347834 0.691162 +vt 0.368830 0.657546 +vt 0.296432 0.717486 +vt 0.300333 0.691179 +vt 0.324106 0.701882 +vt 0.255589 0.622775 +vt 0.266830 0.614350 +vt 0.279544 0.658120 +vt 0.262317 0.561201 +vt 0.455702 0.407223 +vt 0.510269 0.408300 +vt 0.506371 0.433702 +vt 0.482981 0.422939 +vt 0.459519 0.433393 +vt 0.414646 0.501350 +vt 0.438585 0.466370 +vt 0.426010 0.510034 +vt 0.414688 0.625413 +vt 0.421416 0.563439 +vt 0.426182 0.616753 +vt 0.455784 0.717773 +vt 0.440498 0.663712 +vt 0.459554 0.692474 +vt 0.509818 0.717777 +vt 0.482677 0.702808 +vt 0.505992 0.692526 +vt 0.550560 0.624932 +vt 0.524922 0.663497 +vt 0.539080 0.616333 +vt 0.550871 0.501314 +vt 0.543898 0.563031 +vt 0.539362 0.509732 +vt 0.525316 0.462681 +vt 0.864604 0.213006 +vt 0.848515 0.125000 +vt 0.864604 0.036995 +vt 0.903448 0.000542 +vt 0.942292 0.036994 +vt 0.958382 0.125000 +vt 0.942292 0.213005 +vt 0.903448 0.249458 +vt 0.351724 0.765625 +vt 0.351724 0.906250 +vt 0.275862 0.718750 +vt 0.331034 0.718750 +vt 0.255172 0.906250 +vt 0.255172 0.765625 +vt 0.331034 0.953125 +vt 0.275862 0.953125 +vt 0.942292 0.463005 +vt 0.903448 0.499458 +vt 0.864604 0.463005 +vt 0.848515 0.375000 +vt 0.864604 0.286994 +vt 0.903448 0.250541 +vt 0.942292 0.286994 +vt 0.958382 0.375000 +vt 0.848276 0.375000 +vt 0.737931 0.375000 +vt 0.737931 0.281250 +vt 0.848276 0.281250 +vt 0.848276 0.187500 +vt 0.737931 0.187500 +vt 0.737931 0.093750 +vt 0.848276 0.093750 +vt 0.848276 0.562500 +vt 0.737931 0.562500 +vt 0.737931 0.468750 +vt 0.848276 0.468750 +vt 0.737931 -0.000000 +vt 0.848276 -0.000000 +vt 0.848276 0.656250 +vt 0.737931 0.656250 +vt 0.262069 0.171875 +vt 0.262069 0.140625 +vt 0.268966 0.140625 +vt 0.268966 0.171875 +vt 0.303448 0.171875 +vt 0.296552 0.171875 +vt 0.296552 0.140625 +vt 0.303448 0.140625 +vt 0.268966 0.125000 +vt 0.296552 0.125000 +vt 0.268966 0.187500 +vt 0.296552 0.187500 +vt 0.268966 0.093750 +vt 0.296552 0.093750 +vt 0.303448 0.140625 +vt 0.303448 0.171875 +vt 0.296552 0.171875 +vt 0.296552 0.140625 +vt 0.262069 0.140625 +vt 0.268966 0.140625 +vt 0.268966 0.171875 +vt 0.262069 0.171875 +vt 0.296552 0.187500 +vt 0.268966 0.187500 +vt 0.296552 0.125000 +vt 0.268966 0.125000 +vt 0.296552 0.093750 +vt 0.268966 0.093750 +vt 0.262069 0.171875 +vt 0.262069 0.140625 +vt 0.268966 0.140625 +vt 0.268966 0.171875 +vt 0.303448 0.171875 +vt 0.296552 0.171875 +vt 0.296552 0.140625 +vt 0.303448 0.140625 +vt 0.268966 0.125000 +vt 0.296552 0.125000 +vt 0.268966 0.187500 +vt 0.296552 0.187500 +vt 0.268966 0.093750 +vt 0.296552 0.093750 +vt 0.303448 0.140625 +vt 0.303448 0.171875 +vt 0.296552 0.171875 +vt 0.296552 0.140625 +vt 0.262069 0.140625 +vt 0.268966 0.140625 +vt 0.268966 0.171875 +vt 0.262069 0.171875 +vt 0.296552 0.187500 +vt 0.268966 0.187500 +vt 0.296552 0.125000 +vt 0.268966 0.125000 +vt 0.296552 0.093750 +vt 0.268966 0.093750 +vt 0.317241 0.171875 +vt 0.317241 0.140625 +vt 0.324138 0.140625 +vt 0.324138 0.171875 +vt 0.344828 0.187500 +vt 0.344828 0.171875 +vt 0.358621 0.171875 +vt 0.358621 0.187500 +vt 0.324138 0.125000 +vt 0.351724 0.125000 +vt 0.351724 0.140625 +vt 0.324138 0.187500 +vt 0.324138 0.093750 +vt 0.344828 0.093750 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 0.413793 0.914062 +vt 0.413793 0.859375 +vt 0.420690 0.859375 +vt 0.420690 0.914062 +vt 0.475862 0.914062 +vt 0.475862 0.859375 +vt 0.482759 0.859375 +vt 0.482759 0.914062 +vt 0.465517 0.937500 +vt 0.431034 0.937500 +vt 0.465517 0.953125 +vt 0.431034 0.953125 +vt 0.479310 0.937500 +vt 0.479310 0.953125 +vt 0.417241 0.953125 +vt 0.417241 0.937500 +vt 0.468966 -0.000000 +vt 0.468966 0.250000 +vt 0.337931 0.343750 +vt 0.255172 0.343750 +vt 0.255172 0.312500 +vt 0.337931 0.312500 +vt 0.351724 0.313754 +vt 0.363190 0.328752 +vt 0.363190 0.358748 +vt 0.351724 0.373746 +vt 0.340258 0.358748 +vt 0.340258 0.328752 +vt 0.255172 0.281250 +vt 0.337931 0.281250 +vt 0.255172 0.250000 +vt 0.337931 0.250000 +vt 0.340258 0.266252 +vt 0.351724 0.251254 +vt 0.363190 0.266252 +vt 0.363190 0.296248 +vt 0.351724 0.311246 +vt 0.340258 0.296248 +vt 0.924138 0.625000 +vt 0.868966 0.625000 +vt 0.868966 0.500000 +vt 0.924138 0.500000 +vt 0.848276 0.625000 +vt 0.848276 0.500000 +vt 0.944828 0.500000 +vt 0.944828 0.625000 +vt 0.834483 0.718750 +vt 0.834483 0.906250 +vt 0.765517 0.906250 +vt 0.765517 0.718750 +vt 0.737931 0.906250 +vt 0.737931 0.718750 +vt 0.862069 0.718750 +vt 0.862069 0.906250 +vt 0.834483 0.968750 +vt 0.765517 0.968750 +vt 0.765517 0.656250 +vt 0.834483 0.656250 +vt 0.958621 0.875000 +vt 0.903448 0.875000 +vt 0.903448 0.718750 +vt 0.958621 0.718750 +vt 0.903448 0.625000 +vt 0.958621 0.625000 +vt 0.958621 0.968750 +vt 0.903448 0.968750 +vt 0.862069 0.875000 +vt 0.862069 0.718750 +vt 1.000000 0.718750 +vt 1.000000 0.875000 +vt 0.986207 0.187500 +vt 0.958621 0.187500 +vt 0.958621 0.156250 +vt 0.986207 0.156250 +vt 0.986207 0.062500 +vt 0.958621 0.062500 +vt 0.958621 0.031250 +vt 0.986207 0.031250 +vt 0.986207 0.125000 +vt 0.958621 0.125000 +vt 0.958621 0.093750 +vt 0.986207 0.093750 +vt 0.958621 0.000000 +vt 0.986207 0.000000 +vt 0.978890 0.244165 +vt 0.965937 0.244165 +vt 0.959461 0.218750 +vt 0.965937 0.193335 +vt 0.978890 0.193335 +vt 0.985367 0.218750 +vt 0.737931 0.093750 +vt 0.737931 0.109375 +vt 0.724138 0.109375 +vt 0.724138 0.093750 +vt 0.737931 0.000000 +vt 0.737931 0.015625 +vt 0.724138 0.015625 +vt 0.724138 0.000000 +vt 0.737931 0.125000 +vt 0.737931 0.140625 +vt 0.724138 0.140625 +vt 0.724138 0.125000 +vt 0.737931 0.062500 +vt 0.737931 0.078125 +vt 0.724138 0.078125 +vt 0.724138 0.062500 +vt 0.737931 0.031250 +vt 0.737931 0.046875 +vt 0.724138 0.046875 +vt 0.724138 0.031250 +vt 0.737931 0.156250 +vt 0.737931 0.171875 +vt 0.724138 0.171875 +vt 0.724138 0.156250 +vt 0.717241 0.031250 +vt 0.717241 0.000000 +vt 0.717241 0.156250 +vt 0.717241 0.125000 +vt 0.717241 0.093750 +vt 0.717241 0.062500 +vt 0.717241 0.187500 +vt 0.675862 0.062500 +vt 0.675862 0.031250 +vt 0.675862 0.187500 +vt 0.675862 0.156250 +vt 0.675862 0.125000 +vt 0.675862 0.093750 +vt 0.675862 0.000000 +vt 0.668966 0.140625 +vt 0.668966 0.125000 +vt 0.668966 0.109375 +vt 0.668966 0.093750 +vt 0.668966 0.078125 +vt 0.668966 0.062500 +vt 0.668966 0.046875 +vt 0.668966 0.031250 +vt 0.668966 0.015625 +vt 0.668966 0.000000 +vt 0.668966 0.171875 +vt 0.668966 0.156250 +vt 0.655172 0.171875 +vt 0.655172 0.156250 +vt 0.655172 0.109375 +vt 0.655172 0.093750 +vt 0.655172 0.015625 +vt 0.655172 0.000000 +vt 0.655172 0.140625 +vt 0.655172 0.125000 +vt 0.655172 0.078125 +vt 0.655172 0.062500 +vt 0.655172 0.046875 +vt 0.655172 0.031250 +vt 0.648276 0.156250 +vt 0.648276 0.125000 +vt 0.648276 0.093750 +vt 0.648276 0.062500 +vt 0.648276 0.031250 +vt 0.648276 0.000000 +vt 0.648276 0.187500 +vt 0.641379 0.125000 +vt 0.641379 0.093750 +vt 0.641379 0.031250 +vt 0.641379 -0.000000 +vt 0.641379 0.156250 +vt 0.641379 0.062500 +vt 0.641379 0.187500 +vt 0.634483 0.078125 +vt 0.634483 0.062500 +vt 0.634483 0.046875 +vt 0.634483 0.031250 +vt 0.634483 0.171875 +vt 0.634483 0.156250 +vt 0.634483 0.109375 +vt 0.634483 0.093750 +vt 0.634483 0.015625 +vt 0.634483 0.000000 +vt 0.634483 0.140625 +vt 0.634483 0.125000 +vt 0.630883 0.028561 +vt 0.624290 0.028561 +vt 0.620993 0.015625 +vt 0.624290 0.002689 +vt 0.630883 0.002689 +vt 0.634179 0.015625 +vt 0.510345 0.156250 +vt 0.489655 0.156250 +vt 0.489655 0.046875 +vt 0.510345 0.046875 +vt 0.434483 0.750000 +vt 0.434483 0.812500 +vt 0.413793 0.812500 +vt 0.413793 0.765625 +vt 0.420690 0.750000 +vt 0.489655 0.000000 +vt 0.510345 0.000000 +vt 0.468966 0.156250 +vt 0.468966 0.046875 +vt 0.531034 0.046875 +vt 0.531034 0.156250 +vt 0.496552 0.156250 +vt 0.496552 0.187500 +vt 0.468966 0.187500 +vt 0.468966 0.156250 +vt 0.496552 0.265625 +vt 0.496552 0.312500 +vt 0.468966 0.312500 +vt 0.468966 0.265625 +vt 0.496552 0.234375 +vt 0.468966 0.234375 +vt 0.455172 0.750000 +vt 0.455172 0.812500 +vt 0.496552 0.750000 +vt 0.496552 0.765625 +vt 0.475862 0.765625 +vt 0.475862 0.750000 +vt 0.468966 0.750000 +vt 0.475862 0.812500 +vt 0.455172 0.859375 +vt 0.434483 0.859375 +vt 0.496552 0.812500 +vt 0.434483 0.718750 +vt 0.455172 0.718750 +vt 0.537931 0.812500 +vt 0.537931 0.828125 +vt 0.524138 0.828125 +vt 0.524138 0.812500 +vt 0.503448 0.718750 +vt 0.517241 0.718750 +vt 0.517241 0.812500 +vt 0.503448 0.812500 +vt 0.524138 0.718750 +vt 0.537931 0.718750 +vt 0.496552 0.718750 +vt 0.496552 0.812500 +vt 0.986207 0.609375 +vt 0.979310 0.609375 +vt 0.979310 0.593750 +vt 0.986207 0.593750 +vt 0.979310 0.531250 +vt 0.979310 0.515625 +vt 0.986207 0.515625 +vt 0.986207 0.531250 +vt 0.972414 0.593750 +vt 0.972414 0.562500 +vt 0.979310 0.578125 +vt 0.551724 0.500000 +vt 0.551724 0.625000 +vt 0.620690 0.734375 +vt 0.606897 0.734375 +vt 0.620690 0.640625 +vt 0.634483 0.640625 +vt 0.565517 0.640625 +vt 0.565517 0.734375 +vt 0.662069 0.734375 +vt 0.648276 0.640625 +vt 0.565517 0.390625 +vt 0.565517 0.484375 +vt 0.662069 0.375000 +vt 0.606897 0.390625 +vt 0.620690 0.484375 +vt 0.117241 0.906250 +vt 0.075862 0.906250 +vt 0.075862 0.875000 +vt 0.117241 0.875000 +vt 0.117241 0.125000 +vt 0.158621 0.125000 +vt 0.158621 0.156250 +vt 0.117241 0.156250 +vt 0.117241 0.906250 +vt 0.117241 0.875000 +vt 0.158621 0.875000 +vt 0.158621 0.906250 +vt 0.131034 0.250000 +vt 0.144828 0.250000 +vt 0.227586 0.875000 +vt 0.213793 0.875000 +vt 0.213793 0.781250 +vt 0.227586 0.781250 +vt 0.020690 0.781250 +vt 0.062069 0.781250 +vt 0.020690 0.875000 +vt 0.186207 0.281250 +vt 0.144828 0.281250 +vt 0.186207 0.250000 +vt 0.213793 0.750000 +vt 0.172414 0.781250 +vt 0.172414 0.750000 +vt 0.131034 0.281250 +vt 0.089655 0.281250 +vt 0.089655 0.250000 +vt 0.020690 0.906250 +vt 0.020690 0.750000 +vt 0.062069 0.750000 +vt 0.544828 0.203125 +vt 0.551724 0.203125 +vt 0.551724 0.250000 +vt 0.544828 0.250000 +vt 0.524138 0.203125 +vt 0.531034 0.203125 +vt 0.531034 0.250000 +vt 0.524138 0.250000 +vt 0.503448 0.203125 +vt 0.510345 0.203125 +vt 0.510345 0.250000 +vt 0.503448 0.250000 +vt 0.537931 0.203125 +vt 0.537931 0.250000 +vt 0.510345 0.296875 +vt 0.503448 0.296875 +vt 0.531034 0.296875 +vt 0.524138 0.296875 +vt 0.531034 0.203125 +vt 0.531034 0.187500 +vt 0.537931 0.187500 +vt 0.544828 0.187500 +vt 0.551724 0.187500 +vt 0.551724 0.203125 +vt 0.503448 0.203125 +vt 0.503448 0.187500 +vt 0.510345 0.187500 +vt 0.517241 0.187500 +vt 0.517241 0.203125 +vt 0.524138 0.187500 +vt 0.524138 0.203125 +vt 0.537931 0.156250 +vt 0.544828 0.156250 +vt 0.524138 0.156250 +vt 0.531034 0.156250 +vt 0.524138 0.187500 +vt 0.503448 0.156250 +vt 0.510345 0.156250 +vt 0.517241 0.156250 +vt 0.524138 0.156250 +vt 0.551724 0.156250 +vt 0.496552 0.156250 +vt 0.496552 0.187500 +vt 0.496552 0.203125 +vt 0.496552 0.250000 +vt 0.986207 0.515625 +vt 0.979310 0.515625 +vt 0.979310 0.484375 +vt 0.986207 0.484375 +vt 0.213793 0.906250 +vt 0.006897 0.875000 +vt 0.006897 0.781250 +vt 0.517241 0.250000 +vt 0.517241 0.296875 +vt 0.524138 0.250000 +vt 0.524138 0.296875 +vt 0.551724 0.296875 +vt 0.544828 0.296875 +vt 0.496552 0.296875 +vt 0.537931 0.296875 +vt 0.524138 0.203125 +vt 0.213793 0.265625 +vt 0.213793 0.109375 +vt 0.220690 0.109375 +vt 0.220690 0.265625 +vt 0.972414 0.515625 +vt 0.972414 0.484375 +vt 0.227586 0.109375 +vt 0.227586 0.265625 +vt 0.965517 0.515625 +vt 0.965517 0.484375 +vt 0.186207 0.265625 +vt 0.186207 0.109375 +vt 0.193103 0.109375 +vt 0.193103 0.265625 +vt 0.958621 0.515625 +vt 0.958621 0.484375 +vt 0.200000 0.109375 +vt 0.200000 0.265625 +vt 0.187370 0.273751 +vt 0.193103 0.266252 +vt 0.198836 0.273751 +vt 0.198836 0.288749 +vt 0.193103 0.296248 +vt 0.187370 0.288749 +vt 0.206897 0.109375 +vt 0.206897 0.265625 +vt 0.206897 0.266252 +vt 0.212630 0.273751 +vt 0.212630 0.288749 +vt 0.206897 0.296248 +vt 0.201164 0.288749 +vt 0.201164 0.273751 +vt 0.965517 0.468750 +vt 0.972414 0.468750 +vt 0.979310 0.484375 +vt 0.979310 0.468750 +vt 0.958621 0.468750 +vt 0.958621 0.484375 +vt 0.958621 0.453125 +vt 0.965517 0.453125 +vt 0.965517 0.437500 +vt 0.958621 0.437500 +vt 0.958621 0.421875 +vt 0.965517 0.421875 +vt 0.972414 0.453125 +vt 0.979310 0.453125 +vt 0.986207 0.468750 +vt 0.986207 0.453125 +vt 0.972414 0.437500 +vt 0.965517 0.453125 +vt 0.986207 0.453125 +vt 0.979310 0.437500 +vt 0.986207 0.437500 +vt 0.979310 0.421875 +vt 0.972414 0.421875 +vt 0.972414 0.343750 +vt 0.979310 0.343750 +vt 0.986207 0.421875 +vt 0.965517 0.328125 +vt 0.972414 0.328125 +vt 0.965517 0.343750 +vt 0.986207 0.343750 +vt 0.958621 0.343750 +vt 0.965517 0.343750 +vt 0.979310 0.328125 +vt 0.986207 0.328125 +vt 0.979310 0.296875 +vt 0.986207 0.296875 +vt 0.986207 0.343750 +vt 0.965517 0.281250 +vt 0.958621 0.281250 +vt 0.958621 0.250000 +vt 0.965517 0.250000 +vt 0.958621 0.328125 +vt 0.958621 0.296875 +vt 0.965517 0.296875 +vt 0.972414 0.296875 +vt 0.979310 0.296875 +vt 0.972414 0.281250 +vt 0.979310 0.281250 +vt 0.958621 0.296875 +vt 0.986207 0.281250 +vt 0.979310 0.250000 +vt 0.986207 0.250000 +vt 0.972414 0.250000 +vt 0.510345 0.156250 +vt 0.489655 0.156250 +vt 0.489655 0.046875 +vt 0.510345 0.046875 +vt 0.151724 0.046875 +vt 0.158621 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.165517 0.046875 +vt 0.172414 0.046875 +vt 0.172414 0.062500 +vt 0.165517 0.062500 +vt 0.179310 0.046875 +vt 0.186207 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.193103 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.200000 0.046875 +vt 0.200000 0.062500 +vt 0.172208 0.125000 +vt 0.170248 0.135718 +vt 0.165517 0.140158 +vt 0.160786 0.135718 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.170248 0.114281 +vt 0.179310 0.078125 +vt 0.186207 0.078125 +vt 0.186207 0.093750 +vt 0.179310 0.093750 +vt 0.193103 0.078125 +vt 0.193103 0.093750 +vt 0.200000 0.078125 +vt 0.200000 0.093750 +vt 0.144828 0.078125 +vt 0.151724 0.078125 +vt 0.151724 0.093750 +vt 0.144828 0.093750 +vt 0.158621 0.078125 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.165517 0.093750 +vt 0.172414 0.078125 +vt 0.172414 0.093750 +vt 0.151724 0.046875 +vt 0.158621 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.165517 0.046875 +vt 0.172414 0.046875 +vt 0.172414 0.062500 +vt 0.165517 0.062500 +vt 0.179310 0.046875 +vt 0.186207 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.193103 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.200000 0.046875 +vt 0.200000 0.062500 +vt 0.172208 0.125000 +vt 0.170248 0.135718 +vt 0.165517 0.140158 +vt 0.160786 0.135718 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.170248 0.114281 +vt 0.179310 0.078125 +vt 0.186207 0.078125 +vt 0.186207 0.093750 +vt 0.179310 0.093750 +vt 0.193103 0.078125 +vt 0.193103 0.093750 +vt 0.200000 0.078125 +vt 0.200000 0.093750 +vt 0.144828 0.078125 +vt 0.151724 0.078125 +vt 0.151724 0.093750 +vt 0.144828 0.093750 +vt 0.158621 0.078125 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.165517 0.093750 +vt 0.172414 0.078125 +vt 0.172414 0.093750 +vt 0.151724 0.046875 +vt 0.158621 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.165517 0.046875 +vt 0.172414 0.046875 +vt 0.172414 0.062500 +vt 0.165517 0.062500 +vt 0.179310 0.046875 +vt 0.186207 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.193103 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.200000 0.046875 +vt 0.200000 0.062500 +vt 0.172208 0.125000 +vt 0.170248 0.135718 +vt 0.165517 0.140158 +vt 0.160786 0.135718 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.170248 0.114281 +vt 0.179310 0.078125 +vt 0.186207 0.078125 +vt 0.186207 0.093750 +vt 0.179310 0.093750 +vt 0.193103 0.078125 +vt 0.193103 0.093750 +vt 0.200000 0.078125 +vt 0.200000 0.093750 +vt 0.144828 0.078125 +vt 0.151724 0.078125 +vt 0.151724 0.093750 +vt 0.144828 0.093750 +vt 0.158621 0.078125 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.165517 0.093750 +vt 0.172414 0.078125 +vt 0.172414 0.093750 +vt 0.151724 0.046875 +vt 0.158621 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.165517 0.046875 +vt 0.172414 0.046875 +vt 0.172414 0.062500 +vt 0.165517 0.062500 +vt 0.179310 0.046875 +vt 0.186207 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.193103 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.200000 0.046875 +vt 0.200000 0.062500 +vt 0.172208 0.125000 +vt 0.170248 0.135718 +vt 0.165517 0.140158 +vt 0.160786 0.135718 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.170248 0.114281 +vt 0.179310 0.078125 +vt 0.186207 0.078125 +vt 0.186207 0.093750 +vt 0.179310 0.093750 +vt 0.193103 0.078125 +vt 0.193103 0.093750 +vt 0.200000 0.078125 +vt 0.200000 0.093750 +vt 0.144828 0.078125 +vt 0.151724 0.078125 +vt 0.151724 0.093750 +vt 0.144828 0.093750 +vt 0.158621 0.078125 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.165517 0.093750 +vt 0.172414 0.078125 +vt 0.172414 0.093750 +vt 0.151724 0.046875 +vt 0.158621 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.165517 0.046875 +vt 0.172414 0.046875 +vt 0.172414 0.062500 +vt 0.165517 0.062500 +vt 0.179310 0.046875 +vt 0.186207 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.193103 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.200000 0.046875 +vt 0.200000 0.062500 +vt 0.172208 0.125000 +vt 0.170248 0.135718 +vt 0.165517 0.140158 +vt 0.160786 0.135718 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.170248 0.114281 +vt 0.179310 0.078125 +vt 0.186207 0.078125 +vt 0.186207 0.093750 +vt 0.179310 0.093750 +vt 0.193103 0.078125 +vt 0.193103 0.093750 +vt 0.200000 0.078125 +vt 0.200000 0.093750 +vt 0.144828 0.078125 +vt 0.151724 0.078125 +vt 0.151724 0.093750 +vt 0.144828 0.093750 +vt 0.158621 0.078125 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.165517 0.093750 +vt 0.172414 0.078125 +vt 0.172414 0.093750 +vt 0.151724 0.046875 +vt 0.158621 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.165517 0.046875 +vt 0.172414 0.046875 +vt 0.172414 0.062500 +vt 0.165517 0.062500 +vt 0.179310 0.046875 +vt 0.186207 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.193103 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.200000 0.046875 +vt 0.200000 0.062500 +vt 0.172208 0.125000 +vt 0.170248 0.135718 +vt 0.165517 0.140158 +vt 0.160786 0.135718 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.170248 0.114281 +vt 0.179310 0.078125 +vt 0.186207 0.078125 +vt 0.186207 0.093750 +vt 0.179310 0.093750 +vt 0.193103 0.078125 +vt 0.193103 0.093750 +vt 0.200000 0.078125 +vt 0.200000 0.093750 +vt 0.144828 0.078125 +vt 0.151724 0.078125 +vt 0.151724 0.093750 +vt 0.144828 0.093750 +vt 0.158621 0.078125 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.165517 0.093750 +vt 0.172414 0.078125 +vt 0.172414 0.093750 +vt 0.151724 0.046875 +vt 0.158621 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.165517 0.046875 +vt 0.172414 0.046875 +vt 0.172414 0.062500 +vt 0.165517 0.062500 +vt 0.179310 0.046875 +vt 0.186207 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.193103 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.200000 0.046875 +vt 0.200000 0.062500 +vt 0.172208 0.125000 +vt 0.170248 0.135718 +vt 0.165517 0.140158 +vt 0.160786 0.135718 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.170248 0.114281 +vt 0.179310 0.078125 +vt 0.186207 0.078125 +vt 0.186207 0.093750 +vt 0.179310 0.093750 +vt 0.193103 0.078125 +vt 0.193103 0.093750 +vt 0.200000 0.078125 +vt 0.200000 0.093750 +vt 0.144828 0.078125 +vt 0.151724 0.078125 +vt 0.151724 0.093750 +vt 0.144828 0.093750 +vt 0.158621 0.078125 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.165517 0.093750 +vt 0.172414 0.078125 +vt 0.172414 0.093750 +vt 0.096552 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.096552 0.343750 +vt 0.124138 0.296875 +vt 0.124138 0.328125 +vt 0.096552 0.281250 +vt 0.117241 0.281250 +vt 0.089655 0.328125 +vt 0.089655 0.296875 +vt 0.096552 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.096552 0.343750 +vt 0.124138 0.296875 +vt 0.124138 0.328125 +vt 0.096552 0.281250 +vt 0.117241 0.281250 +vt 0.089655 0.328125 +vt 0.089655 0.296875 +vt 0.096552 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.096552 0.343750 +vt 0.124138 0.296875 +vt 0.124138 0.328125 +vt 0.096552 0.281250 +vt 0.117241 0.281250 +vt 0.089655 0.328125 +vt 0.089655 0.296875 +vt 0.096552 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.096552 0.343750 +vt 0.124138 0.296875 +vt 0.124138 0.328125 +vt 0.096552 0.281250 +vt 0.117241 0.281250 +vt 0.089655 0.328125 +vt 0.089655 0.296875 +vt 0.096552 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.096552 0.343750 +vt 0.124138 0.296875 +vt 0.124138 0.328125 +vt 0.096552 0.281250 +vt 0.117241 0.281250 +vt 0.089655 0.328125 +vt 0.089655 0.296875 +vt 0.096552 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.096552 0.343750 +vt 0.124138 0.296875 +vt 0.124138 0.328125 +vt 0.096552 0.281250 +vt 0.117241 0.281250 +vt 0.089655 0.328125 +vt 0.089655 0.296875 +vt 0.096552 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.096552 0.343750 +vt 0.124138 0.296875 +vt 0.124138 0.328125 +vt 0.096552 0.281250 +vt 0.117241 0.281250 +vt 0.089655 0.328125 +vt 0.089655 0.296875 +vt 0.096552 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.096552 0.343750 +vt 0.124138 0.296875 +vt 0.124138 0.328125 +vt 0.096552 0.281250 +vt 0.117241 0.281250 +vt 0.089655 0.328125 +vt 0.089655 0.296875 +vt 0.096552 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.096552 0.343750 +vt 0.124138 0.296875 +vt 0.124138 0.328125 +vt 0.096552 0.281250 +vt 0.117241 0.281250 +vt 0.089655 0.328125 +vt 0.089655 0.296875 +vt 0.096552 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.096552 0.343750 +vt 0.124138 0.296875 +vt 0.124138 0.328125 +vt 0.096552 0.281250 +vt 0.117241 0.281250 +vt 0.089655 0.328125 +vt 0.089655 0.296875 +vt 0.096552 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.096552 0.343750 +vt 0.124138 0.296875 +vt 0.124138 0.328125 +vt 0.096552 0.281250 +vt 0.117241 0.281250 +vt 0.089655 0.328125 +vt 0.089655 0.296875 +vt 0.096552 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.096552 0.343750 +vt 0.124138 0.296875 +vt 0.124138 0.328125 +vt 0.096552 0.281250 +vt 0.117241 0.281250 +vt 0.089655 0.328125 +vt 0.089655 0.296875 +vt 0.096552 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.096552 0.343750 +vt 0.124138 0.296875 +vt 0.124138 0.328125 +vt 0.096552 0.281250 +vt 0.117241 0.281250 +vt 0.089655 0.328125 +vt 0.089655 0.296875 +vt 0.096552 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.096552 0.343750 +vt 0.124138 0.296875 +vt 0.124138 0.328125 +vt 0.096552 0.281250 +vt 0.117241 0.281250 +vt 0.089655 0.328125 +vt 0.089655 0.296875 +vt 0.096552 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.096552 0.343750 +vt 0.124138 0.296875 +vt 0.124138 0.328125 +vt 0.096552 0.281250 +vt 0.117241 0.281250 +vt 0.089655 0.328125 +vt 0.089655 0.296875 +vt 0.089655 0.375000 +vt 0.089655 0.421875 +vt 0.075862 0.421875 +vt 0.075862 0.375000 +vt 0.089655 0.328125 +vt 0.075862 0.328125 +vt 0.089655 0.281250 +vt 0.075862 0.281250 +vt 0.089655 0.234375 +vt 0.075862 0.234375 +vt 0.089655 0.187500 +vt 0.075862 0.187500 +vt 0.089655 0.140625 +vt 0.075862 0.140625 +vt 0.089655 0.093750 +vt 0.075862 0.093750 +vt 0.089655 0.046875 +vt 0.075862 0.046875 +vt 0.089655 -0.000000 +vt 0.075862 0.000000 +vt 0.089655 0.703125 +vt 0.089655 0.750000 +vt 0.075862 0.750000 +vt 0.075862 0.703125 +vt 0.089655 0.656250 +vt 0.075862 0.656250 +vt 0.089655 0.609375 +vt 0.075862 0.609375 +vt 0.089655 0.562500 +vt 0.075862 0.562500 +vt 0.089655 0.515625 +vt 0.075862 0.515625 +vt 0.089655 0.468750 +vt 0.075862 0.468750 +vt 0.055172 0.421875 +vt 0.055172 0.375000 +vt 0.055172 0.328125 +vt 0.055172 0.046875 +vt 0.055172 -0.000000 +vt 0.055172 0.468750 +vt 0.055172 0.093750 +vt 0.055172 0.515625 +vt 0.055172 0.140625 +vt 0.055172 0.562500 +vt 0.055172 0.187500 +vt 0.055172 0.609375 +vt 0.055172 0.234375 +vt 0.055172 0.656250 +vt 0.055172 0.281250 +vt 0.055172 0.703125 +vt 0.055172 0.750000 +vt 0.124138 0.390625 +vt 0.124138 0.375000 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.359375 +vt 0.124138 0.343750 +vt 0.144828 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.328125 +vt 0.124138 0.312500 +vt 0.144828 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.296875 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.281250 +vt 0.144828 0.281250 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.343750 +vt 0.158621 0.359375 +vt 0.158621 0.375000 +vt 0.158621 0.390625 +vt 0.158621 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.343750 +vt 0.172414 0.359375 +vt 0.172414 0.375000 +vt 0.172414 0.281250 +vt 0.186207 0.328125 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.296875 +vt 0.186207 0.312500 +vt 0.186207 0.281250 +vt 0.186207 -0.000000 +vt 0.193103 -0.000000 +vt 0.144828 -0.000000 +vt 0.151724 -0.000000 +vt 0.158621 -0.000000 +vt 0.165517 -0.000000 +vt 0.172414 -0.000000 +vt 0.179310 -0.000000 +vt 0.200000 -0.000000 +vt 0.193103 0.109375 +vt 0.186207 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.144828 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.172414 0.109375 +vt 0.165517 0.109375 +vt 0.000000 0.125000 +vt 0.000000 0.093750 +vt -0.000000 0.546875 +vt 0.000000 0.515625 +vt -0.000000 0.171875 +vt -0.000000 0.140625 +vt -0.000000 0.593750 +vt -0.000000 0.562500 +vt 0.000000 0.218750 +vt 0.000000 0.187500 +vt 0.000000 0.640625 +vt 0.000000 0.609375 +vt -0.000000 0.265625 +vt -0.000000 0.234375 +vt 0.000000 0.687500 +vt 0.000000 0.656250 +vt -0.000000 0.312500 +vt -0.000000 0.281250 +vt -0.000000 0.734375 +vt 0.000000 0.703125 +vt -0.000000 0.406250 +vt -0.000000 0.375000 +vt 0.000000 0.359375 +vt 0.000000 0.328125 +vt 0.000000 0.031250 +vt -0.000000 0.000000 +vt -0.000000 0.453125 +vt 0.000000 0.421875 +vt -0.000000 0.078125 +vt -0.000000 0.046875 +vt -0.000000 0.500000 +vt 0.000000 0.468750 +vt 0.296552 0.000000 +vt 0.310345 0.000000 +vt 0.268966 0.000000 +vt 0.282759 0.000000 +vt 0.351724 0.000000 +vt 0.365517 0.000000 +vt 0.324138 0.000000 +vt 0.337931 0.000000 +vt 0.255172 0.000000 +vt 0.317241 0.093750 +vt 0.310345 0.093750 +vt 0.303448 0.093750 +vt 0.296552 0.093750 +vt 0.289655 0.093750 +vt 0.282759 0.093750 +vt 0.275862 0.093750 +vt 0.268966 0.093750 +vt 0.331034 0.093750 +vt 0.324138 0.093750 +vt 0.344828 0.093750 +vt 0.337931 0.093750 +vt 0.358621 0.093750 +vt 0.351724 0.093750 +vt 0.262069 0.093750 +vt 0.255172 0.093750 +vt 0.393103 1.000000 +vt 0.393103 0.937500 +vt 0.413793 0.937500 +vt 0.413793 1.000000 +vt 0.393103 0.562500 +vt 0.393103 0.500000 +vt 0.413793 0.500000 +vt 0.413793 0.562500 +vt 0.393103 0.437500 +vt 0.413793 0.437500 +vt 0.393103 0.062500 +vt 0.393103 -0.000000 +vt 0.413793 -0.000000 +vt 0.413793 0.062500 +vt 0.393103 0.625000 +vt 0.413793 0.625000 +vt 0.393103 0.125000 +vt 0.413793 0.125000 +vt 0.393103 0.687500 +vt 0.413793 0.687500 +vt 0.393103 0.187500 +vt 0.413793 0.187500 +vt 0.393103 0.750000 +vt 0.413793 0.750000 +vt 0.393103 0.250000 +vt 0.413793 0.250000 +vt 0.393103 0.812500 +vt 0.413793 0.812500 +vt 0.393103 0.312500 +vt 0.413793 0.312500 +vt 0.393103 0.875000 +vt 0.413793 0.875000 +vt 0.393103 0.375000 +vt 0.413793 0.375000 +vt 0.958621 0.609375 +vt 0.958621 0.593750 +vt 0.965517 0.593750 +vt 0.965517 0.609375 +vt 0.958621 0.562500 +vt 0.958621 0.546875 +vt 0.965517 0.546875 +vt 0.965517 0.562500 +vt 0.986207 0.578125 +vt 0.958621 0.625000 +vt 0.965517 0.625000 +vt 0.958621 0.578125 +vt 0.965517 0.578125 +vt 0.979310 0.562500 +vt 0.986207 0.562500 +vt 0.958621 0.531250 +vt 0.958621 0.515625 +vt 0.965517 0.515625 +vt 0.965517 0.531250 +vt 0.958621 0.640625 +vt 0.965517 0.640625 +vt 0.979310 0.546875 +vt 0.986207 0.546875 +vt 0.965517 0.609375 +vt 0.965517 0.593750 +vt 0.972414 0.593750 +vt 0.972414 0.609375 +vt 0.965517 0.656250 +vt 0.965517 0.640625 +vt 0.972414 0.640625 +vt 0.972414 0.656250 +vt 0.965517 0.546875 +vt 0.965517 0.531250 +vt 0.972414 0.531250 +vt 0.972414 0.546875 +vt 0.965517 0.703125 +vt 0.965517 0.687500 +vt 0.972414 0.687500 +vt 0.972414 0.703125 +vt 0.965517 0.578125 +vt 0.972414 0.578125 +vt 0.965517 0.625000 +vt 0.972414 0.625000 +vt 0.965517 0.515625 +vt 0.972414 0.515625 +vt 0.965517 0.671875 +vt 0.972414 0.671875 +vt 0.965517 0.562500 +vt 0.972414 0.562500 +vt 0.296552 0.234375 +vt 0.296552 0.218750 +vt 0.310345 0.218750 +vt 0.310345 0.234375 +vt 0.296552 0.203125 +vt 0.296552 0.187500 +vt 0.310345 0.187500 +vt 0.310345 0.203125 +vt 0.296552 0.234375 +vt 0.310345 0.234375 +vt 0.310345 0.250000 +vt 0.296552 0.250000 +vt 0.296552 0.203125 +vt 0.310345 0.203125 +vt 0.310345 0.218750 +vt 0.296552 0.218750 +vt 0.296552 0.187500 +vt 0.310345 0.187500 +vt 0.324138 0.218750 +vt 0.324138 0.234375 +vt 0.324138 0.187500 +vt 0.324138 0.203125 +vt 0.324138 0.250000 +vt 0.296552 0.234375 +vt 0.310345 0.234375 +vt 0.310345 0.250000 +vt 0.296552 0.250000 +vt 0.296552 0.203125 +vt 0.310345 0.203125 +vt 0.310345 0.218750 +vt 0.296552 0.218750 +vt 0.296552 0.187500 +vt 0.310345 0.187500 +vt 0.324138 0.218750 +vt 0.324138 0.234375 +vt 0.324138 0.187500 +vt 0.324138 0.203125 +vt 0.324138 0.250000 +vt 0.296552 0.234375 +vt 0.310345 0.234375 +vt 0.310345 0.250000 +vt 0.296552 0.250000 +vt 0.296552 0.203125 +vt 0.310345 0.203125 +vt 0.310345 0.218750 +vt 0.296552 0.218750 +vt 0.296552 0.187500 +vt 0.310345 0.187500 +vt 0.324138 0.218750 +vt 0.324138 0.234375 +vt 0.324138 0.187500 +vt 0.324138 0.203125 +vt 0.324138 0.250000 +vt 0.255172 0.250000 +vt 0.255172 0.234375 +vt 0.255172 0.250000 +vt 0.255172 0.234375 +vt 0.255172 0.218750 +vt 0.255172 0.203125 +vt 0.255172 0.250000 +vt 0.255172 0.234375 +vt 0.255172 0.218750 +vt 0.255172 0.187500 +vt 0.255172 0.203125 +vt 0.255172 0.218750 +vt 0.255172 0.203125 +vt 0.255172 0.187500 +vt 0.255172 0.187500 +vt 0.296552 0.250000 +vt 0.310345 0.250000 +vt 0.324138 0.203125 +vt 0.324138 0.218750 +vt 0.324138 0.234375 +vt 0.324138 0.250000 +vt 0.324138 0.187500 +vt 0.296552 0.203125 +vt 0.296552 0.187500 +vt 0.310345 0.187500 +vt 0.310345 0.203125 +vt 0.296552 0.234375 +vt 0.296552 0.218750 +vt 0.310345 0.218750 +vt 0.310345 0.234375 +vt 0.296552 0.250000 +vt 0.310345 0.250000 +vt 0.324138 0.203125 +vt 0.324138 0.218750 +vt 0.324138 0.234375 +vt 0.324138 0.250000 +vt 0.324138 0.187500 +vt 0.296552 0.203125 +vt 0.296552 0.187500 +vt 0.310345 0.187500 +vt 0.310345 0.203125 +vt 0.296552 0.234375 +vt 0.296552 0.218750 +vt 0.310345 0.218750 +vt 0.310345 0.234375 +vt 0.296552 0.250000 +vt 0.310345 0.250000 +vt 0.324138 0.203125 +vt 0.324138 0.218750 +vt 0.324138 0.234375 +vt 0.324138 0.250000 +vt 0.324138 0.187500 +vt 0.255172 0.203125 +vt 0.255172 0.187500 +vt 0.255172 0.203125 +vt 0.255172 0.187500 +vt 0.255172 0.218750 +vt 0.255172 0.234375 +vt 0.255172 0.203125 +vt 0.255172 0.187500 +vt 0.255172 0.218750 +vt 0.255172 0.250000 +vt 0.255172 0.234375 +vt 0.255172 0.218750 +vt 0.255172 0.234375 +vt 0.255172 0.250000 +vt 0.255172 0.250000 +vt 0.124138 0.390625 +vt 0.124138 0.375000 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.359375 +vt 0.124138 0.343750 +vt 0.144828 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.328125 +vt 0.124138 0.312500 +vt 0.144828 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.296875 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.281250 +vt 0.144828 0.281250 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.343750 +vt 0.158621 0.359375 +vt 0.158621 0.375000 +vt 0.158621 0.390625 +vt 0.158621 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.343750 +vt 0.172414 0.359375 +vt 0.172414 0.375000 +vt 0.172414 0.281250 +vt 0.186207 0.328125 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.296875 +vt 0.186207 0.312500 +vt 0.186207 0.281250 +vt 0.186207 -0.000000 +vt 0.193103 -0.000000 +vt 0.144828 -0.000000 +vt 0.151724 -0.000000 +vt 0.158621 -0.000000 +vt 0.165517 -0.000000 +vt 0.172414 -0.000000 +vt 0.179310 -0.000000 +vt 0.200000 -0.000000 +vt 0.193103 0.109375 +vt 0.186207 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.144828 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.172414 0.109375 +vt 0.165517 0.109375 +vt 0.124138 0.390625 +vt 0.124138 0.375000 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.359375 +vt 0.124138 0.343750 +vt 0.144828 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.328125 +vt 0.124138 0.312500 +vt 0.144828 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.296875 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.281250 +vt 0.144828 0.281250 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.343750 +vt 0.158621 0.359375 +vt 0.158621 0.375000 +vt 0.158621 0.390625 +vt 0.158621 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.343750 +vt 0.172414 0.359375 +vt 0.172414 0.375000 +vt 0.172414 0.281250 +vt 0.186207 0.328125 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.296875 +vt 0.186207 0.312500 +vt 0.186207 0.281250 +vt 0.186207 -0.000000 +vt 0.193103 -0.000000 +vt 0.144828 -0.000000 +vt 0.151724 -0.000000 +vt 0.158621 -0.000000 +vt 0.165517 -0.000000 +vt 0.172414 -0.000000 +vt 0.179310 -0.000000 +vt 0.200000 -0.000000 +vt 0.193103 0.109375 +vt 0.186207 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.144828 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.172414 0.109375 +vt 0.165517 0.109375 +vt 0.124138 0.390625 +vt 0.124138 0.375000 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.359375 +vt 0.124138 0.343750 +vt 0.144828 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.328125 +vt 0.124138 0.312500 +vt 0.144828 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.296875 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.281250 +vt 0.144828 0.281250 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.343750 +vt 0.158621 0.359375 +vt 0.158621 0.375000 +vt 0.158621 0.390625 +vt 0.158621 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.343750 +vt 0.172414 0.359375 +vt 0.172414 0.375000 +vt 0.172414 0.281250 +vt 0.186207 0.328125 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.296875 +vt 0.186207 0.312500 +vt 0.186207 0.281250 +vt 0.186207 -0.000000 +vt 0.193103 -0.000000 +vt 0.144828 -0.000000 +vt 0.151724 -0.000000 +vt 0.158621 -0.000000 +vt 0.165517 -0.000000 +vt 0.172414 -0.000000 +vt 0.179310 -0.000000 +vt 0.200000 -0.000000 +vt 0.193103 0.109375 +vt 0.186207 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.144828 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.172414 0.109375 +vt 0.165517 0.109375 +vt 0.124138 0.390625 +vt 0.124138 0.375000 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.359375 +vt 0.124138 0.343750 +vt 0.144828 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.328125 +vt 0.124138 0.312500 +vt 0.144828 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.296875 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.281250 +vt 0.144828 0.281250 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.343750 +vt 0.158621 0.359375 +vt 0.158621 0.375000 +vt 0.158621 0.390625 +vt 0.158621 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.343750 +vt 0.172414 0.359375 +vt 0.172414 0.375000 +vt 0.172414 0.281250 +vt 0.186207 0.328125 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.296875 +vt 0.186207 0.312500 +vt 0.186207 0.281250 +vt 0.186207 -0.000000 +vt 0.193103 -0.000000 +vt 0.144828 -0.000000 +vt 0.151724 -0.000000 +vt 0.158621 -0.000000 +vt 0.165517 -0.000000 +vt 0.172414 -0.000000 +vt 0.179310 -0.000000 +vt 0.200000 -0.000000 +vt 0.193103 0.109375 +vt 0.186207 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.144828 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.172414 0.109375 +vt 0.165517 0.109375 +vt 0.124138 0.390625 +vt 0.124138 0.375000 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.359375 +vt 0.124138 0.343750 +vt 0.144828 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.328125 +vt 0.124138 0.312500 +vt 0.144828 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.296875 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.281250 +vt 0.144828 0.281250 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.343750 +vt 0.158621 0.359375 +vt 0.158621 0.375000 +vt 0.158621 0.390625 +vt 0.158621 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.343750 +vt 0.172414 0.359375 +vt 0.172414 0.375000 +vt 0.172414 0.281250 +vt 0.186207 0.328125 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.296875 +vt 0.186207 0.312500 +vt 0.186207 0.281250 +vt 0.186207 -0.000000 +vt 0.193103 -0.000000 +vt 0.144828 -0.000000 +vt 0.151724 -0.000000 +vt 0.158621 -0.000000 +vt 0.165517 -0.000000 +vt 0.172414 -0.000000 +vt 0.179310 -0.000000 +vt 0.200000 -0.000000 +vt 0.193103 0.109375 +vt 0.186207 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.144828 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.172414 0.109375 +vt 0.165517 0.109375 +vt 0.124138 0.390625 +vt 0.124138 0.375000 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.359375 +vt 0.124138 0.343750 +vt 0.144828 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.328125 +vt 0.124138 0.312500 +vt 0.144828 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.296875 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.281250 +vt 0.144828 0.281250 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.343750 +vt 0.158621 0.359375 +vt 0.158621 0.375000 +vt 0.158621 0.390625 +vt 0.158621 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.343750 +vt 0.172414 0.359375 +vt 0.172414 0.375000 +vt 0.172414 0.281250 +vt 0.186207 0.328125 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.296875 +vt 0.186207 0.312500 +vt 0.186207 0.281250 +vt 0.186207 -0.000000 +vt 0.193103 -0.000000 +vt 0.144828 -0.000000 +vt 0.151724 -0.000000 +vt 0.158621 -0.000000 +vt 0.165517 -0.000000 +vt 0.172414 -0.000000 +vt 0.179310 -0.000000 +vt 0.200000 -0.000000 +vt 0.193103 0.109375 +vt 0.186207 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.144828 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.172414 0.109375 +vt 0.165517 0.109375 +vt 0.124138 0.390625 +vt 0.124138 0.375000 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.359375 +vt 0.124138 0.343750 +vt 0.144828 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.328125 +vt 0.124138 0.312500 +vt 0.144828 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.296875 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.281250 +vt 0.144828 0.281250 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.343750 +vt 0.158621 0.359375 +vt 0.158621 0.375000 +vt 0.158621 0.390625 +vt 0.158621 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.343750 +vt 0.172414 0.359375 +vt 0.172414 0.375000 +vt 0.172414 0.281250 +vt 0.186207 0.328125 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.296875 +vt 0.186207 0.312500 +vt 0.186207 0.281250 +vt 0.186207 -0.000000 +vt 0.193103 -0.000000 +vt 0.144828 -0.000000 +vt 0.151724 -0.000000 +vt 0.158621 -0.000000 +vt 0.165517 -0.000000 +vt 0.172414 -0.000000 +vt 0.179310 -0.000000 +vt 0.200000 -0.000000 +vt 0.193103 0.109375 +vt 0.186207 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.144828 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.172414 0.109375 +vt 0.165517 0.109375 vn 0.0000 -1.0000 -0.0000 vn 0.0000 1.0000 0.0000 vn -1.0000 0.0000 0.0000 @@ -896,10 +4646,95 @@ vn 0.0000 -0.9285 0.3714 vn 0.0000 0.9285 -0.3714 vn 0.0000 -0.9900 -0.1407 vn 0.0000 0.9900 0.1407 -vn 0.4226 0.0000 -0.9063 -vn -0.4226 -0.0000 0.9063 -vn 0.9063 -0.0000 0.4226 -vn -0.9063 0.0000 -0.4226 +vn -0.1617 -0.3904 0.9063 +vn -0.1617 -0.3905 0.9063 +vn 0.3904 -0.1617 0.9063 +vn 0.3905 -0.1617 0.9063 +vn -0.3904 0.1617 0.9063 +vn -0.3905 0.1617 0.9063 +vn 0.3904 0.1617 0.9063 +vn 0.3905 0.1617 0.9063 +vn -0.3904 -0.1617 0.9063 +vn -0.3905 -0.1617 0.9063 +vn 0.1617 -0.3904 0.9063 +vn 0.1617 -0.3905 0.9063 +vn -0.1617 0.3904 0.9063 +vn -0.1617 0.3905 0.9063 +vn -0.1752 -0.8806 0.4403 +vn -0.0859 -0.4318 -0.8979 +vn -0.9845 0.1567 -0.0783 +vn 0.0859 0.4318 0.8978 +vn 0.9695 -0.2320 -0.0783 +vn 0.8806 -0.1752 0.4403 +vn 0.4318 -0.0859 -0.8978 +vn -0.1567 -0.9845 -0.0783 +vn -0.4318 0.0859 0.8978 +vn 0.2320 0.9695 -0.0783 +vn -0.8806 0.1752 0.4403 +vn -0.4318 0.0859 -0.8978 +vn 0.1567 0.9845 -0.0783 +vn 0.4318 -0.0859 0.8978 +vn -0.2320 -0.9695 -0.0783 +vn 0.7465 0.4988 0.4403 +vn 0.3661 0.2446 -0.8978 +vn 0.5854 -0.8070 -0.0783 +vn -0.3661 -0.2446 0.8978 +vn -0.5215 0.8496 -0.0783 +vn -0.7465 -0.4988 0.4403 +vn -0.3661 -0.2446 -0.8978 +vn -0.5854 0.8070 -0.0783 +vn 0.3661 0.2446 0.8978 +vn 0.5215 -0.8496 -0.0783 +vn 0.4988 -0.7465 0.4403 +vn 0.2446 -0.3661 -0.8979 +vn -0.8070 -0.5854 -0.0783 +vn -0.2446 0.3661 0.8978 +vn 0.8496 0.5215 -0.0783 +vn -0.4988 0.7465 0.4403 +vn -0.2446 0.3661 -0.8978 +vn 0.8070 0.5854 -0.0783 +vn 0.2446 -0.3661 0.8978 +vn -0.8496 -0.5215 -0.0783 +vn 0.4988 0.7465 0.4403 +vn 0.2446 0.3661 -0.8979 +vn 0.8496 -0.5215 -0.0783 +vn -0.2446 -0.3661 0.8978 +vn -0.8070 0.5854 -0.0783 +vn -0.4988 -0.7465 0.4403 +vn -0.2446 -0.3661 -0.8978 +vn -0.8496 0.5215 -0.0783 +vn 0.2446 0.3661 0.8978 +vn 0.8070 -0.5854 -0.0783 +vn 0.7465 -0.4988 0.4403 +vn 0.3661 -0.2446 -0.8978 +vn -0.5215 -0.8496 -0.0783 +vn -0.3661 0.2446 0.8978 +vn 0.5854 0.8070 -0.0783 +vn -0.7465 0.4988 0.4403 +vn -0.3661 0.2446 -0.8978 +vn 0.5215 0.8496 -0.0783 +vn 0.3661 -0.2446 0.8978 +vn -0.5854 -0.8070 -0.0783 +vn 0.8806 0.1752 0.4403 +vn 0.4318 0.0859 -0.8978 +vn 0.2320 -0.9696 -0.0783 +vn -0.4318 -0.0859 0.8978 +vn -0.1567 0.9845 -0.0783 +vn -0.8806 -0.1752 0.4403 +vn -0.4318 -0.0859 -0.8978 +vn -0.2320 0.9696 -0.0783 +vn 0.4318 0.0859 0.8978 +vn 0.1567 -0.9845 -0.0783 +vn 0.1752 -0.8806 0.4403 +vn 0.0859 -0.4318 -0.8979 +vn -0.9696 -0.2320 -0.0783 +vn -0.0859 0.4318 0.8978 +vn 0.9845 0.1567 -0.0783 +vn -0.1752 0.8806 0.4403 +vn -0.0859 0.4318 -0.8978 +vn 0.9696 0.2320 -0.0783 +vn 0.0859 -0.4318 0.8978 +vn -0.9845 -0.1567 -0.0783 vn 0.0000 -0.8944 0.4472 vn 0.3423 -0.8263 0.4472 vn -0.3423 -0.8263 0.4472 @@ -1026,626 +4861,1483 @@ vn 0.7559 -0.5345 0.3780 vn -0.5345 0.7559 0.3780 vn -0.0945 0.8431 0.5293 vn 0.8431 -0.0945 0.5294 +vn -0.7311 0.6303 -0.2611 +vn -0.9947 -0.0948 0.0393 +vn -0.9973 -0.0609 0.0399 +vn -0.7430 0.5190 -0.4226 +vn -0.6333 -0.7150 0.2962 +vn -0.0000 -0.7690 0.6392 +vn -0.6721 -0.5735 0.4683 +vn 0.6333 -0.7150 0.2962 +vn 0.9947 -0.0948 0.0393 +vn 0.9973 -0.0609 0.0399 +vn 0.6721 -0.5735 0.4683 +vn 0.7311 0.6303 -0.2611 +vn 0.7430 0.5190 -0.4226 +vn -0.0000 0.7779 -0.6284 +vn 0.9989 -0.0183 0.0441 +vn 0.6841 -0.2791 0.6739 +vn -0.6840 -0.2791 0.6739 +vn -0.9989 -0.0183 0.0441 +vn -0.7317 0.2608 -0.6297 +vn 0.7317 0.2608 -0.6297 +vn 0.6841 0.0000 0.7294 +vn -0.6840 0.0000 0.7294 +vn 0.6770 0.1436 0.7219 +vn -0.0000 0.1951 0.9808 +vn -0.6770 0.1436 0.7219 +vn -0.9988 0.0095 0.0477 +vn -0.7251 -0.1344 -0.6754 +vn -0.0000 -0.1951 -0.9808 +vn 0.7251 -0.1344 -0.6754 +vn 0.9988 0.0095 0.0477 +vn -0.8985 -0.3215 -0.2988 +vn -0.3468 -0.8373 -0.4226 +vn 0.4080 -0.8627 -0.2988 +vn 0.8985 0.3215 0.2988 +vn 0.3468 0.8373 0.4226 +vn -0.4080 0.8627 0.2988 +vn -0.6303 -0.7311 -0.2611 +vn 0.0948 -0.9947 0.0393 +vn 0.0609 -0.9973 0.0399 +vn -0.5190 -0.7430 -0.4226 +vn 0.7150 -0.6333 0.2962 +vn 0.9239 -0.0000 0.3827 +vn 0.7690 -0.0000 0.6392 +vn 0.5735 -0.6721 0.4683 +vn 0.7150 0.6333 0.2962 +vn 0.0948 0.9947 0.0393 +vn 0.0609 0.9973 0.0399 +vn 0.5735 0.6721 0.4683 +vn -0.6303 0.7311 -0.2611 +vn -0.5190 0.7430 -0.4226 +vn -0.9239 -0.0000 -0.3827 +vn -0.7779 -0.0000 -0.6284 +vn 0.0183 0.9989 0.0441 +vn 0.2791 0.6841 0.6739 +vn 0.3827 -0.0000 0.9239 +vn 0.2791 -0.6840 0.6739 +vn 0.0183 -0.9989 0.0441 +vn -0.2608 -0.7317 -0.6297 +vn -0.3827 -0.0000 -0.9239 +vn -0.2608 0.7317 -0.6297 +vn 0.0000 -0.7317 -0.6816 +vn 0.0000 0.7317 -0.6816 +vn 0.0000 0.9989 0.0477 +vn 0.0000 0.6841 0.7294 +vn -0.0000 -0.6840 0.7294 +vn -0.0000 -0.9989 0.0477 +vn -0.1436 0.6770 0.7219 +vn -0.1951 -0.0000 0.9808 +vn -0.1436 -0.6770 0.7219 +vn -0.0095 -0.9988 0.0477 +vn 0.1344 -0.7251 -0.6754 +vn 0.1951 -0.0000 -0.9808 +vn 0.1344 0.7251 -0.6754 +vn -0.0095 0.9988 0.0477 +vn 0.3215 -0.8985 -0.2988 +vn 0.8373 -0.3468 -0.4226 +vn 0.8627 0.4080 -0.2988 +vn -0.3215 0.8985 0.2988 +vn -0.8373 0.3468 0.4226 +vn -0.8627 -0.4080 0.2988 +vn 0.6303 0.7311 -0.2611 +vn -0.0948 0.9947 0.0393 +vn -0.0609 0.9973 0.0399 +vn 0.5190 0.7430 -0.4226 +vn -0.7150 0.6333 0.2962 +vn -0.9239 0.0000 0.3827 +vn -0.7690 0.0000 0.6392 +vn -0.5735 0.6721 0.4683 +vn -0.7150 -0.6333 0.2962 +vn -0.0948 -0.9947 0.0393 +vn -0.0609 -0.9973 0.0399 +vn -0.5735 -0.6721 0.4683 +vn 0.6303 -0.7311 -0.2611 +vn 0.5190 -0.7430 -0.4226 +vn 0.9239 0.0000 -0.3827 +vn 0.7779 0.0000 -0.6284 +vn -0.0183 -0.9989 0.0441 +vn -0.2791 -0.6841 0.6739 +vn -0.3827 0.0000 0.9239 +vn -0.2791 0.6840 0.6739 +vn -0.0183 0.9989 0.0441 +vn 0.2608 0.7317 -0.6297 +vn 0.3827 0.0000 -0.9239 +vn 0.2608 -0.7317 -0.6297 +vn 0.0000 -0.6841 0.7294 +vn 0.0000 0.6840 0.7294 +vn 0.1436 -0.6770 0.7219 +vn 0.1951 0.0000 0.9808 +vn 0.1436 0.6770 0.7219 +vn 0.0095 0.9988 0.0477 +vn -0.1344 0.7251 -0.6754 +vn -0.1951 0.0000 -0.9808 +vn -0.1344 -0.7251 -0.6754 +vn 0.0095 -0.9988 0.0477 +vn -0.3215 0.8985 -0.2988 +vn -0.8373 0.3468 -0.4226 +vn -0.8627 -0.4080 -0.2988 +vn 0.3215 -0.8985 0.2988 +vn 0.8373 -0.3468 0.4226 +vn 0.8627 0.4080 0.2988 +vn 0.0712 -0.9627 -0.2611 +vn 0.7704 -0.6363 0.0393 +vn 0.7483 -0.6622 0.0399 +vn 0.1584 -0.8924 -0.4226 +vn 0.9534 0.0578 0.2962 +vn 0.6533 0.6533 0.3827 +vn 0.5438 0.5438 0.6392 +vn 0.8808 -0.0697 0.4683 +vn 0.0578 0.9534 0.2962 +vn -0.6364 0.7704 0.0393 +vn -0.6622 0.7483 0.0399 +vn -0.0697 0.8808 0.4683 +vn -0.9627 0.0712 -0.2611 +vn -0.8924 0.1584 -0.4226 +vn -0.6533 -0.6533 -0.3827 +vn -0.5501 -0.5501 -0.6284 +vn -0.6934 0.7192 0.0441 +vn -0.2863 0.6811 0.6739 +vn 0.6811 -0.2863 0.6739 +vn 0.7192 -0.6934 0.0441 +vn 0.3330 -0.7018 -0.6297 +vn -0.2706 -0.2706 -0.9239 +vn -0.7018 0.3330 -0.6297 +vn 0.5174 -0.5174 -0.6816 +vn -0.5174 0.5174 -0.6816 +vn -0.7063 0.7063 0.0477 +vn -0.4837 0.4837 0.7294 +vn 0.4837 -0.4837 0.7294 +vn 0.7063 -0.7063 0.0477 +vn -0.5802 0.3772 0.7219 +vn -0.1379 -0.1379 0.9808 +vn 0.3772 -0.5802 0.7219 +vn 0.6996 -0.7130 0.0477 +vn 0.6077 -0.4177 -0.6754 +vn 0.1380 0.1380 -0.9808 +vn -0.4177 0.6077 -0.6754 +vn -0.7130 0.6996 0.0477 +vn 0.8627 -0.4080 -0.2988 +vn 0.8373 0.3468 -0.4226 +vn 0.3215 0.8985 -0.2988 +vn -0.8627 0.4080 0.2988 +vn -0.8373 -0.3468 0.4226 +vn -0.3215 -0.8985 0.2988 +vn -0.0712 0.9627 -0.2611 +vn -0.7704 0.6363 0.0393 +vn -0.7483 0.6622 0.0399 +vn -0.1584 0.8924 -0.4226 +vn -0.9534 -0.0578 0.2962 +vn -0.6533 -0.6533 0.3827 +vn -0.5438 -0.5438 0.6392 +vn -0.8808 0.0697 0.4683 +vn -0.0578 -0.9534 0.2962 +vn 0.6364 -0.7704 0.0393 +vn 0.6622 -0.7483 0.0399 +vn 0.0697 -0.8808 0.4683 +vn 0.9627 -0.0712 -0.2611 +vn 0.8924 -0.1584 -0.4226 +vn 0.6533 0.6533 -0.3827 +vn 0.5501 0.5501 -0.6284 +vn 0.6934 -0.7192 0.0441 +vn 0.2863 -0.6811 0.6739 +vn -0.2706 -0.2706 0.9239 +vn -0.6811 0.2863 0.6739 +vn -0.7192 0.6934 0.0441 +vn -0.3330 0.7018 -0.6297 +vn 0.2706 0.2706 -0.9239 +vn 0.7018 -0.3330 -0.6297 +vn 0.5802 -0.3772 0.7219 +vn 0.1379 0.1379 0.9808 +vn -0.3772 0.5802 0.7219 +vn -0.6996 0.7130 0.0477 +vn -0.6077 0.4177 -0.6754 +vn -0.1380 -0.1380 -0.9808 +vn 0.4177 -0.6077 -0.6754 +vn 0.7130 -0.6996 0.0477 +vn -0.8627 0.4080 -0.2988 +vn -0.8373 -0.3468 -0.4226 +vn -0.3215 -0.8985 -0.2988 +vn 0.8627 -0.4080 0.2988 +vn 0.8373 0.3468 0.4226 +vn 0.3215 0.8985 0.2988 +vn -0.9627 -0.0712 -0.2611 +vn -0.6363 -0.7704 0.0393 +vn -0.6622 -0.7483 0.0399 +vn -0.8924 -0.1584 -0.4226 +vn 0.0578 -0.9534 0.2962 +vn 0.6533 -0.6533 0.3827 +vn 0.5438 -0.5438 0.6392 +vn -0.0697 -0.8808 0.4683 +vn 0.9534 -0.0578 0.2962 +vn 0.7704 0.6364 0.0393 +vn 0.7483 0.6622 0.0399 +vn 0.8808 0.0697 0.4683 +vn 0.0712 0.9627 -0.2611 +vn 0.1584 0.8924 -0.4226 +vn -0.6533 0.6533 -0.3827 +vn -0.5501 0.5501 -0.6284 +vn 0.7192 0.6934 0.0441 +vn 0.6811 0.2863 0.6739 +vn 0.2706 -0.2706 0.9239 +vn -0.2863 -0.6811 0.6739 +vn -0.6934 -0.7192 0.0441 +vn -0.7018 -0.3330 -0.6297 +vn -0.2706 0.2706 -0.9239 +vn 0.3330 0.7018 -0.6297 +vn -0.5174 -0.5174 -0.6816 +vn 0.5174 0.5174 -0.6816 +vn 0.7063 0.7063 0.0477 +vn 0.4837 0.4837 0.7294 +vn -0.4837 -0.4837 0.7294 +vn -0.7063 -0.7063 0.0477 +vn 0.3772 0.5802 0.7219 +vn -0.1379 0.1379 0.9808 +vn -0.5802 -0.3772 0.7219 +vn -0.7130 -0.6996 0.0477 +vn -0.4177 -0.6077 -0.6754 +vn 0.1380 -0.1380 -0.9808 +vn 0.6077 0.4177 -0.6754 +vn 0.6996 0.7130 0.0477 +vn -0.4080 -0.8627 -0.2988 +vn 0.3468 -0.8373 -0.4226 +vn 0.8985 -0.3215 -0.2988 +vn 0.4080 0.8627 0.2988 +vn -0.3468 0.8373 0.4226 +vn -0.8985 0.3215 0.2988 +vn 0.9627 0.0712 -0.2611 +vn 0.6363 0.7704 0.0393 +vn 0.6622 0.7483 0.0399 +vn 0.8924 0.1584 -0.4226 +vn -0.0578 0.9534 0.2962 +vn -0.6533 0.6533 0.3827 +vn -0.5438 0.5438 0.6392 +vn 0.0697 0.8808 0.4683 +vn -0.9534 0.0578 0.2962 +vn -0.7704 -0.6363 0.0393 +vn -0.7483 -0.6622 0.0399 +vn -0.8808 -0.0697 0.4683 +vn -0.0712 -0.9627 -0.2611 +vn -0.1584 -0.8924 -0.4226 +vn 0.6533 -0.6533 -0.3827 +vn 0.5501 -0.5501 -0.6284 +vn -0.7192 -0.6934 0.0441 +vn -0.6811 -0.2863 0.6739 +vn 0.2863 0.6811 0.6739 +vn 0.6934 0.7192 0.0441 +vn 0.7018 0.3330 -0.6297 +vn 0.2706 -0.2706 -0.9239 +vn -0.3330 -0.7018 -0.6297 +vn -0.3772 -0.5802 0.7219 +vn 0.1379 -0.1379 0.9808 +vn 0.5802 0.3772 0.7219 +vn 0.7130 0.6996 0.0477 +vn 0.4177 0.6077 -0.6754 +vn -0.1380 0.1380 -0.9808 +vn -0.6077 -0.4177 -0.6754 +vn -0.6996 -0.7130 0.0477 +vn 0.4080 0.8627 -0.2988 +vn -0.3468 0.8373 -0.4226 +vn -0.8985 0.3215 -0.2988 +vn -0.4080 -0.8627 0.2988 +vn 0.3468 -0.8373 0.4226 +vn 0.8985 -0.3215 0.2988 s off -f 1//1 2//1 3//1 4//1 -f 5//2 6//2 7//2 8//2 -f 9//3 10//3 11//3 12//3 -f 13//4 14//4 15//4 16//4 -f 6//5 13//5 16//5 7//5 -f 3//6 15//6 14//6 4//6 -f 2//7 1//7 12//7 11//7 -f 5//8 8//8 10//8 9//8 -f 14//9 13//9 17//9 18//9 19//9 -f 13//9 6//9 20//9 21//9 17//9 -f 6//9 5//9 22//9 23//9 20//9 -f 5//9 9//9 24//9 25//9 22//9 -f 9//9 12//9 26//9 27//9 24//9 -f 12//9 1//9 28//9 29//9 26//9 -f 1//9 4//9 30//9 31//9 28//9 -f 4//9 14//9 19//9 32//9 30//9 -f 33//3 34//3 35//3 36//3 37//3 -f 38//6 39//6 836//6 40//6 41//6 42//6 43//6 -f 44//4 45//4 42//4 41//4 46//4 47//4 -f 48//1 49//1 38//1 43//1 -f 37//10 36//10 50//10 51//10 49//10 48//10 -f 38//11 49//11 51//11 39//11 -f 52//2 53//2 44//2 47//2 -f 54//3 55//3 56//3 57//3 -f 58//3 57//3 56//3 35//3 34//3 -f 55//12 54//12 59//12 60//12 -f 61//3 62//3 63//3 64//3 -f 65//3 66//3 67//3 68//3 -f 69//3 70//3 71//3 72//3 -f 73//3 74//3 75//3 76//3 -f 77//3 78//3 79//3 80//3 -f 73//3 77//3 80//3 61//3 64//3 65//3 68//3 69//3 72//3 74//3 -f 76//3 75//3 71//3 70//3 67//3 66//3 63//3 62//3 79//3 78//3 -f 70//1 69//1 81//1 82//1 -f 69//9 68//9 83//9 81//9 -f 64//2 63//2 84//2 85//2 -f 65//9 64//9 85//9 86//9 -f 87//3 88//3 89//3 90//3 -f 83//3 91//3 82//3 81//3 -f 86//3 85//3 84//3 92//3 -f 93//3 94//3 95//3 96//3 -f 74//9 72//9 88//9 87//9 -f 72//2 71//2 89//2 88//2 -f 71//13 75//13 90//13 89//13 -f 66//1 65//1 86//1 92//1 -f 67//13 70//13 82//13 91//13 -f 68//2 67//2 91//2 83//2 -f 63//13 66//13 92//13 84//13 -f 75//1 74//1 87//1 90//1 -f 79//13 62//13 95//13 94//13 -f 80//2 79//2 94//2 93//2 -f 61//9 80//9 93//9 96//9 -f 62//1 61//1 96//1 95//1 -f 46//13 41//13 97//13 98//13 -f 41//13 40//13 97//13 -f 54//13 57//13 99//13 100//13 -f 54//13 100//13 59//13 -f 47//14 46//14 98//14 52//14 -f 101//14 99//14 57//14 58//14 -f 102//2 101//2 58//2 34//2 -f 103//15 104//15 105//15 106//15 -f 104//15 44//15 53//15 105//15 -f 103//15 106//15 102//15 34//15 -f 107//16 108//16 109//16 110//16 -f 111//16 112//16 113//16 114//16 -f 115//16 116//16 117//16 118//16 -f 116//16 119//16 120//16 117//16 -f 121//16 107//16 110//16 122//16 -f 108//16 111//16 114//16 109//16 -f 112//16 115//16 118//16 113//16 -f 119//16 121//16 122//16 120//16 -f 123//16 124//16 125//16 126//16 127//16 128//16 129//16 130//16 -f 131//16 132//16 133//16 134//16 -f 132//16 135//16 136//16 133//16 -f 135//17 137//17 138//17 136//17 -f 137//17 139//17 140//17 138//17 -f 139//16 141//16 142//16 140//16 -f 141//17 143//17 144//17 142//17 -f 143//17 145//17 146//17 144//17 -f 145//17 131//17 134//17 146//17 -f 147//18 148//18 149//18 150//18 -f 151//19 152//19 150//19 149//19 -f 153//20 151//20 149//20 148//20 -f 154//21 153//21 148//21 147//21 -f 152//22 154//22 147//22 150//22 -f 155//9 156//9 157//9 158//9 -f 159//9 160//9 161//9 162//9 163//9 164//9 165//9 166//9 -f 167//9 155//9 158//9 168//9 -f 169//9 167//9 168//9 170//9 -f 171//9 169//9 170//9 172//9 -f 173//9 171//9 172//9 174//9 -f 175//9 173//9 174//9 176//9 -f 177//9 175//9 176//9 178//9 -f 156//9 177//9 178//9 157//9 -f 179//9 180//9 181//9 182//9 -f 183//9 184//9 180//9 179//9 -f 185//9 186//9 184//9 183//9 -f 187//9 188//9 186//9 185//9 -f 189//9 190//9 188//9 187//9 -f 191//9 192//9 190//9 189//9 -f 193//9 194//9 192//9 191//9 -f 182//9 181//9 194//9 193//9 -f 195//9 196//9 197//9 198//9 199//9 200//9 201//9 202//9 203//9 204//9 205//9 206//9 207//9 208//9 209//9 210//9 -f 16//13 211//13 212//13 213//13 7//13 -f 15//13 214//13 215//13 211//13 16//13 -f 3//13 216//13 217//13 214//13 15//13 -f 2//13 218//13 219//13 216//13 3//13 -f 11//13 220//13 221//13 218//13 2//13 -f 10//13 222//13 223//13 220//13 11//13 -f 8//13 224//13 225//13 222//13 10//13 -f 7//13 213//13 226//13 224//13 8//13 -f 227//9 228//9 229//9 230//9 231//9 -f 45//9 227//9 231//9 232//9 233//9 -f 42//9 45//9 233//9 234//9 235//9 -f 43//9 42//9 235//9 236//9 237//9 -f 48//9 43//9 237//9 238//9 239//9 -f 37//9 48//9 239//9 240//9 241//9 -f 33//9 37//9 241//9 242//9 243//9 -f 228//9 33//9 243//9 244//9 229//9 -f 245//3 246//3 247//3 248//3 249//3 250//3 251//3 252//3 -f 76//9 78//9 253//9 254//9 -f 78//1 77//1 255//1 253//1 -f 77//13 73//13 256//13 255//13 -f 73//2 76//2 254//2 256//2 -f 257//4 258//4 259//4 260//4 261//4 262//4 263//4 264//4 -f 246//23 264//23 263//23 247//23 -f 248//24 262//24 261//24 249//24 -f 252//25 258//25 257//25 245//25 -f 247//26 263//26 262//26 248//26 -f 249//27 261//27 260//27 250//27 -f 251//28 259//28 258//28 252//28 -f 245//29 257//29 264//29 246//29 -f 265//9 266//9 267//9 268//9 -f 269//13 270//13 271//13 272//13 -f 267//6 266//6 272//6 271//6 -f 265//8 268//8 270//8 269//8 -f 268//5 267//5 271//5 270//5 -f 266//7 265//7 269//7 272//7 -f 273//9 274//9 275//9 276//9 -f 277//13 278//13 279//13 280//13 -f 275//8 274//8 280//8 279//8 -f 273//6 276//6 278//6 277//6 -f 276//7 275//7 279//7 278//7 -f 274//5 273//5 277//5 280//5 -f 281//9 282//9 283//9 284//9 -f 285//13 286//13 287//13 288//13 -f 283//7 282//7 288//7 287//7 -f 281//5 284//5 286//5 285//5 -f 284//6 283//6 287//6 286//6 -f 282//8 281//8 285//8 288//8 -f 289//9 290//9 291//9 292//9 -f 293//13 294//13 295//13 296//13 -f 291//5 290//5 296//5 295//5 -f 289//7 292//7 294//7 293//7 -f 292//8 291//8 295//8 294//8 -f 290//6 289//6 293//6 296//6 -f 297//9 298//9 299//9 300//9 -f 301//30 302//30 303//30 304//30 -f 299//6 298//6 304//6 303//6 -f 297//8 300//8 302//8 301//8 -f 300//5 299//5 303//5 302//5 -f 298//7 297//7 301//7 304//7 -f 102//6 106//6 305//6 306//6 -f 105//7 53//7 307//7 308//7 -f 106//1 105//1 308//1 305//1 -f 305//15 308//15 307//15 306//15 -f 309//4 310//4 311//4 312//4 -f 313//3 314//3 315//3 316//3 -f 312//31 311//31 314//31 313//31 317//31 318//31 -f 318//32 317//32 319//32 320//32 -f 313//33 316//33 319//33 317//33 -f 309//34 312//34 318//34 320//34 -f 39//1 51//1 50//1 836//1 -f 321//35 322//35 323//35 324//35 -f 325//4 326//4 327//4 323//4 322//4 328//4 -f 324//25 323//25 327//25 329//25 -f 329//36 327//36 326//36 330//36 -f 330//3 331//3 332//3 321//3 324//3 329//3 -f 333//1 334//1 335//1 336//1 -f 335//4 334//4 337//4 338//4 -f 333//3 336//3 339//3 340//3 -f 341//13 342//13 343//13 344//13 -f 345//4 346//4 344//4 343//4 -f 347//3 348//3 342//3 341//3 -f 348//2 345//2 343//2 342//2 -f 346//1 347//1 341//1 344//1 -f 349//13 350//13 351//13 352//13 -f 353//1 354//1 352//1 351//1 -f 355//2 356//2 350//2 349//2 -f 356//4 353//4 351//4 350//4 -f 354//3 355//3 349//3 352//3 -f 357//1 358//1 359//1 360//1 -f 361//37 362//37 363//37 364//37 -f 365//38 366//38 367//38 368//38 -f 360//39 359//39 366//39 365//39 -f 364//40 363//40 358//40 357//40 -f 368//2 367//2 362//2 361//2 -f 368//4 361//4 364//4 357//4 360//4 365//4 -f 369//2 370//2 371//2 372//2 -f 373//1 374//1 375//1 376//1 -f 370//37 377//37 378//37 371//37 -f 379//38 369//38 372//38 380//38 -f 374//39 379//39 380//39 375//39 -f 377//40 373//40 376//40 378//40 -f 376//3 375//3 381//3 382//3 -f 371//3 378//3 383//3 384//3 -f 380//3 372//3 385//3 386//3 -f 375//3 380//3 386//3 381//3 -f 378//3 376//3 382//3 383//3 -f 372//3 371//3 384//3 385//3 -f 381//39 386//39 387//39 388//39 -f 383//40 382//40 389//40 390//40 -f 385//2 384//2 391//2 392//2 -f 382//1 381//1 388//1 389//1 -f 384//37 383//37 390//37 391//37 -f 386//38 385//38 392//38 387//38 -f 391//4 390//4 393//4 394//4 -f 392//4 391//4 394//4 395//4 -f 387//4 392//4 395//4 396//4 -f 388//4 387//4 396//4 397//4 -f 389//4 388//4 397//4 398//4 -f 390//4 389//4 398//4 393//4 -f 393//40 398//40 399//40 400//40 -f 395//2 394//2 401//2 402//2 -f 398//1 397//1 403//1 399//1 -f 394//37 393//37 400//37 401//37 -f 396//38 395//38 402//38 404//38 -f 397//39 396//39 404//39 403//39 -f 401//3 400//3 405//3 406//3 -f 402//3 401//3 406//3 407//3 -f 404//3 402//3 407//3 408//3 -f 403//3 404//3 408//3 409//3 -f 399//3 403//3 409//3 410//3 -f 400//3 399//3 410//3 405//3 -f 407//2 406//2 411//2 412//2 -f 410//1 409//1 413//1 414//1 -f 406//37 405//37 415//37 411//37 -f 408//38 407//38 412//38 416//38 -f 409//39 408//39 416//39 413//39 -f 405//40 410//40 414//40 415//40 -f 416//41 412//41 417//41 418//41 -f 413//42 416//42 418//42 419//42 -f 415//43 414//43 420//43 421//43 -f 412//44 411//44 422//44 417//44 -f 414//45 413//45 419//45 420//45 -f 411//46 415//46 421//46 422//46 -f 417//4 422//4 421//4 420//4 419//4 418//4 -f 423//2 424//2 425//2 426//2 -f 427//3 428//3 429//3 430//3 431//3 -f 426//13 425//13 432//13 433//13 -f 425//4 424//4 434//4 432//4 -f 423//3 426//3 433//3 435//3 -f 436//47 437//47 438//47 439//47 -f 440//3 436//3 439//3 441//3 -f 442//11 440//11 441//11 443//11 -f 437//4 442//4 443//4 438//4 -f 428//48 427//48 444//48 445//48 -f 431//13 430//13 446//13 447//13 -f 445//4 444//4 447//4 446//4 448//4 -f 428//47 445//47 448//47 429//47 -f 429//49 448//49 446//49 430//49 -f 444//11 427//11 431//11 447//11 -f 449//47 450//47 451//47 452//47 -f 453//4 454//4 451//4 450//4 -f 455//3 456//3 449//3 452//3 -f 454//49 455//49 452//49 451//49 -f 456//48 453//48 450//48 449//48 -f 457//31 458//31 459//31 460//31 461//31 462//31 463//31 464//31 465//31 466//31 467//31 468//31 -f 458//3 469//3 470//3 471//3 -f 472//50 473//50 462//50 474//50 -f 462//31 461//31 475//31 474//31 -f 461//31 460//31 476//31 475//31 -f 460//31 459//31 477//31 476//31 -f 471//31 477//31 459//31 458//31 -f 469//51 478//51 479//51 470//51 -f 480//31 481//31 482//31 483//31 484//31 485//31 486//31 487//31 488//31 489//31 490//31 491//31 -f 227//2 104//2 103//2 228//2 -f 492//8 493//8 494//8 495//8 -f 33//8 228//8 496//8 497//8 -f 103//8 34//8 498//8 499//8 -f 33//8 497//8 493//8 492//8 498//8 34//8 -f 228//8 103//8 499//8 495//8 494//8 496//8 -f 45//5 500//5 501//5 227//5 -f 44//5 502//5 500//5 45//5 -f 44//5 104//5 503//5 502//5 -f 227//5 501//5 503//5 104//5 -f 502//52 503//52 504//52 505//52 -f 498//5 492//5 506//5 507//5 -f 493//53 508//53 509//53 494//53 -f 510//8 507//8 506//8 511//8 -f 496//13 512//13 513//13 497//13 -f 514//5 505//5 504//5 515//5 -f 492//54 495//54 511//54 506//54 -f 497//5 513//5 508//5 493//5 -f 499//55 498//55 507//55 510//55 -f 495//7 499//7 510//7 511//7 -f 515//6 504//6 503//6 501//6 -f 505//8 514//8 500//8 502//8 -f 516//3 517//3 518//3 519//3 -f 517//56 520//56 521//56 518//56 -f 522//4 523//4 524//4 525//4 -f 526//57 516//57 519//57 527//57 -f 525//4 524//4 528//4 529//4 -f 518//58 521//58 530//58 531//58 -f 526//4 520//4 532//4 -f 532//49 533//49 516//49 526//49 -f 533//3 517//3 516//3 -f 523//4 522//4 534//4 -f 534//49 535//49 536//49 523//49 -f 535//3 537//3 536//3 -f 538//13 539//13 533//13 532//13 -f 540//9 541//9 520//9 517//9 -f 542//4 543//4 534//4 522//4 -f 544//3 545//3 537//3 535//3 -f 539//3 540//3 517//3 533//3 -f 543//13 544//13 535//13 534//13 -f 545//9 542//9 522//9 537//9 -f 541//4 538//4 532//4 520//4 -f 537//56 522//56 525//56 546//56 -f 520//4 526//4 527//4 521//4 -f 547//2 548//2 549//2 550//2 -f 509//8 508//8 513//8 512//8 -f 494//7 509//7 512//7 496//7 -f 514//13 515//13 501//13 500//13 -f 524//59 551//59 552//59 528//59 -f 551//3 546//3 553//3 552//3 -f 519//3 518//3 531//3 554//3 -f 546//58 525//58 529//58 553//58 -f 521//4 527//4 555//4 530//4 -f 527//59 519//59 554//59 555//59 -f 536//3 537//3 546//3 551//3 -f 523//57 536//57 551//57 524//57 -f 556//2 557//2 558//2 559//2 -f 559//60 558//60 560//60 561//60 -f 557//61 556//61 562//61 563//61 -f 558//62 557//62 563//62 560//62 -f 556//63 559//63 561//63 562//63 -f 564//39 565//39 566//39 567//39 -f 548//9 568//9 569//9 549//9 -f 567//1 566//1 570//1 571//1 -f 568//1 572//1 573//1 569//1 -f 571//40 570//40 574//40 575//40 -f 572//13 547//13 550//13 573//13 -f 575//37 574//37 576//37 577//37 -f 566//4 565//4 578//4 576//4 574//4 570//4 -f 548//3 547//3 572//3 568//3 -f 577//2 576//2 578//2 579//2 -f 579//38 578//38 565//38 564//38 -f 564//3 567//3 571//3 575//3 577//3 579//3 -f 569//6 573//6 580//6 581//6 -f 569//9 581//9 549//9 -f 550//13 580//13 573//13 -f 580//13 550//13 582//13 583//13 -f 583//1 582//1 584//1 585//1 -f 581//4 580//4 583//4 586//4 -f 549//9 581//9 586//9 587//9 -f 550//3 549//3 587//3 582//3 -f 583//4 588//4 586//4 -f 587//3 589//3 582//3 -f 586//47 588//47 589//47 587//47 -f 590//57 591//57 592//57 593//57 -f 588//4 583//4 585//4 591//4 -f 589//2 588//2 591//2 590//2 -f 582//3 589//3 590//3 584//3 -f 594//4 595//4 592//4 -f 584//3 590//3 593//3 596//3 -f 585//56 584//56 596//56 594//56 -f 591//4 585//4 594//4 592//4 -f 592//49 595//49 597//49 593//49 -f 596//3 597//3 598//3 599//3 -f 596//3 593//3 597//3 -f 600//9 599//9 601//9 602//9 -f 594//9 596//9 599//9 603//9 -f 595//4 594//4 603//4 604//4 -f 597//13 595//13 604//13 598//13 -f 604//13 605//13 598//13 -f 603//6 600//6 605//6 604//6 -f 599//9 600//9 603//9 -f 599//2 598//2 606//2 601//2 -f 598//13 605//13 607//13 606//13 -f 605//1 600//1 602//1 607//1 +f 227/323/124 228/324/124 229/325/124 230/326/124 +f 231/327/125 232/328/125 233/329/125 234/330/125 +f 235/331/126 236/332/126 237/333/126 238/334/126 +f 239/335/127 240/336/127 241/337/127 242/338/127 +f 232/328/128 239/335/128 242/338/128 233/329/128 +f 229/325/129 241/337/129 240/336/129 230/326/129 +f 228/339/130 227/340/130 238/334/130 237/333/130 +f 231/327/131 234/330/131 236/332/131 235/331/131 +f 240/341/132 239/342/132 243/343/132 244/344/132 245/345/132 +f 239/342/132 232/346/132 246/347/132 247/348/132 243/343/132 +f 232/346/132 231/349/132 248/350/132 249/351/132 246/347/132 +f 231/349/132 235/352/132 250/353/132 251/354/132 248/350/132 +f 235/352/132 238/355/132 252/356/132 253/357/132 250/353/132 +f 238/355/132 227/358/132 254/359/132 255/360/132 252/356/132 +f 227/358/132 230/361/132 256/362/132 257/363/132 254/359/132 +f 230/361/132 240/341/132 245/345/132 258/364/132 256/362/132 +f 259/365/126 260/366/126 261/367/126 262/368/126 263/369/126 +f 264/370/129 265/371/129 1051/372/129 266/373/129 267/374/129 268/375/129 269/376/129 +f 270/377/127 271/378/127 268/375/127 267/374/127 272/379/127 273/380/127 +f 274/381/124 275/382/124 264/370/124 269/376/124 +f 263/369/133 262/368/133 276/383/133 277/384/133 275/385/133 274/386/133 +f 264/387/134 275/388/134 277/389/134 265/390/134 +f 278/391/125 279/392/125 270/377/125 273/380/125 +f 280/393/126 281/394/126 282/395/126 283/396/126 +f 284/397/126 283/396/126 282/395/126 261/367/126 260/366/126 +f 281/394/135 280/393/135 285/398/135 286/399/135 +f 287/400/126 288/401/126 289/402/126 290/403/126 +f 291/404/126 292/405/126 293/406/126 294/407/126 +f 295/408/126 296/409/126 297/410/126 298/411/126 +f 299/412/126 300/413/126 301/414/126 302/415/126 +f 303/416/126 304/417/126 305/418/126 306/419/126 +f 299/412/126 303/416/126 306/419/126 287/400/126 290/403/126 291/404/126 294/407/126 295/408/126 298/411/126 300/413/126 +f 302/415/126 301/414/126 297/410/126 296/409/126 293/406/126 292/405/126 289/402/126 288/401/126 305/418/126 304/417/126 +f 296/420/124 295/421/124 307/422/124 308/423/124 +f 295/424/132 294/425/132 309/426/132 307/422/132 +f 290/427/125 289/428/125 310/429/125 311/430/125 +f 291/431/132 290/432/132 311/430/132 312/433/132 +f 313/434/126 314/435/126 315/436/126 316/437/126 +f 309/426/126 317/438/126 308/423/126 307/422/126 +f 312/433/126 311/430/126 310/429/126 318/439/126 +f 319/440/126 320/441/126 321/442/126 322/443/126 +f 300/444/132 298/445/132 314/435/132 313/434/132 +f 298/446/125 297/447/125 315/436/125 314/435/125 +f 297/448/136 301/449/136 316/437/136 315/436/136 +f 292/450/124 291/451/124 312/433/124 318/439/124 +f 293/452/136 296/453/136 308/423/136 317/438/136 +f 294/454/125 293/455/125 317/438/125 309/426/125 +f 289/456/136 292/457/136 318/439/136 310/429/136 +f 301/458/124 300/459/124 313/434/124 316/437/124 +f 305/460/136 288/461/136 321/442/136 320/441/136 +f 306/462/125 305/463/125 320/441/125 319/440/125 +f 287/464/132 306/465/132 319/440/132 322/443/132 +f 288/466/124 287/467/124 322/443/124 321/442/124 +f 272/379/136 267/374/136 323/468/136 324/469/136 +f 267/374/136 266/470/136 323/468/136 +f 280/393/136 283/396/136 325/471/136 326/472/136 +f 280/393/136 326/472/136 285/473/136 +f 273/380/137 272/474/137 324/475/137 278/391/137 +f 327/476/137 325/477/137 283/478/137 284/397/137 +f 328/479/125 327/476/125 284/397/125 260/366/125 +f 329/480/138 330/481/138 331/482/138 332/483/138 +f 330/481/138 270/484/138 279/485/138 331/482/138 +f 329/480/138 332/483/138 328/486/138 260/487/138 +f 333/488/139 334/489/139 335/490/139 336/491/139 +f 337/492/139 338/493/139 339/494/139 340/495/139 +f 341/496/139 342/497/139 343/498/139 344/499/139 +f 342/497/139 345/500/139 346/501/139 343/498/139 +f 347/502/139 333/488/139 336/491/139 348/503/139 +f 334/489/139 337/492/139 340/495/139 335/490/139 +f 338/493/139 341/496/139 344/499/139 339/494/139 +f 345/500/139 347/504/139 348/505/139 346/501/139 +f 349/506/139 350/507/139 351/508/139 352/509/139 353/510/139 354/511/139 355/512/139 356/513/139 +f 357/514/139 358/515/139 359/516/139 360/517/139 +f 358/515/139 361/518/139 362/519/139 359/516/139 +f 361/518/140 363/520/140 364/521/140 362/519/140 +f 363/522/140 365/523/140 366/524/140 364/525/140 +f 365/523/139 367/526/139 368/527/139 366/524/139 +f 367/526/140 369/528/140 370/529/140 368/527/140 +f 369/528/140 371/530/140 372/531/140 370/529/140 +f 371/530/140 357/514/140 360/517/140 372/531/140 +f 373/532/141 374/533/141 375/534/141 376/535/141 +f 377/536/142 378/537/142 376/535/142 375/534/142 +f 379/538/143 377/539/143 375/534/143 374/533/143 +f 380/540/144 379/541/144 374/533/144 373/532/144 +f 378/542/145 380/543/145 373/532/145 376/535/145 +f 381/544/132 382/545/132 383/546/132 384/547/132 +f 385/548/132 386/549/132 387/550/132 388/551/132 389/552/132 390/553/132 391/554/132 392/555/132 +f 393/556/132 381/544/132 384/557/132 394/558/132 +f 395/559/132 393/556/132 394/560/132 396/561/132 +f 397/562/132 395/559/132 396/563/132 398/564/132 +f 399/565/132 397/566/132 398/567/132 400/568/132 +f 401/569/132 399/565/132 400/570/132 402/571/132 +f 403/572/132 401/569/132 402/573/132 404/574/132 +f 382/545/132 403/572/132 404/575/132 383/576/132 +f 405/577/132 406/578/132 407/579/132 408/580/132 +f 409/581/132 410/582/132 406/583/132 405/584/132 +f 411/585/132 412/586/132 410/587/132 409/588/132 +f 413/589/132 414/590/132 412/591/132 411/592/132 +f 415/593/132 416/594/132 414/595/132 413/596/132 +f 417/597/132 418/598/132 416/599/132 415/600/132 +f 419/601/132 420/602/132 418/603/132 417/604/132 +f 408/605/132 407/606/132 420/607/132 419/608/132 +f 421/609/132 422/610/132 423/611/132 424/612/132 425/613/132 426/614/132 427/615/132 428/616/132 429/617/132 430/618/132 431/619/132 432/620/132 433/621/132 434/622/132 435/623/132 436/624/132 +f 242/625/136 437/626/136 438/627/136 439/628/136 233/629/136 +f 241/630/136 440/631/136 441/632/136 437/626/136 242/625/136 +f 229/633/136 442/634/136 443/635/136 440/631/136 241/630/136 +f 228/636/136 444/637/136 445/638/136 442/634/136 229/633/136 +f 237/639/136 446/640/136 447/641/136 444/637/136 228/636/136 +f 236/642/136 448/643/136 449/644/136 446/640/136 237/639/136 +f 234/645/136 450/646/136 451/647/136 448/643/136 236/642/136 +f 233/629/136 439/628/136 452/648/136 450/646/136 234/645/136 +f 453/649/132 454/650/132 455/651/132 456/652/132 457/653/132 +f 271/654/132 453/649/132 457/653/132 458/655/132 459/656/132 +f 268/657/132 271/654/132 459/656/132 460/658/132 461/659/132 +f 269/660/132 268/657/132 461/659/132 462/661/132 463/662/132 +f 274/663/132 269/660/132 463/662/132 464/664/132 465/665/132 +f 263/666/132 274/663/132 465/665/132 466/667/132 467/668/132 +f 259/669/132 263/666/132 467/668/132 468/670/132 469/671/132 +f 454/650/132 259/669/132 469/671/132 470/672/132 455/651/132 +f 471/673/126 472/674/126 473/675/126 474/676/126 475/677/126 476/678/126 477/679/126 478/680/126 +f 302/415/132 304/417/132 479/681/132 480/682/132 +f 304/417/124 303/416/124 481/683/124 479/684/124 +f 303/416/136 299/412/136 482/685/136 481/686/136 +f 299/412/125 302/415/125 480/687/125 482/688/125 +f 483/689/127 484/690/127 485/691/127 486/692/127 487/693/127 488/694/127 489/695/127 490/696/127 +f 472/697/146 490/698/146 489/699/146 473/700/146 +f 474/701/147 488/702/147 487/703/147 475/704/147 +f 478/705/148 484/706/148 483/707/148 471/708/148 +f 473/700/149 489/699/149 488/702/149 474/701/149 +f 475/704/150 487/703/150 486/709/150 476/710/150 +f 477/711/151 485/712/151 484/706/151 478/705/151 +f 471/708/152 483/707/152 490/698/152 472/697/152 +f 491/713/132 492/714/132 493/715/132 494/716/132 +f 495/717/136 496/718/136 497/719/136 498/720/136 +f 493/715/129 492/721/129 498/722/129 497/719/129 +f 491/723/131 494/716/131 496/718/131 495/724/131 +f 494/716/128 493/715/128 497/719/128 496/718/128 +f 492/721/130 491/725/130 495/726/130 498/722/130 +f 499/727/132 500/728/132 501/729/132 502/730/132 +f 503/731/136 504/732/136 505/733/136 506/734/136 +f 501/729/131 500/735/131 506/736/131 505/733/131 +f 499/737/129 502/730/129 504/732/129 503/738/129 +f 502/730/130 501/729/130 505/733/130 504/732/130 +f 500/739/128 499/737/128 503/738/128 506/740/128 +f 507/741/132 508/742/132 509/743/132 510/744/132 +f 511/745/136 512/746/136 513/747/136 514/748/136 +f 509/743/130 508/749/130 514/750/130 513/747/130 +f 507/751/128 510/744/128 512/746/128 511/752/128 +f 510/744/129 509/743/129 513/747/129 512/746/129 +f 508/749/131 507/753/131 511/754/131 514/750/131 +f 515/755/132 516/756/132 517/757/132 518/758/132 +f 519/759/136 520/760/136 521/761/136 522/762/136 +f 517/757/128 516/763/128 522/764/128 521/761/128 +f 515/765/130 518/758/130 520/760/130 519/766/130 +f 518/758/131 517/757/131 521/761/131 520/760/131 +f 516/767/129 515/765/129 519/766/129 522/768/129 +f 523/769/132 524/770/132 525/771/132 526/772/132 +f 527/773/153 528/774/153 529/775/153 530/776/153 +f 525/771/129 524/777/129 530/778/129 529/779/129 +f 523/780/131 526/772/131 528/774/131 527/773/131 +f 526/772/128 525/771/128 529/779/128 528/774/128 +f 524/777/130 523/781/130 527/782/130 530/778/130 +f 328/783/129 332/784/129 531/785/129 532/786/129 +f 331/787/130 279/788/130 533/789/130 534/790/130 +f 332/791/124 331/792/124 534/793/124 531/794/124 +f 531/795/138 534/796/138 533/789/138 532/786/138 +f 535/797/127 536/798/127 537/799/127 538/800/127 +f 539/801/126 540/802/126 541/803/126 542/804/126 +f 538/800/154 537/799/154 540/802/154 539/801/154 543/805/154 544/806/154 +f 544/806/155 543/805/155 545/807/155 546/808/155 +f 539/809/156 542/810/156 545/807/156 543/805/156 +f 535/811/157 538/812/157 544/806/157 546/808/157 +f 265/390/124 277/389/124 276/813/124 1051/814/124 +f 547/815/158 548/816/158 549/817/158 550/818/158 +f 551/819/127 552/820/127 553/821/127 549/822/127 548/823/127 554/824/127 +f 550/818/148 549/817/148 553/825/148 555/826/148 +f 555/826/159 553/825/159 552/827/159 556/828/159 +f 556/829/126 557/830/126 558/831/126 547/832/126 550/833/126 555/834/126 +f 559/835/124 560/836/124 561/837/124 562/838/124 +f 561/837/127 560/836/127 563/839/127 564/840/127 +f 559/835/126 562/838/126 565/841/126 566/842/126 +f 567/843/136 568/844/136 569/845/136 570/846/136 +f 571/847/127 572/848/127 570/846/127 569/845/127 +f 573/849/126 574/850/126 568/844/126 567/843/126 +f 574/851/125 571/852/125 569/845/125 568/844/125 +f 572/853/124 573/854/124 567/843/124 570/846/124 +f 575/855/136 576/856/136 577/857/136 578/858/136 +f 579/859/124 580/860/124 578/858/124 577/857/124 +f 581/861/125 582/862/125 576/856/125 575/855/125 +f 582/863/127 579/864/127 577/857/127 576/856/127 +f 580/865/126 581/866/126 575/855/126 578/858/126 +f 583/867/124 584/868/124 585/869/124 586/870/124 +f 587/871/160 588/872/160 589/873/160 590/874/160 +f 591/875/161 592/876/161 593/877/161 594/878/161 +f 586/870/162 585/869/162 592/876/162 591/875/162 +f 590/874/163 589/873/163 584/879/163 583/880/163 +f 594/878/125 593/877/125 588/872/125 587/871/125 +f 594/881/127 587/882/127 590/883/127 583/884/127 586/885/127 591/886/127 +f 595/887/125 596/888/125 597/889/125 598/890/125 +f 599/891/124 600/892/124 601/893/124 602/894/124 +f 596/895/160 603/896/160 604/897/160 597/898/160 +f 605/899/161 595/900/161 598/901/161 606/902/161 +f 600/903/162 605/904/162 606/905/162 601/906/162 +f 603/907/163 599/908/163 602/909/163 604/910/163 +f 602/894/126 601/893/126 607/911/126 608/912/126 +f 597/898/126 604/897/126 609/913/126 610/914/126 +f 606/902/126 598/901/126 611/915/126 612/916/126 +f 601/906/126 606/905/126 612/916/126 607/911/126 +f 604/910/126 602/909/126 608/917/126 609/913/126 +f 598/890/126 597/889/126 610/914/126 611/915/126 +f 607/911/162 612/916/162 613/918/162 614/919/162 +f 609/913/163 608/917/163 615/920/163 616/921/163 +f 611/915/125 610/914/125 617/922/125 618/923/125 +f 608/912/124 607/911/124 614/919/124 615/924/124 +f 610/914/160 609/913/160 616/921/160 617/922/160 +f 612/916/161 611/915/161 618/923/161 613/918/161 +f 617/922/127 616/921/127 619/925/127 620/926/127 +f 618/923/127 617/922/127 620/927/127 621/928/127 +f 613/918/127 618/923/127 621/929/127 622/930/127 +f 614/919/127 613/918/127 622/931/127 623/932/127 +f 615/924/127 614/919/127 623/933/127 624/934/127 +f 616/921/127 615/920/127 624/935/127 619/936/127 +f 619/936/163 624/935/163 625/937/163 626/938/163 +f 621/928/125 620/927/125 627/939/125 628/940/125 +f 624/934/124 623/933/124 629/941/124 625/942/124 +f 620/926/160 619/925/160 626/943/160 627/944/160 +f 622/930/161 621/929/161 628/945/161 630/946/161 +f 623/932/162 622/931/162 630/947/162 629/948/162 +f 627/944/126 626/943/126 631/949/126 632/950/126 +f 628/940/126 627/939/126 632/950/126 633/951/126 +f 630/946/126 628/945/126 633/951/126 634/952/126 +f 629/948/126 630/947/126 634/952/126 635/953/126 +f 625/942/126 629/941/126 635/953/126 636/954/126 +f 626/938/126 625/937/126 636/955/126 631/949/126 +f 633/951/125 632/950/125 637/956/125 638/957/125 +f 636/954/124 635/953/124 639/958/124 640/959/124 +f 632/950/160 631/949/160 641/960/160 637/956/160 +f 634/952/161 633/951/161 638/957/161 642/961/161 +f 635/953/162 634/952/162 642/961/162 639/958/162 +f 631/949/163 636/955/163 640/962/163 641/960/163 +f 642/961/164 638/957/164 643/963/164 644/964/164 +f 639/958/165 642/961/165 644/965/165 645/966/165 +f 641/960/166 640/962/166 646/967/166 647/968/166 +f 638/957/167 637/956/167 648/969/167 643/970/167 +f 640/959/168 639/958/168 645/971/168 646/972/168 +f 637/956/169 641/960/169 647/973/169 648/974/169 +f 643/975/127 648/976/127 647/977/127 646/978/127 645/979/127 644/980/127 +f 649/981/125 650/982/125 651/983/125 652/984/125 +f 653/985/126 654/986/126 655/987/126 656/988/126 657/989/126 +f 652/984/136 651/983/136 658/990/136 659/991/136 +f 651/983/127 650/982/127 660/992/127 658/993/127 +f 649/981/126 652/984/126 659/994/126 661/995/126 +f 662/996/170 663/997/170 664/998/170 665/999/170 +f 666/1000/126 662/1001/126 665/1002/126 667/1003/126 +f 668/1004/134 666/1000/134 667/1003/134 669/1005/134 +f 663/997/127 668/1004/127 669/1005/127 664/998/127 +f 654/986/171 653/985/171 670/1006/171 671/1007/171 +f 657/1008/136 656/1009/136 672/1010/136 673/1011/136 +f 671/1007/127 670/1006/127 673/1012/127 672/1010/127 674/1013/127 +f 654/986/170 671/1007/170 674/1014/170 655/1015/170 +f 655/1016/172 674/1013/172 672/1010/172 656/1009/172 +f 670/1006/134 653/985/134 657/1017/134 673/1018/134 +f 675/1019/170 676/1020/170 677/1021/170 678/1022/170 +f 679/1023/127 680/1024/127 677/1025/127 676/1026/127 +f 681/1027/126 682/1028/126 675/1019/126 678/1022/126 +f 680/1024/172 681/1027/172 678/1022/172 677/1025/172 +f 682/1029/171 679/1023/171 676/1026/171 675/1030/171 +f 684/1031/126 692/1032/126 693/1033/126 694/1034/126 +f 695/1035/173 696/1036/173 685/1037/173 697/1038/173 +f 692/1039/174 701/1040/174 702/1041/174 693/1033/174 +f 453/1042/125 330/481/125 329/480/125 454/1043/125 +f 715/1044/131 716/1045/131 717/1046/131 718/1047/131 +f 259/365/131 454/1043/131 719/1048/131 720/1049/131 +f 329/480/131 260/366/131 721/1050/131 722/1051/131 +f 259/365/131 720/1049/131 716/1045/131 715/1044/131 721/1050/131 260/366/131 +f 454/1043/131 329/480/131 722/1051/131 718/1047/131 717/1046/131 719/1048/131 +f 271/378/128 723/1052/128 724/1053/128 453/1042/128 +f 270/1054/128 725/1055/128 723/1052/128 271/378/128 +f 270/1054/128 330/481/128 726/1056/128 725/1055/128 +f 453/1042/128 724/1053/128 726/1056/128 330/481/128 +f 725/1057/175 726/1058/175 727/1059/175 728/1060/175 +f 721/1061/128 715/1062/128 729/1063/128 730/1064/128 +f 716/1065/176 731/1066/176 732/1067/176 717/1068/176 +f 733/1069/131 730/1064/131 729/1063/131 734/1070/131 +f 719/1071/136 735/1072/136 736/1073/136 720/1074/136 +f 737/1075/128 728/1076/128 727/1059/128 738/1077/128 +f 715/1078/177 718/1079/177 734/1070/177 729/1080/177 +f 720/1081/128 736/1073/128 731/1082/128 716/1083/128 +f 722/1084/178 721/1085/178 730/1086/178 733/1069/178 +f 718/1079/130 722/1084/130 733/1069/130 734/1070/130 +f 738/1077/129 727/1059/129 726/1058/129 724/1087/129 +f 728/1076/131 737/1075/131 723/1088/131 725/1089/131 +f 739/1090/126 740/1091/126 741/1092/126 742/1093/126 +f 740/1094/179 743/1095/179 744/1096/179 741/1097/179 +f 745/1098/127 746/1099/127 747/1100/127 748/1101/127 +f 749/1102/180 739/1090/180 742/1093/180 750/1103/180 +f 748/1101/127 747/1100/127 751/1104/127 752/1105/127 +f 741/1097/181 744/1096/181 753/1106/181 754/1107/181 +f 749/1108/127 743/1109/127 755/1110/127 +f 755/1110/172 756/1111/172 739/1090/172 749/1102/172 +f 756/1111/126 740/1112/126 739/1113/126 +f 746/1114/127 745/1115/127 757/1116/127 +f 757/1116/172 758/1117/172 759/1118/172 746/1099/172 +f 758/1117/126 760/1119/126 759/1120/126 +f 761/1121/136 762/1122/136 756/1111/136 755/1110/136 +f 763/1123/132 764/1124/132 743/1109/132 740/1125/132 +f 765/1126/127 766/1127/127 757/1116/127 745/1115/127 +f 767/1128/126 768/1129/126 760/1119/126 758/1117/126 +f 762/1122/126 763/1130/126 740/1112/126 756/1111/126 +f 766/1127/136 767/1128/136 758/1117/136 757/1116/136 +f 768/1131/132 765/1126/132 745/1115/132 760/1132/132 +f 764/1124/127 761/1121/127 755/1110/127 743/1109/127 +f 760/1133/179 745/1098/179 748/1101/179 769/1134/179 +f 743/1095/127 749/1102/127 750/1103/127 744/1096/127 +f 770/1135/125 771/1136/125 772/1137/125 773/1138/125 +f 732/1067/131 731/1082/131 736/1073/131 735/1072/131 +f 717/1068/130 732/1067/130 735/1072/130 719/1139/130 +f 737/1075/136 738/1077/136 724/1140/136 723/1141/136 +f 747/1100/182 774/1142/182 775/1143/182 751/1104/182 +f 774/1142/126 769/1144/126 776/1145/126 775/1143/126 +f 742/1093/126 741/1092/126 754/1146/126 777/1147/126 +f 769/1134/181 748/1101/181 752/1105/181 776/1148/181 +f 744/1096/127 750/1103/127 778/1149/127 753/1106/127 +f 750/1103/182 742/1093/182 777/1147/182 778/1149/182 +f 759/1118/126 760/1150/126 769/1144/126 774/1142/126 +f 746/1099/180 759/1118/180 774/1142/180 747/1100/180 +f 779/1151/162 780/1152/162 781/1153/162 782/1154/162 +f 771/1136/132 783/1155/132 784/1156/132 772/1137/132 +f 782/1154/124 781/1153/124 785/1157/124 786/1158/124 +f 783/1155/124 787/1159/124 788/1160/124 784/1156/124 +f 786/1161/163 785/1162/163 789/1163/163 790/1164/163 +f 787/1159/136 770/1165/136 773/1166/136 788/1160/136 +f 790/1164/160 789/1163/160 791/1167/160 792/1168/160 +f 781/1169/127 780/1170/127 793/1171/127 791/1172/127 789/1173/127 785/1174/127 +f 792/1168/125 791/1167/125 793/1175/125 794/1176/125 +f 794/1176/161 793/1175/161 780/1152/161 779/1151/161 +f 779/1177/126 782/1178/126 786/1179/126 790/1180/126 792/1181/126 794/1182/126 +f 784/1156/129 788/1160/129 795/1183/129 796/1184/129 +f 784/1185/132 796/1184/132 772/1186/132 +f 773/1187/136 795/1183/136 788/1188/136 +f 795/1183/136 773/1187/136 797/1189/136 798/1190/136 +f 798/1191/124 797/1192/124 799/1193/124 800/1194/124 +f 796/1184/127 795/1183/127 798/1190/127 801/1195/127 +f 772/1186/132 796/1184/132 801/1195/132 802/1196/132 +f 773/1197/126 772/1186/126 802/1196/126 797/1198/126 +f 798/1191/127 803/1199/127 801/1200/127 +f 802/1201/126 804/1202/126 797/1203/126 +f 801/1195/170 803/1199/170 804/1202/170 802/1196/170 +f 805/1204/180 806/1205/180 807/1206/180 808/1207/180 +f 803/1199/127 798/1191/127 800/1194/127 806/1205/127 +f 804/1202/125 803/1199/125 806/1205/125 805/1204/125 +f 797/1203/126 804/1202/126 805/1204/126 799/1208/126 +f 809/1209/127 810/1210/127 807/1211/127 +f 799/1208/126 805/1204/126 808/1207/126 811/1212/126 +f 800/1194/179 799/1193/179 811/1213/179 809/1214/179 +f 806/1205/127 800/1194/127 809/1214/127 807/1206/127 +f 807/1206/172 810/1210/172 812/1215/172 808/1207/172 +f 811/1216/126 812/1215/126 813/1217/126 814/1218/126 +f 811/1216/126 808/1219/126 812/1215/126 +f 815/1220/132 814/1221/132 816/1222/132 817/1223/132 +f 809/1209/132 811/1224/132 814/1225/132 818/1226/132 +f 810/1210/127 809/1209/127 818/1226/127 819/1227/127 +f 812/1215/136 810/1210/136 819/1227/136 813/1217/136 +f 819/1228/136 820/1229/136 813/1230/136 +f 818/1226/129 815/1220/129 820/1229/129 819/1227/129 +f 814/1221/132 815/1220/132 818/1231/132 +f 814/1232/125 813/1230/125 821/1233/125 816/1234/125 +f 813/1230/136 820/1229/136 822/1235/136 821/1233/136 +f 820/1229/124 815/1220/124 817/1223/124 822/1235/124 +f 660/1236/124 661/1237/124 659/1238/124 658/1239/124 +f 1052/1240/183 1053/1241/183 1054/1242/183 1055/1243/183 +f 1056/1244/183 1057/1245/183 1058/1246/183 1059/1247/183 +f 1060/1248/183 1061/1249/183 1062/1250/183 1063/1251/183 +f 1061/1249/183 1064/1252/183 1065/1253/183 1062/1250/183 +f 1066/1254/183 1052/1240/183 1055/1243/183 1067/1255/183 +f 1053/1241/183 1056/1244/183 1059/1247/183 1054/1242/183 +f 1057/1245/183 1060/1248/183 1063/1251/183 1058/1246/183 +f 1064/1252/183 1066/1256/183 1067/1257/183 1065/1253/183 +f 1068/1258/183 1069/1259/183 1070/1260/183 1071/1261/183 1072/1262/183 1073/1263/183 1074/1264/183 1075/1265/183 +f 1076/1266/183 1077/1267/183 1078/1268/183 1079/1269/183 +f 1077/1267/183 1080/1270/183 1081/1271/183 1078/1268/183 +f 1080/1270/184 1082/1272/184 1083/1273/184 1081/1271/184 +f 1082/1274/184 1084/1275/184 1085/1276/184 1083/1277/184 +f 1084/1275/183 1086/1278/183 1087/1279/183 1085/1276/183 +f 1086/1278/184 1088/1280/184 1089/1281/184 1087/1279/184 +f 1088/1280/184 1090/1282/184 1091/1283/184 1089/1281/184 +f 1090/1282/184 1076/1266/184 1079/1269/184 1091/1283/184 +f 1140/1284/185 1141/1285/185 1142/1286/185 1143/1287/185 +f 1144/1288/185 1145/1289/185 1146/1290/185 1147/1291/185 +f 1148/1292/185 1149/1293/185 1150/1294/185 1151/1295/185 +f 1149/1293/185 1152/1296/185 1153/1297/185 1150/1294/185 +f 1154/1298/185 1140/1284/185 1143/1287/185 1155/1299/185 +f 1141/1285/185 1144/1288/185 1147/1291/185 1142/1286/185 +f 1145/1289/185 1148/1292/185 1151/1295/185 1146/1290/185 +f 1152/1296/185 1154/1300/185 1155/1301/185 1153/1297/185 +f 1156/1302/185 1157/1303/185 1158/1304/185 1159/1305/185 1160/1306/185 1161/1307/185 1162/1308/185 1163/1309/185 +f 1164/1310/185 1165/1311/185 1166/1312/185 1167/1313/185 +f 1165/1311/185 1168/1314/185 1169/1315/185 1166/1312/185 +f 1168/1314/186 1170/1316/186 1171/1317/186 1169/1315/186 +f 1170/1318/186 1172/1319/186 1173/1320/186 1171/1321/186 +f 1172/1319/185 1174/1322/185 1175/1323/185 1173/1320/185 +f 1174/1322/185 1176/1324/185 1177/1325/185 1175/1323/185 +f 1176/1324/186 1178/1326/186 1179/1327/186 1177/1325/186 +f 1178/1326/185 1164/1310/185 1167/1313/185 1179/1327/185 +f 1228/1328/187 1229/1329/187 1230/1330/187 1231/1331/187 +f 1232/1332/187 1233/1333/187 1234/1334/187 1235/1335/187 +f 1236/1336/187 1237/1337/187 1238/1338/187 1239/1339/187 +f 1237/1337/187 1240/1340/187 1241/1341/187 1238/1338/187 +f 1242/1342/187 1228/1328/187 1231/1331/187 1243/1343/187 +f 1229/1329/187 1232/1332/187 1235/1335/187 1230/1330/187 +f 1233/1333/187 1236/1336/187 1239/1339/187 1234/1334/187 +f 1240/1340/187 1242/1344/187 1243/1345/187 1241/1341/187 +f 1244/1346/187 1245/1347/187 1246/1348/187 1247/1349/187 1248/1350/187 1249/1351/187 1250/1352/187 1251/1353/187 +f 1252/1354/187 1253/1355/187 1254/1356/187 1255/1357/187 +f 1253/1355/187 1256/1358/187 1257/1359/187 1254/1356/187 +f 1256/1358/188 1258/1360/188 1259/1361/188 1257/1359/188 +f 1258/1362/188 1260/1363/188 1261/1364/188 1259/1365/188 +f 1260/1363/188 1262/1366/188 1263/1367/188 1261/1364/188 +f 1262/1366/188 1264/1368/188 1265/1369/188 1263/1367/188 +f 1264/1368/188 1266/1370/188 1267/1371/188 1265/1369/188 +f 1266/1370/187 1252/1354/187 1255/1357/187 1267/1371/187 +f 1316/1372/189 1317/1373/189 1318/1374/189 1319/1375/189 +f 1320/1376/189 1321/1377/189 1322/1378/189 1323/1379/189 +f 1324/1380/190 1325/1381/190 1326/1382/190 1327/1383/190 +f 1325/1381/189 1328/1384/189 1329/1385/189 1326/1382/189 +f 1330/1386/189 1316/1372/189 1319/1375/189 1331/1387/189 +f 1317/1373/189 1320/1376/189 1323/1379/189 1318/1374/189 +f 1321/1377/189 1324/1380/189 1327/1383/189 1322/1378/189 +f 1328/1384/189 1330/1388/189 1331/1389/189 1329/1385/189 +f 1332/1390/189 1333/1391/189 1334/1392/189 1335/1393/189 1336/1394/189 1337/1395/189 1338/1396/189 1339/1397/189 +f 1340/1398/190 1341/1399/190 1342/1400/190 1343/1401/190 +f 1341/1399/190 1344/1402/190 1345/1403/190 1342/1400/190 +f 1344/1402/190 1346/1404/190 1347/1405/190 1345/1403/190 +f 1346/1406/190 1348/1407/190 1349/1408/190 1347/1409/190 +f 1348/1407/189 1350/1410/189 1351/1411/189 1349/1408/189 +f 1350/1410/190 1352/1412/190 1353/1413/190 1351/1411/190 +f 1352/1412/190 1354/1414/190 1355/1415/190 1353/1413/190 +f 1354/1414/189 1340/1398/189 1343/1401/189 1355/1415/189 +f 1404/1416/191 1405/1417/191 1406/1418/191 1407/1419/191 +f 1408/1420/191 1409/1421/191 1410/1422/191 1411/1423/191 +f 1412/1424/192 1413/1425/192 1414/1426/192 1415/1427/192 +f 1413/1425/191 1416/1428/191 1417/1429/191 1414/1426/191 +f 1418/1430/191 1404/1416/191 1407/1419/191 1419/1431/191 +f 1405/1417/191 1408/1420/191 1411/1423/191 1406/1418/191 +f 1409/1421/191 1412/1424/191 1415/1427/191 1410/1422/191 +f 1416/1428/191 1418/1432/191 1419/1433/191 1417/1429/191 +f 1420/1434/191 1421/1435/191 1422/1436/191 1423/1437/191 1424/1438/191 1425/1439/191 1426/1440/191 1427/1441/191 +f 1428/1442/192 1429/1443/192 1430/1444/192 1431/1445/192 +f 1429/1443/192 1432/1446/192 1433/1447/192 1430/1444/192 +f 1432/1446/192 1434/1448/192 1435/1449/192 1433/1447/192 +f 1434/1450/192 1436/1451/192 1437/1452/192 1435/1453/192 +f 1436/1451/191 1438/1454/191 1439/1455/191 1437/1452/191 +f 1438/1454/192 1440/1456/192 1441/1457/192 1439/1455/192 +f 1440/1456/192 1442/1458/192 1443/1459/192 1441/1457/192 +f 1442/1458/191 1428/1442/191 1431/1445/191 1443/1459/191 +f 1492/1460/193 1493/1461/193 1494/1462/193 1495/1463/193 +f 1496/1464/193 1497/1465/193 1498/1466/193 1499/1467/193 +f 1500/1468/194 1501/1469/194 1502/1470/194 1503/1471/194 +f 1501/1469/193 1504/1472/193 1505/1473/193 1502/1470/193 +f 1506/1474/193 1492/1460/193 1495/1463/193 1507/1475/193 +f 1493/1461/193 1496/1464/193 1499/1467/193 1494/1462/193 +f 1497/1465/193 1500/1468/193 1503/1471/193 1498/1466/193 +f 1504/1472/193 1506/1476/193 1507/1477/193 1505/1473/193 +f 1508/1478/193 1509/1479/193 1510/1480/193 1511/1481/193 1512/1482/193 1513/1483/193 1514/1484/193 1515/1485/193 +f 1516/1486/194 1517/1487/194 1518/1488/194 1519/1489/194 +f 1517/1487/194 1520/1490/194 1521/1491/194 1518/1488/194 +f 1520/1490/194 1522/1492/194 1523/1493/194 1521/1491/194 +f 1522/1494/194 1524/1495/194 1525/1496/194 1523/1497/194 +f 1524/1495/193 1526/1498/193 1527/1499/193 1525/1496/193 +f 1526/1498/194 1528/1500/194 1529/1501/194 1527/1499/194 +f 1528/1500/194 1530/1502/194 1531/1503/194 1529/1501/194 +f 1530/1502/194 1516/1486/194 1519/1489/194 1531/1503/194 +f 1580/1504/195 1581/1505/195 1582/1506/195 1583/1507/195 +f 1584/1508/195 1585/1509/195 1586/1510/195 1587/1511/195 +f 1588/1512/195 1589/1513/195 1590/1514/195 1591/1515/195 +f 1589/1513/195 1592/1516/195 1593/1517/195 1590/1514/195 +f 1594/1518/195 1580/1504/195 1583/1507/195 1595/1519/195 +f 1581/1505/195 1584/1508/195 1587/1511/195 1582/1506/195 +f 1585/1509/195 1588/1512/195 1591/1515/195 1586/1510/195 +f 1592/1516/195 1594/1520/195 1595/1521/195 1593/1517/195 +f 1596/1522/195 1597/1523/195 1598/1524/195 1599/1525/195 1600/1526/195 1601/1527/195 1602/1528/195 1603/1529/195 +f 1604/1530/196 1605/1531/196 1606/1532/196 1607/1533/196 +f 1605/1531/196 1608/1534/196 1609/1535/196 1606/1532/196 +f 1608/1534/196 1610/1536/196 1611/1537/196 1609/1535/196 +f 1610/1538/196 1612/1539/196 1613/1540/196 1611/1541/196 +f 1612/1539/195 1614/1542/195 1615/1543/195 1613/1540/195 +f 1614/1542/196 1616/1544/196 1617/1545/196 1615/1543/196 +f 1616/1544/196 1618/1546/196 1619/1547/196 1617/1545/196 +f 1618/1546/195 1604/1530/195 1607/1533/195 1619/1547/195 +f 1668/1548/197 1669/1549/197 1670/1550/197 1671/1551/197 +f 1672/1552/198 1673/1553/198 1671/1551/198 1670/1550/198 +f 1674/1554/199 1672/1555/199 1670/1550/199 1669/1549/199 +f 1675/1556/200 1674/1557/200 1669/1549/200 1668/1548/200 +f 1673/1558/201 1675/1559/201 1668/1548/201 1671/1551/201 +f 1676/1560/202 1677/1561/202 1678/1562/202 1679/1563/202 +f 1680/1564/203 1681/1565/203 1679/1563/203 1678/1562/203 +f 1682/1566/204 1680/1567/204 1678/1562/204 1677/1561/204 +f 1683/1568/205 1682/1569/205 1677/1561/205 1676/1560/205 +f 1681/1570/206 1683/1571/206 1676/1560/206 1679/1563/206 +f 1684/1572/207 1685/1573/207 1686/1574/207 1687/1575/207 +f 1688/1576/208 1689/1577/208 1687/1575/208 1686/1574/208 +f 1690/1578/209 1688/1579/209 1686/1574/209 1685/1573/209 +f 1691/1580/210 1690/1581/210 1685/1573/210 1684/1572/210 +f 1689/1582/211 1691/1583/211 1684/1572/211 1687/1575/211 +f 1692/1584/212 1693/1585/212 1694/1586/212 1695/1587/212 +f 1696/1588/213 1697/1589/213 1695/1587/213 1694/1586/213 +f 1698/1590/214 1696/1591/214 1694/1586/214 1693/1585/214 +f 1699/1592/215 1698/1593/215 1693/1585/215 1692/1584/215 +f 1697/1594/216 1699/1595/216 1692/1584/216 1695/1587/216 +f 1700/1596/217 1701/1597/217 1702/1598/217 1703/1599/217 +f 1704/1600/218 1705/1601/218 1703/1599/218 1702/1598/218 +f 1706/1602/219 1704/1603/219 1702/1598/219 1701/1597/219 +f 1707/1604/220 1706/1605/220 1701/1597/220 1700/1596/220 +f 1705/1606/221 1707/1607/221 1700/1596/221 1703/1599/221 +f 1708/1608/222 1709/1609/222 1710/1610/222 1711/1611/222 +f 1712/1612/223 1713/1613/223 1711/1611/223 1710/1610/223 +f 1714/1614/224 1712/1615/224 1710/1610/224 1709/1609/224 +f 1715/1616/225 1714/1617/225 1709/1609/225 1708/1608/225 +f 1713/1618/226 1715/1619/226 1708/1608/226 1711/1611/226 +f 1716/1620/227 1717/1621/227 1718/1622/227 1719/1623/227 +f 1720/1624/228 1721/1625/228 1719/1623/228 1718/1622/228 +f 1722/1626/229 1720/1627/229 1718/1622/229 1717/1621/229 +f 1723/1628/230 1722/1629/230 1717/1621/230 1716/1620/230 +f 1721/1630/231 1723/1631/231 1716/1620/231 1719/1623/231 +f 1724/1632/232 1725/1633/232 1726/1634/232 1727/1635/232 +f 1728/1636/233 1729/1637/233 1727/1635/233 1726/1634/233 +f 1730/1638/234 1728/1639/234 1726/1634/234 1725/1633/234 +f 1731/1640/235 1730/1641/235 1725/1633/235 1724/1632/235 +f 1729/1642/236 1731/1643/236 1724/1632/236 1727/1635/236 +f 1732/1644/237 1733/1645/237 1734/1646/237 1735/1647/237 +f 1736/1648/238 1737/1649/238 1735/1647/238 1734/1646/238 +f 1738/1650/239 1736/1651/239 1734/1646/239 1733/1645/239 +f 1739/1652/240 1738/1653/240 1733/1645/240 1732/1644/240 +f 1737/1654/241 1739/1655/241 1732/1644/241 1735/1647/241 +f 1740/1656/242 1741/1657/242 1742/1658/242 1743/1659/242 +f 1744/1660/243 1745/1661/243 1743/1659/243 1742/1658/243 +f 1746/1662/244 1744/1663/244 1742/1658/244 1741/1657/244 +f 1747/1664/245 1746/1665/245 1741/1657/245 1740/1656/245 +f 1745/1666/246 1747/1667/246 1740/1656/246 1743/1659/246 +f 1748/1668/247 1749/1669/247 1750/1670/247 1751/1671/247 +f 1752/1672/248 1753/1673/248 1751/1671/248 1750/1670/248 +f 1754/1674/249 1752/1675/249 1750/1670/249 1749/1669/249 +f 1755/1676/250 1754/1677/250 1749/1669/250 1748/1668/250 +f 1753/1678/251 1755/1679/251 1748/1668/251 1751/1671/251 +f 1756/1680/252 1757/1681/252 1758/1682/252 1759/1683/252 +f 1760/1684/253 1761/1685/253 1759/1683/253 1758/1682/253 +f 1762/1686/254 1760/1687/254 1758/1682/254 1757/1681/254 +f 1763/1688/255 1762/1689/255 1757/1681/255 1756/1680/255 +f 1761/1690/256 1763/1691/256 1756/1680/256 1759/1683/256 +f 1764/1692/257 1765/1693/257 1766/1694/257 1767/1695/257 +f 1768/1696/258 1769/1697/258 1767/1695/258 1766/1694/258 +f 1770/1698/259 1768/1699/259 1766/1694/259 1765/1693/259 +f 1771/1700/260 1770/1701/260 1765/1693/260 1764/1692/260 +f 1769/1702/261 1771/1703/261 1764/1692/261 1767/1695/261 +f 1772/1704/262 1773/1705/262 1774/1706/262 1775/1707/262 +f 1776/1708/263 1777/1709/263 1775/1707/263 1774/1706/263 +f 1778/1710/264 1776/1711/264 1774/1706/264 1773/1705/264 +f 1779/1712/265 1778/1713/265 1773/1705/265 1772/1704/265 +f 1777/1714/266 1779/1715/266 1772/1704/266 1775/1707/266 +f 1780/1716/267 1781/1717/267 1782/1718/267 1783/1719/267 +f 1784/1720/268 1785/1721/268 1783/1719/268 1782/1718/268 +f 1786/1722/269 1784/1723/269 1782/1718/269 1781/1717/269 +f 1787/1724/270 1786/1725/270 1781/1717/270 1780/1716/270 +f 1785/1726/271 1787/1727/271 1780/1716/271 1783/1719/271 s 1 -f 23//64 22//65 608//65 609//64 -f 20//66 23//64 609//64 610//66 -f 21//67 20//66 610//66 611//67 -f 17//68 21//67 611//67 612//68 -f 18//69 17//68 612//68 613//69 -f 19//70 18//69 613//69 614//70 -f 32//71 19//70 614//70 615//71 -f 30//72 32//71 615//71 616//72 -f 31//73 30//72 616//72 617//73 -f 28//74 31//73 617//73 618//74 -f 29//75 28//74 618//74 619//75 -f 26//76 29//75 619//75 620//76 -f 27//77 26//76 620//76 621//77 -f 24//78 27//77 621//77 622//78 -f 25//79 24//78 622//78 623//79 -f 22//65 25//79 623//79 608//65 -f 609//1 608//80 624//80 625//1 -f 610//81 609//1 625//1 626//81 -f 617//2 616//82 627//82 628//2 -f 608//80 623//6 629//6 624//80 -f 616//82 615//8 630//8 627//82 -f 623//6 622//83 631//83 629//6 -f 615//8 614//84 632//84 630//8 -f 622//83 621//4 633//4 631//83 -f 614//84 613//3 634//3 632//84 -f 621//4 620//85 635//85 633//4 -f 613//3 612//86 636//86 634//3 -f 620//85 619//5 637//5 635//85 -f 612//86 611//7 638//7 636//86 -f 619//5 618//87 639//87 637//5 -f 611//7 610//81 626//81 638//7 -f 618//87 617//2 628//2 639//87 -f 640//88 641//89 642//90 643//91 -f 644//92 645//28 646//93 647//94 -f 648//95 649//96 650//97 651//98 -f 649//96 652//99 653//100 650//97 -f 654//26 640//88 643//91 655//101 -f 641//89 644//92 647//94 642//90 -f 645//28 648//95 651//98 646//93 -f 652//99 654//26 655//101 653//100 -f 651//98 650//97 656//102 657//103 -f 647//94 646//93 658//104 659//105 -f 643//91 642//90 660//106 661//107 -f 653//100 655//101 662//23 663//108 -f 646//93 651//98 657//103 658//104 -f 642//90 647//94 659//105 660//106 -f 655//101 643//91 661//107 662//23 -f 650//97 653//100 663//108 656//102 -f 662//23 661//107 664//109 665//13 -f 656//102 663//108 666//110 667//111 -f 657//103 656//102 667//111 668//112 -f 659//105 658//104 669//9 670//113 -f 661//107 660//106 671//114 664//109 -f 663//108 662//23 665//13 666//110 -f 658//104 657//103 668//112 669//9 -f 660//106 659//105 670//113 671//114 -f 669//9 668//112 672//115 673//116 -f 671//114 670//113 674//117 675//118 -f 665//13 664//109 676//119 677//120 -f 667//111 666//110 678//121 679//122 -f 668//112 667//111 679//122 672//115 -f 670//113 669//9 673//116 674//117 -f 664//109 671//114 675//118 676//119 -f 666//110 665//13 677//120 678//121 -f 680//83 681//123 119//123 116//83 -f 682//124 683//125 107//125 121//124 -f 684//84 685//126 111//126 108//84 -f 686//127 687//128 115//128 112//127 -f 681//123 682//124 121//124 119//123 -f 683//125 684//84 108//84 107//125 -f 685//126 686//127 112//127 111//126 -f 687//128 680//83 116//83 115//128 -f 124//126 123//84 133//84 136//126 -f 118//128 117//83 132//83 131//128 -f 125//127 124//126 136//126 138//127 -f 117//83 120//123 135//123 132//83 -f 126//128 125//127 138//127 140//128 -f 120//123 122//124 137//124 135//123 -f 127//83 126//128 140//128 142//83 -f 122//124 110//125 139//125 137//124 -f 113//127 118//128 131//128 145//127 -f 123//84 130//125 134//125 133//84 -f 114//126 113//127 145//127 143//126 -f 130//125 129//124 146//124 134//125 -f 109//84 114//126 143//126 141//84 -f 129//124 128//123 144//123 146//124 -f 110//125 109//84 141//84 139//125 -f 128//123 127//83 142//83 144//123 -f 630//129 632//130 205//130 204//129 -f 631//131 633//132 198//132 197//131 -f 632//130 634//133 206//133 205//130 -f 633//132 635//134 199//134 198//132 -f 634//133 636//135 207//135 206//133 -f 635//134 637//136 200//136 199//134 -f 636//135 638//137 208//137 207//135 -f 637//136 639//138 201//138 200//136 -f 638//137 626//139 209//139 208//137 -f 639//138 628//140 202//140 201//138 -f 625//141 624//142 195//142 210//141 -f 626//139 625//141 210//141 209//139 -f 628//140 627//143 203//143 202//140 -f 624//142 629//144 196//144 195//142 -f 627//143 630//129 204//129 203//143 -f 629//144 631//131 197//131 196//144 -f 688//85 689//87 156//87 155//85 -f 690//80 691//83 167//83 169//80 -f 692//86 693//81 171//81 173//86 -f 694//82 695//84 175//84 177//82 -f 691//83 688//85 155//85 167//83 -f 693//81 690//80 169//80 171//81 -f 695//84 692//86 173//86 175//84 -f 689//87 694//82 177//82 156//87 -f 158//85 157//87 181//87 180//85 -f 159//80 166//81 182//81 193//80 -f 166//81 165//86 179//86 182//81 -f 168//83 158//85 180//85 184//83 -f 165//86 164//84 183//84 179//86 -f 170//80 168//83 184//83 186//80 -f 164//84 163//82 185//82 183//84 -f 172//81 170//80 186//80 188//81 -f 157//87 178//82 194//82 181//87 -f 160//83 159//80 193//80 191//83 -f 178//82 176//84 192//84 194//82 -f 161//85 160//83 191//83 189//85 -f 176//84 174//86 190//86 192//84 -f 162//87 161//85 189//85 187//87 -f 174//86 172//81 188//81 190//86 -f 163//82 162//87 187//87 185//82 -f 219//1 218//81 239//81 238//1 -f 224//82 226//2 230//2 229//82 -f 226//2 213//87 231//87 230//2 -f 216//80 219//1 238//1 237//80 -f 225//8 224//82 229//82 244//8 -f 217//6 216//80 237//80 236//6 -f 222//84 225//8 244//8 243//84 -f 214//83 217//6 236//6 235//83 -f 223//3 222//84 243//84 242//3 -f 215//4 214//83 235//83 234//4 -f 220//86 223//3 242//3 241//86 -f 211//85 215//4 234//4 233//85 -f 221//7 220//86 241//86 240//7 -f 212//5 211//85 233//85 232//5 -f 218//81 221//7 240//7 239//81 -f 213//87 212//5 232//5 231//87 -f 696//145 697//50 465//50 464//145 -f 698//3 699//146 468//146 467//3 -f 471//147 470//147 479//148 477//148 -f 700//149 696//145 464//145 463//149 -f 701//150 698//3 467//3 466//150 -f 477//148 479//148 478//151 476//151 -f 702//152 469//153 458//153 457//152 -f 473//154 700//149 463//149 462//154 -f 697//50 701//150 466//150 465//50 -f 476//151 478//151 703//4 475//4 -f 699//146 702//152 457//152 468//146 -f 472//155 474//155 475//4 703//4 -f 704//32 705//148 486//148 485//32 -f 706//3 707//146 483//146 482//3 -f 708//156 709//149 490//149 489//156 -f 710//145 711//50 480//50 491//145 -f 705//148 712//151 487//151 486//148 -f 707//146 713//152 484//152 483//146 -f 709//149 710//145 491//145 490//149 -f 711//50 714//150 481//150 480//50 -f 712//151 715//4 488//4 487//151 -f 713//152 704//32 485//32 484//152 -f 714//150 706//3 482//3 481//150 -f 715//4 708//156 489//156 488//4 -f 716//157 717//158 718//159 719//160 -f 720//161 721//162 722//163 723//164 -f 724//165 725//166 726//167 727//168 -f 728//169 729//170 730//171 731//172 -f 731//172 730//171 725//166 724//165 -f 732//173 733//174 729//170 728//169 -f 730//171 734//175 735//176 725//166 -f 733//174 736//177 737//178 729//170 -f 725//166 735//176 738//179 726//167 -f 729//170 737//178 734//175 730//171 -f 739//165 740//166 741//167 742//168 -f 743//169 744//170 745//171 746//172 -f 746//172 745//171 740//166 739//165 -f 747//173 748//174 744//170 743//169 -f 745//171 749//175 750//176 740//166 -f 748//174 751//177 752//178 744//170 -f 740//166 750//176 753//179 741//167 -f 744//170 752//178 749//175 745//171 -f 754//165 755//166 756//167 757//168 -f 758//169 759//180 760//171 761//172 -f 761//172 760//171 755//166 754//165 -f 762//173 763//174 759//180 758//169 -f 760//171 764//175 765//176 755//166 -f 763//174 766//177 767//178 759//180 -f 755//166 765//176 768//179 756//167 -f 759//180 767//178 764//175 760//171 -f 724//165 727//168 769//87 770//2 -f 739//165 742//168 771//87 772//2 -f 731//172 724//165 770//2 773//8 -f 728//169 731//172 773//8 774//3 -f 754//165 757//168 775//87 776//2 -f 746//172 739//165 772//2 777//8 -f 732//173 728//169 774//3 778//86 -f 743//169 746//172 777//8 779//3 -f 761//172 754//165 776//2 780//8 -f 758//169 761//172 780//8 781//3 -f 747//173 743//169 779//3 782//86 -f 762//173 758//169 781//3 783//86 -f 717//158 720//161 723//164 718//159 -f 784//181 716//157 719//160 785//182 -f 718//159 723//164 786//183 787//184 -f 785//182 719//160 788//185 789//186 -f 723//164 722//163 790//187 786//183 -f 719//160 718//159 787//184 788//185 -f 791//161 792//162 793//163 794//188 -f 795//157 796//158 797//159 798//160 -f 796//158 791//161 794//188 797//159 -f 799//181 795//157 798//160 800//182 -f 797//159 794//188 801//183 802//184 -f 800//182 798//160 803//185 804//186 -f 794//188 793//163 805//187 801//183 -f 798//160 797//159 802//184 803//185 -f 806//161 807//162 808//163 809//164 -f 810//157 811//158 812//159 813//189 -f 811//158 806//161 809//164 812//159 -f 814//181 810//157 813//189 815//182 -f 812//159 809//164 816//183 817//184 -f 815//182 813//189 818//185 819//186 -f 809//164 808//163 820//187 816//183 -f 813//189 812//159 817//184 818//185 -f 720//161 821//2 822//82 721//162 -f 791//161 823//2 824//82 792//162 -f 717//158 825//5 821//2 720//161 -f 716//157 826//4 825//5 717//158 -f 806//161 827//2 828//82 807//162 -f 796//158 829//5 823//2 791//161 -f 784//181 830//83 826//4 716//157 -f 795//157 831//4 829//5 796//158 -f 811//158 832//5 827//2 806//161 -f 810//157 833//4 832//5 811//158 -f 799//181 834//83 831//4 795//157 -f 814//181 835//83 833//4 810//157 +f 249/1728/272 248/1729/273 823/1730/273 824/1731/272 +f 246/1732/274 249/1728/272 824/1731/272 825/1733/274 +f 247/1734/275 246/1732/274 825/1733/274 826/1735/275 +f 243/1736/276 247/1734/275 826/1735/275 827/1737/276 +f 244/1738/277 243/1736/276 827/1737/276 828/1739/277 +f 245/1740/278 244/1738/277 828/1739/277 829/1741/278 +f 258/1742/279 245/1740/278 829/1741/278 830/1743/279 +f 256/1744/280 258/1742/279 830/1743/279 831/1745/280 +f 257/1746/281 256/1744/280 831/1745/280 832/1747/281 +f 254/1748/282 257/1749/281 832/1750/281 833/1751/282 +f 255/1752/283 254/1748/282 833/1751/282 834/1753/283 +f 252/1754/284 255/1752/283 834/1753/283 835/1755/284 +f 253/1756/285 252/1754/284 835/1755/284 836/1757/285 +f 250/1758/286 253/1756/285 836/1757/285 837/1759/286 +f 251/1760/287 250/1758/286 837/1759/286 838/1761/287 +f 248/1729/273 251/1760/287 838/1761/287 823/1730/273 +f 824/1731/124 823/1730/288 839/1762/288 840/1763/124 +f 825/1733/289 824/1731/124 840/1763/124 841/1764/289 +f 832/1747/125 831/1745/290 842/1765/290 843/1766/125 +f 823/1730/288 838/1761/129 844/1767/129 839/1762/288 +f 831/1745/290 830/1743/131 845/1768/131 842/1765/290 +f 838/1761/129 837/1759/291 846/1769/291 844/1767/129 +f 830/1743/131 829/1741/292 847/1770/292 845/1768/131 +f 837/1759/291 836/1757/127 848/1771/127 846/1769/291 +f 829/1741/292 828/1739/126 849/1772/126 847/1770/292 +f 836/1757/127 835/1755/293 850/1773/293 848/1771/127 +f 828/1739/126 827/1737/294 851/1774/294 849/1772/126 +f 835/1755/293 834/1753/128 852/1775/128 850/1773/293 +f 827/1737/294 826/1735/130 853/1776/130 851/1774/294 +f 834/1753/128 833/1751/295 854/1777/295 852/1775/128 +f 826/1735/130 825/1733/289 841/1764/289 853/1776/130 +f 833/1751/295 832/1750/125 843/1778/125 854/1777/295 +f 855/1779/296 856/1780/297 857/1781/298 858/1782/299 +f 859/1783/300 860/1784/151 861/1785/301 862/1786/302 +f 863/1787/303 864/1788/304 865/1789/305 866/1790/306 +f 864/1788/304 867/1791/307 868/1792/308 865/1789/305 +f 869/1793/149 855/1779/296 858/1782/299 870/1794/309 +f 856/1780/297 859/1783/300 862/1786/302 857/1781/298 +f 860/1784/151 863/1787/303 866/1790/306 861/1785/301 +f 867/1791/307 869/1795/149 870/1796/309 868/1792/308 +f 866/1790/306 865/1789/305 871/1797/310 872/1798/311 +f 862/1786/302 861/1785/301 873/1799/312 874/1800/313 +f 858/1782/299 857/1781/298 875/1801/314 876/1802/315 +f 868/1792/308 870/1796/309 877/1803/146 878/1804/316 +f 861/1785/301 866/1790/306 872/1798/311 873/1799/312 +f 857/1781/298 862/1786/302 874/1800/313 875/1801/314 +f 870/1794/309 858/1782/299 876/1802/315 877/1805/146 +f 865/1789/305 868/1792/308 878/1804/316 871/1797/310 +f 877/1805/146 876/1802/315 879/1806/317 880/1807/136 +f 871/1797/310 878/1804/316 881/1808/318 882/1809/319 +f 872/1798/311 871/1797/310 882/1809/319 883/1810/320 +f 874/1800/313 873/1799/312 884/1811/132 885/1812/321 +f 876/1802/315 875/1801/314 886/1813/322 879/1806/317 +f 878/1804/316 877/1803/146 880/1814/136 881/1808/318 +f 873/1799/312 872/1798/311 883/1810/320 884/1811/132 +f 875/1801/314 874/1800/313 885/1812/321 886/1813/322 +f 884/1811/132 883/1810/320 887/1815/323 888/1816/324 +f 886/1813/322 885/1812/321 889/1817/325 890/1818/326 +f 880/1807/136 879/1806/317 891/1819/327 892/1820/328 +f 882/1809/319 881/1808/318 893/1821/329 894/1822/330 +f 883/1810/320 882/1809/319 894/1822/330 887/1815/323 +f 885/1812/321 884/1811/132 888/1816/324 889/1817/325 +f 879/1806/317 886/1813/322 890/1818/326 891/1819/327 +f 881/1808/318 880/1814/136 892/1823/328 893/1821/329 +f 895/1824/291 896/1825/331 345/500/331 342/497/291 +f 897/1826/332 898/1827/333 333/488/333 347/502/332 +f 899/1828/292 900/1829/334 337/492/334 334/489/292 +f 901/1830/335 902/1831/336 341/496/336 338/493/335 +f 896/1825/331 897/1832/332 347/504/332 345/500/331 +f 898/1827/333 899/1828/292 334/489/292 333/488/333 +f 900/1829/334 901/1830/335 338/493/335 337/492/334 +f 902/1831/336 895/1824/291 342/497/291 341/496/336 +f 350/1833/334 349/1834/292 359/516/292 362/519/334 +f 344/499/336 343/498/291 358/515/291 357/514/336 +f 351/1835/335 350/1833/334 362/519/334 364/521/335 +f 343/498/291 346/501/331 361/518/331 358/515/291 +f 352/1836/336 351/1837/335 364/525/335 366/524/336 +f 346/501/331 348/505/332 363/520/332 361/518/331 +f 353/1838/291 352/1836/336 366/524/336 368/527/291 +f 348/503/332 336/491/333 365/523/333 363/522/332 +f 339/494/335 344/499/336 357/514/336 371/530/335 +f 349/1834/292 356/1839/333 360/517/333 359/516/292 +f 340/495/334 339/494/335 371/530/335 369/528/334 +f 356/1839/333 355/1840/332 372/531/332 360/517/333 +f 335/490/292 340/495/334 369/528/334 367/526/292 +f 355/1840/332 354/1841/331 370/529/331 372/531/332 +f 336/491/333 335/490/292 367/526/292 365/523/333 +f 354/1841/331 353/1838/291 368/527/291 370/529/331 +f 845/1768/337 847/1770/338 431/1842/338 430/1843/337 +f 846/1769/339 848/1771/340 424/1844/340 423/1845/339 +f 847/1770/338 849/1772/341 432/1846/341 431/1847/338 +f 848/1771/340 850/1773/342 425/1848/342 424/1849/340 +f 849/1772/341 851/1774/343 433/1850/343 432/1851/341 +f 850/1773/342 852/1775/344 426/1852/344 425/1853/342 +f 851/1774/343 853/1776/345 434/1854/345 433/1855/343 +f 852/1775/344 854/1777/346 427/1856/346 426/1857/344 +f 853/1776/345 841/1764/347 435/1858/347 434/1859/345 +f 854/1777/346 843/1778/348 428/1860/348 427/1861/346 +f 840/1763/349 839/1762/350 421/1862/350 436/1863/349 +f 841/1764/347 840/1763/349 436/1864/349 435/1865/347 +f 843/1766/348 842/1765/351 429/1866/351 428/1867/348 +f 839/1762/350 844/1767/352 422/1868/352 421/1869/350 +f 842/1765/351 845/1768/337 430/1870/337 429/1871/351 +f 844/1767/352 846/1769/339 423/1872/339 422/1873/352 +f 903/1874/293 904/1875/295 382/545/295 381/544/293 +f 905/1876/288 906/1877/291 393/556/291 395/559/288 +f 907/1878/294 908/1879/289 397/566/289 399/565/294 +f 909/1880/290 910/1881/292 401/569/292 403/572/290 +f 906/1877/291 903/1874/293 381/544/293 393/556/291 +f 908/1882/289 905/1876/288 395/559/288 397/562/289 +f 910/1881/292 907/1878/294 399/565/294 401/569/292 +f 904/1875/295 909/1880/290 403/572/290 382/545/295 +f 384/547/293 383/546/295 407/579/295 406/578/293 +f 385/1883/288 392/1884/289 408/605/289 419/608/288 +f 392/1885/289 391/1886/294 405/577/294 408/580/289 +f 394/558/291 384/557/293 406/583/293 410/582/291 +f 391/1887/294 390/1888/292 409/581/292 405/584/294 +f 396/561/288 394/560/291 410/587/291 412/586/288 +f 390/1889/292 389/1890/290 411/585/290 409/588/292 +f 398/564/289 396/563/288 412/591/288 414/590/289 +f 383/576/295 404/575/290 420/607/290 407/606/295 +f 386/1891/291 385/1892/288 419/601/288 417/604/291 +f 404/574/290 402/573/292 418/603/292 420/602/290 +f 387/1893/293 386/1894/291 417/597/291 415/600/293 +f 402/571/292 400/570/294 416/599/294 418/598/292 +f 388/1895/295 387/1896/293 415/593/293 413/596/295 +f 400/568/294 398/567/289 414/595/289 416/594/294 +f 389/1897/290 388/1898/295 413/589/295 411/592/290 +f 445/1899/124 444/1900/289 465/1901/289 464/1902/124 +f 450/1903/290 452/1904/125 456/1905/125 455/1906/290 +f 452/1904/125 439/1907/295 457/1908/295 456/1905/125 +f 442/1909/288 445/1910/124 464/1911/124 463/1912/288 +f 451/1913/131 450/1903/290 455/1906/290 470/1914/131 +f 443/1915/129 442/1909/288 463/1912/288 462/1916/129 +f 448/1917/292 451/1913/131 470/1914/131 469/1918/292 +f 440/1919/291 443/1915/129 462/1916/129 461/1920/291 +f 449/1921/126 448/1917/292 469/1918/292 468/1922/126 +f 441/1923/127 440/1919/291 461/1920/291 460/1924/127 +f 446/1925/294 449/1921/126 468/1922/126 467/1926/294 +f 437/1927/293 441/1923/127 460/1924/127 459/1928/293 +f 447/1929/130 446/1925/294 467/1926/294 466/1930/130 +f 438/1931/128 437/1927/293 459/1928/293 458/1932/128 +f 444/1900/289 447/1929/130 466/1930/130 465/1901/289 +f 439/1907/295 438/1931/128 458/1932/128 457/1908/295 +f 911/1933/353 912/1934/173 688/1935/173 687/1936/353 +f 913/1937/126 914/1938/354 691/1939/354 690/1940/126 +f 694/1034/355 693/1033/355 702/1041/356 700/1941/356 +f 915/1942/357 911/1933/353 687/1936/353 686/1943/357 +f 916/1944/358 913/1937/126 690/1940/126 689/1945/358 +f 700/1941/356 702/1041/356 701/1946/359 699/1947/359 +f 917/1948/360 692/1949/361 684/1950/361 683/1951/360 +f 696/1952/362 915/1942/357 686/1943/357 685/1953/362 +f 912/1934/173 916/1944/358 689/1945/358 688/1935/173 +f 699/1947/359 701/1946/359 918/1954/127 698/1955/127 +f 914/1938/354 917/1948/360 683/1951/360 691/1939/354 +f 695/1035/363 697/1038/363 698/1955/127 918/1954/127 +f 919/1956/155 920/1957/356 709/1958/356 708/1959/155 +f 921/1960/126 922/1961/354 706/1962/354 705/1963/126 +f 923/1964/364 924/1965/357 713/1966/357 712/1967/364 +f 925/1968/353 926/1969/173 703/1970/173 714/1971/353 +f 920/1957/356 927/1972/359 710/1973/359 709/1958/356 +f 922/1961/354 928/1974/360 707/1975/360 706/1962/354 +f 924/1965/357 925/1976/353 714/1977/353 713/1966/357 +f 926/1969/173 929/1978/358 704/1979/358 703/1970/173 +f 927/1972/359 930/1980/127 711/1981/127 710/1973/359 +f 928/1974/360 919/1956/155 708/1959/155 707/1975/360 +f 929/1978/358 921/1960/126 705/1963/126 704/1979/358 +f 930/1980/127 923/1964/364 712/1967/364 711/1981/127 +f 931/1982/365 932/1983/366 933/1984/367 934/1985/368 +f 935/1986/369 936/1987/370 937/1988/371 938/1989/372 +f 939/1990/373 940/1991/374 941/1992/375 942/1993/376 +f 943/1994/377 944/1995/378 945/1996/379 946/1997/380 +f 946/1997/380 945/1996/379 940/1991/374 939/1990/373 +f 947/1998/381 948/1999/382 944/1995/378 943/1994/377 +f 945/1996/379 949/2000/383 950/2001/384 940/1991/374 +f 948/1999/382 951/2002/385 952/2003/386 944/1995/378 +f 940/1991/374 950/2001/384 953/2004/387 941/1992/375 +f 944/1995/378 952/2003/386 949/2000/383 945/1996/379 +f 954/2005/373 955/2006/374 956/2007/375 957/2008/376 +f 958/2009/377 959/2010/378 960/2011/379 961/2012/380 +f 961/2012/380 960/2011/379 955/2006/374 954/2005/373 +f 962/2013/381 963/2014/382 959/2010/378 958/2009/377 +f 960/2011/379 964/2015/383 965/2016/384 955/2006/374 +f 963/2014/382 966/2017/385 967/2018/386 959/2010/378 +f 955/2006/374 965/2016/384 968/2019/387 956/2007/375 +f 959/2010/378 967/2018/386 964/2015/383 960/2011/379 +f 969/2020/373 970/2021/374 971/2022/375 972/2023/376 +f 973/2024/377 974/2025/388 975/2026/379 976/2027/380 +f 976/2027/380 975/2026/379 970/2021/374 969/2020/373 +f 977/2028/381 978/2029/382 974/2025/388 973/2024/377 +f 975/2026/379 979/2030/383 980/2031/384 970/2021/374 +f 978/2029/382 981/2032/385 982/2033/386 974/2025/388 +f 970/2021/374 980/2031/384 983/2034/387 971/2022/375 +f 974/2025/388 982/2033/386 979/2030/383 975/2026/379 +f 939/1990/373 942/1993/376 984/2035/295 985/2036/125 +f 954/2005/373 957/2008/376 986/2037/295 987/2038/125 +f 946/1997/380 939/1990/373 985/2036/125 988/2039/131 +f 943/1994/377 946/1997/380 988/2039/131 989/2040/126 +f 969/2020/373 972/2023/376 990/2041/295 991/2042/125 +f 961/2012/380 954/2005/373 987/2038/125 992/2043/131 +f 947/1998/381 943/1994/377 989/2040/126 993/2044/294 +f 958/2009/377 961/2012/380 992/2043/131 994/2045/126 +f 976/2027/380 969/2020/373 991/2042/125 995/2046/131 +f 973/2024/377 976/2027/380 995/2046/131 996/2047/126 +f 962/2013/381 958/2009/377 994/2045/126 997/2048/294 +f 977/2028/381 973/2024/377 996/2047/126 998/2049/294 +f 932/1983/366 935/1986/369 938/1989/372 933/1984/367 +f 999/2050/389 931/1982/365 934/1985/368 1000/2051/390 +f 933/1984/367 938/1989/372 1001/2052/391 1002/2053/392 +f 1000/2051/390 934/1985/368 1003/2054/393 1004/2055/394 +f 938/1989/372 937/1988/371 1005/2056/395 1001/2052/391 +f 934/1985/368 933/1984/367 1002/2053/392 1003/2054/393 +f 1006/2057/369 1007/2058/370 1008/2059/371 1009/2060/396 +f 1010/2061/365 1011/2062/366 1012/2063/367 1013/2064/368 +f 1011/2062/366 1006/2057/369 1009/2060/396 1012/2063/367 +f 1014/2065/389 1010/2061/365 1013/2064/368 1015/2066/390 +f 1012/2063/367 1009/2060/396 1016/2067/391 1017/2068/392 +f 1015/2066/390 1013/2064/368 1018/2069/393 1019/2070/394 +f 1009/2060/396 1008/2059/371 1020/2071/395 1016/2067/391 +f 1013/2064/368 1012/2063/367 1017/2068/392 1018/2069/393 +f 1021/2072/369 1022/2073/370 1023/2074/371 1024/2075/372 +f 1025/2076/365 1026/2077/366 1027/2078/367 1028/2079/397 +f 1026/2077/366 1021/2072/369 1024/2075/372 1027/2078/367 +f 1029/2080/389 1025/2076/365 1028/2079/397 1030/2081/390 +f 1027/2078/367 1024/2075/372 1031/2082/391 1032/2083/392 +f 1030/2081/390 1028/2079/397 1033/2084/393 1034/2085/394 +f 1024/2075/372 1023/2074/371 1035/2086/395 1031/2082/391 +f 1028/2079/397 1027/2078/367 1032/2083/392 1033/2084/393 +f 935/1986/369 1036/2087/125 1037/2088/290 936/1987/370 +f 1006/2057/369 1038/2089/125 1039/2090/290 1007/2058/370 +f 932/1983/366 1040/2091/128 1036/2087/125 935/1986/369 +f 931/1982/365 1041/2092/127 1040/2091/128 932/1983/366 +f 1021/2072/369 1042/2093/125 1043/2094/290 1022/2073/370 +f 1011/2062/366 1044/2095/128 1038/2089/125 1006/2057/369 +f 999/2050/389 1045/2096/291 1041/2092/127 931/1982/365 +f 1010/2061/365 1046/2097/127 1044/2095/128 1011/2062/366 +f 1026/2077/366 1047/2098/128 1042/2093/125 1021/2072/369 +f 1025/2076/365 1048/2099/127 1047/2098/128 1026/2077/366 +f 1014/2065/389 1049/2100/291 1046/2097/127 1010/2061/365 +f 1029/2080/389 1050/2101/291 1048/2099/127 1025/2076/365 +f 1092/2102/398 1093/2103/399 1094/2104/400 1095/2105/401 +f 1096/2106/402 1097/2107/147 1098/2108/403 1099/2109/404 +f 1100/2110/405 1101/2111/406 1102/2112/407 1103/2113/408 +f 1101/2111/406 1104/2114/409 1105/2115/410 1102/2112/407 +f 1106/2116/148 1092/2102/398 1095/2105/401 1107/2117/411 +f 1093/2103/399 1096/2106/402 1099/2109/404 1094/2104/400 +f 1097/2107/147 1100/2110/405 1103/2113/408 1098/2108/403 +f 1104/2114/409 1106/2118/148 1107/2119/411 1105/2115/410 +f 1103/2113/408 1102/2112/407 1108/2120/412 1109/2121/413 +f 1099/2109/404 1098/2108/403 1110/2122/150 1111/2123/414 +f 1095/2105/401 1094/2104/400 1112/2124/415 1113/2125/416 +f 1105/2115/410 1107/2119/411 1114/2126/152 1115/2127/417 +f 1098/2108/403 1103/2113/408 1109/2121/413 1110/2122/150 +f 1094/2104/400 1099/2109/404 1111/2123/414 1112/2124/415 +f 1107/2117/411 1095/2105/401 1113/2125/416 1114/2128/152 +f 1102/2112/407 1105/2115/410 1115/2127/417 1108/2120/412 +f 1114/2128/152 1113/2125/416 1116/2129/318 1117/2130/136 +f 1108/2120/412 1115/2127/417 1118/2131/317 1119/2132/322 +f 1109/2121/413 1108/2120/412 1119/2132/322 1120/2133/418 +f 1111/2123/414 1110/2122/150 1121/2134/132 1122/2135/419 +f 1113/2125/416 1112/2124/415 1123/2136/319 1116/2129/318 +f 1115/2127/417 1114/2126/152 1117/2137/136 1118/2131/317 +f 1110/2122/150 1109/2121/413 1120/2133/418 1121/2134/132 +f 1112/2124/415 1111/2123/414 1122/2135/419 1123/2136/319 +f 1121/2134/132 1120/2133/418 1124/2138/420 1125/2139/421 +f 1123/2136/319 1122/2135/419 1126/2140/422 1127/2141/423 +f 1117/2130/136 1116/2129/318 1128/2142/424 1129/2143/425 +f 1119/2132/322 1118/2131/317 1130/2144/426 1131/2145/427 +f 1120/2133/418 1119/2132/322 1131/2145/427 1124/2138/420 +f 1122/2135/419 1121/2134/132 1125/2139/421 1126/2140/422 +f 1116/2129/318 1123/2136/319 1127/2141/423 1128/2142/424 +f 1118/2131/317 1117/2137/136 1129/2146/425 1130/2144/426 +f 1132/2147/292 1133/2148/428 1064/1252/428 1061/1249/292 +f 1134/2149/429 1135/2150/430 1052/1240/430 1066/1254/429 +f 1136/2151/291 1137/2152/431 1056/1244/431 1053/1241/291 +f 1138/2153/432 1139/2154/433 1060/1248/433 1057/1245/432 +f 1133/2148/428 1134/2155/429 1066/1256/429 1064/1252/428 +f 1135/2150/430 1136/2151/291 1053/1241/291 1052/1240/430 +f 1137/2152/431 1138/2153/432 1057/1245/432 1056/1244/431 +f 1139/2154/433 1132/2147/292 1061/1249/292 1060/1248/433 +f 1069/2156/431 1068/2157/291 1078/1268/291 1081/1271/431 +f 1063/1251/433 1062/1250/292 1077/1267/292 1076/1266/433 +f 1070/2158/432 1069/2156/431 1081/1271/431 1083/1273/432 +f 1062/1250/292 1065/1253/428 1080/1270/428 1077/1267/292 +f 1071/2159/433 1070/2160/432 1083/1277/432 1085/1276/433 +f 1065/1253/428 1067/1257/429 1082/1272/429 1080/1270/428 +f 1072/2161/292 1071/2159/433 1085/1276/433 1087/1279/292 +f 1067/1255/429 1055/1243/430 1084/1275/430 1082/1274/429 +f 1058/1246/432 1063/1251/433 1076/1266/433 1090/1282/432 +f 1068/2157/291 1075/2162/430 1079/1269/430 1078/1268/291 +f 1059/1247/431 1058/1246/432 1090/1282/432 1088/1280/431 +f 1075/2162/430 1074/2163/429 1091/1283/429 1079/1269/430 +f 1054/1242/291 1059/1247/431 1088/1280/431 1086/1278/291 +f 1074/2163/429 1073/2164/428 1089/1281/428 1091/1283/429 +f 1055/1243/430 1054/1242/291 1086/1278/291 1084/1275/430 +f 1073/2164/428 1072/2161/292 1087/1279/292 1089/1281/428 +f 1180/2165/434 1181/2166/435 1182/2167/436 1183/2168/437 +f 1184/2169/438 1185/2170/439 1186/2171/440 1187/2172/441 +f 1188/2173/442 1189/2174/443 1190/2175/444 1191/2176/445 +f 1189/2174/443 1192/2177/446 1193/2178/447 1190/2175/444 +f 1194/2179/448 1180/2165/434 1183/2168/437 1195/2180/449 +f 1181/2166/435 1184/2169/438 1187/2172/441 1182/2167/436 +f 1185/2170/439 1188/2173/442 1191/2176/445 1186/2171/440 +f 1192/2177/446 1194/2181/448 1195/2182/449 1193/2178/447 +f 1191/2176/445 1190/2175/444 1196/2183/450 1197/2184/451 +f 1187/2172/441 1186/2171/440 1198/2185/452 1199/2186/453 +f 1183/2168/437 1182/2167/436 1200/2187/454 1201/2188/455 +f 1193/2178/447 1195/2182/449 1202/2189/456 1203/2190/457 +f 1186/2171/440 1191/2176/445 1197/2184/451 1198/2185/452 +f 1182/2167/436 1187/2172/441 1199/2186/453 1200/2187/454 +f 1195/2180/449 1183/2168/437 1201/2188/455 1202/2191/456 +f 1190/2175/444 1193/2178/447 1203/2190/457 1196/2183/450 +f 1202/2191/456 1201/2188/455 1204/2192/458 1205/2193/136 +f 1196/2183/450 1203/2190/457 1206/2194/459 1207/2195/460 +f 1197/2184/451 1196/2183/450 1207/2195/460 1208/2196/461 +f 1199/2186/453 1198/2185/452 1209/2197/132 1210/2198/462 +f 1201/2188/455 1200/2187/454 1211/2199/463 1204/2192/458 +f 1203/2190/457 1202/2189/456 1205/2200/136 1206/2194/459 +f 1198/2185/452 1197/2184/451 1208/2196/461 1209/2197/132 +f 1200/2187/454 1199/2186/453 1210/2198/462 1211/2199/463 +f 1209/2197/132 1208/2196/461 1212/2201/464 1213/2202/465 +f 1211/2199/463 1210/2198/462 1214/2203/466 1215/2204/467 +f 1205/2193/136 1204/2192/458 1216/2205/468 1217/2206/469 +f 1207/2195/460 1206/2194/459 1218/2207/470 1219/2208/471 +f 1208/2196/461 1207/2195/460 1219/2208/471 1212/2201/464 +f 1210/2198/462 1209/2197/132 1213/2202/465 1214/2203/466 +f 1204/2192/458 1211/2199/463 1215/2204/467 1216/2205/468 +f 1206/2194/459 1205/2200/136 1217/2209/469 1218/2207/470 +f 1220/2210/289 1221/2211/472 1152/1296/472 1149/1293/289 +f 1222/2212/473 1223/2213/474 1140/1284/474 1154/1298/473 +f 1224/2214/295 1225/2215/475 1144/1288/475 1141/1285/295 +f 1226/2216/476 1227/2217/477 1148/1292/477 1145/1289/476 +f 1221/2211/472 1222/2218/473 1154/1300/473 1152/1296/472 +f 1223/2213/474 1224/2214/295 1141/1285/295 1140/1284/474 +f 1225/2215/475 1226/2216/476 1145/1289/476 1144/1288/475 +f 1227/2217/477 1220/2210/289 1149/1293/289 1148/1292/477 +f 1157/2219/475 1156/2220/295 1166/1312/295 1169/1315/475 +f 1151/1295/477 1150/1294/289 1165/1311/289 1164/1310/477 +f 1158/2221/476 1157/2219/475 1169/1315/475 1171/1317/476 +f 1150/1294/289 1153/1297/472 1168/1314/472 1165/1311/289 +f 1159/2222/477 1158/2223/476 1171/1321/476 1173/1320/477 +f 1153/1297/472 1155/1301/473 1170/1316/473 1168/1314/472 +f 1160/2224/289 1159/2222/477 1173/1320/477 1175/1323/289 +f 1155/1299/473 1143/1287/474 1172/1319/474 1170/1318/473 +f 1146/1290/476 1151/1295/477 1164/1310/477 1178/1326/476 +f 1156/2220/295 1163/2225/474 1167/1313/474 1166/1312/295 +f 1147/1291/475 1146/1290/476 1178/1326/476 1176/1324/475 +f 1163/2225/474 1162/2226/473 1179/1327/473 1167/1313/474 +f 1142/1286/295 1147/1291/475 1176/1324/475 1174/1322/295 +f 1162/2226/473 1161/2227/472 1177/1325/472 1179/1327/473 +f 1143/1287/474 1142/1286/295 1174/1322/295 1172/1319/474 +f 1161/2227/472 1160/2224/289 1175/1323/289 1177/1325/472 +f 1268/2228/478 1269/2229/479 1270/2230/480 1271/2231/481 +f 1272/2232/482 1273/2233/483 1274/2234/484 1275/2235/485 +f 1276/2236/486 1277/2237/487 1278/2238/488 1279/2239/489 +f 1277/2237/487 1280/2240/490 1281/2241/491 1278/2238/488 +f 1282/2242/492 1268/2228/478 1271/2231/481 1283/2243/493 +f 1269/2229/479 1272/2232/482 1275/2235/485 1270/2230/480 +f 1273/2233/483 1276/2236/486 1279/2239/489 1274/2234/484 +f 1280/2240/490 1282/2244/492 1283/2245/493 1281/2241/491 +f 1279/2239/489 1278/2238/488 1284/2246/494 1285/2247/495 +f 1275/2235/485 1274/2234/484 1286/2248/496 1287/2249/497 +f 1271/2231/481 1270/2230/480 1288/2250/498 1289/2251/499 +f 1281/2241/491 1283/2245/493 1290/2252/500 1291/2253/501 +f 1274/2234/484 1279/2239/489 1285/2247/495 1286/2248/496 +f 1270/2230/480 1275/2235/485 1287/2249/497 1288/2250/498 +f 1283/2243/493 1271/2231/481 1289/2251/499 1290/2254/500 +f 1278/2238/488 1281/2241/491 1291/2253/501 1284/2246/494 +f 1290/2254/500 1289/2251/499 1292/2255/459 1293/2256/136 +f 1284/2246/494 1291/2253/501 1294/2257/458 1295/2258/463 +f 1285/2247/495 1284/2246/494 1295/2258/463 1296/2259/502 +f 1287/2249/497 1286/2248/496 1297/2260/132 1298/2261/503 +f 1289/2251/499 1288/2250/498 1299/2262/460 1292/2255/459 +f 1291/2253/501 1290/2252/500 1293/2263/136 1294/2257/458 +f 1286/2248/496 1285/2247/495 1296/2259/502 1297/2260/132 +f 1288/2250/498 1287/2249/497 1298/2261/503 1299/2262/460 +f 1297/2260/132 1296/2259/502 1300/2264/504 1301/2265/505 +f 1299/2262/460 1298/2261/503 1302/2266/506 1303/2267/507 +f 1293/2256/136 1292/2255/459 1304/2268/508 1305/2269/509 +f 1295/2258/463 1294/2257/458 1306/2270/510 1307/2271/511 +f 1296/2259/502 1295/2258/463 1307/2271/511 1300/2264/504 +f 1298/2261/503 1297/2260/132 1301/2265/505 1302/2266/506 +f 1292/2255/459 1299/2262/460 1303/2267/507 1304/2268/508 +f 1294/2257/458 1293/2263/136 1305/2272/509 1306/2270/510 +f 1308/2273/295 1309/2274/512 1240/1340/512 1237/1337/295 +f 1310/2275/513 1311/2276/514 1228/1328/514 1242/1342/513 +f 1312/2277/289 1313/2278/515 1232/1332/515 1229/1329/289 +f 1314/2279/516 1315/2280/517 1236/1336/517 1233/1333/516 +f 1309/2274/512 1310/2281/513 1242/1344/513 1240/1340/512 +f 1311/2276/514 1312/2277/289 1229/1329/289 1228/1328/514 +f 1313/2278/515 1314/2279/516 1233/1333/516 1232/1332/515 +f 1315/2280/517 1308/2273/295 1237/1337/295 1236/1336/517 +f 1245/2282/515 1244/2283/289 1254/1356/289 1257/1359/515 +f 1239/1339/517 1238/1338/295 1253/1355/295 1252/1354/517 +f 1246/2284/516 1245/2282/515 1257/1359/515 1259/1361/516 +f 1238/1338/295 1241/1341/512 1256/1358/512 1253/1355/295 +f 1247/2285/517 1246/2286/516 1259/1365/516 1261/1364/517 +f 1241/1341/512 1243/1345/513 1258/1360/513 1256/1358/512 +f 1248/2287/295 1247/2285/517 1261/1364/517 1263/1367/295 +f 1243/1343/513 1231/1331/514 1260/1363/514 1258/1362/513 +f 1234/1334/516 1239/1339/517 1252/1354/517 1266/1370/516 +f 1244/2283/289 1251/2288/514 1255/1357/514 1254/1356/289 +f 1235/1335/515 1234/1334/516 1266/1370/516 1264/1368/515 +f 1251/2288/514 1250/2289/513 1267/1371/513 1255/1357/514 +f 1230/1330/289 1235/1335/515 1264/1368/515 1262/1366/289 +f 1250/2289/513 1249/2290/512 1265/1369/512 1267/1371/513 +f 1231/1331/514 1230/1330/289 1262/1366/289 1260/1363/514 +f 1249/2290/512 1248/2287/295 1263/1367/295 1265/1369/512 +f 1356/2291/518 1357/2292/519 1358/2293/520 1359/2294/521 +f 1360/2295/522 1361/2296/523 1362/2297/524 1363/2298/525 +f 1364/2299/526 1365/2300/527 1366/2301/528 1367/2302/529 +f 1365/2300/527 1368/2303/530 1369/2304/531 1366/2301/528 +f 1370/2305/532 1356/2291/518 1359/2294/521 1371/2306/533 +f 1357/2292/519 1360/2295/522 1363/2298/525 1358/2293/520 +f 1361/2296/523 1364/2299/526 1367/2302/529 1362/2297/524 +f 1368/2303/530 1370/2307/532 1371/2308/533 1369/2304/531 +f 1367/2302/529 1366/2301/528 1372/2309/534 1373/2310/535 +f 1363/2298/525 1362/2297/524 1374/2311/392 1375/2312/536 +f 1359/2294/521 1358/2293/520 1376/2313/537 1377/2314/538 +f 1369/2304/531 1371/2308/533 1378/2315/539 1379/2316/540 +f 1362/2297/524 1367/2302/529 1373/2310/535 1374/2311/392 +f 1358/2293/520 1363/2298/525 1375/2312/536 1376/2313/537 +f 1371/2306/533 1359/2294/521 1377/2314/538 1378/2317/539 +f 1366/2301/528 1369/2304/531 1379/2316/540 1372/2309/534 +f 1378/2317/539 1377/2314/538 1380/2318/541 1381/2319/136 +f 1372/2309/534 1379/2316/540 1382/2320/542 1383/2321/543 +f 1373/2310/535 1372/2309/534 1383/2321/543 1384/2322/544 +f 1375/2312/536 1374/2311/392 1385/2323/132 1386/2324/545 +f 1377/2314/538 1376/2313/537 1387/2325/546 1380/2318/541 +f 1379/2316/540 1378/2315/539 1381/2326/136 1382/2320/542 +f 1374/2311/392 1373/2310/535 1384/2322/544 1385/2323/132 +f 1376/2313/537 1375/2312/536 1386/2324/545 1387/2325/546 +f 1385/2323/132 1384/2322/544 1388/2327/547 1389/2328/548 +f 1387/2325/546 1386/2324/545 1390/2329/549 1391/2330/550 +f 1381/2319/136 1380/2318/541 1392/2331/551 1393/2332/552 +f 1383/2321/543 1382/2320/542 1394/2333/553 1395/2334/554 +f 1384/2322/544 1383/2321/543 1395/2334/554 1388/2327/547 +f 1386/2324/545 1385/2323/132 1389/2328/548 1390/2329/549 +f 1380/2318/541 1387/2325/546 1391/2330/550 1392/2331/551 +f 1382/2320/542 1381/2326/136 1393/2335/552 1394/2333/553 +f 1396/2336/288 1397/2337/555 1328/1384/555 1325/1381/288 +f 1398/2338/556 1399/2339/557 1316/1372/557 1330/1386/556 +f 1400/2340/290 1401/2341/558 1320/1376/558 1317/1373/290 +f 1402/2342/559 1403/2343/560 1324/1380/560 1321/1377/559 +f 1397/2337/555 1398/2344/556 1330/1388/556 1328/1384/555 +f 1399/2339/557 1400/2340/290 1317/1373/290 1316/1372/557 +f 1401/2341/558 1402/2342/559 1321/1377/559 1320/1376/558 +f 1403/2343/560 1396/2336/288 1325/1381/288 1324/1380/560 +f 1333/2345/558 1332/2346/290 1342/1400/290 1345/1403/558 +f 1327/1383/560 1326/1382/288 1341/1399/288 1340/1398/560 +f 1334/2347/559 1333/2345/558 1345/1403/558 1347/1405/559 +f 1326/1382/288 1329/1385/555 1344/1402/555 1341/1399/288 +f 1335/2348/560 1334/2349/559 1347/1409/559 1349/1408/560 +f 1329/1385/555 1331/1389/556 1346/1404/556 1344/1402/555 +f 1336/2350/288 1335/2348/560 1349/1408/560 1351/1411/288 +f 1331/1387/556 1319/1375/557 1348/1407/557 1346/1406/556 +f 1322/1378/559 1327/1383/560 1340/1398/560 1354/1414/559 +f 1332/2346/290 1339/2351/557 1343/1401/557 1342/1400/290 +f 1323/1379/558 1322/1378/559 1354/1414/559 1352/1412/558 +f 1339/2351/557 1338/2352/556 1355/1415/556 1343/1401/557 +f 1318/1374/290 1323/1379/558 1352/1412/558 1350/1410/290 +f 1338/2352/556 1337/2353/555 1353/1413/555 1355/1415/556 +f 1319/1375/557 1318/1374/290 1350/1410/290 1348/1407/557 +f 1337/2353/555 1336/2350/288 1351/1411/288 1353/1413/555 +f 1444/2354/561 1445/2355/562 1446/2356/563 1447/2357/564 +f 1448/2358/565 1449/2359/566 1450/2360/567 1451/2361/568 +f 1452/2362/569 1453/2363/570 1454/2364/571 1455/2365/572 +f 1453/2363/570 1456/2366/573 1457/2367/574 1454/2364/571 +f 1458/2368/575 1444/2354/561 1447/2357/564 1459/2369/576 +f 1445/2355/562 1448/2358/565 1451/2361/568 1446/2356/563 +f 1449/2359/566 1452/2362/569 1455/2365/572 1450/2360/567 +f 1456/2366/573 1458/2370/575 1459/2371/576 1457/2367/574 +f 1455/2365/572 1454/2364/571 1460/2372/577 1461/2373/578 +f 1451/2361/568 1450/2360/567 1462/2374/579 1463/2375/580 +f 1447/2357/564 1446/2356/563 1464/2376/581 1465/2377/582 +f 1457/2367/574 1459/2371/576 1466/2378/583 1467/2379/584 +f 1450/2360/567 1455/2365/572 1461/2373/578 1462/2374/579 +f 1446/2356/563 1451/2361/568 1463/2375/580 1464/2376/581 +f 1459/2369/576 1447/2357/564 1465/2377/582 1466/2380/583 +f 1454/2364/571 1457/2367/574 1467/2379/584 1460/2372/577 +f 1466/2380/583 1465/2377/582 1468/2381/542 1469/2382/136 +f 1460/2372/577 1467/2379/584 1470/2383/541 1471/2384/546 +f 1461/2373/578 1460/2372/577 1471/2384/546 1472/2385/545 +f 1463/2375/580 1462/2374/579 1473/2386/132 1474/2387/544 +f 1465/2377/582 1464/2376/581 1475/2388/543 1468/2381/542 +f 1467/2379/584 1466/2378/583 1469/2389/136 1470/2383/541 +f 1462/2374/579 1461/2373/578 1472/2385/545 1473/2386/132 +f 1464/2376/581 1463/2375/580 1474/2387/544 1475/2388/543 +f 1473/2386/132 1472/2385/545 1476/2390/585 1477/2391/586 +f 1475/2388/543 1474/2387/544 1478/2392/587 1479/2393/588 +f 1469/2382/136 1468/2381/542 1480/2394/589 1481/2395/590 +f 1471/2384/546 1470/2383/541 1482/2396/591 1483/2397/592 +f 1472/2385/545 1471/2384/546 1483/2397/592 1476/2390/585 +f 1474/2387/544 1473/2386/132 1477/2391/586 1478/2392/587 +f 1468/2381/542 1475/2388/543 1479/2393/588 1480/2394/589 +f 1470/2383/541 1469/2389/136 1481/2398/590 1482/2396/591 +f 1484/2399/290 1485/2400/593 1416/1428/593 1413/1425/290 +f 1486/2401/594 1487/2402/595 1404/1416/595 1418/1430/594 +f 1488/2403/288 1489/2404/596 1408/1420/596 1405/1417/288 +f 1490/2405/597 1491/2406/598 1412/1424/598 1409/1421/597 +f 1485/2400/593 1486/2407/594 1418/1432/594 1416/1428/593 +f 1487/2402/595 1488/2403/288 1405/1417/288 1404/1416/595 +f 1489/2404/596 1490/2405/597 1409/1421/597 1408/1420/596 +f 1491/2406/598 1484/2399/290 1413/1425/290 1412/1424/598 +f 1421/2408/596 1420/2409/288 1430/1444/288 1433/1447/596 +f 1415/1427/598 1414/1426/290 1429/1443/290 1428/1442/598 +f 1422/2410/597 1421/2408/596 1433/1447/596 1435/1449/597 +f 1414/1426/290 1417/1429/593 1432/1446/593 1429/1443/290 +f 1423/2411/598 1422/2412/597 1435/1453/597 1437/1452/598 +f 1417/1429/593 1419/1433/594 1434/1448/594 1432/1446/593 +f 1424/2413/290 1423/2411/598 1437/1452/598 1439/1455/290 +f 1419/1431/594 1407/1419/595 1436/1451/595 1434/1450/594 +f 1410/1422/597 1415/1427/598 1428/1442/598 1442/1458/597 +f 1420/2409/288 1427/2414/595 1431/1445/595 1430/1444/288 +f 1411/1423/596 1410/1422/597 1442/1458/597 1440/1456/596 +f 1427/2414/595 1426/2415/594 1443/1459/594 1431/1445/595 +f 1406/1418/288 1411/1423/596 1440/1456/596 1438/1454/288 +f 1426/2415/594 1425/2416/593 1441/1457/593 1443/1459/594 +f 1407/1419/595 1406/1418/288 1438/1454/288 1436/1451/595 +f 1425/2416/593 1424/2413/290 1439/1455/290 1441/1457/593 +f 1532/2417/599 1533/2418/600 1534/2419/601 1535/2420/602 +f 1536/2421/603 1537/2422/604 1538/2423/605 1539/2424/606 +f 1540/2425/607 1541/2426/608 1542/2427/609 1543/2428/610 +f 1541/2426/608 1544/2429/611 1545/2430/612 1542/2427/609 +f 1546/2431/613 1532/2417/599 1535/2420/602 1547/2432/614 +f 1533/2418/600 1536/2421/603 1539/2424/606 1534/2419/601 +f 1537/2422/604 1540/2425/607 1543/2428/610 1538/2423/605 +f 1544/2429/611 1546/2433/613 1547/2434/614 1545/2430/612 +f 1543/2428/610 1542/2427/609 1548/2435/615 1549/2436/616 +f 1539/2424/606 1538/2423/605 1550/2437/617 1551/2438/618 +f 1535/2420/602 1534/2419/601 1552/2439/619 1553/2440/620 +f 1545/2430/612 1547/2434/614 1554/2441/621 1555/2442/622 +f 1538/2423/605 1543/2428/610 1549/2436/616 1550/2437/617 +f 1534/2419/601 1539/2424/606 1551/2438/618 1552/2439/619 +f 1547/2432/614 1535/2420/602 1553/2440/620 1554/2443/621 +f 1542/2427/609 1545/2430/612 1555/2442/622 1548/2435/615 +f 1554/2443/621 1553/2440/620 1556/2444/623 1557/2445/136 +f 1548/2435/615 1555/2442/622 1558/2446/624 1559/2447/625 +f 1549/2436/616 1548/2435/615 1559/2447/625 1560/2448/626 +f 1551/2438/618 1550/2437/617 1561/2449/132 1562/2450/627 +f 1553/2440/620 1552/2439/619 1563/2451/628 1556/2444/623 +f 1555/2442/622 1554/2441/621 1557/2452/136 1558/2446/624 +f 1550/2437/617 1549/2436/616 1560/2448/626 1561/2449/132 +f 1552/2439/619 1551/2438/618 1562/2450/627 1563/2451/628 +f 1561/2449/132 1560/2448/626 1564/2453/629 1565/2454/630 +f 1563/2451/628 1562/2450/627 1566/2455/631 1567/2456/632 +f 1557/2445/136 1556/2444/623 1568/2457/633 1569/2458/634 +f 1559/2447/625 1558/2446/624 1570/2459/635 1571/2460/636 +f 1560/2448/626 1559/2447/625 1571/2460/636 1564/2453/629 +f 1562/2450/627 1561/2449/132 1565/2454/630 1566/2455/631 +f 1556/2444/623 1563/2451/628 1567/2456/632 1568/2457/633 +f 1558/2446/624 1557/2452/136 1569/2461/634 1570/2459/635 +f 1572/2462/294 1573/2463/637 1504/1472/637 1501/1469/294 +f 1574/2464/638 1575/2465/639 1492/1460/639 1506/1474/638 +f 1576/2466/293 1577/2467/640 1496/1464/640 1493/1461/293 +f 1578/2468/641 1579/2469/642 1500/1468/642 1497/1465/641 +f 1573/2463/637 1574/2470/638 1506/1476/638 1504/1472/637 +f 1575/2465/639 1576/2466/293 1493/1461/293 1492/1460/639 +f 1577/2467/640 1578/2468/641 1497/1465/641 1496/1464/640 +f 1579/2469/642 1572/2462/294 1501/1469/294 1500/1468/642 +f 1509/2471/640 1508/2472/293 1518/1488/293 1521/1491/640 +f 1503/1471/642 1502/1470/294 1517/1487/294 1516/1486/642 +f 1510/2473/641 1509/2471/640 1521/1491/640 1523/1493/641 +f 1502/1470/294 1505/1473/637 1520/1490/637 1517/1487/294 +f 1511/2474/642 1510/2475/641 1523/1497/641 1525/1496/642 +f 1505/1473/637 1507/1477/638 1522/1492/638 1520/1490/637 +f 1512/2476/294 1511/2474/642 1525/1496/642 1527/1499/294 +f 1507/1475/638 1495/1463/639 1524/1495/639 1522/1494/638 +f 1498/1466/641 1503/1471/642 1516/1486/642 1530/1502/641 +f 1508/2472/293 1515/2477/639 1519/1489/639 1518/1488/293 +f 1499/1467/640 1498/1466/641 1530/1502/641 1528/1500/640 +f 1515/2477/639 1514/2478/638 1531/1503/638 1519/1489/639 +f 1494/1462/293 1499/1467/640 1528/1500/640 1526/1498/293 +f 1514/2478/638 1513/2479/637 1529/1501/637 1531/1503/638 +f 1495/1463/639 1494/1462/293 1526/1498/293 1524/1495/639 +f 1513/2479/637 1512/2476/294 1527/1499/294 1529/1501/637 +f 1620/2480/643 1621/2481/644 1622/2482/645 1623/2483/646 +f 1624/2484/647 1625/2485/648 1626/2486/649 1627/2487/650 +f 1628/2488/651 1629/2489/652 1630/2490/653 1631/2491/654 +f 1629/2489/652 1632/2492/655 1633/2493/656 1630/2490/653 +f 1634/2494/657 1620/2480/643 1623/2483/646 1635/2495/658 +f 1621/2481/644 1624/2484/647 1627/2487/650 1622/2482/645 +f 1625/2485/648 1628/2488/651 1631/2491/654 1626/2486/649 +f 1632/2492/655 1634/2496/657 1635/2497/658 1633/2493/656 +f 1631/2491/654 1630/2490/653 1636/2498/659 1637/2499/660 +f 1627/2487/650 1626/2486/649 1638/2500/383 1639/2501/661 +f 1623/2483/646 1622/2482/645 1640/2502/662 1641/2503/663 +f 1633/2493/656 1635/2497/658 1642/2504/664 1643/2505/665 +f 1626/2486/649 1631/2491/654 1637/2499/660 1638/2500/383 +f 1622/2482/645 1627/2487/650 1639/2501/661 1640/2502/662 +f 1635/2495/658 1623/2483/646 1641/2503/663 1642/2506/664 +f 1630/2490/653 1633/2493/656 1643/2505/665 1636/2498/659 +f 1642/2506/664 1641/2503/663 1644/2507/624 1645/2508/136 +f 1636/2498/659 1643/2505/665 1646/2509/623 1647/2510/628 +f 1637/2499/660 1636/2498/659 1647/2510/628 1648/2511/627 +f 1639/2501/661 1638/2500/383 1649/2512/132 1650/2513/626 +f 1641/2503/663 1640/2502/662 1651/2514/625 1644/2507/624 +f 1643/2505/665 1642/2504/664 1645/2515/136 1646/2509/623 +f 1638/2500/383 1637/2499/660 1648/2511/627 1649/2512/132 +f 1640/2502/662 1639/2501/661 1650/2513/626 1651/2514/625 +f 1649/2512/132 1648/2511/627 1652/2516/666 1653/2517/667 +f 1651/2514/625 1650/2513/626 1654/2518/668 1655/2519/669 +f 1645/2508/136 1644/2507/624 1656/2520/670 1657/2521/671 +f 1647/2510/628 1646/2509/623 1658/2522/672 1659/2523/673 +f 1648/2511/627 1647/2510/628 1659/2523/673 1652/2516/666 +f 1650/2513/626 1649/2512/132 1653/2517/667 1654/2518/668 +f 1644/2507/624 1651/2514/625 1655/2519/669 1656/2520/670 +f 1646/2509/623 1645/2515/136 1657/2524/671 1658/2522/672 +f 1660/2525/293 1661/2526/674 1592/1516/674 1589/1513/293 +f 1662/2527/675 1663/2528/676 1580/1504/676 1594/1518/675 +f 1664/2529/294 1665/2530/677 1584/1508/677 1581/1505/294 +f 1666/2531/678 1667/2532/679 1588/1512/679 1585/1509/678 +f 1661/2526/674 1662/2533/675 1594/1520/675 1592/1516/674 +f 1663/2528/676 1664/2529/294 1581/1505/294 1580/1504/676 +f 1665/2530/677 1666/2531/678 1585/1509/678 1584/1508/677 +f 1667/2532/679 1660/2525/293 1589/1513/293 1588/1512/679 +f 1597/2534/677 1596/2535/294 1606/1532/294 1609/1535/677 +f 1591/1515/679 1590/1514/293 1605/1531/293 1604/1530/679 +f 1598/2536/678 1597/2534/677 1609/1535/677 1611/1537/678 +f 1590/1514/293 1593/1517/674 1608/1534/674 1605/1531/293 +f 1599/2537/679 1598/2538/678 1611/1541/678 1613/1540/679 +f 1593/1517/674 1595/1521/675 1610/1536/675 1608/1534/674 +f 1600/2539/293 1599/2537/679 1613/1540/679 1615/1543/293 +f 1595/1519/675 1583/1507/676 1612/1539/676 1610/1538/675 +f 1586/1510/678 1591/1515/679 1604/1530/679 1618/1546/678 +f 1596/2535/294 1603/2540/676 1607/1533/676 1606/1532/294 +f 1587/1511/677 1586/1510/678 1618/1546/678 1616/1544/677 +f 1603/2540/676 1602/2541/675 1619/1547/675 1607/1533/676 +f 1582/1506/294 1587/1511/677 1616/1544/677 1614/1542/294 +f 1602/2541/675 1601/2542/674 1617/1545/674 1619/1547/675 +f 1583/1507/676 1582/1506/294 1614/1542/294 1612/1539/676 +f 1601/2542/674 1600/2539/293 1615/1543/293 1617/1545/674 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon.png index 8a5fb8d117c6e8e91287724f110a2b25ac19f5ac..c581b38ae7e1baf8c6690090441fec5da627a8f7 100644 GIT binary patch delta 2128 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 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_0.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_0.png new file mode 100644 index 0000000000000000000000000000000000000000..f495fbdfa2ddb8c5d7cf021218d9d9222e543607 GIT binary patch literal 144 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&4!3HD^x83^;5-4`^4B-HR8jh3>Am827#W6%; zYVx1@=7;voLJ3I;KyalYVFyDSSIU7iANm(Qe2}T}UfwXufJI`#yC3Hd9Qg46KX2Rr mlo^g~))5jw@M^OF6NC3N;kOJEDlLFUGI+ZBxvXAm7{5#W6%; zYVx1@=7;voLJ3I;KyalYVFyDSSIU7iANm(Qe2}T}UfwXufJI`#yC3Hd9Qg46KX2Rr slo^g|tpELQPhewXJN8Q_FVdQ&MBb@0G)X>y#N3J literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_10.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_10.png new file mode 100644 index 0000000000000000000000000000000000000000..0f3ba18831ed0f93773737e02e70f038ce8fdc05 GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&4!3HD^x83^;5-4`^4B-HR8jh3>AV0v<#W6%; zYH$BR-UbB$7WUj@w=$TbKj$)s9R9%|df3_Q=JB{P^_>ZBR=Ny{tLylj7hm^Ev_CiP y)ZGiOG}+QzTumSUPf1zw!zgG@VvETB_wkwAl@`Q(mk0-%&EVAm7>3#W6%; z>fHW=oCgeejy&Am7!~#W6%; z>fHW=oDB{F%;{^7-P+cfTfAFRo_(H@dWORM2`wr)PnviYz8ws%u(;sZ;N{}F_K52f n-vjexzwPgPZ@uVK-G2s;vl{Vy4Am7E)#W6%; z>fHW=oCgeen9t8$wz-mX{ma~S{SLD(xqGtyl5z4#RPN?$uxM9zXjhL2?Od^9>JP6P m<~O?!|GU0%zp~c+@A^HR8u8baZn6T+WAJqKb6Mw<&;$UM)GmVn literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_14.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_14.png new file mode 100644 index 0000000000000000000000000000000000000000..4270afad14bbb04ca0fbba70a4f6808dedb4b028 GIT binary patch literal 138 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&4!3HD^x83^;5-4`^4B-HR8jh3>Am7o`#W6%; z>fHW~yax<;4!^LQeE(0&{V(QkX0S*$g)LSP47zb*5xYX$kpe0Aq+r!Wi^3l5Ei!s@ ja>IYaeeXL?{r$)NNL?+yqdEF2&@cv1S3j3^P6Am7W=#W6%; zYVx1@=7;voLJ3I;KyalYVFyDSSIU7iANm(Qe2}T}UfwXufJI`#yC3Hd9Qg46KX2Rr rlo^eOW&i(oHZare`5L+69ybP0l+XkKZ!9#F literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_3.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_3.png new file mode 100644 index 0000000000000000000000000000000000000000..cae11f3fb152454a78b08191d164c0cfff8fdb7d GIT binary patch literal 152 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&4!3HD^x83^;5-4`^4B-HR8jh3>Am889#W6%; z>fHW~ybT6CEczRGHm7oKmNMl|nI*#-C^ALuk*avzUjKh7j%>LMFDsTy2Pa+ed%EY{ ywyRSopIq=)aRKXp10`jxtS6#wU4Pd8XIN$;wW8qVnomHZ89ZJ6T-G@yGywqbiZS5; literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_4.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_4.png new file mode 100644 index 0000000000000000000000000000000000000000..44bc064316438e9dbcc2018b53d25de35e86547e GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&4!3HD^x83^;5-4`^4B-HR8jh3>AV0v<#W6%; zYH$BW-UA8(%9m2=g`UkZRu;bH-xjo%6Rt z?{@02)wVZ?-FbV#tznLUsOj>#eJ5W2|Hpn^P;SZYJF=EQvl%>H{an^LB{Ts5)#Wro literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_5.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_5.png new file mode 100644 index 0000000000000000000000000000000000000000..900289ac16c1eb1907cbc71ae35c354a3c39cd52 GIT binary patch literal 156 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&4!3HD^x83^;5-4`^4B-HR8jh3>AV1jC#W6%; zYH$BR-UbB$7WUj@w=$TbKj$)s9RATDz%$9>q+MR|?w#CeDGAIR?xE((dMD03RCza7 zt6pic<8EgMV?Cv)uQw+uEn2i}#~TR_&3*Ul8KmyWEeYPAV1jC#W6%; zYH$BR-UbB`XZc+{n>Vtodv=p`M%!~n0|_DL$#Qj<&Hf(j;km(ZDDWrOzJ`%7rqHjAO4ZoZ8waA}DHl^xj8tPR+Xe^$c+{Am7i^#W6%; z>fHW~ybT5d%T`Q|7{y#%w?2?}^V3&eF6s8<%iMa#MImxarhVD#4>Xy<)78&qol`;+0Dbl@yZ`_I literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_8.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_8.png new file mode 100644 index 0000000000000000000000000000000000000000..53cf4aa43211e1a7990f456eb5322ce1ff947572 GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&4!3HD^x83^;5-4`^4B-HR8jh3>AV0v<#W6%; zYH$BR-Ub7nBQX(eH#fON_L_62%$nscDDrXT(&{HuBD@SIHnJ|rvGxCWTOu;^&GAbA z+-FO~Z!sq*X|3wq+&58b{o-Rii?96HSI_v!Kxx5@K%<91vl%>H{an^LB{Ts56JRv@ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_9.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_9.png new file mode 100644 index 0000000000000000000000000000000000000000..db86ae0595776556476698dc557593e4cd263957 GIT binary patch literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&4!3HD^x83^;5-4`^4B-HR8jh3>AV1L4#W6%; zYH$BR-UbB$7WUj@w=$TbKj$)s9RAUu!Pc9%sekvKbI+P2Uz#wsEd3S3Bfd9{>-Dzn zEBCl<`PJDd85nr>N369`&>jiRe~B$3@88R-{#IJ>_J)rt&~OG%S3j3^P65> literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_0.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_0.png new file mode 100644 index 0000000000000000000000000000000000000000..ac7bde5d9eb10ed229aedd20ab56eb3928442905 GIT binary patch literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfVZG1wLN(;dT*RWgWi!zRf(x8Fzoh`uzB*{ok=sow-F{(R;DZ RHK6ktJYD@<);T3K0RRQqRMP+e literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_1.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_1.png new file mode 100644 index 0000000000000000000000000000000000000000..572ed079928896004e4a0db7df5bd56cc8e21f9b GIT binary patch literal 225 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfw7caMZFnfrnB;!(9nOR5z%?!R%bv}|&KxE6bX zl@puAd8v&j3eK6|RsWz?cIeitlUJk=wynxNIvlK-!=u5R05qfG?| z{M-*PJm1@rR#+$XW;2_10ke;)-0X^t0q-3)fAI-+7O3^rf5_M~wIxF3%(1_>yl+ff z5$TcU=XRQ>!1LLs`@0Wig)L)JII#Ao)OClaTNk*nO4&Gs&Uvr$=I*ap-yc7<|2sCT Y-+y5sS{5vO7U)U_Pgg&ebxsLQ0AH(I!TGIWp&tb z28y!pI4Ts*-M_-uE{$7KKrm#h{@bJ-#}@l$b*TMitcv^G6#vM!Z}%VV|BlW2cW#)4 TdtW;Zax;UctDnm{r-UW|aN|)= literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_3.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_3.png new file mode 100644 index 0000000000000000000000000000000000000000..71aec62b02cf1c83d6b10b23a22ec6835b0d4824 GIT binary patch literal 219 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfaSXBO zy*ue3FO#BxtNgLWwKF1)1~k+P@J-viQF{h1RH6U? literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_5.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_5.png new file mode 100644 index 0000000000000000000000000000000000000000..c83bb391302ceb7241e8754f28a40edd96ca7e9e GIT binary patch literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf{~)BCOV6tfq%kkqPdMP`S3 z^9>hQ6wmlE_kg3wp;^Dzy?DN;n9WRzRe^uWT7v?q;PeMy)viev&OiQ(ODSQoV?x-I zOOgz22eR({;X2DClr;69?^KJe2ZeufInS?uD$nso_L#xH&F<}KKqoPHy85}Sb4q9e E0M6h{T>t<8 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_6.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_6.png new file mode 100644 index 0000000000000000000000000000000000000000..d4ffd98e2384976b4afefecf5e8a2b0b374aec82 GIT binary patch literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf33s79-SmT_)hi@2z|S=?p%~G0t)!Hq5>_yabJxZ;Ex^$!@j%qK9O5t#RvJ>ZFEA8QwH w1G|#ji^mKvUIoNBco>_R_At+z(%#6(U?*;vlYHf7B+xkwp00i_>zopr0A%bz+5i9m literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_7.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_7.png new file mode 100644 index 0000000000000000000000000000000000000000..2b2d05ff59bb24ce931a26565b2fcc60fa207baf GIT binary patch literal 222 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfvJw#&xYXmz`?x{ N@O1TaS?83{1OQVzO9%h} literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_8.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_8.png new file mode 100644 index 0000000000000000000000000000000000000000..1c00d206e3fb0a64e4817dd4ddbc414ec2a5604c GIT binary patch literal 213 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf)8nsR*!8Jg;L+j2nD*ICrC$~baY^`A%&3rey1jcFd)n-c3mId%B^iG0 zZsA?@uI`C-W48q7Y02`)KP{fN8yrvhd0#v5a#m5R=z%$F9`rS^(M6hNUPyL~ z0_Q|!vx-$UpS5kcmfX$mP!oH1UtxW)u+7A5(`TR8|6y*FEqiIE=hn~k66h`lPgg&e IbxsLQ0JLvToB#j- literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_9.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_9.png new file mode 100644 index 0000000000000000000000000000000000000000..73745acb05e60ea1129f78cfb73fc4c01ad85d9c GIT binary patch literal 227 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf06M5lfc}a#S6QieNl5wRM8-o{r}kx>E#d zgB9M)R4Q7J^=O#J6vcVe#^B{({Us2*kr zc+RDk@$H+eZS)3yIcB|Qxs&=Ao|BrfKy{KggUY91~tGzWc+vUblRv$_u66HC}GyE{ePVb;bGppZLYrw4T?EJyrCA73eMoPgg&e IbxsLQ07@QB{r~^~ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_0.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_0.png new file mode 100644 index 0000000000000000000000000000000000000000..0dcb3691aab717842198054621bb62ecb0fff467 GIT binary patch literal 235 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfUs*oe*kF75F1|B7#MKHNVGDIoqT))c&~>(6tPnu6{1-oD!M<;1E@b literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_1.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_1.png new file mode 100644 index 0000000000000000000000000000000000000000..a463074ae0c1b4a3625a791d6f53aa63db0e2d16 GIT binary patch literal 242 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf#(=nrs34<>$=G85ZB&oV8$8z*SbC zqft8=J}`7}xTGk=<=kTwlx5$-sIfF><8L;@W0f)4ttWObop^K0rf8>gH)mN^@5=qt oYVezXCHIU;dyZ%xx?lg8+i{7N6R&GV0npJ5p00i_>zopr0QFs4+W-In literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_2.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_2.png new file mode 100644 index 0000000000000000000000000000000000000000..cbeba973020a461702cf478ff3445fe29acac35f GIT binary patch literal 247 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfQ-Z^UN?LWlNxn6nMuv}f>>2pSKxtQt#q+~P3GQ8I2%5-VIh$Imfz_pF*H!41M*eT>1qE|9G4*FN^bQaXg&59QKC$IA0lE)*b zJL?)4-)(KPsh#%vaGf&421omr%_5zC@dw$Cvi&W(R`THfDnmDhLz@oFnZMG?z&NQ# zx?*+qyG0%k)L#6yTU{C(E@Cyukz*lO+bNz)9C=&}74K&=T~&P7xT=eJkH@xC&%{DZ wPYWxg%f4}5@@K*<7VQ-*F^B*DHQ&b&{M@qq{`?R7fNp2-boFyt=akR{0Oo^ZE&u=k literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_6.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_6.png new file mode 100644 index 0000000000000000000000000000000000000000..8f5eaa8d429138e89203b8e92117f8012bf9365f GIT binary patch literal 247 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf_>-=KL2FoBz=?H5B)|>5G${U((m_na@VDmdzIH%d5KqOH8A$K=fMoK+_vw9r97Gc59M(<-q_ twkIo^?+a{{4+>3a(<$Kl{{8+BR`qJLdB;~5o&ma?!PC{xWt~$(69C|XU-SR~ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_7.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_7.png new file mode 100644 index 0000000000000000000000000000000000000000..b0fc60ea39927c65700937d416ee32d63db6f191 GIT binary patch literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfV! p6khrNu=A;9vkXuF`D=cUvGtfWUX9pE?0MZ!S{`0&J1Pg7VbdNSR$0!wRv*Iqw>0idHg}tZsfEuvR}vc!H~G fV&8}F_kXZSoHvx!X|HhvI+nrH)z4*}Q$iB}1-n^M literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_empty.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_empty.png new file mode 100644 index 0000000000000000000000000000000000000000..61183254ec1050227ae17ea7159208630d77a6ff GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfft~yVwc=-6yAHgy?XSQ7?lQIJCC$UMa zGfUyT85RFcn&H5rcLyT77TgZsup;70@TRP$4fA#_o!MYHf9Ko-iOVXxo{7n^1pEz= za@nM{T6f3EsSK89LKyE0Y1%K*I^e6ic=hk!`8CYCbJQy$-WSUO9mL@2>gTe~DWM4f Df{;(D literal 0 HcmV?d00001 From e269653c69638e8bd41c016e196aa5251fb2c279 Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 22 May 2023 18:59:22 +0200 Subject: [PATCH 005/109] fixed none keybind --- gradle.properties | 2 +- src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/java/com/hbm/main/ModEventHandlerClient.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/gradle.properties b/gradle.properties index c7f807b69..b9eb6b50b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4606 +mod_build_number=4607 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models, porting),\ diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 7f4e466a7..f3cc40fb2 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4606)"; + public static final String VERSION = "1.0.27 BETA (4607)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 0b0967b59..68e243c6e 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -996,7 +996,7 @@ public class ModEventHandlerClient { for(Object o : KeyBinding.keybindArray) { KeyBinding key = (KeyBinding) o; - if(key.getKeyCode() == keyCode && KeyBinding.hash.lookup(key.getKeyCode()) != key) { + if(keyCode != 0 && key.getKeyCode() == keyCode && KeyBinding.hash.lookup(key.getKeyCode()) != key) { key.pressed = state; if(state) { From 7d49108c95506fce810423274bfff723710a18e5 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 23 May 2023 16:33:16 +0200 Subject: [PATCH 006/109] some model garbage --- .../assets/hbm/models/weapons/cryo_cannon.obj | 2267 ++--- .../hbm/models/weapons/cryo_cannon_alt.obj | 8217 +++++++++++++++++ .../hbm/textures/models/tank/tank_IONGEL.png | Bin 0 -> 1172 bytes .../textures/models/weapons/cryo_cannon.png | Bin 2242 -> 2283 bytes 4 files changed, 9453 insertions(+), 1031 deletions(-) create mode 100644 src/main/resources/assets/hbm/models/weapons/cryo_cannon_alt.obj create mode 100644 src/main/resources/assets/hbm/textures/models/tank/tank_IONGEL.png diff --git a/src/main/resources/assets/hbm/models/weapons/cryo_cannon.obj b/src/main/resources/assets/hbm/models/weapons/cryo_cannon.obj index 32b7cee31..32f6af5ba 100644 --- a/src/main/resources/assets/hbm/models/weapons/cryo_cannon.obj +++ b/src/main/resources/assets/hbm/models/weapons/cryo_cannon.obj @@ -2367,6 +2367,74 @@ v 0.360260 0.313847 -0.109375 v 0.025412 0.247242 -0.109375 v 0.402115 0.212799 0.109375 v 0.025412 0.137868 0.109375 +v 0.375000 2.500000 -1.875000 +v 0.375000 2.500000 -0.875000 +v -0.375000 2.500000 -1.875000 +v -0.375000 2.500000 -0.875000 +v 0.375000 2.250000 -1.875000 +v 0.375000 2.250000 -0.875000 +v -0.375000 2.250000 -1.875000 +v -0.375000 2.250000 -0.875000 +v 0.000000 2.500000 -1.875000 +v -0.088388 2.463388 -1.875000 +v -0.125000 2.375000 -1.875000 +v 0.125000 2.375000 -1.875000 +v 0.088388 2.463388 -1.875000 +v 0.000000 2.500000 -1.125000 +v -0.088388 2.463388 -1.125000 +v -0.125000 2.375000 -1.125000 +v 0.125000 2.375000 -1.125000 +v 0.088388 2.463388 -1.125000 +v 0.000000 2.426777 -0.948223 +v -0.088388 2.400888 -0.974111 +v -0.125000 2.338388 -1.036612 +v 0.125000 2.338388 -1.036612 +v 0.088388 2.400888 -0.974111 +v 0.000000 2.250000 -0.875000 +v -0.088388 2.250000 -0.911611 +v -0.125000 2.250000 -1.000000 +v 0.125000 2.250000 -1.000000 +v 0.088388 2.250000 -0.911611 +v 0.250000 2.500000 -1.875000 +v 0.161612 2.463388 -1.875000 +v 0.125000 2.375000 -1.875000 +v 0.375000 2.375000 -1.875000 +v 0.338388 2.463388 -1.875000 +v 0.250000 2.500000 -1.125000 +v 0.161612 2.463388 -1.125000 +v 0.125000 2.375000 -1.125000 +v 0.375000 2.375000 -1.125000 +v 0.338388 2.463388 -1.125000 +v 0.250000 2.426777 -0.948223 +v 0.161612 2.400888 -0.974111 +v 0.125000 2.338388 -1.036612 +v 0.375000 2.338388 -1.036612 +v 0.338388 2.400888 -0.974111 +v 0.250000 2.250000 -0.875000 +v 0.161612 2.250000 -0.911611 +v 0.125000 2.250000 -1.000000 +v 0.375000 2.250000 -1.000000 +v 0.338388 2.250000 -0.911611 +v -0.250000 2.500000 -1.875000 +v -0.338388 2.463388 -1.875000 +v -0.375000 2.375000 -1.875000 +v -0.125000 2.375000 -1.875000 +v -0.161612 2.463388 -1.875000 +v -0.250000 2.500000 -1.125000 +v -0.338388 2.463388 -1.125000 +v -0.375000 2.375000 -1.125000 +v -0.125000 2.375000 -1.125000 +v -0.161612 2.463388 -1.125000 +v -0.250000 2.426777 -0.948223 +v -0.338388 2.400888 -0.974111 +v -0.375000 2.338388 -1.036612 +v -0.125000 2.338388 -1.036612 +v -0.161612 2.400888 -0.974111 +v -0.250000 2.250000 -0.875000 +v -0.338388 2.250000 -0.911611 +v -0.375000 2.250000 -1.000000 +v -0.125000 2.250000 -1.000000 +v -0.161612 2.250000 -0.911611 vt 0.227586 -0.000000 vt 0.255172 -0.000000 vt 0.255172 0.125000 @@ -2827,20 +2895,16 @@ vt 0.351724 0.140625 vt 0.324138 0.187500 vt 0.324138 0.093750 vt 0.344828 0.093750 -vt 0.000000 0.000000 -vt 1.000000 0.000000 -vt 1.000000 1.000000 -vt 0.000000 1.000000 -vt 0.000000 0.000000 -vt 1.000000 0.000000 -vt 1.000000 1.000000 -vt 0.000000 1.000000 -vt 0.000000 0.000000 -vt 1.000000 0.000000 -vt 1.000000 1.000000 -vt 0.000000 1.000000 -vt 0.000000 0.000000 -vt 1.000000 0.000000 +vt 0.696552 0.687500 +vt 0.696552 0.625000 +vt 0.703448 0.625000 +vt 0.703448 0.687500 +vt 0.696552 0.500000 +vt 0.696552 0.437500 +vt 0.703448 0.437500 +vt 0.703448 0.500000 +vt 0.731034 0.437500 +vt 0.731034 0.687500 vt 0.413793 0.914062 vt 0.413793 0.859375 vt 0.420690 0.859375 @@ -3086,8 +3150,9 @@ vt 0.986207 0.531250 vt 0.972414 0.593750 vt 0.972414 0.562500 vt 0.979310 0.578125 -vt 0.551724 0.500000 vt 0.551724 0.625000 +vt 0.565517 0.609375 +vt 0.620690 0.609375 vt 0.620690 0.734375 vt 0.606897 0.734375 vt 0.620690 0.640625 @@ -3098,6 +3163,7 @@ vt 0.662069 0.734375 vt 0.648276 0.640625 vt 0.565517 0.390625 vt 0.565517 0.484375 +vt 0.551724 0.500000 vt 0.662069 0.375000 vt 0.606897 0.390625 vt 0.620690 0.484375 @@ -3772,6 +3838,28 @@ vt 0.096552 0.281250 vt 0.117241 0.281250 vt 0.089655 0.328125 vt 0.089655 0.296875 +vt 0.455172 0.531250 +vt 0.510345 0.531250 +vt 0.510345 0.562500 +vt 0.455172 0.562500 +vt 0.620690 0.515625 +vt 0.565517 0.515625 +vt 0.565517 0.515625 +vt 0.620690 0.515625 +vt 0.620690 0.609375 +vt 0.565517 0.609375 +vt 0.441379 0.609375 +vt 0.441379 0.515625 +vt 0.455172 0.515625 +vt 0.455172 0.609375 +vt 0.524138 0.515625 +vt 0.524138 0.609375 +vt 0.510345 0.609375 +vt 0.510345 0.515625 +vt 0.510345 0.593750 +vt 0.455172 0.593750 +vt 0.455172 0.562500 +vt 0.510345 0.562500 vt 0.089655 0.375000 vt 0.089655 0.421875 vt 0.075862 0.421875 @@ -4587,6 +4675,66 @@ vt 0.158621 0.109375 vt 0.179310 0.109375 vt 0.172414 0.109375 vt 0.165517 0.109375 +vt 0.255172 0.234375 +vt 0.255172 0.218750 +vt 0.296552 0.218750 +vt 0.296552 0.234375 +vt 0.255172 0.203125 +vt 0.255172 0.187500 +vt 0.296552 0.187500 +vt 0.296552 0.203125 +vt 0.255172 0.250000 +vt 0.296552 0.250000 +vt 0.310345 0.187500 +vt 0.310345 0.203125 +vt 0.310345 0.234375 +vt 0.310345 0.250000 +vt 0.310345 0.218750 +vt 0.324138 0.218750 +vt 0.324138 0.234375 +vt 0.324138 0.187500 +vt 0.324138 0.203125 +vt 0.324138 0.250000 +vt 0.255172 0.234375 +vt 0.255172 0.218750 +vt 0.296552 0.218750 +vt 0.296552 0.234375 +vt 0.255172 0.203125 +vt 0.255172 0.187500 +vt 0.296552 0.187500 +vt 0.296552 0.203125 +vt 0.255172 0.250000 +vt 0.296552 0.250000 +vt 0.310345 0.187500 +vt 0.310345 0.203125 +vt 0.310345 0.234375 +vt 0.310345 0.250000 +vt 0.310345 0.218750 +vt 0.324138 0.218750 +vt 0.324138 0.234375 +vt 0.324138 0.187500 +vt 0.324138 0.203125 +vt 0.324138 0.250000 +vt 0.255172 0.234375 +vt 0.255172 0.218750 +vt 0.296552 0.218750 +vt 0.296552 0.234375 +vt 0.255172 0.203125 +vt 0.255172 0.187500 +vt 0.296552 0.187500 +vt 0.296552 0.203125 +vt 0.255172 0.250000 +vt 0.296552 0.250000 +vt 0.310345 0.187500 +vt 0.310345 0.203125 +vt 0.310345 0.234375 +vt 0.310345 0.250000 +vt 0.310345 0.218750 +vt 0.324138 0.218750 +vt 0.324138 0.234375 +vt 0.324138 0.187500 +vt 0.324138 0.203125 +vt 0.324138 0.250000 vn 0.0000 -1.0000 -0.0000 vn 0.0000 1.0000 0.0000 vn -1.0000 0.0000 0.0000 @@ -5143,6 +5291,19 @@ vn -0.8985 0.3215 -0.2988 vn -0.4080 -0.8627 0.2988 vn 0.3468 -0.8373 0.4226 vn 0.8985 -0.3215 0.2988 +vn -0.0000 0.9824 0.1866 +vn 0.6794 0.7194 0.1448 +vn -0.9204 0.3812 0.0866 +vn -0.6794 0.7194 0.1448 +vn 0.9204 0.3812 0.0866 +vn -0.9239 0.2706 0.2706 +vn -0.6630 0.5294 0.5294 +vn 0.6630 0.5294 0.5294 +vn 0.9239 0.2706 0.2706 +vn 0.6333 0.2962 0.7150 +vn -0.9125 0.1566 0.3780 +vn -0.6333 0.2962 0.7150 +vn 0.9125 0.1566 0.3780 s off f 227/323/124 228/324/124 229/325/124 230/326/124 f 231/327/125 232/328/125 233/329/125 234/330/125 @@ -5308,1036 +5469,1080 @@ f 526/772/128 525/771/128 529/779/128 528/774/128 f 524/777/130 523/781/130 527/782/130 530/778/130 f 328/783/129 332/784/129 531/785/129 532/786/129 f 331/787/130 279/788/130 533/789/130 534/790/130 -f 332/791/124 331/792/124 534/793/124 531/794/124 -f 531/795/138 534/796/138 533/789/138 532/786/138 -f 535/797/127 536/798/127 537/799/127 538/800/127 -f 539/801/126 540/802/126 541/803/126 542/804/126 -f 538/800/154 537/799/154 540/802/154 539/801/154 543/805/154 544/806/154 -f 544/806/155 543/805/155 545/807/155 546/808/155 -f 539/809/156 542/810/156 545/807/156 543/805/156 -f 535/811/157 538/812/157 544/806/157 546/808/157 -f 265/390/124 277/389/124 276/813/124 1051/814/124 -f 547/815/158 548/816/158 549/817/158 550/818/158 -f 551/819/127 552/820/127 553/821/127 549/822/127 548/823/127 554/824/127 -f 550/818/148 549/817/148 553/825/148 555/826/148 -f 555/826/159 553/825/159 552/827/159 556/828/159 -f 556/829/126 557/830/126 558/831/126 547/832/126 550/833/126 555/834/126 -f 559/835/124 560/836/124 561/837/124 562/838/124 -f 561/837/127 560/836/127 563/839/127 564/840/127 -f 559/835/126 562/838/126 565/841/126 566/842/126 -f 567/843/136 568/844/136 569/845/136 570/846/136 -f 571/847/127 572/848/127 570/846/127 569/845/127 -f 573/849/126 574/850/126 568/844/126 567/843/126 -f 574/851/125 571/852/125 569/845/125 568/844/125 -f 572/853/124 573/854/124 567/843/124 570/846/124 -f 575/855/136 576/856/136 577/857/136 578/858/136 -f 579/859/124 580/860/124 578/858/124 577/857/124 -f 581/861/125 582/862/125 576/856/125 575/855/125 -f 582/863/127 579/864/127 577/857/127 576/856/127 -f 580/865/126 581/866/126 575/855/126 578/858/126 -f 583/867/124 584/868/124 585/869/124 586/870/124 -f 587/871/160 588/872/160 589/873/160 590/874/160 -f 591/875/161 592/876/161 593/877/161 594/878/161 -f 586/870/162 585/869/162 592/876/162 591/875/162 -f 590/874/163 589/873/163 584/879/163 583/880/163 -f 594/878/125 593/877/125 588/872/125 587/871/125 -f 594/881/127 587/882/127 590/883/127 583/884/127 586/885/127 591/886/127 -f 595/887/125 596/888/125 597/889/125 598/890/125 -f 599/891/124 600/892/124 601/893/124 602/894/124 -f 596/895/160 603/896/160 604/897/160 597/898/160 -f 605/899/161 595/900/161 598/901/161 606/902/161 -f 600/903/162 605/904/162 606/905/162 601/906/162 -f 603/907/163 599/908/163 602/909/163 604/910/163 -f 602/894/126 601/893/126 607/911/126 608/912/126 -f 597/898/126 604/897/126 609/913/126 610/914/126 -f 606/902/126 598/901/126 611/915/126 612/916/126 -f 601/906/126 606/905/126 612/916/126 607/911/126 -f 604/910/126 602/909/126 608/917/126 609/913/126 -f 598/890/126 597/889/126 610/914/126 611/915/126 -f 607/911/162 612/916/162 613/918/162 614/919/162 -f 609/913/163 608/917/163 615/920/163 616/921/163 -f 611/915/125 610/914/125 617/922/125 618/923/125 -f 608/912/124 607/911/124 614/919/124 615/924/124 -f 610/914/160 609/913/160 616/921/160 617/922/160 -f 612/916/161 611/915/161 618/923/161 613/918/161 -f 617/922/127 616/921/127 619/925/127 620/926/127 -f 618/923/127 617/922/127 620/927/127 621/928/127 -f 613/918/127 618/923/127 621/929/127 622/930/127 -f 614/919/127 613/918/127 622/931/127 623/932/127 -f 615/924/127 614/919/127 623/933/127 624/934/127 -f 616/921/127 615/920/127 624/935/127 619/936/127 -f 619/936/163 624/935/163 625/937/163 626/938/163 -f 621/928/125 620/927/125 627/939/125 628/940/125 -f 624/934/124 623/933/124 629/941/124 625/942/124 -f 620/926/160 619/925/160 626/943/160 627/944/160 -f 622/930/161 621/929/161 628/945/161 630/946/161 -f 623/932/162 622/931/162 630/947/162 629/948/162 -f 627/944/126 626/943/126 631/949/126 632/950/126 -f 628/940/126 627/939/126 632/950/126 633/951/126 -f 630/946/126 628/945/126 633/951/126 634/952/126 -f 629/948/126 630/947/126 634/952/126 635/953/126 -f 625/942/126 629/941/126 635/953/126 636/954/126 -f 626/938/126 625/937/126 636/955/126 631/949/126 -f 633/951/125 632/950/125 637/956/125 638/957/125 -f 636/954/124 635/953/124 639/958/124 640/959/124 -f 632/950/160 631/949/160 641/960/160 637/956/160 -f 634/952/161 633/951/161 638/957/161 642/961/161 -f 635/953/162 634/952/162 642/961/162 639/958/162 -f 631/949/163 636/955/163 640/962/163 641/960/163 -f 642/961/164 638/957/164 643/963/164 644/964/164 -f 639/958/165 642/961/165 644/965/165 645/966/165 -f 641/960/166 640/962/166 646/967/166 647/968/166 -f 638/957/167 637/956/167 648/969/167 643/970/167 -f 640/959/168 639/958/168 645/971/168 646/972/168 -f 637/956/169 641/960/169 647/973/169 648/974/169 -f 643/975/127 648/976/127 647/977/127 646/978/127 645/979/127 644/980/127 -f 649/981/125 650/982/125 651/983/125 652/984/125 -f 653/985/126 654/986/126 655/987/126 656/988/126 657/989/126 -f 652/984/136 651/983/136 658/990/136 659/991/136 -f 651/983/127 650/982/127 660/992/127 658/993/127 -f 649/981/126 652/984/126 659/994/126 661/995/126 -f 662/996/170 663/997/170 664/998/170 665/999/170 -f 666/1000/126 662/1001/126 665/1002/126 667/1003/126 -f 668/1004/134 666/1000/134 667/1003/134 669/1005/134 -f 663/997/127 668/1004/127 669/1005/127 664/998/127 -f 654/986/171 653/985/171 670/1006/171 671/1007/171 -f 657/1008/136 656/1009/136 672/1010/136 673/1011/136 -f 671/1007/127 670/1006/127 673/1012/127 672/1010/127 674/1013/127 -f 654/986/170 671/1007/170 674/1014/170 655/1015/170 -f 655/1016/172 674/1013/172 672/1010/172 656/1009/172 -f 670/1006/134 653/985/134 657/1017/134 673/1018/134 -f 675/1019/170 676/1020/170 677/1021/170 678/1022/170 -f 679/1023/127 680/1024/127 677/1025/127 676/1026/127 -f 681/1027/126 682/1028/126 675/1019/126 678/1022/126 -f 680/1024/172 681/1027/172 678/1022/172 677/1025/172 -f 682/1029/171 679/1023/171 676/1026/171 675/1030/171 -f 684/1031/126 692/1032/126 693/1033/126 694/1034/126 -f 695/1035/173 696/1036/173 685/1037/173 697/1038/173 -f 692/1039/174 701/1040/174 702/1041/174 693/1033/174 -f 453/1042/125 330/481/125 329/480/125 454/1043/125 -f 715/1044/131 716/1045/131 717/1046/131 718/1047/131 -f 259/365/131 454/1043/131 719/1048/131 720/1049/131 -f 329/480/131 260/366/131 721/1050/131 722/1051/131 -f 259/365/131 720/1049/131 716/1045/131 715/1044/131 721/1050/131 260/366/131 -f 454/1043/131 329/480/131 722/1051/131 718/1047/131 717/1046/131 719/1048/131 -f 271/378/128 723/1052/128 724/1053/128 453/1042/128 -f 270/1054/128 725/1055/128 723/1052/128 271/378/128 -f 270/1054/128 330/481/128 726/1056/128 725/1055/128 -f 453/1042/128 724/1053/128 726/1056/128 330/481/128 -f 725/1057/175 726/1058/175 727/1059/175 728/1060/175 -f 721/1061/128 715/1062/128 729/1063/128 730/1064/128 -f 716/1065/176 731/1066/176 732/1067/176 717/1068/176 -f 733/1069/131 730/1064/131 729/1063/131 734/1070/131 -f 719/1071/136 735/1072/136 736/1073/136 720/1074/136 -f 737/1075/128 728/1076/128 727/1059/128 738/1077/128 -f 715/1078/177 718/1079/177 734/1070/177 729/1080/177 -f 720/1081/128 736/1073/128 731/1082/128 716/1083/128 -f 722/1084/178 721/1085/178 730/1086/178 733/1069/178 -f 718/1079/130 722/1084/130 733/1069/130 734/1070/130 -f 738/1077/129 727/1059/129 726/1058/129 724/1087/129 -f 728/1076/131 737/1075/131 723/1088/131 725/1089/131 -f 739/1090/126 740/1091/126 741/1092/126 742/1093/126 -f 740/1094/179 743/1095/179 744/1096/179 741/1097/179 -f 745/1098/127 746/1099/127 747/1100/127 748/1101/127 -f 749/1102/180 739/1090/180 742/1093/180 750/1103/180 -f 748/1101/127 747/1100/127 751/1104/127 752/1105/127 -f 741/1097/181 744/1096/181 753/1106/181 754/1107/181 -f 749/1108/127 743/1109/127 755/1110/127 -f 755/1110/172 756/1111/172 739/1090/172 749/1102/172 -f 756/1111/126 740/1112/126 739/1113/126 -f 746/1114/127 745/1115/127 757/1116/127 -f 757/1116/172 758/1117/172 759/1118/172 746/1099/172 -f 758/1117/126 760/1119/126 759/1120/126 -f 761/1121/136 762/1122/136 756/1111/136 755/1110/136 -f 763/1123/132 764/1124/132 743/1109/132 740/1125/132 -f 765/1126/127 766/1127/127 757/1116/127 745/1115/127 -f 767/1128/126 768/1129/126 760/1119/126 758/1117/126 -f 762/1122/126 763/1130/126 740/1112/126 756/1111/126 -f 766/1127/136 767/1128/136 758/1117/136 757/1116/136 -f 768/1131/132 765/1126/132 745/1115/132 760/1132/132 -f 764/1124/127 761/1121/127 755/1110/127 743/1109/127 -f 760/1133/179 745/1098/179 748/1101/179 769/1134/179 -f 743/1095/127 749/1102/127 750/1103/127 744/1096/127 -f 770/1135/125 771/1136/125 772/1137/125 773/1138/125 -f 732/1067/131 731/1082/131 736/1073/131 735/1072/131 -f 717/1068/130 732/1067/130 735/1072/130 719/1139/130 -f 737/1075/136 738/1077/136 724/1140/136 723/1141/136 -f 747/1100/182 774/1142/182 775/1143/182 751/1104/182 -f 774/1142/126 769/1144/126 776/1145/126 775/1143/126 -f 742/1093/126 741/1092/126 754/1146/126 777/1147/126 -f 769/1134/181 748/1101/181 752/1105/181 776/1148/181 -f 744/1096/127 750/1103/127 778/1149/127 753/1106/127 -f 750/1103/182 742/1093/182 777/1147/182 778/1149/182 -f 759/1118/126 760/1150/126 769/1144/126 774/1142/126 -f 746/1099/180 759/1118/180 774/1142/180 747/1100/180 -f 779/1151/162 780/1152/162 781/1153/162 782/1154/162 -f 771/1136/132 783/1155/132 784/1156/132 772/1137/132 -f 782/1154/124 781/1153/124 785/1157/124 786/1158/124 -f 783/1155/124 787/1159/124 788/1160/124 784/1156/124 -f 786/1161/163 785/1162/163 789/1163/163 790/1164/163 -f 787/1159/136 770/1165/136 773/1166/136 788/1160/136 -f 790/1164/160 789/1163/160 791/1167/160 792/1168/160 -f 781/1169/127 780/1170/127 793/1171/127 791/1172/127 789/1173/127 785/1174/127 -f 792/1168/125 791/1167/125 793/1175/125 794/1176/125 -f 794/1176/161 793/1175/161 780/1152/161 779/1151/161 -f 779/1177/126 782/1178/126 786/1179/126 790/1180/126 792/1181/126 794/1182/126 -f 784/1156/129 788/1160/129 795/1183/129 796/1184/129 -f 784/1185/132 796/1184/132 772/1186/132 -f 773/1187/136 795/1183/136 788/1188/136 -f 795/1183/136 773/1187/136 797/1189/136 798/1190/136 -f 798/1191/124 797/1192/124 799/1193/124 800/1194/124 -f 796/1184/127 795/1183/127 798/1190/127 801/1195/127 -f 772/1186/132 796/1184/132 801/1195/132 802/1196/132 -f 773/1197/126 772/1186/126 802/1196/126 797/1198/126 -f 798/1191/127 803/1199/127 801/1200/127 -f 802/1201/126 804/1202/126 797/1203/126 -f 801/1195/170 803/1199/170 804/1202/170 802/1196/170 -f 805/1204/180 806/1205/180 807/1206/180 808/1207/180 -f 803/1199/127 798/1191/127 800/1194/127 806/1205/127 -f 804/1202/125 803/1199/125 806/1205/125 805/1204/125 -f 797/1203/126 804/1202/126 805/1204/126 799/1208/126 -f 809/1209/127 810/1210/127 807/1211/127 -f 799/1208/126 805/1204/126 808/1207/126 811/1212/126 -f 800/1194/179 799/1193/179 811/1213/179 809/1214/179 -f 806/1205/127 800/1194/127 809/1214/127 807/1206/127 -f 807/1206/172 810/1210/172 812/1215/172 808/1207/172 -f 811/1216/126 812/1215/126 813/1217/126 814/1218/126 -f 811/1216/126 808/1219/126 812/1215/126 -f 815/1220/132 814/1221/132 816/1222/132 817/1223/132 -f 809/1209/132 811/1224/132 814/1225/132 818/1226/132 -f 810/1210/127 809/1209/127 818/1226/127 819/1227/127 -f 812/1215/136 810/1210/136 819/1227/136 813/1217/136 -f 819/1228/136 820/1229/136 813/1230/136 -f 818/1226/129 815/1220/129 820/1229/129 819/1227/129 -f 814/1221/132 815/1220/132 818/1231/132 -f 814/1232/125 813/1230/125 821/1233/125 816/1234/125 -f 813/1230/136 820/1229/136 822/1235/136 821/1233/136 -f 820/1229/124 815/1220/124 817/1223/124 822/1235/124 -f 660/1236/124 661/1237/124 659/1238/124 658/1239/124 -f 1052/1240/183 1053/1241/183 1054/1242/183 1055/1243/183 -f 1056/1244/183 1057/1245/183 1058/1246/183 1059/1247/183 -f 1060/1248/183 1061/1249/183 1062/1250/183 1063/1251/183 -f 1061/1249/183 1064/1252/183 1065/1253/183 1062/1250/183 -f 1066/1254/183 1052/1240/183 1055/1243/183 1067/1255/183 -f 1053/1241/183 1056/1244/183 1059/1247/183 1054/1242/183 -f 1057/1245/183 1060/1248/183 1063/1251/183 1058/1246/183 -f 1064/1252/183 1066/1256/183 1067/1257/183 1065/1253/183 -f 1068/1258/183 1069/1259/183 1070/1260/183 1071/1261/183 1072/1262/183 1073/1263/183 1074/1264/183 1075/1265/183 -f 1076/1266/183 1077/1267/183 1078/1268/183 1079/1269/183 -f 1077/1267/183 1080/1270/183 1081/1271/183 1078/1268/183 -f 1080/1270/184 1082/1272/184 1083/1273/184 1081/1271/184 -f 1082/1274/184 1084/1275/184 1085/1276/184 1083/1277/184 -f 1084/1275/183 1086/1278/183 1087/1279/183 1085/1276/183 -f 1086/1278/184 1088/1280/184 1089/1281/184 1087/1279/184 -f 1088/1280/184 1090/1282/184 1091/1283/184 1089/1281/184 -f 1090/1282/184 1076/1266/184 1079/1269/184 1091/1283/184 -f 1140/1284/185 1141/1285/185 1142/1286/185 1143/1287/185 -f 1144/1288/185 1145/1289/185 1146/1290/185 1147/1291/185 -f 1148/1292/185 1149/1293/185 1150/1294/185 1151/1295/185 -f 1149/1293/185 1152/1296/185 1153/1297/185 1150/1294/185 -f 1154/1298/185 1140/1284/185 1143/1287/185 1155/1299/185 -f 1141/1285/185 1144/1288/185 1147/1291/185 1142/1286/185 -f 1145/1289/185 1148/1292/185 1151/1295/185 1146/1290/185 -f 1152/1296/185 1154/1300/185 1155/1301/185 1153/1297/185 -f 1156/1302/185 1157/1303/185 1158/1304/185 1159/1305/185 1160/1306/185 1161/1307/185 1162/1308/185 1163/1309/185 -f 1164/1310/185 1165/1311/185 1166/1312/185 1167/1313/185 -f 1165/1311/185 1168/1314/185 1169/1315/185 1166/1312/185 -f 1168/1314/186 1170/1316/186 1171/1317/186 1169/1315/186 -f 1170/1318/186 1172/1319/186 1173/1320/186 1171/1321/186 -f 1172/1319/185 1174/1322/185 1175/1323/185 1173/1320/185 -f 1174/1322/185 1176/1324/185 1177/1325/185 1175/1323/185 -f 1176/1324/186 1178/1326/186 1179/1327/186 1177/1325/186 -f 1178/1326/185 1164/1310/185 1167/1313/185 1179/1327/185 -f 1228/1328/187 1229/1329/187 1230/1330/187 1231/1331/187 -f 1232/1332/187 1233/1333/187 1234/1334/187 1235/1335/187 -f 1236/1336/187 1237/1337/187 1238/1338/187 1239/1339/187 -f 1237/1337/187 1240/1340/187 1241/1341/187 1238/1338/187 -f 1242/1342/187 1228/1328/187 1231/1331/187 1243/1343/187 -f 1229/1329/187 1232/1332/187 1235/1335/187 1230/1330/187 -f 1233/1333/187 1236/1336/187 1239/1339/187 1234/1334/187 -f 1240/1340/187 1242/1344/187 1243/1345/187 1241/1341/187 -f 1244/1346/187 1245/1347/187 1246/1348/187 1247/1349/187 1248/1350/187 1249/1351/187 1250/1352/187 1251/1353/187 -f 1252/1354/187 1253/1355/187 1254/1356/187 1255/1357/187 -f 1253/1355/187 1256/1358/187 1257/1359/187 1254/1356/187 -f 1256/1358/188 1258/1360/188 1259/1361/188 1257/1359/188 -f 1258/1362/188 1260/1363/188 1261/1364/188 1259/1365/188 -f 1260/1363/188 1262/1366/188 1263/1367/188 1261/1364/188 -f 1262/1366/188 1264/1368/188 1265/1369/188 1263/1367/188 -f 1264/1368/188 1266/1370/188 1267/1371/188 1265/1369/188 -f 1266/1370/187 1252/1354/187 1255/1357/187 1267/1371/187 -f 1316/1372/189 1317/1373/189 1318/1374/189 1319/1375/189 -f 1320/1376/189 1321/1377/189 1322/1378/189 1323/1379/189 -f 1324/1380/190 1325/1381/190 1326/1382/190 1327/1383/190 -f 1325/1381/189 1328/1384/189 1329/1385/189 1326/1382/189 -f 1330/1386/189 1316/1372/189 1319/1375/189 1331/1387/189 -f 1317/1373/189 1320/1376/189 1323/1379/189 1318/1374/189 -f 1321/1377/189 1324/1380/189 1327/1383/189 1322/1378/189 -f 1328/1384/189 1330/1388/189 1331/1389/189 1329/1385/189 -f 1332/1390/189 1333/1391/189 1334/1392/189 1335/1393/189 1336/1394/189 1337/1395/189 1338/1396/189 1339/1397/189 -f 1340/1398/190 1341/1399/190 1342/1400/190 1343/1401/190 -f 1341/1399/190 1344/1402/190 1345/1403/190 1342/1400/190 -f 1344/1402/190 1346/1404/190 1347/1405/190 1345/1403/190 -f 1346/1406/190 1348/1407/190 1349/1408/190 1347/1409/190 -f 1348/1407/189 1350/1410/189 1351/1411/189 1349/1408/189 -f 1350/1410/190 1352/1412/190 1353/1413/190 1351/1411/190 -f 1352/1412/190 1354/1414/190 1355/1415/190 1353/1413/190 -f 1354/1414/189 1340/1398/189 1343/1401/189 1355/1415/189 -f 1404/1416/191 1405/1417/191 1406/1418/191 1407/1419/191 -f 1408/1420/191 1409/1421/191 1410/1422/191 1411/1423/191 -f 1412/1424/192 1413/1425/192 1414/1426/192 1415/1427/192 -f 1413/1425/191 1416/1428/191 1417/1429/191 1414/1426/191 -f 1418/1430/191 1404/1416/191 1407/1419/191 1419/1431/191 -f 1405/1417/191 1408/1420/191 1411/1423/191 1406/1418/191 -f 1409/1421/191 1412/1424/191 1415/1427/191 1410/1422/191 -f 1416/1428/191 1418/1432/191 1419/1433/191 1417/1429/191 -f 1420/1434/191 1421/1435/191 1422/1436/191 1423/1437/191 1424/1438/191 1425/1439/191 1426/1440/191 1427/1441/191 -f 1428/1442/192 1429/1443/192 1430/1444/192 1431/1445/192 -f 1429/1443/192 1432/1446/192 1433/1447/192 1430/1444/192 -f 1432/1446/192 1434/1448/192 1435/1449/192 1433/1447/192 -f 1434/1450/192 1436/1451/192 1437/1452/192 1435/1453/192 -f 1436/1451/191 1438/1454/191 1439/1455/191 1437/1452/191 -f 1438/1454/192 1440/1456/192 1441/1457/192 1439/1455/192 -f 1440/1456/192 1442/1458/192 1443/1459/192 1441/1457/192 -f 1442/1458/191 1428/1442/191 1431/1445/191 1443/1459/191 -f 1492/1460/193 1493/1461/193 1494/1462/193 1495/1463/193 -f 1496/1464/193 1497/1465/193 1498/1466/193 1499/1467/193 -f 1500/1468/194 1501/1469/194 1502/1470/194 1503/1471/194 -f 1501/1469/193 1504/1472/193 1505/1473/193 1502/1470/193 -f 1506/1474/193 1492/1460/193 1495/1463/193 1507/1475/193 -f 1493/1461/193 1496/1464/193 1499/1467/193 1494/1462/193 -f 1497/1465/193 1500/1468/193 1503/1471/193 1498/1466/193 -f 1504/1472/193 1506/1476/193 1507/1477/193 1505/1473/193 -f 1508/1478/193 1509/1479/193 1510/1480/193 1511/1481/193 1512/1482/193 1513/1483/193 1514/1484/193 1515/1485/193 -f 1516/1486/194 1517/1487/194 1518/1488/194 1519/1489/194 -f 1517/1487/194 1520/1490/194 1521/1491/194 1518/1488/194 -f 1520/1490/194 1522/1492/194 1523/1493/194 1521/1491/194 -f 1522/1494/194 1524/1495/194 1525/1496/194 1523/1497/194 -f 1524/1495/193 1526/1498/193 1527/1499/193 1525/1496/193 -f 1526/1498/194 1528/1500/194 1529/1501/194 1527/1499/194 -f 1528/1500/194 1530/1502/194 1531/1503/194 1529/1501/194 -f 1530/1502/194 1516/1486/194 1519/1489/194 1531/1503/194 -f 1580/1504/195 1581/1505/195 1582/1506/195 1583/1507/195 -f 1584/1508/195 1585/1509/195 1586/1510/195 1587/1511/195 -f 1588/1512/195 1589/1513/195 1590/1514/195 1591/1515/195 -f 1589/1513/195 1592/1516/195 1593/1517/195 1590/1514/195 -f 1594/1518/195 1580/1504/195 1583/1507/195 1595/1519/195 -f 1581/1505/195 1584/1508/195 1587/1511/195 1582/1506/195 -f 1585/1509/195 1588/1512/195 1591/1515/195 1586/1510/195 -f 1592/1516/195 1594/1520/195 1595/1521/195 1593/1517/195 -f 1596/1522/195 1597/1523/195 1598/1524/195 1599/1525/195 1600/1526/195 1601/1527/195 1602/1528/195 1603/1529/195 -f 1604/1530/196 1605/1531/196 1606/1532/196 1607/1533/196 -f 1605/1531/196 1608/1534/196 1609/1535/196 1606/1532/196 -f 1608/1534/196 1610/1536/196 1611/1537/196 1609/1535/196 -f 1610/1538/196 1612/1539/196 1613/1540/196 1611/1541/196 -f 1612/1539/195 1614/1542/195 1615/1543/195 1613/1540/195 -f 1614/1542/196 1616/1544/196 1617/1545/196 1615/1543/196 -f 1616/1544/196 1618/1546/196 1619/1547/196 1617/1545/196 -f 1618/1546/195 1604/1530/195 1607/1533/195 1619/1547/195 -f 1668/1548/197 1669/1549/197 1670/1550/197 1671/1551/197 -f 1672/1552/198 1673/1553/198 1671/1551/198 1670/1550/198 -f 1674/1554/199 1672/1555/199 1670/1550/199 1669/1549/199 -f 1675/1556/200 1674/1557/200 1669/1549/200 1668/1548/200 -f 1673/1558/201 1675/1559/201 1668/1548/201 1671/1551/201 -f 1676/1560/202 1677/1561/202 1678/1562/202 1679/1563/202 -f 1680/1564/203 1681/1565/203 1679/1563/203 1678/1562/203 -f 1682/1566/204 1680/1567/204 1678/1562/204 1677/1561/204 -f 1683/1568/205 1682/1569/205 1677/1561/205 1676/1560/205 -f 1681/1570/206 1683/1571/206 1676/1560/206 1679/1563/206 -f 1684/1572/207 1685/1573/207 1686/1574/207 1687/1575/207 -f 1688/1576/208 1689/1577/208 1687/1575/208 1686/1574/208 -f 1690/1578/209 1688/1579/209 1686/1574/209 1685/1573/209 -f 1691/1580/210 1690/1581/210 1685/1573/210 1684/1572/210 -f 1689/1582/211 1691/1583/211 1684/1572/211 1687/1575/211 -f 1692/1584/212 1693/1585/212 1694/1586/212 1695/1587/212 -f 1696/1588/213 1697/1589/213 1695/1587/213 1694/1586/213 -f 1698/1590/214 1696/1591/214 1694/1586/214 1693/1585/214 -f 1699/1592/215 1698/1593/215 1693/1585/215 1692/1584/215 -f 1697/1594/216 1699/1595/216 1692/1584/216 1695/1587/216 -f 1700/1596/217 1701/1597/217 1702/1598/217 1703/1599/217 -f 1704/1600/218 1705/1601/218 1703/1599/218 1702/1598/218 -f 1706/1602/219 1704/1603/219 1702/1598/219 1701/1597/219 -f 1707/1604/220 1706/1605/220 1701/1597/220 1700/1596/220 -f 1705/1606/221 1707/1607/221 1700/1596/221 1703/1599/221 -f 1708/1608/222 1709/1609/222 1710/1610/222 1711/1611/222 -f 1712/1612/223 1713/1613/223 1711/1611/223 1710/1610/223 -f 1714/1614/224 1712/1615/224 1710/1610/224 1709/1609/224 -f 1715/1616/225 1714/1617/225 1709/1609/225 1708/1608/225 -f 1713/1618/226 1715/1619/226 1708/1608/226 1711/1611/226 -f 1716/1620/227 1717/1621/227 1718/1622/227 1719/1623/227 -f 1720/1624/228 1721/1625/228 1719/1623/228 1718/1622/228 -f 1722/1626/229 1720/1627/229 1718/1622/229 1717/1621/229 -f 1723/1628/230 1722/1629/230 1717/1621/230 1716/1620/230 -f 1721/1630/231 1723/1631/231 1716/1620/231 1719/1623/231 -f 1724/1632/232 1725/1633/232 1726/1634/232 1727/1635/232 -f 1728/1636/233 1729/1637/233 1727/1635/233 1726/1634/233 -f 1730/1638/234 1728/1639/234 1726/1634/234 1725/1633/234 -f 1731/1640/235 1730/1641/235 1725/1633/235 1724/1632/235 -f 1729/1642/236 1731/1643/236 1724/1632/236 1727/1635/236 -f 1732/1644/237 1733/1645/237 1734/1646/237 1735/1647/237 -f 1736/1648/238 1737/1649/238 1735/1647/238 1734/1646/238 -f 1738/1650/239 1736/1651/239 1734/1646/239 1733/1645/239 -f 1739/1652/240 1738/1653/240 1733/1645/240 1732/1644/240 -f 1737/1654/241 1739/1655/241 1732/1644/241 1735/1647/241 -f 1740/1656/242 1741/1657/242 1742/1658/242 1743/1659/242 -f 1744/1660/243 1745/1661/243 1743/1659/243 1742/1658/243 -f 1746/1662/244 1744/1663/244 1742/1658/244 1741/1657/244 -f 1747/1664/245 1746/1665/245 1741/1657/245 1740/1656/245 -f 1745/1666/246 1747/1667/246 1740/1656/246 1743/1659/246 -f 1748/1668/247 1749/1669/247 1750/1670/247 1751/1671/247 -f 1752/1672/248 1753/1673/248 1751/1671/248 1750/1670/248 -f 1754/1674/249 1752/1675/249 1750/1670/249 1749/1669/249 -f 1755/1676/250 1754/1677/250 1749/1669/250 1748/1668/250 -f 1753/1678/251 1755/1679/251 1748/1668/251 1751/1671/251 -f 1756/1680/252 1757/1681/252 1758/1682/252 1759/1683/252 -f 1760/1684/253 1761/1685/253 1759/1683/253 1758/1682/253 -f 1762/1686/254 1760/1687/254 1758/1682/254 1757/1681/254 -f 1763/1688/255 1762/1689/255 1757/1681/255 1756/1680/255 -f 1761/1690/256 1763/1691/256 1756/1680/256 1759/1683/256 -f 1764/1692/257 1765/1693/257 1766/1694/257 1767/1695/257 -f 1768/1696/258 1769/1697/258 1767/1695/258 1766/1694/258 -f 1770/1698/259 1768/1699/259 1766/1694/259 1765/1693/259 -f 1771/1700/260 1770/1701/260 1765/1693/260 1764/1692/260 -f 1769/1702/261 1771/1703/261 1764/1692/261 1767/1695/261 -f 1772/1704/262 1773/1705/262 1774/1706/262 1775/1707/262 -f 1776/1708/263 1777/1709/263 1775/1707/263 1774/1706/263 -f 1778/1710/264 1776/1711/264 1774/1706/264 1773/1705/264 -f 1779/1712/265 1778/1713/265 1773/1705/265 1772/1704/265 -f 1777/1714/266 1779/1715/266 1772/1704/266 1775/1707/266 -f 1780/1716/267 1781/1717/267 1782/1718/267 1783/1719/267 -f 1784/1720/268 1785/1721/268 1783/1719/268 1782/1718/268 -f 1786/1722/269 1784/1723/269 1782/1718/269 1781/1717/269 -f 1787/1724/270 1786/1725/270 1781/1717/270 1780/1716/270 -f 1785/1726/271 1787/1727/271 1780/1716/271 1783/1719/271 +f 332/784/124 331/787/124 534/790/124 531/785/124 +f 531/785/138 534/790/138 533/791/138 532/792/138 +f 535/793/127 536/794/127 537/795/127 538/796/127 +f 539/797/126 540/798/126 541/799/126 542/800/126 +f 538/796/154 537/795/154 540/798/154 539/797/154 543/801/154 544/802/154 +f 544/802/155 543/801/155 545/803/155 546/804/155 +f 539/805/156 542/806/156 545/803/156 543/801/156 +f 535/807/157 538/808/157 544/802/157 546/804/157 +f 265/390/124 277/389/124 276/809/124 1051/810/124 +f 547/811/158 548/812/158 549/813/158 550/814/158 +f 551/815/127 552/816/127 553/817/127 549/818/127 548/819/127 554/820/127 +f 550/814/148 549/813/148 553/821/148 555/822/148 +f 555/822/159 553/821/159 552/823/159 556/824/159 +f 556/825/126 557/826/126 558/827/126 547/828/126 550/829/126 555/830/126 +f 559/831/124 560/832/124 561/833/124 562/834/124 +f 561/833/127 560/832/127 563/835/127 564/836/127 +f 559/831/126 562/834/126 565/837/126 566/838/126 +f 567/839/136 568/840/136 569/841/136 570/842/136 +f 571/843/127 572/844/127 570/842/127 569/841/127 +f 573/845/126 574/846/126 568/840/126 567/839/126 +f 574/847/125 571/848/125 569/841/125 568/840/125 +f 572/849/124 573/850/124 567/839/124 570/842/124 +f 575/851/136 576/852/136 577/853/136 578/854/136 +f 579/855/124 580/856/124 578/854/124 577/853/124 +f 581/857/125 582/858/125 576/852/125 575/851/125 +f 582/859/127 579/860/127 577/853/127 576/852/127 +f 580/861/126 581/862/126 575/851/126 578/854/126 +f 583/863/124 584/864/124 585/865/124 586/866/124 +f 587/867/160 588/868/160 589/869/160 590/870/160 +f 591/871/161 592/872/161 593/873/161 594/874/161 +f 586/866/162 585/865/162 592/872/162 591/871/162 +f 590/870/163 589/869/163 584/875/163 583/876/163 +f 594/874/125 593/873/125 588/868/125 587/867/125 +f 594/877/127 587/878/127 590/879/127 583/880/127 586/881/127 591/882/127 +f 595/883/125 596/884/125 597/885/125 598/886/125 +f 599/887/124 600/888/124 601/889/124 602/890/124 +f 596/891/160 603/892/160 604/893/160 597/894/160 +f 605/895/161 595/896/161 598/897/161 606/898/161 +f 600/899/162 605/900/162 606/901/162 601/902/162 +f 603/903/163 599/904/163 602/905/163 604/906/163 +f 602/890/126 601/889/126 607/907/126 608/908/126 +f 597/894/126 604/893/126 609/909/126 610/910/126 +f 606/898/126 598/897/126 611/911/126 612/912/126 +f 601/902/126 606/901/126 612/912/126 607/907/126 +f 604/906/126 602/905/126 608/913/126 609/909/126 +f 598/886/126 597/885/126 610/910/126 611/911/126 +f 607/907/162 612/912/162 613/914/162 614/915/162 +f 609/909/163 608/913/163 615/916/163 616/917/163 +f 611/911/125 610/910/125 617/918/125 618/919/125 +f 608/908/124 607/907/124 614/915/124 615/920/124 +f 610/910/160 609/909/160 616/917/160 617/918/160 +f 612/912/161 611/911/161 618/919/161 613/914/161 +f 617/918/127 616/917/127 619/921/127 620/922/127 +f 618/919/127 617/918/127 620/923/127 621/924/127 +f 613/914/127 618/919/127 621/925/127 622/926/127 +f 614/915/127 613/914/127 622/927/127 623/928/127 +f 615/920/127 614/915/127 623/929/127 624/930/127 +f 616/917/127 615/916/127 624/931/127 619/932/127 +f 619/932/163 624/931/163 625/933/163 626/934/163 +f 621/924/125 620/923/125 627/935/125 628/936/125 +f 624/930/124 623/929/124 629/937/124 625/938/124 +f 620/922/160 619/921/160 626/939/160 627/940/160 +f 622/926/161 621/925/161 628/941/161 630/942/161 +f 623/928/162 622/927/162 630/943/162 629/944/162 +f 627/940/126 626/939/126 631/945/126 632/946/126 +f 628/936/126 627/935/126 632/946/126 633/947/126 +f 630/942/126 628/941/126 633/947/126 634/948/126 +f 629/944/126 630/943/126 634/948/126 635/949/126 +f 625/938/126 629/937/126 635/949/126 636/950/126 +f 626/934/126 625/933/126 636/951/126 631/945/126 +f 633/947/125 632/946/125 637/952/125 638/953/125 +f 636/950/124 635/949/124 639/954/124 640/955/124 +f 632/946/160 631/945/160 641/956/160 637/952/160 +f 634/948/161 633/947/161 638/953/161 642/957/161 +f 635/949/162 634/948/162 642/957/162 639/954/162 +f 631/945/163 636/951/163 640/958/163 641/956/163 +f 642/957/164 638/953/164 643/959/164 644/960/164 +f 639/954/165 642/957/165 644/961/165 645/962/165 +f 641/956/166 640/958/166 646/963/166 647/964/166 +f 638/953/167 637/952/167 648/965/167 643/966/167 +f 640/955/168 639/954/168 645/967/168 646/968/168 +f 637/952/169 641/956/169 647/969/169 648/970/169 +f 643/971/127 648/972/127 647/973/127 646/974/127 645/975/127 644/976/127 +f 649/977/125 650/978/125 651/979/125 652/980/125 +f 653/981/126 654/982/126 655/983/126 656/984/126 657/985/126 +f 652/980/136 651/979/136 658/986/136 659/987/136 +f 651/979/127 650/978/127 660/988/127 658/989/127 +f 649/977/126 652/980/126 659/990/126 661/991/126 +f 662/992/170 663/993/170 664/994/170 665/995/170 +f 666/996/126 662/997/126 665/998/126 667/999/126 +f 668/1000/134 666/996/134 667/999/134 669/1001/134 +f 663/993/127 668/1000/127 669/1001/127 664/994/127 +f 654/982/171 653/981/171 670/1002/171 671/1003/171 +f 657/1004/136 656/1005/136 672/1006/136 673/1007/136 +f 671/1003/127 670/1002/127 673/1008/127 672/1006/127 674/1009/127 +f 654/982/170 671/1003/170 674/1010/170 655/1011/170 +f 655/1012/172 674/1009/172 672/1006/172 656/1005/172 +f 670/1002/134 653/981/134 657/1013/134 673/1014/134 +f 675/1015/170 676/1016/170 677/1017/170 678/1018/170 +f 679/1019/127 680/1020/127 677/1021/127 676/1022/127 +f 681/1023/126 682/1024/126 675/1015/126 678/1018/126 +f 680/1020/172 681/1023/172 678/1018/172 677/1021/172 +f 682/1025/171 679/1019/171 676/1022/171 675/1026/171 +f 684/1027/126 692/1028/126 693/1029/126 694/1030/126 +f 695/1031/173 696/1032/173 685/1033/173 697/1034/173 +f 692/1035/174 701/1036/174 702/1037/174 693/1029/174 +f 329/480/125 454/1038/125 1791/1039/125 1790/1040/125 +f 715/1041/131 716/1042/131 717/1043/131 718/1044/131 +f 259/365/131 454/1038/131 719/1045/131 720/1046/131 +f 329/480/131 260/366/131 721/1047/131 722/1048/131 +f 259/365/131 720/1046/131 716/1042/131 715/1041/131 721/1047/131 260/366/131 +f 454/1038/131 329/480/131 722/1048/131 718/1044/131 717/1043/131 719/1045/131 +f 271/378/128 723/1049/128 724/1050/128 453/1051/128 +f 270/1052/128 725/1053/128 723/1049/128 271/378/128 +f 270/1052/128 330/481/128 726/1054/128 725/1053/128 +f 453/1051/128 724/1050/128 726/1054/128 330/481/128 +f 725/1055/175 726/1056/175 727/1057/175 728/1058/175 +f 721/1059/128 715/1060/128 729/1061/128 730/1062/128 +f 716/1063/176 731/1064/176 732/1065/176 717/1066/176 +f 733/1067/131 730/1062/131 729/1061/131 734/1068/131 +f 719/1069/136 735/1070/136 736/1071/136 720/1072/136 +f 737/1073/128 728/1074/128 727/1057/128 738/1075/128 +f 715/1076/177 718/1077/177 734/1068/177 729/1078/177 +f 720/1079/128 736/1071/128 731/1080/128 716/1081/128 +f 722/1082/178 721/1083/178 730/1084/178 733/1067/178 +f 718/1077/130 722/1082/130 733/1067/130 734/1068/130 +f 738/1075/129 727/1057/129 726/1056/129 724/1085/129 +f 728/1074/131 737/1073/131 723/1086/131 725/1087/131 +f 739/1088/126 740/1089/126 741/1090/126 742/1091/126 +f 740/1092/179 743/1093/179 744/1094/179 741/1095/179 +f 745/1096/127 746/1097/127 747/1098/127 748/1099/127 +f 749/1100/180 739/1088/180 742/1091/180 750/1101/180 +f 748/1099/127 747/1098/127 751/1102/127 752/1103/127 +f 741/1095/181 744/1094/181 753/1104/181 754/1105/181 +f 749/1106/127 743/1107/127 755/1108/127 +f 755/1108/172 756/1109/172 739/1088/172 749/1100/172 +f 756/1109/126 740/1110/126 739/1111/126 +f 746/1112/127 745/1113/127 757/1114/127 +f 757/1114/172 758/1115/172 759/1116/172 746/1097/172 +f 758/1115/126 760/1117/126 759/1118/126 +f 761/1119/136 762/1120/136 756/1109/136 755/1108/136 +f 763/1121/132 764/1122/132 743/1107/132 740/1123/132 +f 765/1124/127 766/1125/127 757/1114/127 745/1113/127 +f 767/1126/126 768/1127/126 760/1117/126 758/1115/126 +f 762/1120/126 763/1128/126 740/1110/126 756/1109/126 +f 766/1125/136 767/1126/136 758/1115/136 757/1114/136 +f 768/1129/132 765/1124/132 745/1113/132 760/1130/132 +f 764/1122/127 761/1119/127 755/1108/127 743/1107/127 +f 760/1131/179 745/1096/179 748/1099/179 769/1132/179 +f 743/1093/127 749/1100/127 750/1101/127 744/1094/127 +f 770/1133/125 771/1134/125 772/1135/125 773/1136/125 +f 732/1065/131 731/1080/131 736/1071/131 735/1070/131 +f 717/1066/130 732/1065/130 735/1070/130 719/1137/130 +f 737/1073/136 738/1075/136 724/1138/136 723/1139/136 +f 747/1098/182 774/1140/182 775/1141/182 751/1102/182 +f 774/1140/126 769/1142/126 776/1143/126 775/1141/126 +f 742/1091/126 741/1090/126 754/1144/126 777/1145/126 +f 769/1132/181 748/1099/181 752/1103/181 776/1146/181 +f 744/1094/127 750/1101/127 778/1147/127 753/1104/127 +f 750/1101/182 742/1091/182 777/1145/182 778/1147/182 +f 759/1116/126 760/1148/126 769/1142/126 774/1140/126 +f 746/1097/180 759/1116/180 774/1140/180 747/1098/180 +f 779/1149/162 780/1150/162 781/1151/162 782/1152/162 +f 771/1134/132 783/1153/132 784/1154/132 772/1135/132 +f 782/1152/124 781/1151/124 785/1155/124 786/1156/124 +f 783/1153/124 787/1157/124 788/1158/124 784/1154/124 +f 786/1159/163 785/1160/163 789/1161/163 790/1162/163 +f 787/1157/136 770/1163/136 773/1164/136 788/1158/136 +f 790/1162/160 789/1161/160 791/1165/160 792/1166/160 +f 781/1167/127 780/1168/127 793/1169/127 791/1170/127 789/1171/127 785/1172/127 +f 792/1166/125 791/1165/125 793/1173/125 794/1174/125 +f 794/1174/161 793/1173/161 780/1150/161 779/1149/161 +f 779/1175/126 782/1176/126 786/1177/126 790/1178/126 792/1179/126 794/1180/126 +f 784/1154/129 788/1158/129 795/1181/129 796/1182/129 +f 784/1183/132 796/1182/132 772/1184/132 +f 773/1185/136 795/1181/136 788/1186/136 +f 795/1181/136 773/1185/136 797/1187/136 798/1188/136 +f 798/1189/124 797/1190/124 799/1191/124 800/1192/124 +f 796/1182/127 795/1181/127 798/1188/127 801/1193/127 +f 772/1184/132 796/1182/132 801/1193/132 802/1194/132 +f 773/1195/126 772/1184/126 802/1194/126 797/1196/126 +f 798/1189/127 803/1197/127 801/1198/127 +f 802/1199/126 804/1200/126 797/1201/126 +f 801/1193/170 803/1197/170 804/1200/170 802/1194/170 +f 805/1202/180 806/1203/180 807/1204/180 808/1205/180 +f 803/1197/127 798/1189/127 800/1192/127 806/1203/127 +f 804/1200/125 803/1197/125 806/1203/125 805/1202/125 +f 797/1201/126 804/1200/126 805/1202/126 799/1206/126 +f 809/1207/127 810/1208/127 807/1209/127 +f 799/1206/126 805/1202/126 808/1205/126 811/1210/126 +f 800/1192/179 799/1191/179 811/1211/179 809/1212/179 +f 806/1203/127 800/1192/127 809/1212/127 807/1204/127 +f 807/1204/172 810/1208/172 812/1213/172 808/1205/172 +f 811/1214/126 812/1213/126 813/1215/126 814/1216/126 +f 811/1214/126 808/1217/126 812/1213/126 +f 815/1218/132 814/1219/132 816/1220/132 817/1221/132 +f 809/1207/132 811/1222/132 814/1223/132 818/1224/132 +f 810/1208/127 809/1207/127 818/1224/127 819/1225/127 +f 812/1213/136 810/1208/136 819/1225/136 813/1215/136 +f 819/1226/136 820/1227/136 813/1228/136 +f 818/1224/129 815/1218/129 820/1227/129 819/1225/129 +f 814/1219/132 815/1218/132 818/1229/132 +f 814/1230/125 813/1228/125 821/1231/125 816/1232/125 +f 813/1228/136 820/1227/136 822/1233/136 821/1231/136 +f 820/1227/124 815/1218/124 817/1221/124 822/1233/124 +f 660/1234/124 661/1235/124 659/1236/124 658/1237/124 +f 1052/1238/183 1053/1239/183 1054/1240/183 1055/1241/183 +f 1056/1242/183 1057/1243/183 1058/1244/183 1059/1245/183 +f 1060/1246/183 1061/1247/183 1062/1248/183 1063/1249/183 +f 1061/1247/183 1064/1250/183 1065/1251/183 1062/1248/183 +f 1066/1252/183 1052/1238/183 1055/1241/183 1067/1253/183 +f 1053/1239/183 1056/1242/183 1059/1245/183 1054/1240/183 +f 1057/1243/183 1060/1246/183 1063/1249/183 1058/1244/183 +f 1064/1250/183 1066/1254/183 1067/1255/183 1065/1251/183 +f 1068/1256/183 1069/1257/183 1070/1258/183 1071/1259/183 1072/1260/183 1073/1261/183 1074/1262/183 1075/1263/183 +f 1076/1264/183 1077/1265/183 1078/1266/183 1079/1267/183 +f 1077/1265/183 1080/1268/183 1081/1269/183 1078/1266/183 +f 1080/1268/184 1082/1270/184 1083/1271/184 1081/1269/184 +f 1082/1272/184 1084/1273/184 1085/1274/184 1083/1275/184 +f 1084/1273/183 1086/1276/183 1087/1277/183 1085/1274/183 +f 1086/1276/184 1088/1278/184 1089/1279/184 1087/1277/184 +f 1088/1278/184 1090/1280/184 1091/1281/184 1089/1279/184 +f 1090/1280/184 1076/1264/184 1079/1267/184 1091/1281/184 +f 1140/1282/185 1141/1283/185 1142/1284/185 1143/1285/185 +f 1144/1286/185 1145/1287/185 1146/1288/185 1147/1289/185 +f 1148/1290/185 1149/1291/185 1150/1292/185 1151/1293/185 +f 1149/1291/185 1152/1294/185 1153/1295/185 1150/1292/185 +f 1154/1296/185 1140/1282/185 1143/1285/185 1155/1297/185 +f 1141/1283/185 1144/1286/185 1147/1289/185 1142/1284/185 +f 1145/1287/185 1148/1290/185 1151/1293/185 1146/1288/185 +f 1152/1294/185 1154/1298/185 1155/1299/185 1153/1295/185 +f 1156/1300/185 1157/1301/185 1158/1302/185 1159/1303/185 1160/1304/185 1161/1305/185 1162/1306/185 1163/1307/185 +f 1164/1308/185 1165/1309/185 1166/1310/185 1167/1311/185 +f 1165/1309/185 1168/1312/185 1169/1313/185 1166/1310/185 +f 1168/1312/186 1170/1314/186 1171/1315/186 1169/1313/186 +f 1170/1316/186 1172/1317/186 1173/1318/186 1171/1319/186 +f 1172/1317/185 1174/1320/185 1175/1321/185 1173/1318/185 +f 1174/1320/185 1176/1322/185 1177/1323/185 1175/1321/185 +f 1176/1322/186 1178/1324/186 1179/1325/186 1177/1323/186 +f 1178/1324/185 1164/1308/185 1167/1311/185 1179/1325/185 +f 1228/1326/187 1229/1327/187 1230/1328/187 1231/1329/187 +f 1232/1330/187 1233/1331/187 1234/1332/187 1235/1333/187 +f 1236/1334/187 1237/1335/187 1238/1336/187 1239/1337/187 +f 1237/1335/187 1240/1338/187 1241/1339/187 1238/1336/187 +f 1242/1340/187 1228/1326/187 1231/1329/187 1243/1341/187 +f 1229/1327/187 1232/1330/187 1235/1333/187 1230/1328/187 +f 1233/1331/187 1236/1334/187 1239/1337/187 1234/1332/187 +f 1240/1338/187 1242/1342/187 1243/1343/187 1241/1339/187 +f 1244/1344/187 1245/1345/187 1246/1346/187 1247/1347/187 1248/1348/187 1249/1349/187 1250/1350/187 1251/1351/187 +f 1252/1352/187 1253/1353/187 1254/1354/187 1255/1355/187 +f 1253/1353/187 1256/1356/187 1257/1357/187 1254/1354/187 +f 1256/1356/188 1258/1358/188 1259/1359/188 1257/1357/188 +f 1258/1360/188 1260/1361/188 1261/1362/188 1259/1363/188 +f 1260/1361/188 1262/1364/188 1263/1365/188 1261/1362/188 +f 1262/1364/188 1264/1366/188 1265/1367/188 1263/1365/188 +f 1264/1366/188 1266/1368/188 1267/1369/188 1265/1367/188 +f 1266/1368/187 1252/1352/187 1255/1355/187 1267/1369/187 +f 1316/1370/189 1317/1371/189 1318/1372/189 1319/1373/189 +f 1320/1374/189 1321/1375/189 1322/1376/189 1323/1377/189 +f 1324/1378/190 1325/1379/190 1326/1380/190 1327/1381/190 +f 1325/1379/189 1328/1382/189 1329/1383/189 1326/1380/189 +f 1330/1384/189 1316/1370/189 1319/1373/189 1331/1385/189 +f 1317/1371/189 1320/1374/189 1323/1377/189 1318/1372/189 +f 1321/1375/189 1324/1378/189 1327/1381/189 1322/1376/189 +f 1328/1382/189 1330/1386/189 1331/1387/189 1329/1383/189 +f 1332/1388/189 1333/1389/189 1334/1390/189 1335/1391/189 1336/1392/189 1337/1393/189 1338/1394/189 1339/1395/189 +f 1340/1396/190 1341/1397/190 1342/1398/190 1343/1399/190 +f 1341/1397/190 1344/1400/190 1345/1401/190 1342/1398/190 +f 1344/1400/190 1346/1402/190 1347/1403/190 1345/1401/190 +f 1346/1404/190 1348/1405/190 1349/1406/190 1347/1407/190 +f 1348/1405/189 1350/1408/189 1351/1409/189 1349/1406/189 +f 1350/1408/190 1352/1410/190 1353/1411/190 1351/1409/190 +f 1352/1410/190 1354/1412/190 1355/1413/190 1353/1411/190 +f 1354/1412/189 1340/1396/189 1343/1399/189 1355/1413/189 +f 1404/1414/191 1405/1415/191 1406/1416/191 1407/1417/191 +f 1408/1418/191 1409/1419/191 1410/1420/191 1411/1421/191 +f 1412/1422/192 1413/1423/192 1414/1424/192 1415/1425/192 +f 1413/1423/191 1416/1426/191 1417/1427/191 1414/1424/191 +f 1418/1428/191 1404/1414/191 1407/1417/191 1419/1429/191 +f 1405/1415/191 1408/1418/191 1411/1421/191 1406/1416/191 +f 1409/1419/191 1412/1422/191 1415/1425/191 1410/1420/191 +f 1416/1426/191 1418/1430/191 1419/1431/191 1417/1427/191 +f 1420/1432/191 1421/1433/191 1422/1434/191 1423/1435/191 1424/1436/191 1425/1437/191 1426/1438/191 1427/1439/191 +f 1428/1440/192 1429/1441/192 1430/1442/192 1431/1443/192 +f 1429/1441/192 1432/1444/192 1433/1445/192 1430/1442/192 +f 1432/1444/192 1434/1446/192 1435/1447/192 1433/1445/192 +f 1434/1448/192 1436/1449/192 1437/1450/192 1435/1451/192 +f 1436/1449/191 1438/1452/191 1439/1453/191 1437/1450/191 +f 1438/1452/192 1440/1454/192 1441/1455/192 1439/1453/192 +f 1440/1454/192 1442/1456/192 1443/1457/192 1441/1455/192 +f 1442/1456/191 1428/1440/191 1431/1443/191 1443/1457/191 +f 1492/1458/193 1493/1459/193 1494/1460/193 1495/1461/193 +f 1496/1462/193 1497/1463/193 1498/1464/193 1499/1465/193 +f 1500/1466/194 1501/1467/194 1502/1468/194 1503/1469/194 +f 1501/1467/193 1504/1470/193 1505/1471/193 1502/1468/193 +f 1506/1472/193 1492/1458/193 1495/1461/193 1507/1473/193 +f 1493/1459/193 1496/1462/193 1499/1465/193 1494/1460/193 +f 1497/1463/193 1500/1466/193 1503/1469/193 1498/1464/193 +f 1504/1470/193 1506/1474/193 1507/1475/193 1505/1471/193 +f 1508/1476/193 1509/1477/193 1510/1478/193 1511/1479/193 1512/1480/193 1513/1481/193 1514/1482/193 1515/1483/193 +f 1516/1484/194 1517/1485/194 1518/1486/194 1519/1487/194 +f 1517/1485/194 1520/1488/194 1521/1489/194 1518/1486/194 +f 1520/1488/194 1522/1490/194 1523/1491/194 1521/1489/194 +f 1522/1492/194 1524/1493/194 1525/1494/194 1523/1495/194 +f 1524/1493/193 1526/1496/193 1527/1497/193 1525/1494/193 +f 1526/1496/194 1528/1498/194 1529/1499/194 1527/1497/194 +f 1528/1498/194 1530/1500/194 1531/1501/194 1529/1499/194 +f 1530/1500/194 1516/1484/194 1519/1487/194 1531/1501/194 +f 1580/1502/195 1581/1503/195 1582/1504/195 1583/1505/195 +f 1584/1506/195 1585/1507/195 1586/1508/195 1587/1509/195 +f 1588/1510/195 1589/1511/195 1590/1512/195 1591/1513/195 +f 1589/1511/195 1592/1514/195 1593/1515/195 1590/1512/195 +f 1594/1516/195 1580/1502/195 1583/1505/195 1595/1517/195 +f 1581/1503/195 1584/1506/195 1587/1509/195 1582/1504/195 +f 1585/1507/195 1588/1510/195 1591/1513/195 1586/1508/195 +f 1592/1514/195 1594/1518/195 1595/1519/195 1593/1515/195 +f 1596/1520/195 1597/1521/195 1598/1522/195 1599/1523/195 1600/1524/195 1601/1525/195 1602/1526/195 1603/1527/195 +f 1604/1528/196 1605/1529/196 1606/1530/196 1607/1531/196 +f 1605/1529/196 1608/1532/196 1609/1533/196 1606/1530/196 +f 1608/1532/196 1610/1534/196 1611/1535/196 1609/1533/196 +f 1610/1536/196 1612/1537/196 1613/1538/196 1611/1539/196 +f 1612/1537/195 1614/1540/195 1615/1541/195 1613/1538/195 +f 1614/1540/196 1616/1542/196 1617/1543/196 1615/1541/196 +f 1616/1542/196 1618/1544/196 1619/1545/196 1617/1543/196 +f 1618/1544/195 1604/1528/195 1607/1531/195 1619/1545/195 +f 1668/1546/197 1669/1547/197 1670/1548/197 1671/1549/197 +f 1672/1550/198 1673/1551/198 1671/1549/198 1670/1548/198 +f 1674/1552/199 1672/1553/199 1670/1548/199 1669/1547/199 +f 1675/1554/200 1674/1555/200 1669/1547/200 1668/1546/200 +f 1673/1556/201 1675/1557/201 1668/1546/201 1671/1549/201 +f 1676/1558/202 1677/1559/202 1678/1560/202 1679/1561/202 +f 1680/1562/203 1681/1563/203 1679/1561/203 1678/1560/203 +f 1682/1564/204 1680/1565/204 1678/1560/204 1677/1559/204 +f 1683/1566/205 1682/1567/205 1677/1559/205 1676/1558/205 +f 1681/1568/206 1683/1569/206 1676/1558/206 1679/1561/206 +f 1684/1570/207 1685/1571/207 1686/1572/207 1687/1573/207 +f 1688/1574/208 1689/1575/208 1687/1573/208 1686/1572/208 +f 1690/1576/209 1688/1577/209 1686/1572/209 1685/1571/209 +f 1691/1578/210 1690/1579/210 1685/1571/210 1684/1570/210 +f 1689/1580/211 1691/1581/211 1684/1570/211 1687/1573/211 +f 1692/1582/212 1693/1583/212 1694/1584/212 1695/1585/212 +f 1696/1586/213 1697/1587/213 1695/1585/213 1694/1584/213 +f 1698/1588/214 1696/1589/214 1694/1584/214 1693/1583/214 +f 1699/1590/215 1698/1591/215 1693/1583/215 1692/1582/215 +f 1697/1592/216 1699/1593/216 1692/1582/216 1695/1585/216 +f 1700/1594/217 1701/1595/217 1702/1596/217 1703/1597/217 +f 1704/1598/218 1705/1599/218 1703/1597/218 1702/1596/218 +f 1706/1600/219 1704/1601/219 1702/1596/219 1701/1595/219 +f 1707/1602/220 1706/1603/220 1701/1595/220 1700/1594/220 +f 1705/1604/221 1707/1605/221 1700/1594/221 1703/1597/221 +f 1708/1606/222 1709/1607/222 1710/1608/222 1711/1609/222 +f 1712/1610/223 1713/1611/223 1711/1609/223 1710/1608/223 +f 1714/1612/224 1712/1613/224 1710/1608/224 1709/1607/224 +f 1715/1614/225 1714/1615/225 1709/1607/225 1708/1606/225 +f 1713/1616/226 1715/1617/226 1708/1606/226 1711/1609/226 +f 1716/1618/227 1717/1619/227 1718/1620/227 1719/1621/227 +f 1720/1622/228 1721/1623/228 1719/1621/228 1718/1620/228 +f 1722/1624/229 1720/1625/229 1718/1620/229 1717/1619/229 +f 1723/1626/230 1722/1627/230 1717/1619/230 1716/1618/230 +f 1721/1628/231 1723/1629/231 1716/1618/231 1719/1621/231 +f 1724/1630/232 1725/1631/232 1726/1632/232 1727/1633/232 +f 1728/1634/233 1729/1635/233 1727/1633/233 1726/1632/233 +f 1730/1636/234 1728/1637/234 1726/1632/234 1725/1631/234 +f 1731/1638/235 1730/1639/235 1725/1631/235 1724/1630/235 +f 1729/1640/236 1731/1641/236 1724/1630/236 1727/1633/236 +f 1732/1642/237 1733/1643/237 1734/1644/237 1735/1645/237 +f 1736/1646/238 1737/1647/238 1735/1645/238 1734/1644/238 +f 1738/1648/239 1736/1649/239 1734/1644/239 1733/1643/239 +f 1739/1650/240 1738/1651/240 1733/1643/240 1732/1642/240 +f 1737/1652/241 1739/1653/241 1732/1642/241 1735/1645/241 +f 1740/1654/242 1741/1655/242 1742/1656/242 1743/1657/242 +f 1744/1658/243 1745/1659/243 1743/1657/243 1742/1656/243 +f 1746/1660/244 1744/1661/244 1742/1656/244 1741/1655/244 +f 1747/1662/245 1746/1663/245 1741/1655/245 1740/1654/245 +f 1745/1664/246 1747/1665/246 1740/1654/246 1743/1657/246 +f 1748/1666/247 1749/1667/247 1750/1668/247 1751/1669/247 +f 1752/1670/248 1753/1671/248 1751/1669/248 1750/1668/248 +f 1754/1672/249 1752/1673/249 1750/1668/249 1749/1667/249 +f 1755/1674/250 1754/1675/250 1749/1667/250 1748/1666/250 +f 1753/1676/251 1755/1677/251 1748/1666/251 1751/1669/251 +f 1756/1678/252 1757/1679/252 1758/1680/252 1759/1681/252 +f 1760/1682/253 1761/1683/253 1759/1681/253 1758/1680/253 +f 1762/1684/254 1760/1685/254 1758/1680/254 1757/1679/254 +f 1763/1686/255 1762/1687/255 1757/1679/255 1756/1678/255 +f 1761/1688/256 1763/1689/256 1756/1678/256 1759/1681/256 +f 1764/1690/257 1765/1691/257 1766/1692/257 1767/1693/257 +f 1768/1694/258 1769/1695/258 1767/1693/258 1766/1692/258 +f 1770/1696/259 1768/1697/259 1766/1692/259 1765/1691/259 +f 1771/1698/260 1770/1699/260 1765/1691/260 1764/1690/260 +f 1769/1700/261 1771/1701/261 1764/1690/261 1767/1693/261 +f 1772/1702/262 1773/1703/262 1774/1704/262 1775/1705/262 +f 1776/1706/263 1777/1707/263 1775/1705/263 1774/1704/263 +f 1778/1708/264 1776/1709/264 1774/1704/264 1773/1703/264 +f 1779/1710/265 1778/1711/265 1773/1703/265 1772/1702/265 +f 1777/1712/266 1779/1713/266 1772/1702/266 1775/1705/266 +f 1780/1714/267 1781/1715/267 1782/1716/267 1783/1717/267 +f 1784/1718/268 1785/1719/268 1783/1717/268 1782/1716/268 +f 1786/1720/269 1784/1721/269 1782/1716/269 1781/1715/269 +f 1787/1722/270 1786/1723/270 1781/1715/270 1780/1714/270 +f 1785/1724/271 1787/1725/271 1780/1714/271 1783/1717/271 +f 1789/1726/126 1788/1727/126 1792/1728/126 1793/1729/126 +f 330/481/125 329/480/125 1790/1040/125 1788/1730/125 +f 453/1051/125 330/481/125 1788/1730/125 1789/1731/125 +f 454/1038/125 453/1051/125 1789/1731/125 1791/1039/125 +f 1793/1732/125 1792/1733/125 1794/1734/125 1795/1735/125 +f 1791/1736/136 1789/1737/136 1793/1738/136 1795/1739/136 +f 1788/1740/132 1790/1741/132 1794/1742/132 1792/1743/132 +f 1790/1744/127 1791/1745/127 1795/1746/127 1794/1747/127 s 1 -f 249/1728/272 248/1729/273 823/1730/273 824/1731/272 -f 246/1732/274 249/1728/272 824/1731/272 825/1733/274 -f 247/1734/275 246/1732/274 825/1733/274 826/1735/275 -f 243/1736/276 247/1734/275 826/1735/275 827/1737/276 -f 244/1738/277 243/1736/276 827/1737/276 828/1739/277 -f 245/1740/278 244/1738/277 828/1739/277 829/1741/278 -f 258/1742/279 245/1740/278 829/1741/278 830/1743/279 -f 256/1744/280 258/1742/279 830/1743/279 831/1745/280 -f 257/1746/281 256/1744/280 831/1745/280 832/1747/281 -f 254/1748/282 257/1749/281 832/1750/281 833/1751/282 -f 255/1752/283 254/1748/282 833/1751/282 834/1753/283 -f 252/1754/284 255/1752/283 834/1753/283 835/1755/284 -f 253/1756/285 252/1754/284 835/1755/284 836/1757/285 -f 250/1758/286 253/1756/285 836/1757/285 837/1759/286 -f 251/1760/287 250/1758/286 837/1759/286 838/1761/287 -f 248/1729/273 251/1760/287 838/1761/287 823/1730/273 -f 824/1731/124 823/1730/288 839/1762/288 840/1763/124 -f 825/1733/289 824/1731/124 840/1763/124 841/1764/289 -f 832/1747/125 831/1745/290 842/1765/290 843/1766/125 -f 823/1730/288 838/1761/129 844/1767/129 839/1762/288 -f 831/1745/290 830/1743/131 845/1768/131 842/1765/290 -f 838/1761/129 837/1759/291 846/1769/291 844/1767/129 -f 830/1743/131 829/1741/292 847/1770/292 845/1768/131 -f 837/1759/291 836/1757/127 848/1771/127 846/1769/291 -f 829/1741/292 828/1739/126 849/1772/126 847/1770/292 -f 836/1757/127 835/1755/293 850/1773/293 848/1771/127 -f 828/1739/126 827/1737/294 851/1774/294 849/1772/126 -f 835/1755/293 834/1753/128 852/1775/128 850/1773/293 -f 827/1737/294 826/1735/130 853/1776/130 851/1774/294 -f 834/1753/128 833/1751/295 854/1777/295 852/1775/128 -f 826/1735/130 825/1733/289 841/1764/289 853/1776/130 -f 833/1751/295 832/1750/125 843/1778/125 854/1777/295 -f 855/1779/296 856/1780/297 857/1781/298 858/1782/299 -f 859/1783/300 860/1784/151 861/1785/301 862/1786/302 -f 863/1787/303 864/1788/304 865/1789/305 866/1790/306 -f 864/1788/304 867/1791/307 868/1792/308 865/1789/305 -f 869/1793/149 855/1779/296 858/1782/299 870/1794/309 -f 856/1780/297 859/1783/300 862/1786/302 857/1781/298 -f 860/1784/151 863/1787/303 866/1790/306 861/1785/301 -f 867/1791/307 869/1795/149 870/1796/309 868/1792/308 -f 866/1790/306 865/1789/305 871/1797/310 872/1798/311 -f 862/1786/302 861/1785/301 873/1799/312 874/1800/313 -f 858/1782/299 857/1781/298 875/1801/314 876/1802/315 -f 868/1792/308 870/1796/309 877/1803/146 878/1804/316 -f 861/1785/301 866/1790/306 872/1798/311 873/1799/312 -f 857/1781/298 862/1786/302 874/1800/313 875/1801/314 -f 870/1794/309 858/1782/299 876/1802/315 877/1805/146 -f 865/1789/305 868/1792/308 878/1804/316 871/1797/310 -f 877/1805/146 876/1802/315 879/1806/317 880/1807/136 -f 871/1797/310 878/1804/316 881/1808/318 882/1809/319 -f 872/1798/311 871/1797/310 882/1809/319 883/1810/320 -f 874/1800/313 873/1799/312 884/1811/132 885/1812/321 -f 876/1802/315 875/1801/314 886/1813/322 879/1806/317 -f 878/1804/316 877/1803/146 880/1814/136 881/1808/318 -f 873/1799/312 872/1798/311 883/1810/320 884/1811/132 -f 875/1801/314 874/1800/313 885/1812/321 886/1813/322 -f 884/1811/132 883/1810/320 887/1815/323 888/1816/324 -f 886/1813/322 885/1812/321 889/1817/325 890/1818/326 -f 880/1807/136 879/1806/317 891/1819/327 892/1820/328 -f 882/1809/319 881/1808/318 893/1821/329 894/1822/330 -f 883/1810/320 882/1809/319 894/1822/330 887/1815/323 -f 885/1812/321 884/1811/132 888/1816/324 889/1817/325 -f 879/1806/317 886/1813/322 890/1818/326 891/1819/327 -f 881/1808/318 880/1814/136 892/1823/328 893/1821/329 -f 895/1824/291 896/1825/331 345/500/331 342/497/291 -f 897/1826/332 898/1827/333 333/488/333 347/502/332 -f 899/1828/292 900/1829/334 337/492/334 334/489/292 -f 901/1830/335 902/1831/336 341/496/336 338/493/335 -f 896/1825/331 897/1832/332 347/504/332 345/500/331 -f 898/1827/333 899/1828/292 334/489/292 333/488/333 -f 900/1829/334 901/1830/335 338/493/335 337/492/334 -f 902/1831/336 895/1824/291 342/497/291 341/496/336 -f 350/1833/334 349/1834/292 359/516/292 362/519/334 +f 249/1748/272 248/1749/273 823/1750/273 824/1751/272 +f 246/1752/274 249/1748/272 824/1751/272 825/1753/274 +f 247/1754/275 246/1752/274 825/1753/274 826/1755/275 +f 243/1756/276 247/1754/275 826/1755/275 827/1757/276 +f 244/1758/277 243/1756/276 827/1757/276 828/1759/277 +f 245/1760/278 244/1758/277 828/1759/277 829/1761/278 +f 258/1762/279 245/1760/278 829/1761/278 830/1763/279 +f 256/1764/280 258/1762/279 830/1763/279 831/1765/280 +f 257/1766/281 256/1764/280 831/1765/280 832/1767/281 +f 254/1768/282 257/1769/281 832/1770/281 833/1771/282 +f 255/1772/283 254/1768/282 833/1771/282 834/1773/283 +f 252/1774/284 255/1772/283 834/1773/283 835/1775/284 +f 253/1776/285 252/1774/284 835/1775/284 836/1777/285 +f 250/1778/286 253/1776/285 836/1777/285 837/1779/286 +f 251/1780/287 250/1778/286 837/1779/286 838/1781/287 +f 248/1749/273 251/1780/287 838/1781/287 823/1750/273 +f 824/1751/124 823/1750/288 839/1782/288 840/1783/124 +f 825/1753/289 824/1751/124 840/1783/124 841/1784/289 +f 832/1767/125 831/1765/290 842/1785/290 843/1786/125 +f 823/1750/288 838/1781/129 844/1787/129 839/1782/288 +f 831/1765/290 830/1763/131 845/1788/131 842/1785/290 +f 838/1781/129 837/1779/291 846/1789/291 844/1787/129 +f 830/1763/131 829/1761/292 847/1790/292 845/1788/131 +f 837/1779/291 836/1777/127 848/1791/127 846/1789/291 +f 829/1761/292 828/1759/126 849/1792/126 847/1790/292 +f 836/1777/127 835/1775/293 850/1793/293 848/1791/127 +f 828/1759/126 827/1757/294 851/1794/294 849/1792/126 +f 835/1775/293 834/1773/128 852/1795/128 850/1793/293 +f 827/1757/294 826/1755/130 853/1796/130 851/1794/294 +f 834/1773/128 833/1771/295 854/1797/295 852/1795/128 +f 826/1755/130 825/1753/289 841/1784/289 853/1796/130 +f 833/1771/295 832/1770/125 843/1798/125 854/1797/295 +f 855/1799/296 856/1800/297 857/1801/298 858/1802/299 +f 859/1803/300 860/1804/151 861/1805/301 862/1806/302 +f 863/1807/303 864/1808/304 865/1809/305 866/1810/306 +f 864/1808/304 867/1811/307 868/1812/308 865/1809/305 +f 869/1813/149 855/1799/296 858/1802/299 870/1814/309 +f 856/1800/297 859/1803/300 862/1806/302 857/1801/298 +f 860/1804/151 863/1807/303 866/1810/306 861/1805/301 +f 867/1811/307 869/1815/149 870/1816/309 868/1812/308 +f 866/1810/306 865/1809/305 871/1817/310 872/1818/311 +f 862/1806/302 861/1805/301 873/1819/312 874/1820/313 +f 858/1802/299 857/1801/298 875/1821/314 876/1822/315 +f 868/1812/308 870/1816/309 877/1823/146 878/1824/316 +f 861/1805/301 866/1810/306 872/1818/311 873/1819/312 +f 857/1801/298 862/1806/302 874/1820/313 875/1821/314 +f 870/1814/309 858/1802/299 876/1822/315 877/1825/146 +f 865/1809/305 868/1812/308 878/1824/316 871/1817/310 +f 877/1825/146 876/1822/315 879/1826/317 880/1827/136 +f 871/1817/310 878/1824/316 881/1828/318 882/1829/319 +f 872/1818/311 871/1817/310 882/1829/319 883/1830/320 +f 874/1820/313 873/1819/312 884/1831/132 885/1832/321 +f 876/1822/315 875/1821/314 886/1833/322 879/1826/317 +f 878/1824/316 877/1823/146 880/1834/136 881/1828/318 +f 873/1819/312 872/1818/311 883/1830/320 884/1831/132 +f 875/1821/314 874/1820/313 885/1832/321 886/1833/322 +f 884/1831/132 883/1830/320 887/1835/323 888/1836/324 +f 886/1833/322 885/1832/321 889/1837/325 890/1838/326 +f 880/1827/136 879/1826/317 891/1839/327 892/1840/328 +f 882/1829/319 881/1828/318 893/1841/329 894/1842/330 +f 883/1830/320 882/1829/319 894/1842/330 887/1835/323 +f 885/1832/321 884/1831/132 888/1836/324 889/1837/325 +f 879/1826/317 886/1833/322 890/1838/326 891/1839/327 +f 881/1828/318 880/1834/136 892/1843/328 893/1841/329 +f 895/1844/291 896/1845/331 345/500/331 342/497/291 +f 897/1846/332 898/1847/333 333/488/333 347/502/332 +f 899/1848/292 900/1849/334 337/492/334 334/489/292 +f 901/1850/335 902/1851/336 341/496/336 338/493/335 +f 896/1845/331 897/1852/332 347/504/332 345/500/331 +f 898/1847/333 899/1848/292 334/489/292 333/488/333 +f 900/1849/334 901/1850/335 338/493/335 337/492/334 +f 902/1851/336 895/1844/291 342/497/291 341/496/336 +f 350/1853/334 349/1854/292 359/516/292 362/519/334 f 344/499/336 343/498/291 358/515/291 357/514/336 -f 351/1835/335 350/1833/334 362/519/334 364/521/335 +f 351/1855/335 350/1853/334 362/519/334 364/521/335 f 343/498/291 346/501/331 361/518/331 358/515/291 -f 352/1836/336 351/1837/335 364/525/335 366/524/336 +f 352/1856/336 351/1857/335 364/525/335 366/524/336 f 346/501/331 348/505/332 363/520/332 361/518/331 -f 353/1838/291 352/1836/336 366/524/336 368/527/291 +f 353/1858/291 352/1856/336 366/524/336 368/527/291 f 348/503/332 336/491/333 365/523/333 363/522/332 f 339/494/335 344/499/336 357/514/336 371/530/335 -f 349/1834/292 356/1839/333 360/517/333 359/516/292 +f 349/1854/292 356/1859/333 360/517/333 359/516/292 f 340/495/334 339/494/335 371/530/335 369/528/334 -f 356/1839/333 355/1840/332 372/531/332 360/517/333 +f 356/1859/333 355/1860/332 372/531/332 360/517/333 f 335/490/292 340/495/334 369/528/334 367/526/292 -f 355/1840/332 354/1841/331 370/529/331 372/531/332 +f 355/1860/332 354/1861/331 370/529/331 372/531/332 f 336/491/333 335/490/292 367/526/292 365/523/333 -f 354/1841/331 353/1838/291 368/527/291 370/529/331 -f 845/1768/337 847/1770/338 431/1842/338 430/1843/337 -f 846/1769/339 848/1771/340 424/1844/340 423/1845/339 -f 847/1770/338 849/1772/341 432/1846/341 431/1847/338 -f 848/1771/340 850/1773/342 425/1848/342 424/1849/340 -f 849/1772/341 851/1774/343 433/1850/343 432/1851/341 -f 850/1773/342 852/1775/344 426/1852/344 425/1853/342 -f 851/1774/343 853/1776/345 434/1854/345 433/1855/343 -f 852/1775/344 854/1777/346 427/1856/346 426/1857/344 -f 853/1776/345 841/1764/347 435/1858/347 434/1859/345 -f 854/1777/346 843/1778/348 428/1860/348 427/1861/346 -f 840/1763/349 839/1762/350 421/1862/350 436/1863/349 -f 841/1764/347 840/1763/349 436/1864/349 435/1865/347 -f 843/1766/348 842/1765/351 429/1866/351 428/1867/348 -f 839/1762/350 844/1767/352 422/1868/352 421/1869/350 -f 842/1765/351 845/1768/337 430/1870/337 429/1871/351 -f 844/1767/352 846/1769/339 423/1872/339 422/1873/352 -f 903/1874/293 904/1875/295 382/545/295 381/544/293 -f 905/1876/288 906/1877/291 393/556/291 395/559/288 -f 907/1878/294 908/1879/289 397/566/289 399/565/294 -f 909/1880/290 910/1881/292 401/569/292 403/572/290 -f 906/1877/291 903/1874/293 381/544/293 393/556/291 -f 908/1882/289 905/1876/288 395/559/288 397/562/289 -f 910/1881/292 907/1878/294 399/565/294 401/569/292 -f 904/1875/295 909/1880/290 403/572/290 382/545/295 +f 354/1861/331 353/1858/291 368/527/291 370/529/331 +f 845/1788/337 847/1790/338 431/1862/338 430/1863/337 +f 846/1789/339 848/1791/340 424/1864/340 423/1865/339 +f 847/1790/338 849/1792/341 432/1866/341 431/1867/338 +f 848/1791/340 850/1793/342 425/1868/342 424/1869/340 +f 849/1792/341 851/1794/343 433/1870/343 432/1871/341 +f 850/1793/342 852/1795/344 426/1872/344 425/1873/342 +f 851/1794/343 853/1796/345 434/1874/345 433/1875/343 +f 852/1795/344 854/1797/346 427/1876/346 426/1877/344 +f 853/1796/345 841/1784/347 435/1878/347 434/1879/345 +f 854/1797/346 843/1798/348 428/1880/348 427/1881/346 +f 840/1783/349 839/1782/350 421/1882/350 436/1883/349 +f 841/1784/347 840/1783/349 436/1884/349 435/1885/347 +f 843/1786/348 842/1785/351 429/1886/351 428/1887/348 +f 839/1782/350 844/1787/352 422/1888/352 421/1889/350 +f 842/1785/351 845/1788/337 430/1890/337 429/1891/351 +f 844/1787/352 846/1789/339 423/1892/339 422/1893/352 +f 903/1894/293 904/1895/295 382/545/295 381/544/293 +f 905/1896/288 906/1897/291 393/556/291 395/559/288 +f 907/1898/294 908/1899/289 397/566/289 399/565/294 +f 909/1900/290 910/1901/292 401/569/292 403/572/290 +f 906/1897/291 903/1894/293 381/544/293 393/556/291 +f 908/1902/289 905/1896/288 395/559/288 397/562/289 +f 910/1901/292 907/1898/294 399/565/294 401/569/292 +f 904/1895/295 909/1900/290 403/572/290 382/545/295 f 384/547/293 383/546/295 407/579/295 406/578/293 -f 385/1883/288 392/1884/289 408/605/289 419/608/288 -f 392/1885/289 391/1886/294 405/577/294 408/580/289 +f 385/1903/288 392/1904/289 408/605/289 419/608/288 +f 392/1905/289 391/1906/294 405/577/294 408/580/289 f 394/558/291 384/557/293 406/583/293 410/582/291 -f 391/1887/294 390/1888/292 409/581/292 405/584/294 +f 391/1907/294 390/1908/292 409/581/292 405/584/294 f 396/561/288 394/560/291 410/587/291 412/586/288 -f 390/1889/292 389/1890/290 411/585/290 409/588/292 +f 390/1909/292 389/1910/290 411/585/290 409/588/292 f 398/564/289 396/563/288 412/591/288 414/590/289 f 383/576/295 404/575/290 420/607/290 407/606/295 -f 386/1891/291 385/1892/288 419/601/288 417/604/291 +f 386/1911/291 385/1912/288 419/601/288 417/604/291 f 404/574/290 402/573/292 418/603/292 420/602/290 -f 387/1893/293 386/1894/291 417/597/291 415/600/293 +f 387/1913/293 386/1914/291 417/597/291 415/600/293 f 402/571/292 400/570/294 416/599/294 418/598/292 -f 388/1895/295 387/1896/293 415/593/293 413/596/295 +f 388/1915/295 387/1916/293 415/593/293 413/596/295 f 400/568/294 398/567/289 414/595/289 416/594/294 -f 389/1897/290 388/1898/295 413/589/295 411/592/290 -f 445/1899/124 444/1900/289 465/1901/289 464/1902/124 -f 450/1903/290 452/1904/125 456/1905/125 455/1906/290 -f 452/1904/125 439/1907/295 457/1908/295 456/1905/125 -f 442/1909/288 445/1910/124 464/1911/124 463/1912/288 -f 451/1913/131 450/1903/290 455/1906/290 470/1914/131 -f 443/1915/129 442/1909/288 463/1912/288 462/1916/129 -f 448/1917/292 451/1913/131 470/1914/131 469/1918/292 -f 440/1919/291 443/1915/129 462/1916/129 461/1920/291 -f 449/1921/126 448/1917/292 469/1918/292 468/1922/126 -f 441/1923/127 440/1919/291 461/1920/291 460/1924/127 -f 446/1925/294 449/1921/126 468/1922/126 467/1926/294 -f 437/1927/293 441/1923/127 460/1924/127 459/1928/293 -f 447/1929/130 446/1925/294 467/1926/294 466/1930/130 -f 438/1931/128 437/1927/293 459/1928/293 458/1932/128 -f 444/1900/289 447/1929/130 466/1930/130 465/1901/289 -f 439/1907/295 438/1931/128 458/1932/128 457/1908/295 -f 911/1933/353 912/1934/173 688/1935/173 687/1936/353 -f 913/1937/126 914/1938/354 691/1939/354 690/1940/126 -f 694/1034/355 693/1033/355 702/1041/356 700/1941/356 -f 915/1942/357 911/1933/353 687/1936/353 686/1943/357 -f 916/1944/358 913/1937/126 690/1940/126 689/1945/358 -f 700/1941/356 702/1041/356 701/1946/359 699/1947/359 -f 917/1948/360 692/1949/361 684/1950/361 683/1951/360 -f 696/1952/362 915/1942/357 686/1943/357 685/1953/362 -f 912/1934/173 916/1944/358 689/1945/358 688/1935/173 -f 699/1947/359 701/1946/359 918/1954/127 698/1955/127 -f 914/1938/354 917/1948/360 683/1951/360 691/1939/354 -f 695/1035/363 697/1038/363 698/1955/127 918/1954/127 -f 919/1956/155 920/1957/356 709/1958/356 708/1959/155 -f 921/1960/126 922/1961/354 706/1962/354 705/1963/126 -f 923/1964/364 924/1965/357 713/1966/357 712/1967/364 -f 925/1968/353 926/1969/173 703/1970/173 714/1971/353 -f 920/1957/356 927/1972/359 710/1973/359 709/1958/356 -f 922/1961/354 928/1974/360 707/1975/360 706/1962/354 -f 924/1965/357 925/1976/353 714/1977/353 713/1966/357 -f 926/1969/173 929/1978/358 704/1979/358 703/1970/173 -f 927/1972/359 930/1980/127 711/1981/127 710/1973/359 -f 928/1974/360 919/1956/155 708/1959/155 707/1975/360 -f 929/1978/358 921/1960/126 705/1963/126 704/1979/358 -f 930/1980/127 923/1964/364 712/1967/364 711/1981/127 -f 931/1982/365 932/1983/366 933/1984/367 934/1985/368 -f 935/1986/369 936/1987/370 937/1988/371 938/1989/372 -f 939/1990/373 940/1991/374 941/1992/375 942/1993/376 -f 943/1994/377 944/1995/378 945/1996/379 946/1997/380 -f 946/1997/380 945/1996/379 940/1991/374 939/1990/373 -f 947/1998/381 948/1999/382 944/1995/378 943/1994/377 -f 945/1996/379 949/2000/383 950/2001/384 940/1991/374 -f 948/1999/382 951/2002/385 952/2003/386 944/1995/378 -f 940/1991/374 950/2001/384 953/2004/387 941/1992/375 -f 944/1995/378 952/2003/386 949/2000/383 945/1996/379 -f 954/2005/373 955/2006/374 956/2007/375 957/2008/376 -f 958/2009/377 959/2010/378 960/2011/379 961/2012/380 -f 961/2012/380 960/2011/379 955/2006/374 954/2005/373 -f 962/2013/381 963/2014/382 959/2010/378 958/2009/377 -f 960/2011/379 964/2015/383 965/2016/384 955/2006/374 -f 963/2014/382 966/2017/385 967/2018/386 959/2010/378 -f 955/2006/374 965/2016/384 968/2019/387 956/2007/375 -f 959/2010/378 967/2018/386 964/2015/383 960/2011/379 -f 969/2020/373 970/2021/374 971/2022/375 972/2023/376 -f 973/2024/377 974/2025/388 975/2026/379 976/2027/380 -f 976/2027/380 975/2026/379 970/2021/374 969/2020/373 -f 977/2028/381 978/2029/382 974/2025/388 973/2024/377 -f 975/2026/379 979/2030/383 980/2031/384 970/2021/374 -f 978/2029/382 981/2032/385 982/2033/386 974/2025/388 -f 970/2021/374 980/2031/384 983/2034/387 971/2022/375 -f 974/2025/388 982/2033/386 979/2030/383 975/2026/379 -f 939/1990/373 942/1993/376 984/2035/295 985/2036/125 -f 954/2005/373 957/2008/376 986/2037/295 987/2038/125 -f 946/1997/380 939/1990/373 985/2036/125 988/2039/131 -f 943/1994/377 946/1997/380 988/2039/131 989/2040/126 -f 969/2020/373 972/2023/376 990/2041/295 991/2042/125 -f 961/2012/380 954/2005/373 987/2038/125 992/2043/131 -f 947/1998/381 943/1994/377 989/2040/126 993/2044/294 -f 958/2009/377 961/2012/380 992/2043/131 994/2045/126 -f 976/2027/380 969/2020/373 991/2042/125 995/2046/131 -f 973/2024/377 976/2027/380 995/2046/131 996/2047/126 -f 962/2013/381 958/2009/377 994/2045/126 997/2048/294 -f 977/2028/381 973/2024/377 996/2047/126 998/2049/294 -f 932/1983/366 935/1986/369 938/1989/372 933/1984/367 -f 999/2050/389 931/1982/365 934/1985/368 1000/2051/390 -f 933/1984/367 938/1989/372 1001/2052/391 1002/2053/392 -f 1000/2051/390 934/1985/368 1003/2054/393 1004/2055/394 -f 938/1989/372 937/1988/371 1005/2056/395 1001/2052/391 -f 934/1985/368 933/1984/367 1002/2053/392 1003/2054/393 -f 1006/2057/369 1007/2058/370 1008/2059/371 1009/2060/396 -f 1010/2061/365 1011/2062/366 1012/2063/367 1013/2064/368 -f 1011/2062/366 1006/2057/369 1009/2060/396 1012/2063/367 -f 1014/2065/389 1010/2061/365 1013/2064/368 1015/2066/390 -f 1012/2063/367 1009/2060/396 1016/2067/391 1017/2068/392 -f 1015/2066/390 1013/2064/368 1018/2069/393 1019/2070/394 -f 1009/2060/396 1008/2059/371 1020/2071/395 1016/2067/391 -f 1013/2064/368 1012/2063/367 1017/2068/392 1018/2069/393 -f 1021/2072/369 1022/2073/370 1023/2074/371 1024/2075/372 -f 1025/2076/365 1026/2077/366 1027/2078/367 1028/2079/397 -f 1026/2077/366 1021/2072/369 1024/2075/372 1027/2078/367 -f 1029/2080/389 1025/2076/365 1028/2079/397 1030/2081/390 -f 1027/2078/367 1024/2075/372 1031/2082/391 1032/2083/392 -f 1030/2081/390 1028/2079/397 1033/2084/393 1034/2085/394 -f 1024/2075/372 1023/2074/371 1035/2086/395 1031/2082/391 -f 1028/2079/397 1027/2078/367 1032/2083/392 1033/2084/393 -f 935/1986/369 1036/2087/125 1037/2088/290 936/1987/370 -f 1006/2057/369 1038/2089/125 1039/2090/290 1007/2058/370 -f 932/1983/366 1040/2091/128 1036/2087/125 935/1986/369 -f 931/1982/365 1041/2092/127 1040/2091/128 932/1983/366 -f 1021/2072/369 1042/2093/125 1043/2094/290 1022/2073/370 -f 1011/2062/366 1044/2095/128 1038/2089/125 1006/2057/369 -f 999/2050/389 1045/2096/291 1041/2092/127 931/1982/365 -f 1010/2061/365 1046/2097/127 1044/2095/128 1011/2062/366 -f 1026/2077/366 1047/2098/128 1042/2093/125 1021/2072/369 -f 1025/2076/365 1048/2099/127 1047/2098/128 1026/2077/366 -f 1014/2065/389 1049/2100/291 1046/2097/127 1010/2061/365 -f 1029/2080/389 1050/2101/291 1048/2099/127 1025/2076/365 -f 1092/2102/398 1093/2103/399 1094/2104/400 1095/2105/401 -f 1096/2106/402 1097/2107/147 1098/2108/403 1099/2109/404 -f 1100/2110/405 1101/2111/406 1102/2112/407 1103/2113/408 -f 1101/2111/406 1104/2114/409 1105/2115/410 1102/2112/407 -f 1106/2116/148 1092/2102/398 1095/2105/401 1107/2117/411 -f 1093/2103/399 1096/2106/402 1099/2109/404 1094/2104/400 -f 1097/2107/147 1100/2110/405 1103/2113/408 1098/2108/403 -f 1104/2114/409 1106/2118/148 1107/2119/411 1105/2115/410 -f 1103/2113/408 1102/2112/407 1108/2120/412 1109/2121/413 -f 1099/2109/404 1098/2108/403 1110/2122/150 1111/2123/414 -f 1095/2105/401 1094/2104/400 1112/2124/415 1113/2125/416 -f 1105/2115/410 1107/2119/411 1114/2126/152 1115/2127/417 -f 1098/2108/403 1103/2113/408 1109/2121/413 1110/2122/150 -f 1094/2104/400 1099/2109/404 1111/2123/414 1112/2124/415 -f 1107/2117/411 1095/2105/401 1113/2125/416 1114/2128/152 -f 1102/2112/407 1105/2115/410 1115/2127/417 1108/2120/412 -f 1114/2128/152 1113/2125/416 1116/2129/318 1117/2130/136 -f 1108/2120/412 1115/2127/417 1118/2131/317 1119/2132/322 -f 1109/2121/413 1108/2120/412 1119/2132/322 1120/2133/418 -f 1111/2123/414 1110/2122/150 1121/2134/132 1122/2135/419 -f 1113/2125/416 1112/2124/415 1123/2136/319 1116/2129/318 -f 1115/2127/417 1114/2126/152 1117/2137/136 1118/2131/317 -f 1110/2122/150 1109/2121/413 1120/2133/418 1121/2134/132 -f 1112/2124/415 1111/2123/414 1122/2135/419 1123/2136/319 -f 1121/2134/132 1120/2133/418 1124/2138/420 1125/2139/421 -f 1123/2136/319 1122/2135/419 1126/2140/422 1127/2141/423 -f 1117/2130/136 1116/2129/318 1128/2142/424 1129/2143/425 -f 1119/2132/322 1118/2131/317 1130/2144/426 1131/2145/427 -f 1120/2133/418 1119/2132/322 1131/2145/427 1124/2138/420 -f 1122/2135/419 1121/2134/132 1125/2139/421 1126/2140/422 -f 1116/2129/318 1123/2136/319 1127/2141/423 1128/2142/424 -f 1118/2131/317 1117/2137/136 1129/2146/425 1130/2144/426 -f 1132/2147/292 1133/2148/428 1064/1252/428 1061/1249/292 -f 1134/2149/429 1135/2150/430 1052/1240/430 1066/1254/429 -f 1136/2151/291 1137/2152/431 1056/1244/431 1053/1241/291 -f 1138/2153/432 1139/2154/433 1060/1248/433 1057/1245/432 -f 1133/2148/428 1134/2155/429 1066/1256/429 1064/1252/428 -f 1135/2150/430 1136/2151/291 1053/1241/291 1052/1240/430 -f 1137/2152/431 1138/2153/432 1057/1245/432 1056/1244/431 -f 1139/2154/433 1132/2147/292 1061/1249/292 1060/1248/433 -f 1069/2156/431 1068/2157/291 1078/1268/291 1081/1271/431 -f 1063/1251/433 1062/1250/292 1077/1267/292 1076/1266/433 -f 1070/2158/432 1069/2156/431 1081/1271/431 1083/1273/432 -f 1062/1250/292 1065/1253/428 1080/1270/428 1077/1267/292 -f 1071/2159/433 1070/2160/432 1083/1277/432 1085/1276/433 -f 1065/1253/428 1067/1257/429 1082/1272/429 1080/1270/428 -f 1072/2161/292 1071/2159/433 1085/1276/433 1087/1279/292 -f 1067/1255/429 1055/1243/430 1084/1275/430 1082/1274/429 -f 1058/1246/432 1063/1251/433 1076/1266/433 1090/1282/432 -f 1068/2157/291 1075/2162/430 1079/1269/430 1078/1268/291 -f 1059/1247/431 1058/1246/432 1090/1282/432 1088/1280/431 -f 1075/2162/430 1074/2163/429 1091/1283/429 1079/1269/430 -f 1054/1242/291 1059/1247/431 1088/1280/431 1086/1278/291 -f 1074/2163/429 1073/2164/428 1089/1281/428 1091/1283/429 -f 1055/1243/430 1054/1242/291 1086/1278/291 1084/1275/430 -f 1073/2164/428 1072/2161/292 1087/1279/292 1089/1281/428 -f 1180/2165/434 1181/2166/435 1182/2167/436 1183/2168/437 -f 1184/2169/438 1185/2170/439 1186/2171/440 1187/2172/441 -f 1188/2173/442 1189/2174/443 1190/2175/444 1191/2176/445 -f 1189/2174/443 1192/2177/446 1193/2178/447 1190/2175/444 -f 1194/2179/448 1180/2165/434 1183/2168/437 1195/2180/449 -f 1181/2166/435 1184/2169/438 1187/2172/441 1182/2167/436 -f 1185/2170/439 1188/2173/442 1191/2176/445 1186/2171/440 -f 1192/2177/446 1194/2181/448 1195/2182/449 1193/2178/447 -f 1191/2176/445 1190/2175/444 1196/2183/450 1197/2184/451 -f 1187/2172/441 1186/2171/440 1198/2185/452 1199/2186/453 -f 1183/2168/437 1182/2167/436 1200/2187/454 1201/2188/455 -f 1193/2178/447 1195/2182/449 1202/2189/456 1203/2190/457 -f 1186/2171/440 1191/2176/445 1197/2184/451 1198/2185/452 -f 1182/2167/436 1187/2172/441 1199/2186/453 1200/2187/454 -f 1195/2180/449 1183/2168/437 1201/2188/455 1202/2191/456 -f 1190/2175/444 1193/2178/447 1203/2190/457 1196/2183/450 -f 1202/2191/456 1201/2188/455 1204/2192/458 1205/2193/136 -f 1196/2183/450 1203/2190/457 1206/2194/459 1207/2195/460 -f 1197/2184/451 1196/2183/450 1207/2195/460 1208/2196/461 -f 1199/2186/453 1198/2185/452 1209/2197/132 1210/2198/462 -f 1201/2188/455 1200/2187/454 1211/2199/463 1204/2192/458 -f 1203/2190/457 1202/2189/456 1205/2200/136 1206/2194/459 -f 1198/2185/452 1197/2184/451 1208/2196/461 1209/2197/132 -f 1200/2187/454 1199/2186/453 1210/2198/462 1211/2199/463 -f 1209/2197/132 1208/2196/461 1212/2201/464 1213/2202/465 -f 1211/2199/463 1210/2198/462 1214/2203/466 1215/2204/467 -f 1205/2193/136 1204/2192/458 1216/2205/468 1217/2206/469 -f 1207/2195/460 1206/2194/459 1218/2207/470 1219/2208/471 -f 1208/2196/461 1207/2195/460 1219/2208/471 1212/2201/464 -f 1210/2198/462 1209/2197/132 1213/2202/465 1214/2203/466 -f 1204/2192/458 1211/2199/463 1215/2204/467 1216/2205/468 -f 1206/2194/459 1205/2200/136 1217/2209/469 1218/2207/470 -f 1220/2210/289 1221/2211/472 1152/1296/472 1149/1293/289 -f 1222/2212/473 1223/2213/474 1140/1284/474 1154/1298/473 -f 1224/2214/295 1225/2215/475 1144/1288/475 1141/1285/295 -f 1226/2216/476 1227/2217/477 1148/1292/477 1145/1289/476 -f 1221/2211/472 1222/2218/473 1154/1300/473 1152/1296/472 -f 1223/2213/474 1224/2214/295 1141/1285/295 1140/1284/474 -f 1225/2215/475 1226/2216/476 1145/1289/476 1144/1288/475 -f 1227/2217/477 1220/2210/289 1149/1293/289 1148/1292/477 -f 1157/2219/475 1156/2220/295 1166/1312/295 1169/1315/475 -f 1151/1295/477 1150/1294/289 1165/1311/289 1164/1310/477 -f 1158/2221/476 1157/2219/475 1169/1315/475 1171/1317/476 -f 1150/1294/289 1153/1297/472 1168/1314/472 1165/1311/289 -f 1159/2222/477 1158/2223/476 1171/1321/476 1173/1320/477 -f 1153/1297/472 1155/1301/473 1170/1316/473 1168/1314/472 -f 1160/2224/289 1159/2222/477 1173/1320/477 1175/1323/289 -f 1155/1299/473 1143/1287/474 1172/1319/474 1170/1318/473 -f 1146/1290/476 1151/1295/477 1164/1310/477 1178/1326/476 -f 1156/2220/295 1163/2225/474 1167/1313/474 1166/1312/295 -f 1147/1291/475 1146/1290/476 1178/1326/476 1176/1324/475 -f 1163/2225/474 1162/2226/473 1179/1327/473 1167/1313/474 -f 1142/1286/295 1147/1291/475 1176/1324/475 1174/1322/295 -f 1162/2226/473 1161/2227/472 1177/1325/472 1179/1327/473 -f 1143/1287/474 1142/1286/295 1174/1322/295 1172/1319/474 -f 1161/2227/472 1160/2224/289 1175/1323/289 1177/1325/472 -f 1268/2228/478 1269/2229/479 1270/2230/480 1271/2231/481 -f 1272/2232/482 1273/2233/483 1274/2234/484 1275/2235/485 -f 1276/2236/486 1277/2237/487 1278/2238/488 1279/2239/489 -f 1277/2237/487 1280/2240/490 1281/2241/491 1278/2238/488 -f 1282/2242/492 1268/2228/478 1271/2231/481 1283/2243/493 -f 1269/2229/479 1272/2232/482 1275/2235/485 1270/2230/480 -f 1273/2233/483 1276/2236/486 1279/2239/489 1274/2234/484 -f 1280/2240/490 1282/2244/492 1283/2245/493 1281/2241/491 -f 1279/2239/489 1278/2238/488 1284/2246/494 1285/2247/495 -f 1275/2235/485 1274/2234/484 1286/2248/496 1287/2249/497 -f 1271/2231/481 1270/2230/480 1288/2250/498 1289/2251/499 -f 1281/2241/491 1283/2245/493 1290/2252/500 1291/2253/501 -f 1274/2234/484 1279/2239/489 1285/2247/495 1286/2248/496 -f 1270/2230/480 1275/2235/485 1287/2249/497 1288/2250/498 -f 1283/2243/493 1271/2231/481 1289/2251/499 1290/2254/500 -f 1278/2238/488 1281/2241/491 1291/2253/501 1284/2246/494 -f 1290/2254/500 1289/2251/499 1292/2255/459 1293/2256/136 -f 1284/2246/494 1291/2253/501 1294/2257/458 1295/2258/463 -f 1285/2247/495 1284/2246/494 1295/2258/463 1296/2259/502 -f 1287/2249/497 1286/2248/496 1297/2260/132 1298/2261/503 -f 1289/2251/499 1288/2250/498 1299/2262/460 1292/2255/459 -f 1291/2253/501 1290/2252/500 1293/2263/136 1294/2257/458 -f 1286/2248/496 1285/2247/495 1296/2259/502 1297/2260/132 -f 1288/2250/498 1287/2249/497 1298/2261/503 1299/2262/460 -f 1297/2260/132 1296/2259/502 1300/2264/504 1301/2265/505 -f 1299/2262/460 1298/2261/503 1302/2266/506 1303/2267/507 -f 1293/2256/136 1292/2255/459 1304/2268/508 1305/2269/509 -f 1295/2258/463 1294/2257/458 1306/2270/510 1307/2271/511 -f 1296/2259/502 1295/2258/463 1307/2271/511 1300/2264/504 -f 1298/2261/503 1297/2260/132 1301/2265/505 1302/2266/506 -f 1292/2255/459 1299/2262/460 1303/2267/507 1304/2268/508 -f 1294/2257/458 1293/2263/136 1305/2272/509 1306/2270/510 -f 1308/2273/295 1309/2274/512 1240/1340/512 1237/1337/295 -f 1310/2275/513 1311/2276/514 1228/1328/514 1242/1342/513 -f 1312/2277/289 1313/2278/515 1232/1332/515 1229/1329/289 -f 1314/2279/516 1315/2280/517 1236/1336/517 1233/1333/516 -f 1309/2274/512 1310/2281/513 1242/1344/513 1240/1340/512 -f 1311/2276/514 1312/2277/289 1229/1329/289 1228/1328/514 -f 1313/2278/515 1314/2279/516 1233/1333/516 1232/1332/515 -f 1315/2280/517 1308/2273/295 1237/1337/295 1236/1336/517 -f 1245/2282/515 1244/2283/289 1254/1356/289 1257/1359/515 -f 1239/1339/517 1238/1338/295 1253/1355/295 1252/1354/517 -f 1246/2284/516 1245/2282/515 1257/1359/515 1259/1361/516 -f 1238/1338/295 1241/1341/512 1256/1358/512 1253/1355/295 -f 1247/2285/517 1246/2286/516 1259/1365/516 1261/1364/517 -f 1241/1341/512 1243/1345/513 1258/1360/513 1256/1358/512 -f 1248/2287/295 1247/2285/517 1261/1364/517 1263/1367/295 -f 1243/1343/513 1231/1331/514 1260/1363/514 1258/1362/513 -f 1234/1334/516 1239/1339/517 1252/1354/517 1266/1370/516 -f 1244/2283/289 1251/2288/514 1255/1357/514 1254/1356/289 -f 1235/1335/515 1234/1334/516 1266/1370/516 1264/1368/515 -f 1251/2288/514 1250/2289/513 1267/1371/513 1255/1357/514 -f 1230/1330/289 1235/1335/515 1264/1368/515 1262/1366/289 -f 1250/2289/513 1249/2290/512 1265/1369/512 1267/1371/513 -f 1231/1331/514 1230/1330/289 1262/1366/289 1260/1363/514 -f 1249/2290/512 1248/2287/295 1263/1367/295 1265/1369/512 -f 1356/2291/518 1357/2292/519 1358/2293/520 1359/2294/521 -f 1360/2295/522 1361/2296/523 1362/2297/524 1363/2298/525 -f 1364/2299/526 1365/2300/527 1366/2301/528 1367/2302/529 -f 1365/2300/527 1368/2303/530 1369/2304/531 1366/2301/528 -f 1370/2305/532 1356/2291/518 1359/2294/521 1371/2306/533 -f 1357/2292/519 1360/2295/522 1363/2298/525 1358/2293/520 -f 1361/2296/523 1364/2299/526 1367/2302/529 1362/2297/524 -f 1368/2303/530 1370/2307/532 1371/2308/533 1369/2304/531 -f 1367/2302/529 1366/2301/528 1372/2309/534 1373/2310/535 -f 1363/2298/525 1362/2297/524 1374/2311/392 1375/2312/536 -f 1359/2294/521 1358/2293/520 1376/2313/537 1377/2314/538 -f 1369/2304/531 1371/2308/533 1378/2315/539 1379/2316/540 -f 1362/2297/524 1367/2302/529 1373/2310/535 1374/2311/392 -f 1358/2293/520 1363/2298/525 1375/2312/536 1376/2313/537 -f 1371/2306/533 1359/2294/521 1377/2314/538 1378/2317/539 -f 1366/2301/528 1369/2304/531 1379/2316/540 1372/2309/534 -f 1378/2317/539 1377/2314/538 1380/2318/541 1381/2319/136 -f 1372/2309/534 1379/2316/540 1382/2320/542 1383/2321/543 -f 1373/2310/535 1372/2309/534 1383/2321/543 1384/2322/544 -f 1375/2312/536 1374/2311/392 1385/2323/132 1386/2324/545 -f 1377/2314/538 1376/2313/537 1387/2325/546 1380/2318/541 -f 1379/2316/540 1378/2315/539 1381/2326/136 1382/2320/542 -f 1374/2311/392 1373/2310/535 1384/2322/544 1385/2323/132 -f 1376/2313/537 1375/2312/536 1386/2324/545 1387/2325/546 -f 1385/2323/132 1384/2322/544 1388/2327/547 1389/2328/548 -f 1387/2325/546 1386/2324/545 1390/2329/549 1391/2330/550 -f 1381/2319/136 1380/2318/541 1392/2331/551 1393/2332/552 -f 1383/2321/543 1382/2320/542 1394/2333/553 1395/2334/554 -f 1384/2322/544 1383/2321/543 1395/2334/554 1388/2327/547 -f 1386/2324/545 1385/2323/132 1389/2328/548 1390/2329/549 -f 1380/2318/541 1387/2325/546 1391/2330/550 1392/2331/551 -f 1382/2320/542 1381/2326/136 1393/2335/552 1394/2333/553 -f 1396/2336/288 1397/2337/555 1328/1384/555 1325/1381/288 -f 1398/2338/556 1399/2339/557 1316/1372/557 1330/1386/556 -f 1400/2340/290 1401/2341/558 1320/1376/558 1317/1373/290 -f 1402/2342/559 1403/2343/560 1324/1380/560 1321/1377/559 -f 1397/2337/555 1398/2344/556 1330/1388/556 1328/1384/555 -f 1399/2339/557 1400/2340/290 1317/1373/290 1316/1372/557 -f 1401/2341/558 1402/2342/559 1321/1377/559 1320/1376/558 -f 1403/2343/560 1396/2336/288 1325/1381/288 1324/1380/560 -f 1333/2345/558 1332/2346/290 1342/1400/290 1345/1403/558 -f 1327/1383/560 1326/1382/288 1341/1399/288 1340/1398/560 -f 1334/2347/559 1333/2345/558 1345/1403/558 1347/1405/559 -f 1326/1382/288 1329/1385/555 1344/1402/555 1341/1399/288 -f 1335/2348/560 1334/2349/559 1347/1409/559 1349/1408/560 -f 1329/1385/555 1331/1389/556 1346/1404/556 1344/1402/555 -f 1336/2350/288 1335/2348/560 1349/1408/560 1351/1411/288 -f 1331/1387/556 1319/1375/557 1348/1407/557 1346/1406/556 -f 1322/1378/559 1327/1383/560 1340/1398/560 1354/1414/559 -f 1332/2346/290 1339/2351/557 1343/1401/557 1342/1400/290 -f 1323/1379/558 1322/1378/559 1354/1414/559 1352/1412/558 -f 1339/2351/557 1338/2352/556 1355/1415/556 1343/1401/557 -f 1318/1374/290 1323/1379/558 1352/1412/558 1350/1410/290 -f 1338/2352/556 1337/2353/555 1353/1413/555 1355/1415/556 -f 1319/1375/557 1318/1374/290 1350/1410/290 1348/1407/557 -f 1337/2353/555 1336/2350/288 1351/1411/288 1353/1413/555 -f 1444/2354/561 1445/2355/562 1446/2356/563 1447/2357/564 -f 1448/2358/565 1449/2359/566 1450/2360/567 1451/2361/568 -f 1452/2362/569 1453/2363/570 1454/2364/571 1455/2365/572 -f 1453/2363/570 1456/2366/573 1457/2367/574 1454/2364/571 -f 1458/2368/575 1444/2354/561 1447/2357/564 1459/2369/576 -f 1445/2355/562 1448/2358/565 1451/2361/568 1446/2356/563 -f 1449/2359/566 1452/2362/569 1455/2365/572 1450/2360/567 -f 1456/2366/573 1458/2370/575 1459/2371/576 1457/2367/574 -f 1455/2365/572 1454/2364/571 1460/2372/577 1461/2373/578 -f 1451/2361/568 1450/2360/567 1462/2374/579 1463/2375/580 -f 1447/2357/564 1446/2356/563 1464/2376/581 1465/2377/582 -f 1457/2367/574 1459/2371/576 1466/2378/583 1467/2379/584 -f 1450/2360/567 1455/2365/572 1461/2373/578 1462/2374/579 -f 1446/2356/563 1451/2361/568 1463/2375/580 1464/2376/581 -f 1459/2369/576 1447/2357/564 1465/2377/582 1466/2380/583 -f 1454/2364/571 1457/2367/574 1467/2379/584 1460/2372/577 -f 1466/2380/583 1465/2377/582 1468/2381/542 1469/2382/136 -f 1460/2372/577 1467/2379/584 1470/2383/541 1471/2384/546 -f 1461/2373/578 1460/2372/577 1471/2384/546 1472/2385/545 -f 1463/2375/580 1462/2374/579 1473/2386/132 1474/2387/544 -f 1465/2377/582 1464/2376/581 1475/2388/543 1468/2381/542 -f 1467/2379/584 1466/2378/583 1469/2389/136 1470/2383/541 -f 1462/2374/579 1461/2373/578 1472/2385/545 1473/2386/132 -f 1464/2376/581 1463/2375/580 1474/2387/544 1475/2388/543 -f 1473/2386/132 1472/2385/545 1476/2390/585 1477/2391/586 -f 1475/2388/543 1474/2387/544 1478/2392/587 1479/2393/588 -f 1469/2382/136 1468/2381/542 1480/2394/589 1481/2395/590 -f 1471/2384/546 1470/2383/541 1482/2396/591 1483/2397/592 -f 1472/2385/545 1471/2384/546 1483/2397/592 1476/2390/585 -f 1474/2387/544 1473/2386/132 1477/2391/586 1478/2392/587 -f 1468/2381/542 1475/2388/543 1479/2393/588 1480/2394/589 -f 1470/2383/541 1469/2389/136 1481/2398/590 1482/2396/591 -f 1484/2399/290 1485/2400/593 1416/1428/593 1413/1425/290 -f 1486/2401/594 1487/2402/595 1404/1416/595 1418/1430/594 -f 1488/2403/288 1489/2404/596 1408/1420/596 1405/1417/288 -f 1490/2405/597 1491/2406/598 1412/1424/598 1409/1421/597 -f 1485/2400/593 1486/2407/594 1418/1432/594 1416/1428/593 -f 1487/2402/595 1488/2403/288 1405/1417/288 1404/1416/595 -f 1489/2404/596 1490/2405/597 1409/1421/597 1408/1420/596 -f 1491/2406/598 1484/2399/290 1413/1425/290 1412/1424/598 -f 1421/2408/596 1420/2409/288 1430/1444/288 1433/1447/596 -f 1415/1427/598 1414/1426/290 1429/1443/290 1428/1442/598 -f 1422/2410/597 1421/2408/596 1433/1447/596 1435/1449/597 -f 1414/1426/290 1417/1429/593 1432/1446/593 1429/1443/290 -f 1423/2411/598 1422/2412/597 1435/1453/597 1437/1452/598 -f 1417/1429/593 1419/1433/594 1434/1448/594 1432/1446/593 -f 1424/2413/290 1423/2411/598 1437/1452/598 1439/1455/290 -f 1419/1431/594 1407/1419/595 1436/1451/595 1434/1450/594 -f 1410/1422/597 1415/1427/598 1428/1442/598 1442/1458/597 -f 1420/2409/288 1427/2414/595 1431/1445/595 1430/1444/288 -f 1411/1423/596 1410/1422/597 1442/1458/597 1440/1456/596 -f 1427/2414/595 1426/2415/594 1443/1459/594 1431/1445/595 -f 1406/1418/288 1411/1423/596 1440/1456/596 1438/1454/288 -f 1426/2415/594 1425/2416/593 1441/1457/593 1443/1459/594 -f 1407/1419/595 1406/1418/288 1438/1454/288 1436/1451/595 -f 1425/2416/593 1424/2413/290 1439/1455/290 1441/1457/593 -f 1532/2417/599 1533/2418/600 1534/2419/601 1535/2420/602 -f 1536/2421/603 1537/2422/604 1538/2423/605 1539/2424/606 -f 1540/2425/607 1541/2426/608 1542/2427/609 1543/2428/610 -f 1541/2426/608 1544/2429/611 1545/2430/612 1542/2427/609 -f 1546/2431/613 1532/2417/599 1535/2420/602 1547/2432/614 -f 1533/2418/600 1536/2421/603 1539/2424/606 1534/2419/601 -f 1537/2422/604 1540/2425/607 1543/2428/610 1538/2423/605 -f 1544/2429/611 1546/2433/613 1547/2434/614 1545/2430/612 -f 1543/2428/610 1542/2427/609 1548/2435/615 1549/2436/616 -f 1539/2424/606 1538/2423/605 1550/2437/617 1551/2438/618 -f 1535/2420/602 1534/2419/601 1552/2439/619 1553/2440/620 -f 1545/2430/612 1547/2434/614 1554/2441/621 1555/2442/622 -f 1538/2423/605 1543/2428/610 1549/2436/616 1550/2437/617 -f 1534/2419/601 1539/2424/606 1551/2438/618 1552/2439/619 -f 1547/2432/614 1535/2420/602 1553/2440/620 1554/2443/621 -f 1542/2427/609 1545/2430/612 1555/2442/622 1548/2435/615 -f 1554/2443/621 1553/2440/620 1556/2444/623 1557/2445/136 -f 1548/2435/615 1555/2442/622 1558/2446/624 1559/2447/625 -f 1549/2436/616 1548/2435/615 1559/2447/625 1560/2448/626 -f 1551/2438/618 1550/2437/617 1561/2449/132 1562/2450/627 -f 1553/2440/620 1552/2439/619 1563/2451/628 1556/2444/623 -f 1555/2442/622 1554/2441/621 1557/2452/136 1558/2446/624 -f 1550/2437/617 1549/2436/616 1560/2448/626 1561/2449/132 -f 1552/2439/619 1551/2438/618 1562/2450/627 1563/2451/628 -f 1561/2449/132 1560/2448/626 1564/2453/629 1565/2454/630 -f 1563/2451/628 1562/2450/627 1566/2455/631 1567/2456/632 -f 1557/2445/136 1556/2444/623 1568/2457/633 1569/2458/634 -f 1559/2447/625 1558/2446/624 1570/2459/635 1571/2460/636 -f 1560/2448/626 1559/2447/625 1571/2460/636 1564/2453/629 -f 1562/2450/627 1561/2449/132 1565/2454/630 1566/2455/631 -f 1556/2444/623 1563/2451/628 1567/2456/632 1568/2457/633 -f 1558/2446/624 1557/2452/136 1569/2461/634 1570/2459/635 -f 1572/2462/294 1573/2463/637 1504/1472/637 1501/1469/294 -f 1574/2464/638 1575/2465/639 1492/1460/639 1506/1474/638 -f 1576/2466/293 1577/2467/640 1496/1464/640 1493/1461/293 -f 1578/2468/641 1579/2469/642 1500/1468/642 1497/1465/641 -f 1573/2463/637 1574/2470/638 1506/1476/638 1504/1472/637 -f 1575/2465/639 1576/2466/293 1493/1461/293 1492/1460/639 -f 1577/2467/640 1578/2468/641 1497/1465/641 1496/1464/640 -f 1579/2469/642 1572/2462/294 1501/1469/294 1500/1468/642 -f 1509/2471/640 1508/2472/293 1518/1488/293 1521/1491/640 -f 1503/1471/642 1502/1470/294 1517/1487/294 1516/1486/642 -f 1510/2473/641 1509/2471/640 1521/1491/640 1523/1493/641 -f 1502/1470/294 1505/1473/637 1520/1490/637 1517/1487/294 -f 1511/2474/642 1510/2475/641 1523/1497/641 1525/1496/642 -f 1505/1473/637 1507/1477/638 1522/1492/638 1520/1490/637 -f 1512/2476/294 1511/2474/642 1525/1496/642 1527/1499/294 -f 1507/1475/638 1495/1463/639 1524/1495/639 1522/1494/638 -f 1498/1466/641 1503/1471/642 1516/1486/642 1530/1502/641 -f 1508/2472/293 1515/2477/639 1519/1489/639 1518/1488/293 -f 1499/1467/640 1498/1466/641 1530/1502/641 1528/1500/640 -f 1515/2477/639 1514/2478/638 1531/1503/638 1519/1489/639 -f 1494/1462/293 1499/1467/640 1528/1500/640 1526/1498/293 -f 1514/2478/638 1513/2479/637 1529/1501/637 1531/1503/638 -f 1495/1463/639 1494/1462/293 1526/1498/293 1524/1495/639 -f 1513/2479/637 1512/2476/294 1527/1499/294 1529/1501/637 -f 1620/2480/643 1621/2481/644 1622/2482/645 1623/2483/646 -f 1624/2484/647 1625/2485/648 1626/2486/649 1627/2487/650 -f 1628/2488/651 1629/2489/652 1630/2490/653 1631/2491/654 -f 1629/2489/652 1632/2492/655 1633/2493/656 1630/2490/653 -f 1634/2494/657 1620/2480/643 1623/2483/646 1635/2495/658 -f 1621/2481/644 1624/2484/647 1627/2487/650 1622/2482/645 -f 1625/2485/648 1628/2488/651 1631/2491/654 1626/2486/649 -f 1632/2492/655 1634/2496/657 1635/2497/658 1633/2493/656 -f 1631/2491/654 1630/2490/653 1636/2498/659 1637/2499/660 -f 1627/2487/650 1626/2486/649 1638/2500/383 1639/2501/661 -f 1623/2483/646 1622/2482/645 1640/2502/662 1641/2503/663 -f 1633/2493/656 1635/2497/658 1642/2504/664 1643/2505/665 -f 1626/2486/649 1631/2491/654 1637/2499/660 1638/2500/383 -f 1622/2482/645 1627/2487/650 1639/2501/661 1640/2502/662 -f 1635/2495/658 1623/2483/646 1641/2503/663 1642/2506/664 -f 1630/2490/653 1633/2493/656 1643/2505/665 1636/2498/659 -f 1642/2506/664 1641/2503/663 1644/2507/624 1645/2508/136 -f 1636/2498/659 1643/2505/665 1646/2509/623 1647/2510/628 -f 1637/2499/660 1636/2498/659 1647/2510/628 1648/2511/627 -f 1639/2501/661 1638/2500/383 1649/2512/132 1650/2513/626 -f 1641/2503/663 1640/2502/662 1651/2514/625 1644/2507/624 -f 1643/2505/665 1642/2504/664 1645/2515/136 1646/2509/623 -f 1638/2500/383 1637/2499/660 1648/2511/627 1649/2512/132 -f 1640/2502/662 1639/2501/661 1650/2513/626 1651/2514/625 -f 1649/2512/132 1648/2511/627 1652/2516/666 1653/2517/667 -f 1651/2514/625 1650/2513/626 1654/2518/668 1655/2519/669 -f 1645/2508/136 1644/2507/624 1656/2520/670 1657/2521/671 -f 1647/2510/628 1646/2509/623 1658/2522/672 1659/2523/673 -f 1648/2511/627 1647/2510/628 1659/2523/673 1652/2516/666 -f 1650/2513/626 1649/2512/132 1653/2517/667 1654/2518/668 -f 1644/2507/624 1651/2514/625 1655/2519/669 1656/2520/670 -f 1646/2509/623 1645/2515/136 1657/2524/671 1658/2522/672 -f 1660/2525/293 1661/2526/674 1592/1516/674 1589/1513/293 -f 1662/2527/675 1663/2528/676 1580/1504/676 1594/1518/675 -f 1664/2529/294 1665/2530/677 1584/1508/677 1581/1505/294 -f 1666/2531/678 1667/2532/679 1588/1512/679 1585/1509/678 -f 1661/2526/674 1662/2533/675 1594/1520/675 1592/1516/674 -f 1663/2528/676 1664/2529/294 1581/1505/294 1580/1504/676 -f 1665/2530/677 1666/2531/678 1585/1509/678 1584/1508/677 -f 1667/2532/679 1660/2525/293 1589/1513/293 1588/1512/679 -f 1597/2534/677 1596/2535/294 1606/1532/294 1609/1535/677 -f 1591/1515/679 1590/1514/293 1605/1531/293 1604/1530/679 -f 1598/2536/678 1597/2534/677 1609/1535/677 1611/1537/678 -f 1590/1514/293 1593/1517/674 1608/1534/674 1605/1531/293 -f 1599/2537/679 1598/2538/678 1611/1541/678 1613/1540/679 -f 1593/1517/674 1595/1521/675 1610/1536/675 1608/1534/674 -f 1600/2539/293 1599/2537/679 1613/1540/679 1615/1543/293 -f 1595/1519/675 1583/1507/676 1612/1539/676 1610/1538/675 -f 1586/1510/678 1591/1515/679 1604/1530/679 1618/1546/678 -f 1596/2535/294 1603/2540/676 1607/1533/676 1606/1532/294 -f 1587/1511/677 1586/1510/678 1618/1546/678 1616/1544/677 -f 1603/2540/676 1602/2541/675 1619/1547/675 1607/1533/676 -f 1582/1506/294 1587/1511/677 1616/1544/677 1614/1542/294 -f 1602/2541/675 1601/2542/674 1617/1545/674 1619/1547/675 -f 1583/1507/676 1582/1506/294 1614/1542/294 1612/1539/676 -f 1601/2542/674 1600/2539/293 1615/1543/293 1617/1545/674 +f 389/1917/290 388/1918/295 413/589/295 411/592/290 +f 445/1919/124 444/1920/289 465/1921/289 464/1922/124 +f 450/1923/290 452/1924/125 456/1925/125 455/1926/290 +f 452/1924/125 439/1927/295 457/1928/295 456/1925/125 +f 442/1929/288 445/1930/124 464/1931/124 463/1932/288 +f 451/1933/131 450/1923/290 455/1926/290 470/1934/131 +f 443/1935/129 442/1929/288 463/1932/288 462/1936/129 +f 448/1937/292 451/1933/131 470/1934/131 469/1938/292 +f 440/1939/291 443/1935/129 462/1936/129 461/1940/291 +f 449/1941/126 448/1937/292 469/1938/292 468/1942/126 +f 441/1943/127 440/1939/291 461/1940/291 460/1944/127 +f 446/1945/294 449/1941/126 468/1942/126 467/1946/294 +f 437/1947/293 441/1943/127 460/1944/127 459/1948/293 +f 447/1949/130 446/1945/294 467/1946/294 466/1950/130 +f 438/1951/128 437/1947/293 459/1948/293 458/1952/128 +f 444/1920/289 447/1949/130 466/1950/130 465/1921/289 +f 439/1927/295 438/1951/128 458/1952/128 457/1928/295 +f 911/1953/353 912/1954/173 688/1955/173 687/1956/353 +f 913/1957/126 914/1958/354 691/1959/354 690/1960/126 +f 694/1030/355 693/1029/355 702/1037/356 700/1961/356 +f 915/1962/357 911/1953/353 687/1956/353 686/1963/357 +f 916/1964/358 913/1957/126 690/1960/126 689/1965/358 +f 700/1961/356 702/1037/356 701/1966/359 699/1967/359 +f 917/1968/360 692/1969/361 684/1970/361 683/1971/360 +f 696/1972/362 915/1962/357 686/1963/357 685/1973/362 +f 912/1954/173 916/1964/358 689/1965/358 688/1955/173 +f 699/1967/359 701/1966/359 918/1974/127 698/1975/127 +f 914/1958/354 917/1968/360 683/1971/360 691/1959/354 +f 695/1031/363 697/1034/363 698/1975/127 918/1974/127 +f 919/1976/155 920/1977/356 709/1978/356 708/1979/155 +f 921/1980/126 922/1981/354 706/1982/354 705/1983/126 +f 923/1984/364 924/1985/357 713/1986/357 712/1987/364 +f 925/1988/353 926/1989/173 703/1990/173 714/1991/353 +f 920/1977/356 927/1992/359 710/1993/359 709/1978/356 +f 922/1981/354 928/1994/360 707/1995/360 706/1982/354 +f 924/1985/357 925/1996/353 714/1997/353 713/1986/357 +f 926/1989/173 929/1998/358 704/1999/358 703/1990/173 +f 927/1992/359 930/2000/127 711/2001/127 710/1993/359 +f 928/1994/360 919/1976/155 708/1979/155 707/1995/360 +f 929/1998/358 921/1980/126 705/1983/126 704/1999/358 +f 930/2000/127 923/1984/364 712/1987/364 711/2001/127 +f 931/2002/365 932/2003/366 933/2004/367 934/2005/368 +f 935/2006/369 936/2007/370 937/2008/371 938/2009/372 +f 939/2010/373 940/2011/374 941/2012/375 942/2013/376 +f 943/2014/377 944/2015/378 945/2016/379 946/2017/380 +f 946/2017/380 945/2016/379 940/2011/374 939/2010/373 +f 947/2018/381 948/2019/382 944/2015/378 943/2014/377 +f 945/2016/379 949/2020/383 950/2021/384 940/2011/374 +f 948/2019/382 951/2022/385 952/2023/386 944/2015/378 +f 940/2011/374 950/2021/384 953/2024/387 941/2012/375 +f 944/2015/378 952/2023/386 949/2020/383 945/2016/379 +f 954/2025/373 955/2026/374 956/2027/375 957/2028/376 +f 958/2029/377 959/2030/378 960/2031/379 961/2032/380 +f 961/2032/380 960/2031/379 955/2026/374 954/2025/373 +f 962/2033/381 963/2034/382 959/2030/378 958/2029/377 +f 960/2031/379 964/2035/383 965/2036/384 955/2026/374 +f 963/2034/382 966/2037/385 967/2038/386 959/2030/378 +f 955/2026/374 965/2036/384 968/2039/387 956/2027/375 +f 959/2030/378 967/2038/386 964/2035/383 960/2031/379 +f 969/2040/373 970/2041/374 971/2042/375 972/2043/376 +f 973/2044/377 974/2045/388 975/2046/379 976/2047/380 +f 976/2047/380 975/2046/379 970/2041/374 969/2040/373 +f 977/2048/381 978/2049/382 974/2045/388 973/2044/377 +f 975/2046/379 979/2050/383 980/2051/384 970/2041/374 +f 978/2049/382 981/2052/385 982/2053/386 974/2045/388 +f 970/2041/374 980/2051/384 983/2054/387 971/2042/375 +f 974/2045/388 982/2053/386 979/2050/383 975/2046/379 +f 939/2010/373 942/2013/376 984/2055/295 985/2056/125 +f 954/2025/373 957/2028/376 986/2057/295 987/2058/125 +f 946/2017/380 939/2010/373 985/2056/125 988/2059/131 +f 943/2014/377 946/2017/380 988/2059/131 989/2060/126 +f 969/2040/373 972/2043/376 990/2061/295 991/2062/125 +f 961/2032/380 954/2025/373 987/2058/125 992/2063/131 +f 947/2018/381 943/2014/377 989/2060/126 993/2064/294 +f 958/2029/377 961/2032/380 992/2063/131 994/2065/126 +f 976/2047/380 969/2040/373 991/2062/125 995/2066/131 +f 973/2044/377 976/2047/380 995/2066/131 996/2067/126 +f 962/2033/381 958/2029/377 994/2065/126 997/2068/294 +f 977/2048/381 973/2044/377 996/2067/126 998/2069/294 +f 932/2003/366 935/2006/369 938/2009/372 933/2004/367 +f 999/2070/389 931/2002/365 934/2005/368 1000/2071/390 +f 933/2004/367 938/2009/372 1001/2072/391 1002/2073/392 +f 1000/2071/390 934/2005/368 1003/2074/393 1004/2075/394 +f 938/2009/372 937/2008/371 1005/2076/395 1001/2072/391 +f 934/2005/368 933/2004/367 1002/2073/392 1003/2074/393 +f 1006/2077/369 1007/2078/370 1008/2079/371 1009/2080/396 +f 1010/2081/365 1011/2082/366 1012/2083/367 1013/2084/368 +f 1011/2082/366 1006/2077/369 1009/2080/396 1012/2083/367 +f 1014/2085/389 1010/2081/365 1013/2084/368 1015/2086/390 +f 1012/2083/367 1009/2080/396 1016/2087/391 1017/2088/392 +f 1015/2086/390 1013/2084/368 1018/2089/393 1019/2090/394 +f 1009/2080/396 1008/2079/371 1020/2091/395 1016/2087/391 +f 1013/2084/368 1012/2083/367 1017/2088/392 1018/2089/393 +f 1021/2092/369 1022/2093/370 1023/2094/371 1024/2095/372 +f 1025/2096/365 1026/2097/366 1027/2098/367 1028/2099/397 +f 1026/2097/366 1021/2092/369 1024/2095/372 1027/2098/367 +f 1029/2100/389 1025/2096/365 1028/2099/397 1030/2101/390 +f 1027/2098/367 1024/2095/372 1031/2102/391 1032/2103/392 +f 1030/2101/390 1028/2099/397 1033/2104/393 1034/2105/394 +f 1024/2095/372 1023/2094/371 1035/2106/395 1031/2102/391 +f 1028/2099/397 1027/2098/367 1032/2103/392 1033/2104/393 +f 935/2006/369 1036/2107/125 1037/2108/290 936/2007/370 +f 1006/2077/369 1038/2109/125 1039/2110/290 1007/2078/370 +f 932/2003/366 1040/2111/128 1036/2107/125 935/2006/369 +f 931/2002/365 1041/2112/127 1040/2111/128 932/2003/366 +f 1021/2092/369 1042/2113/125 1043/2114/290 1022/2093/370 +f 1011/2082/366 1044/2115/128 1038/2109/125 1006/2077/369 +f 999/2070/389 1045/2116/291 1041/2112/127 931/2002/365 +f 1010/2081/365 1046/2117/127 1044/2115/128 1011/2082/366 +f 1026/2097/366 1047/2118/128 1042/2113/125 1021/2092/369 +f 1025/2096/365 1048/2119/127 1047/2118/128 1026/2097/366 +f 1014/2085/389 1049/2120/291 1046/2117/127 1010/2081/365 +f 1029/2100/389 1050/2121/291 1048/2119/127 1025/2096/365 +f 1092/2122/398 1093/2123/399 1094/2124/400 1095/2125/401 +f 1096/2126/402 1097/2127/147 1098/2128/403 1099/2129/404 +f 1100/2130/405 1101/2131/406 1102/2132/407 1103/2133/408 +f 1101/2131/406 1104/2134/409 1105/2135/410 1102/2132/407 +f 1106/2136/148 1092/2122/398 1095/2125/401 1107/2137/411 +f 1093/2123/399 1096/2126/402 1099/2129/404 1094/2124/400 +f 1097/2127/147 1100/2130/405 1103/2133/408 1098/2128/403 +f 1104/2134/409 1106/2138/148 1107/2139/411 1105/2135/410 +f 1103/2133/408 1102/2132/407 1108/2140/412 1109/2141/413 +f 1099/2129/404 1098/2128/403 1110/2142/150 1111/2143/414 +f 1095/2125/401 1094/2124/400 1112/2144/415 1113/2145/416 +f 1105/2135/410 1107/2139/411 1114/2146/152 1115/2147/417 +f 1098/2128/403 1103/2133/408 1109/2141/413 1110/2142/150 +f 1094/2124/400 1099/2129/404 1111/2143/414 1112/2144/415 +f 1107/2137/411 1095/2125/401 1113/2145/416 1114/2148/152 +f 1102/2132/407 1105/2135/410 1115/2147/417 1108/2140/412 +f 1114/2148/152 1113/2145/416 1116/2149/318 1117/2150/136 +f 1108/2140/412 1115/2147/417 1118/2151/317 1119/2152/322 +f 1109/2141/413 1108/2140/412 1119/2152/322 1120/2153/418 +f 1111/2143/414 1110/2142/150 1121/2154/132 1122/2155/419 +f 1113/2145/416 1112/2144/415 1123/2156/319 1116/2149/318 +f 1115/2147/417 1114/2146/152 1117/2157/136 1118/2151/317 +f 1110/2142/150 1109/2141/413 1120/2153/418 1121/2154/132 +f 1112/2144/415 1111/2143/414 1122/2155/419 1123/2156/319 +f 1121/2154/132 1120/2153/418 1124/2158/420 1125/2159/421 +f 1123/2156/319 1122/2155/419 1126/2160/422 1127/2161/423 +f 1117/2150/136 1116/2149/318 1128/2162/424 1129/2163/425 +f 1119/2152/322 1118/2151/317 1130/2164/426 1131/2165/427 +f 1120/2153/418 1119/2152/322 1131/2165/427 1124/2158/420 +f 1122/2155/419 1121/2154/132 1125/2159/421 1126/2160/422 +f 1116/2149/318 1123/2156/319 1127/2161/423 1128/2162/424 +f 1118/2151/317 1117/2157/136 1129/2166/425 1130/2164/426 +f 1132/2167/292 1133/2168/428 1064/1250/428 1061/1247/292 +f 1134/2169/429 1135/2170/430 1052/1238/430 1066/1252/429 +f 1136/2171/291 1137/2172/431 1056/1242/431 1053/1239/291 +f 1138/2173/432 1139/2174/433 1060/1246/433 1057/1243/432 +f 1133/2168/428 1134/2175/429 1066/1254/429 1064/1250/428 +f 1135/2170/430 1136/2171/291 1053/1239/291 1052/1238/430 +f 1137/2172/431 1138/2173/432 1057/1243/432 1056/1242/431 +f 1139/2174/433 1132/2167/292 1061/1247/292 1060/1246/433 +f 1069/2176/431 1068/2177/291 1078/1266/291 1081/1269/431 +f 1063/1249/433 1062/1248/292 1077/1265/292 1076/1264/433 +f 1070/2178/432 1069/2176/431 1081/1269/431 1083/1271/432 +f 1062/1248/292 1065/1251/428 1080/1268/428 1077/1265/292 +f 1071/2179/433 1070/2180/432 1083/1275/432 1085/1274/433 +f 1065/1251/428 1067/1255/429 1082/1270/429 1080/1268/428 +f 1072/2181/292 1071/2179/433 1085/1274/433 1087/1277/292 +f 1067/1253/429 1055/1241/430 1084/1273/430 1082/1272/429 +f 1058/1244/432 1063/1249/433 1076/1264/433 1090/1280/432 +f 1068/2177/291 1075/2182/430 1079/1267/430 1078/1266/291 +f 1059/1245/431 1058/1244/432 1090/1280/432 1088/1278/431 +f 1075/2182/430 1074/2183/429 1091/1281/429 1079/1267/430 +f 1054/1240/291 1059/1245/431 1088/1278/431 1086/1276/291 +f 1074/2183/429 1073/2184/428 1089/1279/428 1091/1281/429 +f 1055/1241/430 1054/1240/291 1086/1276/291 1084/1273/430 +f 1073/2184/428 1072/2181/292 1087/1277/292 1089/1279/428 +f 1180/2185/434 1181/2186/435 1182/2187/436 1183/2188/437 +f 1184/2189/438 1185/2190/439 1186/2191/440 1187/2192/441 +f 1188/2193/442 1189/2194/443 1190/2195/444 1191/2196/445 +f 1189/2194/443 1192/2197/446 1193/2198/447 1190/2195/444 +f 1194/2199/448 1180/2185/434 1183/2188/437 1195/2200/449 +f 1181/2186/435 1184/2189/438 1187/2192/441 1182/2187/436 +f 1185/2190/439 1188/2193/442 1191/2196/445 1186/2191/440 +f 1192/2197/446 1194/2201/448 1195/2202/449 1193/2198/447 +f 1191/2196/445 1190/2195/444 1196/2203/450 1197/2204/451 +f 1187/2192/441 1186/2191/440 1198/2205/452 1199/2206/453 +f 1183/2188/437 1182/2187/436 1200/2207/454 1201/2208/455 +f 1193/2198/447 1195/2202/449 1202/2209/456 1203/2210/457 +f 1186/2191/440 1191/2196/445 1197/2204/451 1198/2205/452 +f 1182/2187/436 1187/2192/441 1199/2206/453 1200/2207/454 +f 1195/2200/449 1183/2188/437 1201/2208/455 1202/2211/456 +f 1190/2195/444 1193/2198/447 1203/2210/457 1196/2203/450 +f 1202/2211/456 1201/2208/455 1204/2212/458 1205/2213/136 +f 1196/2203/450 1203/2210/457 1206/2214/459 1207/2215/460 +f 1197/2204/451 1196/2203/450 1207/2215/460 1208/2216/461 +f 1199/2206/453 1198/2205/452 1209/2217/132 1210/2218/462 +f 1201/2208/455 1200/2207/454 1211/2219/463 1204/2212/458 +f 1203/2210/457 1202/2209/456 1205/2220/136 1206/2214/459 +f 1198/2205/452 1197/2204/451 1208/2216/461 1209/2217/132 +f 1200/2207/454 1199/2206/453 1210/2218/462 1211/2219/463 +f 1209/2217/132 1208/2216/461 1212/2221/464 1213/2222/465 +f 1211/2219/463 1210/2218/462 1214/2223/466 1215/2224/467 +f 1205/2213/136 1204/2212/458 1216/2225/468 1217/2226/469 +f 1207/2215/460 1206/2214/459 1218/2227/470 1219/2228/471 +f 1208/2216/461 1207/2215/460 1219/2228/471 1212/2221/464 +f 1210/2218/462 1209/2217/132 1213/2222/465 1214/2223/466 +f 1204/2212/458 1211/2219/463 1215/2224/467 1216/2225/468 +f 1206/2214/459 1205/2220/136 1217/2229/469 1218/2227/470 +f 1220/2230/289 1221/2231/472 1152/1294/472 1149/1291/289 +f 1222/2232/473 1223/2233/474 1140/1282/474 1154/1296/473 +f 1224/2234/295 1225/2235/475 1144/1286/475 1141/1283/295 +f 1226/2236/476 1227/2237/477 1148/1290/477 1145/1287/476 +f 1221/2231/472 1222/2238/473 1154/1298/473 1152/1294/472 +f 1223/2233/474 1224/2234/295 1141/1283/295 1140/1282/474 +f 1225/2235/475 1226/2236/476 1145/1287/476 1144/1286/475 +f 1227/2237/477 1220/2230/289 1149/1291/289 1148/1290/477 +f 1157/2239/475 1156/2240/295 1166/1310/295 1169/1313/475 +f 1151/1293/477 1150/1292/289 1165/1309/289 1164/1308/477 +f 1158/2241/476 1157/2239/475 1169/1313/475 1171/1315/476 +f 1150/1292/289 1153/1295/472 1168/1312/472 1165/1309/289 +f 1159/2242/477 1158/2243/476 1171/1319/476 1173/1318/477 +f 1153/1295/472 1155/1299/473 1170/1314/473 1168/1312/472 +f 1160/2244/289 1159/2242/477 1173/1318/477 1175/1321/289 +f 1155/1297/473 1143/1285/474 1172/1317/474 1170/1316/473 +f 1146/1288/476 1151/1293/477 1164/1308/477 1178/1324/476 +f 1156/2240/295 1163/2245/474 1167/1311/474 1166/1310/295 +f 1147/1289/475 1146/1288/476 1178/1324/476 1176/1322/475 +f 1163/2245/474 1162/2246/473 1179/1325/473 1167/1311/474 +f 1142/1284/295 1147/1289/475 1176/1322/475 1174/1320/295 +f 1162/2246/473 1161/2247/472 1177/1323/472 1179/1325/473 +f 1143/1285/474 1142/1284/295 1174/1320/295 1172/1317/474 +f 1161/2247/472 1160/2244/289 1175/1321/289 1177/1323/472 +f 1268/2248/478 1269/2249/479 1270/2250/480 1271/2251/481 +f 1272/2252/482 1273/2253/483 1274/2254/484 1275/2255/485 +f 1276/2256/486 1277/2257/487 1278/2258/488 1279/2259/489 +f 1277/2257/487 1280/2260/490 1281/2261/491 1278/2258/488 +f 1282/2262/492 1268/2248/478 1271/2251/481 1283/2263/493 +f 1269/2249/479 1272/2252/482 1275/2255/485 1270/2250/480 +f 1273/2253/483 1276/2256/486 1279/2259/489 1274/2254/484 +f 1280/2260/490 1282/2264/492 1283/2265/493 1281/2261/491 +f 1279/2259/489 1278/2258/488 1284/2266/494 1285/2267/495 +f 1275/2255/485 1274/2254/484 1286/2268/496 1287/2269/497 +f 1271/2251/481 1270/2250/480 1288/2270/498 1289/2271/499 +f 1281/2261/491 1283/2265/493 1290/2272/500 1291/2273/501 +f 1274/2254/484 1279/2259/489 1285/2267/495 1286/2268/496 +f 1270/2250/480 1275/2255/485 1287/2269/497 1288/2270/498 +f 1283/2263/493 1271/2251/481 1289/2271/499 1290/2274/500 +f 1278/2258/488 1281/2261/491 1291/2273/501 1284/2266/494 +f 1290/2274/500 1289/2271/499 1292/2275/459 1293/2276/136 +f 1284/2266/494 1291/2273/501 1294/2277/458 1295/2278/463 +f 1285/2267/495 1284/2266/494 1295/2278/463 1296/2279/502 +f 1287/2269/497 1286/2268/496 1297/2280/132 1298/2281/503 +f 1289/2271/499 1288/2270/498 1299/2282/460 1292/2275/459 +f 1291/2273/501 1290/2272/500 1293/2283/136 1294/2277/458 +f 1286/2268/496 1285/2267/495 1296/2279/502 1297/2280/132 +f 1288/2270/498 1287/2269/497 1298/2281/503 1299/2282/460 +f 1297/2280/132 1296/2279/502 1300/2284/504 1301/2285/505 +f 1299/2282/460 1298/2281/503 1302/2286/506 1303/2287/507 +f 1293/2276/136 1292/2275/459 1304/2288/508 1305/2289/509 +f 1295/2278/463 1294/2277/458 1306/2290/510 1307/2291/511 +f 1296/2279/502 1295/2278/463 1307/2291/511 1300/2284/504 +f 1298/2281/503 1297/2280/132 1301/2285/505 1302/2286/506 +f 1292/2275/459 1299/2282/460 1303/2287/507 1304/2288/508 +f 1294/2277/458 1293/2283/136 1305/2292/509 1306/2290/510 +f 1308/2293/295 1309/2294/512 1240/1338/512 1237/1335/295 +f 1310/2295/513 1311/2296/514 1228/1326/514 1242/1340/513 +f 1312/2297/289 1313/2298/515 1232/1330/515 1229/1327/289 +f 1314/2299/516 1315/2300/517 1236/1334/517 1233/1331/516 +f 1309/2294/512 1310/2301/513 1242/1342/513 1240/1338/512 +f 1311/2296/514 1312/2297/289 1229/1327/289 1228/1326/514 +f 1313/2298/515 1314/2299/516 1233/1331/516 1232/1330/515 +f 1315/2300/517 1308/2293/295 1237/1335/295 1236/1334/517 +f 1245/2302/515 1244/2303/289 1254/1354/289 1257/1357/515 +f 1239/1337/517 1238/1336/295 1253/1353/295 1252/1352/517 +f 1246/2304/516 1245/2302/515 1257/1357/515 1259/1359/516 +f 1238/1336/295 1241/1339/512 1256/1356/512 1253/1353/295 +f 1247/2305/517 1246/2306/516 1259/1363/516 1261/1362/517 +f 1241/1339/512 1243/1343/513 1258/1358/513 1256/1356/512 +f 1248/2307/295 1247/2305/517 1261/1362/517 1263/1365/295 +f 1243/1341/513 1231/1329/514 1260/1361/514 1258/1360/513 +f 1234/1332/516 1239/1337/517 1252/1352/517 1266/1368/516 +f 1244/2303/289 1251/2308/514 1255/1355/514 1254/1354/289 +f 1235/1333/515 1234/1332/516 1266/1368/516 1264/1366/515 +f 1251/2308/514 1250/2309/513 1267/1369/513 1255/1355/514 +f 1230/1328/289 1235/1333/515 1264/1366/515 1262/1364/289 +f 1250/2309/513 1249/2310/512 1265/1367/512 1267/1369/513 +f 1231/1329/514 1230/1328/289 1262/1364/289 1260/1361/514 +f 1249/2310/512 1248/2307/295 1263/1365/295 1265/1367/512 +f 1356/2311/518 1357/2312/519 1358/2313/520 1359/2314/521 +f 1360/2315/522 1361/2316/523 1362/2317/524 1363/2318/525 +f 1364/2319/526 1365/2320/527 1366/2321/528 1367/2322/529 +f 1365/2320/527 1368/2323/530 1369/2324/531 1366/2321/528 +f 1370/2325/532 1356/2311/518 1359/2314/521 1371/2326/533 +f 1357/2312/519 1360/2315/522 1363/2318/525 1358/2313/520 +f 1361/2316/523 1364/2319/526 1367/2322/529 1362/2317/524 +f 1368/2323/530 1370/2327/532 1371/2328/533 1369/2324/531 +f 1367/2322/529 1366/2321/528 1372/2329/534 1373/2330/535 +f 1363/2318/525 1362/2317/524 1374/2331/392 1375/2332/536 +f 1359/2314/521 1358/2313/520 1376/2333/537 1377/2334/538 +f 1369/2324/531 1371/2328/533 1378/2335/539 1379/2336/540 +f 1362/2317/524 1367/2322/529 1373/2330/535 1374/2331/392 +f 1358/2313/520 1363/2318/525 1375/2332/536 1376/2333/537 +f 1371/2326/533 1359/2314/521 1377/2334/538 1378/2337/539 +f 1366/2321/528 1369/2324/531 1379/2336/540 1372/2329/534 +f 1378/2337/539 1377/2334/538 1380/2338/541 1381/2339/136 +f 1372/2329/534 1379/2336/540 1382/2340/542 1383/2341/543 +f 1373/2330/535 1372/2329/534 1383/2341/543 1384/2342/544 +f 1375/2332/536 1374/2331/392 1385/2343/132 1386/2344/545 +f 1377/2334/538 1376/2333/537 1387/2345/546 1380/2338/541 +f 1379/2336/540 1378/2335/539 1381/2346/136 1382/2340/542 +f 1374/2331/392 1373/2330/535 1384/2342/544 1385/2343/132 +f 1376/2333/537 1375/2332/536 1386/2344/545 1387/2345/546 +f 1385/2343/132 1384/2342/544 1388/2347/547 1389/2348/548 +f 1387/2345/546 1386/2344/545 1390/2349/549 1391/2350/550 +f 1381/2339/136 1380/2338/541 1392/2351/551 1393/2352/552 +f 1383/2341/543 1382/2340/542 1394/2353/553 1395/2354/554 +f 1384/2342/544 1383/2341/543 1395/2354/554 1388/2347/547 +f 1386/2344/545 1385/2343/132 1389/2348/548 1390/2349/549 +f 1380/2338/541 1387/2345/546 1391/2350/550 1392/2351/551 +f 1382/2340/542 1381/2346/136 1393/2355/552 1394/2353/553 +f 1396/2356/288 1397/2357/555 1328/1382/555 1325/1379/288 +f 1398/2358/556 1399/2359/557 1316/1370/557 1330/1384/556 +f 1400/2360/290 1401/2361/558 1320/1374/558 1317/1371/290 +f 1402/2362/559 1403/2363/560 1324/1378/560 1321/1375/559 +f 1397/2357/555 1398/2364/556 1330/1386/556 1328/1382/555 +f 1399/2359/557 1400/2360/290 1317/1371/290 1316/1370/557 +f 1401/2361/558 1402/2362/559 1321/1375/559 1320/1374/558 +f 1403/2363/560 1396/2356/288 1325/1379/288 1324/1378/560 +f 1333/2365/558 1332/2366/290 1342/1398/290 1345/1401/558 +f 1327/1381/560 1326/1380/288 1341/1397/288 1340/1396/560 +f 1334/2367/559 1333/2365/558 1345/1401/558 1347/1403/559 +f 1326/1380/288 1329/1383/555 1344/1400/555 1341/1397/288 +f 1335/2368/560 1334/2369/559 1347/1407/559 1349/1406/560 +f 1329/1383/555 1331/1387/556 1346/1402/556 1344/1400/555 +f 1336/2370/288 1335/2368/560 1349/1406/560 1351/1409/288 +f 1331/1385/556 1319/1373/557 1348/1405/557 1346/1404/556 +f 1322/1376/559 1327/1381/560 1340/1396/560 1354/1412/559 +f 1332/2366/290 1339/2371/557 1343/1399/557 1342/1398/290 +f 1323/1377/558 1322/1376/559 1354/1412/559 1352/1410/558 +f 1339/2371/557 1338/2372/556 1355/1413/556 1343/1399/557 +f 1318/1372/290 1323/1377/558 1352/1410/558 1350/1408/290 +f 1338/2372/556 1337/2373/555 1353/1411/555 1355/1413/556 +f 1319/1373/557 1318/1372/290 1350/1408/290 1348/1405/557 +f 1337/2373/555 1336/2370/288 1351/1409/288 1353/1411/555 +f 1444/2374/561 1445/2375/562 1446/2376/563 1447/2377/564 +f 1448/2378/565 1449/2379/566 1450/2380/567 1451/2381/568 +f 1452/2382/569 1453/2383/570 1454/2384/571 1455/2385/572 +f 1453/2383/570 1456/2386/573 1457/2387/574 1454/2384/571 +f 1458/2388/575 1444/2374/561 1447/2377/564 1459/2389/576 +f 1445/2375/562 1448/2378/565 1451/2381/568 1446/2376/563 +f 1449/2379/566 1452/2382/569 1455/2385/572 1450/2380/567 +f 1456/2386/573 1458/2390/575 1459/2391/576 1457/2387/574 +f 1455/2385/572 1454/2384/571 1460/2392/577 1461/2393/578 +f 1451/2381/568 1450/2380/567 1462/2394/579 1463/2395/580 +f 1447/2377/564 1446/2376/563 1464/2396/581 1465/2397/582 +f 1457/2387/574 1459/2391/576 1466/2398/583 1467/2399/584 +f 1450/2380/567 1455/2385/572 1461/2393/578 1462/2394/579 +f 1446/2376/563 1451/2381/568 1463/2395/580 1464/2396/581 +f 1459/2389/576 1447/2377/564 1465/2397/582 1466/2400/583 +f 1454/2384/571 1457/2387/574 1467/2399/584 1460/2392/577 +f 1466/2400/583 1465/2397/582 1468/2401/542 1469/2402/136 +f 1460/2392/577 1467/2399/584 1470/2403/541 1471/2404/546 +f 1461/2393/578 1460/2392/577 1471/2404/546 1472/2405/545 +f 1463/2395/580 1462/2394/579 1473/2406/132 1474/2407/544 +f 1465/2397/582 1464/2396/581 1475/2408/543 1468/2401/542 +f 1467/2399/584 1466/2398/583 1469/2409/136 1470/2403/541 +f 1462/2394/579 1461/2393/578 1472/2405/545 1473/2406/132 +f 1464/2396/581 1463/2395/580 1474/2407/544 1475/2408/543 +f 1473/2406/132 1472/2405/545 1476/2410/585 1477/2411/586 +f 1475/2408/543 1474/2407/544 1478/2412/587 1479/2413/588 +f 1469/2402/136 1468/2401/542 1480/2414/589 1481/2415/590 +f 1471/2404/546 1470/2403/541 1482/2416/591 1483/2417/592 +f 1472/2405/545 1471/2404/546 1483/2417/592 1476/2410/585 +f 1474/2407/544 1473/2406/132 1477/2411/586 1478/2412/587 +f 1468/2401/542 1475/2408/543 1479/2413/588 1480/2414/589 +f 1470/2403/541 1469/2409/136 1481/2418/590 1482/2416/591 +f 1484/2419/290 1485/2420/593 1416/1426/593 1413/1423/290 +f 1486/2421/594 1487/2422/595 1404/1414/595 1418/1428/594 +f 1488/2423/288 1489/2424/596 1408/1418/596 1405/1415/288 +f 1490/2425/597 1491/2426/598 1412/1422/598 1409/1419/597 +f 1485/2420/593 1486/2427/594 1418/1430/594 1416/1426/593 +f 1487/2422/595 1488/2423/288 1405/1415/288 1404/1414/595 +f 1489/2424/596 1490/2425/597 1409/1419/597 1408/1418/596 +f 1491/2426/598 1484/2419/290 1413/1423/290 1412/1422/598 +f 1421/2428/596 1420/2429/288 1430/1442/288 1433/1445/596 +f 1415/1425/598 1414/1424/290 1429/1441/290 1428/1440/598 +f 1422/2430/597 1421/2428/596 1433/1445/596 1435/1447/597 +f 1414/1424/290 1417/1427/593 1432/1444/593 1429/1441/290 +f 1423/2431/598 1422/2432/597 1435/1451/597 1437/1450/598 +f 1417/1427/593 1419/1431/594 1434/1446/594 1432/1444/593 +f 1424/2433/290 1423/2431/598 1437/1450/598 1439/1453/290 +f 1419/1429/594 1407/1417/595 1436/1449/595 1434/1448/594 +f 1410/1420/597 1415/1425/598 1428/1440/598 1442/1456/597 +f 1420/2429/288 1427/2434/595 1431/1443/595 1430/1442/288 +f 1411/1421/596 1410/1420/597 1442/1456/597 1440/1454/596 +f 1427/2434/595 1426/2435/594 1443/1457/594 1431/1443/595 +f 1406/1416/288 1411/1421/596 1440/1454/596 1438/1452/288 +f 1426/2435/594 1425/2436/593 1441/1455/593 1443/1457/594 +f 1407/1417/595 1406/1416/288 1438/1452/288 1436/1449/595 +f 1425/2436/593 1424/2433/290 1439/1453/290 1441/1455/593 +f 1532/2437/599 1533/2438/600 1534/2439/601 1535/2440/602 +f 1536/2441/603 1537/2442/604 1538/2443/605 1539/2444/606 +f 1540/2445/607 1541/2446/608 1542/2447/609 1543/2448/610 +f 1541/2446/608 1544/2449/611 1545/2450/612 1542/2447/609 +f 1546/2451/613 1532/2437/599 1535/2440/602 1547/2452/614 +f 1533/2438/600 1536/2441/603 1539/2444/606 1534/2439/601 +f 1537/2442/604 1540/2445/607 1543/2448/610 1538/2443/605 +f 1544/2449/611 1546/2453/613 1547/2454/614 1545/2450/612 +f 1543/2448/610 1542/2447/609 1548/2455/615 1549/2456/616 +f 1539/2444/606 1538/2443/605 1550/2457/617 1551/2458/618 +f 1535/2440/602 1534/2439/601 1552/2459/619 1553/2460/620 +f 1545/2450/612 1547/2454/614 1554/2461/621 1555/2462/622 +f 1538/2443/605 1543/2448/610 1549/2456/616 1550/2457/617 +f 1534/2439/601 1539/2444/606 1551/2458/618 1552/2459/619 +f 1547/2452/614 1535/2440/602 1553/2460/620 1554/2463/621 +f 1542/2447/609 1545/2450/612 1555/2462/622 1548/2455/615 +f 1554/2463/621 1553/2460/620 1556/2464/623 1557/2465/136 +f 1548/2455/615 1555/2462/622 1558/2466/624 1559/2467/625 +f 1549/2456/616 1548/2455/615 1559/2467/625 1560/2468/626 +f 1551/2458/618 1550/2457/617 1561/2469/132 1562/2470/627 +f 1553/2460/620 1552/2459/619 1563/2471/628 1556/2464/623 +f 1555/2462/622 1554/2461/621 1557/2472/136 1558/2466/624 +f 1550/2457/617 1549/2456/616 1560/2468/626 1561/2469/132 +f 1552/2459/619 1551/2458/618 1562/2470/627 1563/2471/628 +f 1561/2469/132 1560/2468/626 1564/2473/629 1565/2474/630 +f 1563/2471/628 1562/2470/627 1566/2475/631 1567/2476/632 +f 1557/2465/136 1556/2464/623 1568/2477/633 1569/2478/634 +f 1559/2467/625 1558/2466/624 1570/2479/635 1571/2480/636 +f 1560/2468/626 1559/2467/625 1571/2480/636 1564/2473/629 +f 1562/2470/627 1561/2469/132 1565/2474/630 1566/2475/631 +f 1556/2464/623 1563/2471/628 1567/2476/632 1568/2477/633 +f 1558/2466/624 1557/2472/136 1569/2481/634 1570/2479/635 +f 1572/2482/294 1573/2483/637 1504/1470/637 1501/1467/294 +f 1574/2484/638 1575/2485/639 1492/1458/639 1506/1472/638 +f 1576/2486/293 1577/2487/640 1496/1462/640 1493/1459/293 +f 1578/2488/641 1579/2489/642 1500/1466/642 1497/1463/641 +f 1573/2483/637 1574/2490/638 1506/1474/638 1504/1470/637 +f 1575/2485/639 1576/2486/293 1493/1459/293 1492/1458/639 +f 1577/2487/640 1578/2488/641 1497/1463/641 1496/1462/640 +f 1579/2489/642 1572/2482/294 1501/1467/294 1500/1466/642 +f 1509/2491/640 1508/2492/293 1518/1486/293 1521/1489/640 +f 1503/1469/642 1502/1468/294 1517/1485/294 1516/1484/642 +f 1510/2493/641 1509/2491/640 1521/1489/640 1523/1491/641 +f 1502/1468/294 1505/1471/637 1520/1488/637 1517/1485/294 +f 1511/2494/642 1510/2495/641 1523/1495/641 1525/1494/642 +f 1505/1471/637 1507/1475/638 1522/1490/638 1520/1488/637 +f 1512/2496/294 1511/2494/642 1525/1494/642 1527/1497/294 +f 1507/1473/638 1495/1461/639 1524/1493/639 1522/1492/638 +f 1498/1464/641 1503/1469/642 1516/1484/642 1530/1500/641 +f 1508/2492/293 1515/2497/639 1519/1487/639 1518/1486/293 +f 1499/1465/640 1498/1464/641 1530/1500/641 1528/1498/640 +f 1515/2497/639 1514/2498/638 1531/1501/638 1519/1487/639 +f 1494/1460/293 1499/1465/640 1528/1498/640 1526/1496/293 +f 1514/2498/638 1513/2499/637 1529/1499/637 1531/1501/638 +f 1495/1461/639 1494/1460/293 1526/1496/293 1524/1493/639 +f 1513/2499/637 1512/2496/294 1527/1497/294 1529/1499/637 +f 1620/2500/643 1621/2501/644 1622/2502/645 1623/2503/646 +f 1624/2504/647 1625/2505/648 1626/2506/649 1627/2507/650 +f 1628/2508/651 1629/2509/652 1630/2510/653 1631/2511/654 +f 1629/2509/652 1632/2512/655 1633/2513/656 1630/2510/653 +f 1634/2514/657 1620/2500/643 1623/2503/646 1635/2515/658 +f 1621/2501/644 1624/2504/647 1627/2507/650 1622/2502/645 +f 1625/2505/648 1628/2508/651 1631/2511/654 1626/2506/649 +f 1632/2512/655 1634/2516/657 1635/2517/658 1633/2513/656 +f 1631/2511/654 1630/2510/653 1636/2518/659 1637/2519/660 +f 1627/2507/650 1626/2506/649 1638/2520/383 1639/2521/661 +f 1623/2503/646 1622/2502/645 1640/2522/662 1641/2523/663 +f 1633/2513/656 1635/2517/658 1642/2524/664 1643/2525/665 +f 1626/2506/649 1631/2511/654 1637/2519/660 1638/2520/383 +f 1622/2502/645 1627/2507/650 1639/2521/661 1640/2522/662 +f 1635/2515/658 1623/2503/646 1641/2523/663 1642/2526/664 +f 1630/2510/653 1633/2513/656 1643/2525/665 1636/2518/659 +f 1642/2526/664 1641/2523/663 1644/2527/624 1645/2528/136 +f 1636/2518/659 1643/2525/665 1646/2529/623 1647/2530/628 +f 1637/2519/660 1636/2518/659 1647/2530/628 1648/2531/627 +f 1639/2521/661 1638/2520/383 1649/2532/132 1650/2533/626 +f 1641/2523/663 1640/2522/662 1651/2534/625 1644/2527/624 +f 1643/2525/665 1642/2524/664 1645/2535/136 1646/2529/623 +f 1638/2520/383 1637/2519/660 1648/2531/627 1649/2532/132 +f 1640/2522/662 1639/2521/661 1650/2533/626 1651/2534/625 +f 1649/2532/132 1648/2531/627 1652/2536/666 1653/2537/667 +f 1651/2534/625 1650/2533/626 1654/2538/668 1655/2539/669 +f 1645/2528/136 1644/2527/624 1656/2540/670 1657/2541/671 +f 1647/2530/628 1646/2529/623 1658/2542/672 1659/2543/673 +f 1648/2531/627 1647/2530/628 1659/2543/673 1652/2536/666 +f 1650/2533/626 1649/2532/132 1653/2537/667 1654/2538/668 +f 1644/2527/624 1651/2534/625 1655/2539/669 1656/2540/670 +f 1646/2529/623 1645/2535/136 1657/2544/671 1658/2542/672 +f 1660/2545/293 1661/2546/674 1592/1514/674 1589/1511/293 +f 1662/2547/675 1663/2548/676 1580/1502/676 1594/1516/675 +f 1664/2549/294 1665/2550/677 1584/1506/677 1581/1503/294 +f 1666/2551/678 1667/2552/679 1588/1510/679 1585/1507/678 +f 1661/2546/674 1662/2553/675 1594/1518/675 1592/1514/674 +f 1663/2548/676 1664/2549/294 1581/1503/294 1580/1502/676 +f 1665/2550/677 1666/2551/678 1585/1507/678 1584/1506/677 +f 1667/2552/679 1660/2545/293 1589/1511/293 1588/1510/679 +f 1597/2554/677 1596/2555/294 1606/1530/294 1609/1533/677 +f 1591/1513/679 1590/1512/293 1605/1529/293 1604/1528/679 +f 1598/2556/678 1597/2554/677 1609/1533/677 1611/1535/678 +f 1590/1512/293 1593/1515/674 1608/1532/674 1605/1529/293 +f 1599/2557/679 1598/2558/678 1611/1539/678 1613/1538/679 +f 1593/1515/674 1595/1519/675 1610/1534/675 1608/1532/674 +f 1600/2559/293 1599/2557/679 1613/1538/679 1615/1541/293 +f 1595/1517/675 1583/1505/676 1612/1537/676 1610/1536/675 +f 1586/1508/678 1591/1513/679 1604/1528/679 1618/1544/678 +f 1596/2555/294 1603/2560/676 1607/1531/676 1606/1530/294 +f 1587/1509/677 1586/1508/678 1618/1544/678 1616/1542/677 +f 1603/2560/676 1602/2561/675 1619/1545/675 1607/1531/676 +f 1582/1504/294 1587/1509/677 1616/1542/677 1614/1540/294 +f 1602/2561/675 1601/2562/674 1617/1543/674 1619/1545/675 +f 1583/1505/676 1582/1504/294 1614/1540/294 1612/1537/676 +f 1601/2562/674 1600/2559/293 1615/1541/293 1617/1543/674 +f 1800/2563/128 1796/2564/125 1801/2565/680 1805/2566/681 +f 1797/2567/131 1798/2568/292 1803/2569/682 1802/2570/683 +f 1799/2571/293 1800/2563/128 1805/2566/681 1804/2572/684 +f 1796/2564/125 1797/2567/131 1802/2570/683 1801/2565/680 +f 1802/2570/683 1803/2569/682 1808/2573/685 1807/2574/686 +f 1804/2572/684 1805/2566/681 1810/2575/687 1809/2576/688 +f 1801/2565/680 1802/2570/683 1807/2574/686 1806/2577/170 +f 1805/2566/681 1801/2565/680 1806/2577/170 1810/2575/687 +f 1810/2575/687 1806/2577/170 1811/2578/312 1815/2579/689 +f 1807/2574/686 1808/2573/685 1813/2580/690 1812/2581/691 +f 1809/2576/688 1810/2575/687 1815/2579/689 1814/2582/692 +f 1806/2577/170 1807/2574/686 1812/2581/691 1811/2578/312 +f 1820/2583/128 1816/2584/125 1821/2585/680 1825/2586/681 +f 1817/2587/131 1818/2588/292 1823/2589/682 1822/2590/683 +f 1819/2591/293 1820/2583/128 1825/2586/681 1824/2592/684 +f 1816/2584/125 1817/2587/131 1822/2590/683 1821/2585/680 +f 1822/2590/683 1823/2589/682 1828/2593/685 1827/2594/686 +f 1824/2592/684 1825/2586/681 1830/2595/687 1829/2596/688 +f 1821/2585/680 1822/2590/683 1827/2594/686 1826/2597/170 +f 1825/2586/681 1821/2585/680 1826/2597/170 1830/2595/687 +f 1830/2595/687 1826/2597/170 1831/2598/312 1835/2599/689 +f 1827/2594/686 1828/2593/685 1833/2600/690 1832/2601/691 +f 1829/2596/688 1830/2595/687 1835/2599/689 1834/2602/692 +f 1826/2597/170 1827/2594/686 1832/2601/691 1831/2598/312 +f 1840/2603/128 1836/2604/125 1841/2605/680 1845/2606/681 +f 1837/2607/131 1838/2608/292 1843/2609/682 1842/2610/683 +f 1839/2611/293 1840/2603/128 1845/2606/681 1844/2612/684 +f 1836/2604/125 1837/2607/131 1842/2610/683 1841/2605/680 +f 1842/2610/683 1843/2609/682 1848/2613/685 1847/2614/686 +f 1844/2612/684 1845/2606/681 1850/2615/687 1849/2616/688 +f 1841/2605/680 1842/2610/683 1847/2614/686 1846/2617/170 +f 1845/2606/681 1841/2605/680 1846/2617/170 1850/2615/687 +f 1850/2615/687 1846/2617/170 1851/2618/312 1855/2619/689 +f 1847/2614/686 1848/2613/685 1853/2620/690 1852/2621/691 +f 1849/2616/688 1850/2615/687 1855/2619/689 1854/2622/692 +f 1846/2617/170 1847/2614/686 1852/2621/691 1851/2618/312 diff --git a/src/main/resources/assets/hbm/models/weapons/cryo_cannon_alt.obj b/src/main/resources/assets/hbm/models/weapons/cryo_cannon_alt.obj new file mode 100644 index 000000000..9276f71a0 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/cryo_cannon_alt.obj @@ -0,0 +1,8217 @@ +# Blender v2.79 (sub 0) OBJ File: 'cryo_cannon_alt.blend' +# www.blender.org +o Plane.004 +v -0.437500 2.102596 -3.042822 +v -0.483253 2.144063 -3.023486 +v -0.500000 2.200707 -2.997072 +v -0.483253 2.257351 -2.970659 +v -0.437500 2.298818 -2.951323 +v -0.375000 2.313995 -2.944245 +v -0.312500 2.298818 -2.951323 +v -0.266747 2.257351 -2.970659 +v -0.250000 2.200707 -2.997072 +v -0.266747 2.144063 -3.023486 +v -0.312500 2.102596 -3.042822 +v -0.375000 2.087419 -3.049900 +vt 0.500000 0.000000 +vt 0.066987 0.250000 +vt 0.500000 1.000000 +vt 0.750000 0.933013 +vt 0.933013 0.750000 +vt 1.000000 0.500000 +vt 0.933013 0.250000 +vt 0.750000 0.066987 +vt 0.250000 0.066987 +vt 0.000000 0.500000 +vt 0.066987 0.750000 +vt 0.250000 0.933013 +vn -0.0000 0.4226 -0.9063 +s off +f 6/1/1 8/2/1 12/3/1 +f 12/3/1 1/4/1 2/5/1 +f 2/5/1 3/6/1 12/3/1 +f 3/6/1 4/7/1 12/3/1 +f 4/7/1 5/8/1 6/1/1 +f 6/1/1 7/9/1 8/2/1 +f 8/2/1 9/10/1 12/3/1 +f 9/10/1 10/11/1 12/3/1 +f 10/11/1 11/12/1 12/3/1 +f 4/7/1 6/1/1 12/3/1 +o Plane.003 +v -0.216506 2.340409 -3.000889 +v -0.250000 2.227120 -3.053716 +v -0.216506 2.113832 -3.106544 +v -0.125000 2.030899 -3.145216 +v 0.000000 2.000544 -3.159371 +v 0.125000 2.030899 -3.145216 +v 0.216506 2.113832 -3.106544 +v 0.250000 2.227120 -3.053716 +v 0.216506 2.340409 -3.000889 +v 0.125000 2.423342 -2.962217 +v 0.000000 2.453697 -2.948062 +v -0.125000 2.423342 -2.962217 +vt 0.500000 0.000000 +vt 0.066987 0.250000 +vt 0.066987 0.750000 +vt 0.250000 0.933013 +vt 0.500000 1.000000 +vt 0.750000 0.933013 +vt 0.933013 0.750000 +vt 1.000000 0.500000 +vt 0.933013 0.250000 +vt 0.750000 0.066987 +vt 0.250000 0.066987 +vt 0.000000 0.500000 +vn 0.0000 0.4226 -0.9063 +s off +f 17/13/2 15/14/2 13/15/2 +f 13/15/2 24/16/2 23/17/2 +f 23/17/2 22/18/2 21/19/2 +f 21/19/2 20/20/2 19/21/2 +f 19/21/2 18/22/2 17/13/2 +f 17/13/2 16/23/2 15/14/2 +f 15/14/2 14/24/2 13/15/2 +f 13/15/2 23/17/2 17/13/2 +f 23/17/2 21/19/2 17/13/2 +f 21/19/2 19/21/2 17/13/2 +o Plane.002 +v -0.109472 2.437500 -0.413125 +v 0.003817 2.437500 -0.360298 +v 0.109472 2.437500 -0.586875 +v -0.003817 2.437500 -0.639702 +v 0.109472 2.312500 -0.586875 +v -0.003817 2.312500 -0.639702 +v -0.109472 2.312500 -0.413125 +v 0.003817 2.312500 -0.360298 +v 0.109472 0.062500 -0.413125 +v -0.003817 0.062500 -0.360298 +v -0.109472 0.062500 -0.586875 +v 0.003816 0.062500 -0.639702 +v -0.109472 0.187500 -0.586875 +v 0.003816 0.187500 -0.639702 +v 0.109472 0.187500 -0.413125 +v -0.003817 0.187500 -0.360298 +v 1.187500 1.359472 -0.413125 +v 1.187500 1.246183 -0.360298 +v 1.187500 1.140528 -0.586875 +v 1.187500 1.253817 -0.639702 +v 1.062500 1.140528 -0.586875 +v 1.062500 1.253817 -0.639702 +v 1.062500 1.359472 -0.413125 +v 1.062500 1.246183 -0.360298 +v -1.187500 1.140528 -0.413125 +v -1.187500 1.253817 -0.360298 +v -1.187500 1.359473 -0.586875 +v -1.187500 1.246184 -0.639702 +v -1.062500 1.359473 -0.586875 +v -1.062500 1.246184 -0.639702 +v -1.062500 1.140528 -0.413125 +v -1.062500 1.253817 -0.360298 +v 0.762281 2.167098 -0.413125 +v 0.842388 2.086991 -0.360298 +v 0.917098 2.012281 -0.586875 +v 0.836990 2.092388 -0.639702 +v 0.828709 1.923892 -0.586875 +v 0.748602 2.004000 -0.639702 +v 0.673892 2.078710 -0.413125 +v 0.754000 1.998602 -0.360298 +v -0.762281 0.332902 -0.413125 +v -0.842388 0.413010 -0.360298 +v -0.917098 0.487720 -0.586875 +v -0.836991 0.407612 -0.639702 +v -0.828710 0.576108 -0.586875 +v -0.748602 0.496001 -0.639702 +v -0.673892 0.421291 -0.413125 +v -0.754000 0.501398 -0.360298 +v 0.917098 0.487720 -0.413125 +v 0.836990 0.407612 -0.360298 +v 0.762280 0.332902 -0.586875 +v 0.842388 0.413010 -0.639702 +v 0.673892 0.421291 -0.586875 +v 0.753999 0.501398 -0.639702 +v 0.828709 0.576108 -0.413125 +v 0.748602 0.496001 -0.360298 +v -0.917098 2.012281 -0.413125 +v -0.836990 2.092388 -0.360298 +v -0.762281 2.167098 -0.586875 +v -0.842388 2.086991 -0.639702 +v -0.673892 2.078710 -0.586875 +v -0.754000 1.998602 -0.639702 +v -0.828709 1.923893 -0.413125 +v -0.748602 2.004000 -0.360298 +v 1.083141 0.751056 -0.413125 +v 1.026497 0.652945 -0.360298 +v 0.973669 0.561444 -0.586875 +v 1.030313 0.659555 -0.639702 +v 0.865416 0.623944 -0.586875 +v 0.922060 0.722055 -0.639702 +v 0.974888 0.813556 -0.413125 +v 0.918243 0.715445 -0.360298 +v -1.083141 1.748945 -0.413125 +v -1.026497 1.847056 -0.360298 +v -0.973669 1.938556 -0.586875 +v -1.030313 1.840445 -0.639702 +v -0.865416 1.876056 -0.586875 +v -0.922060 1.777945 -0.639702 +v -0.974888 1.686445 -0.413125 +v -0.918244 1.784556 -0.360298 +v -0.498944 0.166859 -0.413125 +v -0.597055 0.223504 -0.360298 +v -0.688556 0.276331 -0.586875 +v -0.590445 0.219687 -0.639702 +v -0.626056 0.384585 -0.586875 +v -0.527945 0.327940 -0.639702 +v -0.436444 0.275112 -0.413125 +v -0.534555 0.331757 -0.360298 +v 0.498944 2.333141 -0.413125 +v 0.597055 2.276497 -0.360298 +v 0.688556 2.223669 -0.586875 +v 0.590445 2.280313 -0.639702 +v 0.626056 2.115416 -0.586875 +v 0.527945 2.172060 -0.639702 +v 0.436444 2.224888 -0.413125 +v 0.534555 2.168244 -0.360298 +v 0.413089 0.131297 -0.413125 +v 0.303661 0.101975 -0.360298 +v 0.201605 0.074630 -0.586875 +v 0.311034 0.103951 -0.639702 +v 0.169253 0.195371 -0.586875 +v 0.278682 0.224692 -0.639702 +v 0.380737 0.252038 -0.413125 +v 0.271308 0.222716 -0.360298 +v -0.413090 2.368703 -0.413125 +v -0.303661 2.398025 -0.360298 +v -0.201605 2.425371 -0.586875 +v -0.311034 2.396049 -0.639702 +v -0.169253 2.304630 -0.586875 +v -0.278682 2.275309 -0.639702 +v -0.380737 2.247963 -0.413125 +v -0.271308 2.277284 -0.360298 +v -1.118703 0.836911 -0.413125 +v -1.148025 0.946339 -0.360298 +v -1.175370 1.048395 -0.586875 +v -1.146049 0.938966 -0.639702 +v -1.054630 1.080747 -0.586875 +v -1.025308 0.971319 -0.639702 +v -0.997963 0.869263 -0.413125 +v -1.027284 0.978692 -0.360298 +v 1.118703 1.663090 -0.413125 +v 1.148025 1.553661 -0.360298 +v 1.175370 1.451605 -0.586875 +v 1.146049 1.561034 -0.639702 +v 1.054630 1.419253 -0.586875 +v 1.025308 1.528682 -0.639702 +v 0.997963 1.630737 -0.413125 +v 1.027284 1.521308 -0.360298 +v -0.973669 0.561445 -0.413125 +v -1.030313 0.659556 -0.360298 +v -1.083141 0.751056 -0.586875 +v -1.026497 0.652945 -0.639702 +v -0.974888 0.813556 -0.586875 +v -0.918244 0.715445 -0.639702 +v -0.865416 0.623945 -0.413125 +v -0.922060 0.722056 -0.360298 +v 0.973669 1.938556 -0.413125 +v 1.030313 1.840445 -0.360298 +v 1.083141 1.748944 -0.586875 +v 1.026497 1.847055 -0.639702 +v 0.974888 1.686444 -0.586875 +v 0.918244 1.784555 -0.639702 +v 0.865416 1.876056 -0.413125 +v 0.922060 1.777945 -0.360298 +v -0.688556 2.223669 -0.413125 +v -0.590444 2.280313 -0.360298 +v -0.498944 2.333141 -0.586875 +v -0.597055 2.276497 -0.639702 +v -0.436444 2.224888 -0.586875 +v -0.534555 2.168244 -0.639702 +v -0.626056 2.115416 -0.413125 +v -0.527944 2.172060 -0.360298 +v 0.688555 0.276331 -0.413125 +v 0.590444 0.219687 -0.360298 +v 0.498944 0.166859 -0.586875 +v 0.597055 0.223503 -0.639702 +v 0.436444 0.275112 -0.586875 +v 0.534555 0.331756 -0.639702 +v 0.626055 0.384584 -0.413125 +v 0.527944 0.327940 -0.360298 +v -1.175370 1.451606 -0.413125 +v -1.146049 1.561034 -0.360298 +v -1.118703 1.663090 -0.586875 +v -1.148025 1.553661 -0.639702 +v -0.997963 1.630738 -0.586875 +v -1.027284 1.521309 -0.639702 +v -1.054630 1.419253 -0.413125 +v -1.025308 1.528682 -0.360298 +v 1.175370 1.048394 -0.413125 +v 1.146049 0.938966 -0.360298 +v 1.118703 0.836910 -0.586875 +v 1.148024 0.946339 -0.639702 +v 0.997963 0.869263 -0.586875 +v 1.027284 0.978691 -0.639702 +v 1.054630 1.080747 -0.413125 +v 1.025308 0.971318 -0.360298 +v 0.201606 2.425370 -0.413125 +v 0.311034 2.396049 -0.360298 +v 0.413090 2.368703 -0.586875 +v 0.303661 2.398025 -0.639702 +v 0.380738 2.247962 -0.586875 +v 0.271309 2.277284 -0.639702 +v 0.169253 2.304630 -0.413125 +v 0.278682 2.275308 -0.360298 +v -0.201606 0.074630 -0.413125 +v -0.311035 0.103951 -0.360298 +v -0.413090 0.131297 -0.586875 +v -0.303662 0.101975 -0.639702 +v -0.380738 0.252038 -0.586875 +v -0.271309 0.222716 -0.639702 +v -0.169254 0.195371 -0.413125 +v -0.278682 0.224692 -0.360298 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.303448 0.125000 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.303448 0.125000 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.303448 0.125000 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.303448 0.125000 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.303448 0.125000 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.303448 0.125000 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.303448 0.125000 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.296552 0.125000 +vt 0.324138 0.109375 +vt 0.317241 0.140625 +vt 0.303448 0.093750 +vt 0.296552 0.125000 +vt 0.324138 0.109375 +vt 0.303448 0.093750 +vt 0.296552 0.125000 +vt 0.324138 0.109375 +vt 0.317241 0.140625 +vt 0.303448 0.093750 +vt 0.324138 0.109375 +vt 0.317241 0.140625 +vt 0.303448 0.093750 +vt 0.296552 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.140625 +vt 0.303448 0.093750 +vt 0.296552 0.125000 +vt 0.324138 0.109375 +vt 0.303448 0.093750 +vt 0.324138 0.109375 +vt 0.303448 0.093750 +vt 0.296552 0.125000 +vt 0.324138 0.109375 +vt 0.317241 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.140625 +vt 0.303448 0.093750 +vt 0.296552 0.125000 +vt 0.324138 0.109375 +vt 0.317241 0.140625 +vt 0.303448 0.093750 +vt 0.296552 0.125000 +vt 0.303448 0.093750 +vt 0.296552 0.125000 +vt 0.324138 0.109375 +vt 0.324138 0.109375 +vt 0.317241 0.140625 +vt 0.303448 0.093750 +vt 0.324138 0.109375 +vt 0.317241 0.140625 +vt 0.303448 0.093750 +vt 0.296552 0.125000 +vt 0.324138 0.109375 +vt 0.303448 0.093750 +vt 0.324138 0.109375 +vt 0.317241 0.140625 +vt 0.303448 0.093750 +vt 0.324138 0.109375 +vt 0.303448 0.093750 +vt 0.296552 0.125000 +vt 0.324138 0.109375 +vt 0.317241 0.140625 +vt 0.303448 0.093750 +vt 0.296552 0.125000 +vt 0.303448 0.093750 +vt 0.296552 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.093750 +vt 0.296552 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.093750 +vt 0.296552 0.125000 +vn 0.0000 1.0000 0.0000 +vn 0.4226 0.0000 -0.9063 +vn -0.4226 -0.0000 0.9063 +vn 0.9063 0.0000 0.4226 +vn -0.9063 0.0000 -0.4226 +vn -0.0000 -1.0000 -0.0000 +vn -0.4226 -0.0000 -0.9063 +vn 0.4226 -0.0000 0.9063 +vn -0.9063 0.0000 0.4226 +vn 0.9063 -0.0000 -0.4226 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -0.4226 -0.9063 +vn 0.0000 0.4226 0.9063 +vn 0.0000 -0.9063 0.4226 +vn 0.0000 0.9063 -0.4226 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.4226 -0.9063 +vn 0.0000 -0.4226 0.9063 +vn 0.0000 0.9063 0.4226 +vn 0.0000 -0.9063 -0.4226 +vn 0.7071 0.7071 0.0000 +vn 0.2988 -0.2988 -0.9063 +vn -0.2988 0.2988 0.9063 +vn 0.6409 -0.6409 0.4226 +vn -0.6409 0.6409 -0.4226 +vn -0.7071 -0.7071 0.0000 +vn -0.2988 0.2988 -0.9063 +vn 0.2988 -0.2988 0.9063 +vn -0.6409 0.6409 0.4226 +vn 0.6409 -0.6409 -0.4226 +vn 0.7071 -0.7071 0.0000 +vn -0.2988 -0.2988 -0.9063 +vn 0.2988 0.2988 0.9063 +vn -0.6409 -0.6409 0.4226 +vn 0.6409 0.6409 -0.4226 +vn -0.7071 0.7071 -0.0000 +vn 0.2988 0.2988 -0.9063 +vn -0.2988 -0.2988 0.9063 +vn 0.6409 0.6409 0.4226 +vn -0.6409 -0.6409 -0.4226 +vn 0.8660 -0.5000 0.0000 +vn -0.2113 -0.3660 -0.9063 +vn 0.2113 0.3660 0.9063 +vn -0.4532 -0.7849 0.4226 +vn 0.4532 0.7849 -0.4226 +vn -0.8660 0.5000 -0.0000 +vn 0.2113 0.3660 -0.9063 +vn -0.2113 -0.3660 0.9063 +vn 0.4532 0.7849 0.4226 +vn -0.4532 -0.7849 -0.4226 +vn -0.5000 -0.8660 0.0000 +vn -0.3660 0.2113 -0.9063 +vn 0.3660 -0.2113 0.9063 +vn -0.7849 0.4532 0.4226 +vn 0.7849 -0.4532 -0.4226 +vn 0.5000 0.8660 -0.0000 +vn 0.3660 -0.2113 -0.9063 +vn -0.3660 0.2113 0.9063 +vn 0.7849 -0.4532 0.4226 +vn -0.7849 0.4532 -0.4226 +vn 0.2588 -0.9659 -0.0000 +vn -0.4082 -0.1094 -0.9063 +vn 0.4082 0.1094 0.9063 +vn -0.8754 -0.2346 0.4226 +vn 0.8754 0.2346 -0.4226 +vn -0.2588 0.9659 -0.0000 +vn 0.4082 0.1094 -0.9063 +vn -0.4082 -0.1094 0.9063 +vn 0.8754 0.2346 0.4226 +vn -0.8754 -0.2346 -0.4226 +vn -0.9659 -0.2588 0.0000 +vn -0.1094 0.4082 -0.9063 +vn 0.1094 -0.4082 0.9063 +vn -0.2346 0.8754 0.4226 +vn 0.2346 -0.8754 -0.4226 +vn 0.9659 0.2588 0.0000 +vn 0.1094 -0.4082 -0.9063 +vn -0.1094 0.4082 0.9063 +vn 0.2346 -0.8754 0.4226 +vn -0.2346 0.8754 -0.4226 +vn -0.8660 -0.5000 0.0000 +vn -0.2113 0.3660 -0.9063 +vn 0.2113 -0.3660 0.9063 +vn -0.4532 0.7849 0.4226 +vn 0.4532 -0.7849 -0.4226 +vn 0.8660 0.5000 0.0000 +vn 0.2113 -0.3660 -0.9063 +vn -0.2113 0.3660 0.9063 +vn 0.4532 -0.7849 0.4226 +vn -0.4532 0.7849 -0.4226 +vn -0.5000 0.8660 0.0000 +vn 0.3660 0.2113 -0.9063 +vn -0.3660 -0.2113 0.9063 +vn 0.7849 0.4532 0.4226 +vn -0.7849 -0.4532 -0.4226 +vn 0.5000 -0.8660 -0.0000 +vn -0.3660 -0.2113 -0.9063 +vn 0.3660 0.2113 0.9063 +vn -0.7849 -0.4532 0.4226 +vn 0.7849 0.4532 -0.4226 +vn -0.9659 0.2588 0.0000 +vn 0.1094 0.4082 -0.9063 +vn -0.1094 -0.4082 0.9063 +vn 0.2346 0.8754 0.4226 +vn -0.2346 -0.8754 -0.4226 +vn 0.9659 -0.2588 -0.0000 +vn -0.1094 -0.4082 -0.9063 +vn 0.1094 0.4082 0.9063 +vn -0.2346 -0.8754 0.4226 +vn 0.2346 0.8754 -0.4226 +vn 0.2588 0.9659 -0.0000 +vn 0.4082 -0.1094 -0.9063 +vn -0.4082 0.1094 0.9063 +vn 0.8754 -0.2346 0.4226 +vn -0.8754 0.2346 -0.4226 +vn -0.2588 -0.9659 0.0000 +vn -0.4082 0.1094 -0.9063 +vn 0.4082 -0.1094 0.9063 +vn -0.8754 0.2346 0.4226 +vn 0.8754 -0.2346 -0.4226 +s off +f 26/25/3 28/26/3 25/27/3 +f 27/28/4 30/29/4 28/26/4 +f 25/27/5 32/30/5 26/25/5 +f 26/25/6 29/31/6 27/28/6 +f 28/26/7 31/32/7 25/27/7 +f 34/33/8 36/34/8 33/35/8 +f 35/36/9 38/37/9 36/34/9 +f 33/35/10 40/38/10 34/33/10 +f 35/36/11 40/39/11 37/40/11 +f 36/34/12 39/41/12 33/35/12 +f 42/42/13 44/43/13 41/44/13 +f 43/45/14 46/46/14 44/43/14 +f 41/44/15 48/47/15 42/42/15 +f 42/42/16 45/48/16 43/45/16 +f 44/43/17 47/49/17 41/44/17 +f 50/50/18 52/51/18 49/52/18 +f 52/51/19 53/53/19 54/54/19 +f 49/52/20 56/55/20 50/50/20 +f 50/50/21 53/56/21 51/57/21 +f 52/51/22 55/58/22 49/52/22 +f 58/59/23 60/60/23 57/61/23 +f 59/62/24 62/63/24 60/60/24 +f 58/59/25 63/64/25 64/65/25 +f 58/59/26 61/66/26 59/62/26 +f 60/60/27 63/67/27 57/61/27 +f 66/68/28 68/69/28 65/70/28 +f 68/69/29 69/71/29 70/72/29 +f 66/68/30 71/73/30 72/74/30 +f 66/68/31 69/75/31 67/76/31 +f 68/69/32 71/77/32 65/70/32 +f 74/78/33 76/79/33 73/80/33 +f 75/81/34 78/82/34 76/79/34 +f 73/80/35 80/83/35 74/78/35 +f 75/81/36 80/84/36 77/85/36 +f 76/79/37 79/86/37 73/80/37 +f 82/87/38 84/88/38 81/89/38 +f 84/88/39 85/90/39 86/91/39 +f 81/89/40 88/92/40 82/87/40 +f 83/93/41 88/94/41 85/95/41 +f 84/88/42 87/96/42 81/89/42 +f 90/97/43 92/98/43 89/99/43 +f 91/100/44 94/101/44 92/98/44 +f 89/99/45 96/102/45 90/97/45 +f 90/97/46 93/103/46 91/100/46 +f 92/98/47 95/104/47 89/99/47 +f 98/105/48 100/106/48 97/107/48 +f 100/106/49 101/108/49 102/109/49 +f 98/105/50 103/110/50 104/111/50 +f 98/105/51 101/112/51 99/113/51 +f 100/106/52 103/114/52 97/107/52 +f 106/115/53 108/116/53 105/117/53 +f 107/118/54 110/119/54 108/116/54 +f 105/117/55 112/120/55 106/115/55 +f 106/115/56 109/121/56 107/118/56 +f 108/116/57 111/122/57 105/117/57 +f 114/123/58 116/124/58 113/125/58 +f 115/126/59 118/127/59 116/124/59 +f 114/123/60 119/128/60 120/129/60 +f 115/126/61 120/130/61 117/131/61 +f 116/124/62 119/132/62 113/125/62 +f 122/133/63 124/134/63 121/135/63 +f 123/136/64 126/137/64 124/134/64 +f 121/135/65 128/138/65 122/133/65 +f 123/136/66 128/139/66 125/140/66 +f 121/135/67 126/141/67 127/142/67 +f 130/143/68 132/144/68 129/145/68 +f 132/144/69 133/146/69 134/147/69 +f 129/145/70 136/148/70 130/143/70 +f 130/143/71 133/149/71 131/150/71 +f 132/144/72 135/151/72 129/145/72 +f 138/152/73 140/153/73 137/154/73 +f 140/153/74 141/155/74 142/156/74 +f 137/154/75 144/157/75 138/152/75 +f 138/152/76 141/158/76 139/159/76 +f 140/153/77 143/160/77 137/154/77 +f 146/161/78 148/162/78 145/163/78 +f 147/164/79 150/165/79 148/162/79 +f 145/163/80 152/166/80 146/161/80 +f 147/164/81 152/167/81 149/168/81 +f 148/162/82 151/169/82 145/163/82 +f 154/170/83 156/171/83 153/172/83 +f 156/171/84 157/173/84 158/174/84 +f 153/172/85 160/175/85 154/170/85 +f 154/170/86 157/176/86 155/177/86 +f 156/171/87 159/178/87 153/172/87 +f 162/179/88 164/180/88 161/181/88 +f 164/180/89 165/182/89 166/183/89 +f 161/181/90 168/184/90 162/179/90 +f 163/185/91 168/186/91 165/187/91 +f 164/180/92 167/188/92 161/181/92 +f 170/189/93 172/190/93 169/191/93 +f 171/192/94 174/193/94 172/190/94 +f 169/191/95 176/194/95 170/189/95 +f 170/189/96 173/195/96 171/192/96 +f 172/190/97 175/196/97 169/191/97 +f 178/197/98 180/198/98 177/199/98 +f 179/200/99 182/201/99 180/198/99 +f 178/197/100 183/202/100 184/203/100 +f 179/200/101 184/204/101 181/205/101 +f 180/198/102 183/206/102 177/199/102 +f 186/207/103 188/208/103 185/209/103 +f 187/210/104 190/211/104 188/208/104 +f 186/207/105 191/212/105 192/213/105 +f 187/210/106 192/214/106 189/215/106 +f 185/209/107 190/216/107 191/217/107 +f 194/218/108 196/219/108 193/220/108 +f 196/219/109 197/221/109 198/222/109 +f 194/218/110 199/223/110 200/224/110 +f 194/218/111 197/225/111 195/226/111 +f 196/219/112 199/227/112 193/220/112 +f 202/228/113 204/229/113 201/230/113 +f 203/231/114 206/232/114 204/229/114 +f 202/228/115 207/233/115 208/234/115 +f 202/228/116 205/235/116 203/231/116 +f 204/229/117 207/236/117 201/230/117 +f 210/237/118 212/238/118 209/239/118 +f 211/240/119 214/241/119 212/238/119 +f 210/237/120 215/242/120 216/243/120 +f 211/240/121 216/244/121 213/245/121 +f 209/239/122 214/246/122 215/247/122 +f 26/25/3 27/28/3 28/26/3 +f 27/28/4 29/248/4 30/29/4 +f 25/27/5 31/249/5 32/30/5 +f 26/25/6 32/250/6 29/31/6 +f 28/26/7 30/251/7 31/32/7 +f 34/33/8 35/36/8 36/34/8 +f 35/36/9 37/252/9 38/37/9 +f 33/35/10 39/253/10 40/38/10 +f 35/36/11 34/33/11 40/39/11 +f 36/34/12 38/254/12 39/41/12 +f 42/42/13 43/45/13 44/43/13 +f 43/45/14 45/255/14 46/46/14 +f 41/44/15 47/256/15 48/47/15 +f 42/42/16 48/257/16 45/48/16 +f 44/43/17 46/258/17 47/49/17 +f 50/50/18 51/57/18 52/51/18 +f 52/51/19 51/57/19 53/53/19 +f 49/52/20 55/259/20 56/55/20 +f 50/50/21 56/260/21 53/56/21 +f 52/51/22 54/261/22 55/58/22 +f 58/59/23 59/62/23 60/60/23 +f 59/62/24 61/262/24 62/63/24 +f 58/59/25 57/61/25 63/64/25 +f 58/59/26 64/263/26 61/66/26 +f 60/60/27 62/264/27 63/67/27 +f 66/68/28 67/76/28 68/69/28 +f 68/69/29 67/76/29 69/71/29 +f 66/68/30 65/70/30 71/73/30 +f 66/68/31 72/265/31 69/75/31 +f 68/69/32 70/266/32 71/77/32 +f 74/78/33 75/81/33 76/79/33 +f 75/81/34 77/267/34 78/82/34 +f 73/80/35 79/268/35 80/83/35 +f 75/81/36 74/78/36 80/84/36 +f 76/79/37 78/269/37 79/86/37 +f 82/87/38 83/93/38 84/88/38 +f 84/88/39 83/93/39 85/90/39 +f 81/89/40 87/270/40 88/92/40 +f 83/93/41 82/87/41 88/94/41 +f 84/88/42 86/271/42 87/96/42 +f 90/97/43 91/100/43 92/98/43 +f 91/100/44 93/272/44 94/101/44 +f 89/99/45 95/273/45 96/102/45 +f 90/97/46 96/274/46 93/103/46 +f 92/98/47 94/275/47 95/104/47 +f 98/105/48 99/113/48 100/106/48 +f 100/106/49 99/113/49 101/108/49 +f 98/105/50 97/107/50 103/110/50 +f 98/105/51 104/276/51 101/112/51 +f 100/106/52 102/277/52 103/114/52 +f 106/115/53 107/118/53 108/116/53 +f 107/118/54 109/278/54 110/119/54 +f 105/117/55 111/279/55 112/120/55 +f 106/115/56 112/280/56 109/121/56 +f 108/116/57 110/281/57 111/122/57 +f 114/123/58 115/126/58 116/124/58 +f 115/126/59 117/282/59 118/127/59 +f 114/123/60 113/125/60 119/128/60 +f 115/126/61 114/123/61 120/130/61 +f 116/124/62 118/283/62 119/132/62 +f 122/133/63 123/136/63 124/134/63 +f 123/136/64 125/284/64 126/137/64 +f 121/135/65 127/285/65 128/138/65 +f 123/136/66 122/133/66 128/139/66 +f 121/135/67 124/134/67 126/141/67 +f 130/143/68 131/150/68 132/144/68 +f 132/144/69 131/150/69 133/146/69 +f 129/145/70 135/286/70 136/148/70 +f 130/143/71 136/287/71 133/149/71 +f 132/144/72 134/288/72 135/151/72 +f 138/152/73 139/159/73 140/153/73 +f 140/153/74 139/159/74 141/155/74 +f 137/154/75 143/289/75 144/157/75 +f 138/152/76 144/290/76 141/158/76 +f 140/153/77 142/291/77 143/160/77 +f 146/161/78 147/164/78 148/162/78 +f 147/164/79 149/292/79 150/165/79 +f 145/163/80 151/293/80 152/166/80 +f 147/164/81 146/161/81 152/167/81 +f 148/162/82 150/294/82 151/169/82 +f 154/170/83 155/177/83 156/171/83 +f 156/171/84 155/177/84 157/173/84 +f 153/172/85 159/295/85 160/175/85 +f 154/170/86 160/296/86 157/176/86 +f 156/171/87 158/297/87 159/178/87 +f 162/179/88 163/185/88 164/180/88 +f 164/180/89 163/185/89 165/182/89 +f 161/181/90 167/298/90 168/184/90 +f 163/185/91 162/179/91 168/186/91 +f 164/180/92 166/299/92 167/188/92 +f 170/189/93 171/192/93 172/190/93 +f 171/192/94 173/300/94 174/193/94 +f 169/191/95 175/301/95 176/194/95 +f 170/189/96 176/302/96 173/195/96 +f 172/190/97 174/303/97 175/196/97 +f 178/197/98 179/200/98 180/198/98 +f 179/200/99 181/304/99 182/201/99 +f 178/197/100 177/199/100 183/202/100 +f 179/200/101 178/197/101 184/204/101 +f 180/198/102 182/305/102 183/206/102 +f 186/207/103 187/210/103 188/208/103 +f 187/210/104 189/306/104 190/211/104 +f 186/207/105 185/209/105 191/212/105 +f 187/210/106 186/207/106 192/214/106 +f 185/209/107 188/208/107 190/216/107 +f 194/218/108 195/226/108 196/219/108 +f 196/219/109 195/226/109 197/221/109 +f 194/218/110 193/220/110 199/223/110 +f 194/218/111 200/307/111 197/225/111 +f 196/219/112 198/308/112 199/227/112 +f 202/228/113 203/231/113 204/229/113 +f 203/231/114 205/309/114 206/232/114 +f 202/228/115 201/230/115 207/233/115 +f 202/228/116 208/310/116 205/235/116 +f 204/229/117 206/311/117 207/236/117 +f 210/237/118 211/240/118 212/238/118 +f 211/240/119 213/312/119 214/241/119 +f 210/237/120 209/239/120 215/242/120 +f 211/240/121 210/237/121 216/244/121 +f 209/239/122 212/238/122 214/246/122 +o Plane.001 +v 0.000000 2.453697 -2.948062 +v 0.125000 2.423342 -2.962217 +v 0.216506 2.340409 -3.000889 +v 0.250000 2.227120 -3.053716 +v 0.216506 2.113832 -3.106544 +v 0.000000 2.566986 -2.895234 +v 0.324759 2.057188 -3.132957 +v 0.375000 2.227120 -3.053716 +v 0.324760 2.397053 -2.974475 +v 0.187500 2.521452 -2.916467 +vt 1.000000 0.250000 +vt -0.000000 -0.000000 +vt 1.000000 0.000000 +vt -0.000000 0.500000 +vt 0.000000 0.250000 +vt 1.000000 0.500000 +vt -0.000000 0.750000 +vt 0.000000 1.000000 +vt 1.000000 0.750000 +vt 1.000000 1.000000 +vn 0.0000 0.4226 -0.9063 +s off +f 220/313/123 223/314/123 221/315/123 +f 220/313/123 225/316/123 224/317/123 +f 219/318/123 226/319/123 225/316/123 +f 222/320/123 218/321/123 217/322/123 +f 220/313/123 224/317/123 223/314/123 +f 220/313/123 219/318/123 225/316/123 +f 219/318/123 218/321/123 226/319/123 +f 222/320/123 226/319/123 218/321/123 +o Plane +v -1.250000 1.750000 -0.625000 +v -1.250000 1.750000 -3.000000 +v -1.250000 1.376000 -2.625000 +v -1.250000 0.751000 -2.625000 +v -1.250000 0.750000 -0.625000 +v 0.500000 0.000000 -1.625000 +v 1.000000 0.500000 -2.125000 +v 1.000000 0.500000 -3.750000 +v 1.250000 0.750000 -3.750000 +v 1.250000 0.750000 -0.625000 +v 0.500000 0.000000 -0.625000 +v 1.250000 1.750000 -3.000000 +v 1.250000 1.750000 -0.625000 +v 1.250000 1.625000 -3.750000 +v 1.250000 1.750000 -3.375000 +v -0.500000 0.000000 -0.625000 +v -0.500000 0.000000 -1.625000 +v -1.000000 0.500000 -2.625000 +v -1.000000 0.500000 -2.125000 +v 1.000000 1.750000 -3.375000 +v 1.000000 1.750000 -3.000000 +v -1.250000 0.750000 -3.750000 +v -1.250000 0.751000 -3.625000 +v -1.250000 1.376000 -3.625000 +v -1.250000 1.625000 -3.750000 +v -1.250000 1.750000 -3.375000 +v -1.000000 0.500000 -3.750000 +v -1.000000 0.501000 -3.625000 +v -1.312500 0.501000 -3.500000 +v -1.312500 0.501000 -2.750000 +v -1.312500 0.626000 -2.750000 +v -1.312500 0.626000 -3.500000 +v -1.312500 0.751000 -3.500000 +v -1.312500 0.751000 -2.750000 +v -1.312500 0.876000 -2.750000 +v -1.312500 0.876000 -3.500000 +v -1.312500 1.001000 -3.500000 +v -1.312500 1.001000 -2.750000 +v -1.312500 1.126000 -2.750000 +v -1.312500 1.126000 -3.500000 +v -1.312500 1.376000 -3.625000 +v -1.312500 1.251000 -3.500000 +v -1.312500 1.251000 -2.750000 +v -1.312500 1.376000 -2.625000 +v -1.312500 0.251000 -3.625000 +v -1.312500 0.251000 -2.625000 +v -1.312500 0.376000 -2.750000 +v -1.312500 0.376000 -3.500000 +v -1.187500 1.001000 -3.500000 +v -1.187500 1.001000 -2.750000 +v -1.187500 0.876000 -3.500000 +v -1.187500 0.626000 -2.750000 +v -1.187500 0.626000 -3.500000 +v -1.187500 0.751000 -3.500000 +v -1.187500 1.251000 -3.500000 +v -1.187500 1.126000 -3.500000 +v -1.187500 1.126000 -2.750000 +v -1.187500 1.251000 -2.750000 +v -1.187500 0.876000 -2.750000 +v -1.187500 0.751000 -2.750000 +v -1.187500 0.376000 -3.500000 +v -1.187500 0.376000 -2.750000 +v -1.187500 0.501000 -2.750000 +v -1.187500 0.501000 -3.500000 +v 1.000000 0.750000 -3.750000 +v 1.000000 1.625000 -3.750000 +v -1.000000 1.625000 -3.750000 +v -1.000000 0.750000 -3.750000 +v -1.000000 1.750000 -3.375000 +v -1.000000 1.750000 -3.000000 +v -0.500000 2.500000 -2.625000 +v 0.500000 2.500000 -2.625000 +v 0.500000 2.250000 -2.750000 +v -0.500000 2.250000 -2.750000 +v -0.344030 0.708152 -0.175597 +v -0.424630 0.633153 -0.128904 +v -0.388541 0.618205 -0.128904 +v -0.328091 0.674453 -0.163924 +v -0.420670 0.523129 -0.082211 +v -0.334466 0.442528 -0.062870 +v -0.320918 0.475236 -0.079378 +v -0.385571 0.535686 -0.093884 +v -0.216518 0.438567 -0.082211 +v -0.135918 0.513565 -0.128904 +v -0.172007 0.528513 -0.128904 +v -0.232457 0.472265 -0.093884 +v -0.139879 0.623590 -0.175597 +v -0.174978 0.611032 -0.163924 +v -0.226082 0.704190 -0.194938 +v -0.239630 0.671482 -0.178429 +v -0.208096 0.543462 -0.128904 +v -0.210077 0.598474 -0.152250 +v -0.253178 0.638775 -0.161921 +v -0.312152 0.640755 -0.152250 +v -0.352451 0.603256 -0.128904 +v -0.350471 0.548244 -0.105557 +v -0.307370 0.507944 -0.095887 +v -0.248396 0.505963 -0.105557 +v -0.222349 0.496668 -0.037240 +v -0.161900 0.552916 -0.072260 +v -0.197989 0.567865 -0.072260 +v -0.238288 0.530366 -0.048913 +v -0.164869 0.635435 -0.107280 +v -0.199968 0.622877 -0.095606 +v -0.229523 0.695885 -0.121785 +v -0.243071 0.663178 -0.105277 +v -0.317984 0.698857 -0.107280 +v -0.302044 0.665158 -0.095606 +v -0.378433 0.642608 -0.072260 +v -0.342344 0.627659 -0.072260 +v -0.375462 0.560089 -0.037240 +v -0.340364 0.572647 -0.048913 +v -0.310810 0.499639 -0.022734 +v -0.297262 0.532347 -0.039243 +v -0.391169 0.267836 0.136894 +v -0.014465 0.192905 0.136894 +v -0.014465 0.302280 -0.081856 +v -0.349313 0.368885 -0.081856 +v -0.025414 0.247242 -0.109375 +v -0.360261 0.313848 -0.109375 +v -0.025414 0.137868 0.109375 +v -0.402117 0.212799 0.109375 +v 0.230970 1.345671 -0.500000 +v 0.095671 1.480970 -0.500000 +v 0.071753 1.423227 -0.500000 +v 0.173227 1.321753 -0.500000 +v -0.047836 1.365485 -0.500000 +v -0.115485 1.297835 -0.500000 +v -0.115485 1.202165 -0.500000 +v -0.047836 1.134515 -0.500000 +v 0.047834 1.134515 -0.500000 +v 0.115485 1.202165 -0.500000 +v 0.115485 1.297835 -0.500000 +v 0.047834 1.365485 -0.500000 +v 0.230970 1.154329 -0.500000 +v 0.173227 1.178247 -0.500000 +v 0.095671 1.019030 -0.500000 +v 0.071753 1.076773 -0.500000 +v -0.095671 1.019030 -0.500000 +v -0.071753 1.076773 -0.500000 +v -0.230970 1.154329 -0.500000 +v -0.173227 1.178247 -0.500000 +v -0.230970 1.345671 -0.500000 +v -0.173227 1.321753 -0.500000 +v -0.095671 1.480970 -0.500000 +v -0.071753 1.423227 -0.500000 +v 0.115485 1.297835 -0.375000 +v 0.173227 1.321753 -0.375000 +v 0.071753 1.423227 -0.375000 +v 0.047834 1.365485 -0.375000 +v 0.115485 1.202165 -0.375000 +v 0.173227 1.178247 -0.375000 +v 0.047834 1.134515 -0.375000 +v 0.071753 1.076773 -0.375000 +v -0.047836 1.134515 -0.375000 +v -0.071753 1.076773 -0.375000 +v -0.115485 1.202165 -0.375000 +v -0.173227 1.178247 -0.375000 +v -0.115485 1.297835 -0.375000 +v -0.173227 1.321753 -0.375000 +v -0.047836 1.365485 -0.375000 +v -0.071753 1.423227 -0.375000 +v 0.500000 2.500000 -0.625000 +v -0.500000 2.500000 -0.625000 +v 1.039364 1.680519 -0.625000 +v 1.125000 1.250000 -0.625000 +v 1.039364 0.819481 -0.625000 +v 0.795495 0.454505 -0.625000 +v 0.430519 0.210635 -0.625000 +v 0.000000 0.125000 -0.625000 +v -0.430519 0.210636 -0.625000 +v -0.795495 0.454505 -0.625000 +v -1.039364 0.819481 -0.625000 +v -1.125000 1.250000 -0.625000 +v -1.039364 1.680519 -0.625000 +v -1.000000 1.645607 -3.832107 +v -1.000000 0.938500 -4.125000 +v -1.000000 0.231393 -3.832107 +v -1.000000 -0.061500 -3.125000 +v -1.000000 0.231393 -2.417893 +v -1.000000 0.938500 -2.125000 +v -1.000000 1.645607 -2.417893 +v -1.000000 1.938500 -3.125000 +v -1.000000 0.251000 -2.625000 +v -1.000000 1.376000 -2.625000 +v -1.000000 0.251000 -3.625000 +v -1.000000 1.376000 -3.625000 +v 1.000000 1.645607 -3.832107 +v 1.000000 1.938500 -3.125000 +v 1.000000 1.645607 -2.417893 +v 1.000000 0.938500 -2.125000 +v 1.000000 0.231393 -2.417893 +v 1.000000 -0.061500 -3.125000 +v 1.000000 0.231393 -3.832107 +v 1.000000 0.938500 -4.125000 +v 0.554916 2.356694 0.187500 +v 0.731694 2.179917 0.187500 +v 0.820084 2.268306 0.187500 +v 0.643306 2.445082 0.187500 +v 0.554916 2.356694 -0.312500 +v 0.643306 2.445082 -0.312500 +v 0.820084 2.268306 -0.312500 +v 0.731694 2.179917 -0.312500 +v -0.929916 0.518306 0.187500 +v -1.106694 0.695083 0.187500 +v -1.195084 0.606694 0.187500 +v -1.018306 0.429918 0.187500 +v -0.929916 0.518306 -0.312500 +v -1.018306 0.429918 -0.312500 +v -1.195084 0.606694 -0.312500 +v -1.106694 0.695083 -0.312500 +v 1.106694 0.695082 0.187500 +v 0.929916 0.518306 0.187500 +v 1.018306 0.429917 0.187500 +v 1.195082 0.606694 0.187500 +v 1.106694 0.695082 -0.312500 +v 1.195082 0.606694 -0.312500 +v 1.018306 0.429917 -0.312500 +v 0.929916 0.518306 -0.312500 +v -0.731694 2.179918 0.187500 +v -0.554916 2.356694 0.187500 +v -0.643306 2.445083 0.187500 +v -0.820082 2.268306 0.187500 +v -0.731694 2.179918 -0.312500 +v -0.820082 2.268306 -0.312500 +v -0.643306 2.445083 -0.312500 +v -0.554916 2.356694 -0.312500 +v 0.554916 2.356694 -2.375000 +v 0.731694 2.179917 -2.375000 +v 0.820084 2.268306 -2.375000 +v 0.643306 2.445082 -2.375000 +v 0.554916 2.356694 -2.750000 +v 0.643306 2.445082 -2.750000 +v 0.820084 2.268306 -2.875000 +v 0.731694 2.179917 -2.875000 +v -0.500000 2.250000 -2.625000 +v -1.000000 1.750000 -2.875000 +v 1.000000 1.750000 -2.875000 +v 0.500000 2.250000 -2.625000 +v 0.500000 2.215740 -2.715952 +v 0.500000 1.819230 -2.900848 +v 0.500000 1.872057 -3.014137 +v 0.500000 2.268567 -2.829241 +v -0.500000 2.268567 -2.829241 +v -0.500000 1.872057 -3.014137 +v -0.500000 1.819230 -2.900848 +v -0.500000 2.215740 -2.715952 +v -0.312500 2.438500 -2.750000 +v 0.312500 2.438500 -2.750000 +v -0.312500 2.385673 -2.636712 +v 0.312500 2.385673 -2.636712 +v -0.750000 1.887724 -3.247583 +v 0.750000 1.887724 -3.247583 +v 0.750000 2.039915 -3.445922 +v -0.750000 2.039915 -3.445922 +v 0.750000 1.544192 -3.511185 +v 0.750000 1.696383 -3.709523 +v 0.750000 1.944244 -3.676892 +v 0.750000 1.639863 -3.280215 +v -0.750000 1.944244 -3.676892 +v -0.750000 1.696383 -3.709523 +v -0.750000 1.544192 -3.511185 +v -0.750000 1.639863 -3.280215 +v -0.500000 0.125000 -2.750000 +v 0.500000 0.125000 -2.750000 +v 0.500000 0.125000 -1.750000 +v -0.500000 0.125000 -1.750000 +v 0.500000 0.500000 -2.750000 +v 0.500000 0.500000 -1.750000 +v -0.500000 0.500000 -1.750000 +v -0.500000 0.500000 -2.750000 +v -0.625000 0.187500 -4.125000 +v -0.625000 1.687500 -4.125000 +v 0.625000 1.687500 -4.125000 +v 0.625000 0.187500 -4.125000 +v 0.625000 1.687500 -3.625000 +v 0.625000 0.187500 -3.625000 +v -0.625000 0.187500 -3.625000 +v -0.625000 1.687500 -3.625000 +v -0.500000 1.562500 -4.875000 +v 0.500000 1.562500 -4.875000 +v 0.500000 0.312500 -4.875000 +v -0.500000 0.312500 -4.875000 +v 0.500000 0.312500 -4.125000 +v -0.500000 0.312500 -4.125000 +v -0.500000 1.562500 -4.125000 +v 0.500000 1.562500 -4.125000 +v 1.375000 1.658494 -2.187500 +v 0.875000 1.658494 -2.187500 +v 0.875000 1.658494 -2.437500 +v 1.375000 1.658494 -2.437500 +v 1.375000 2.091506 -2.187500 +v 0.875000 2.091506 -2.187500 +v 0.875000 1.875000 -2.062500 +v 1.375000 1.875000 -2.062500 +v 1.375000 1.875000 -2.562500 +v 0.875000 1.875000 -2.562500 +v 0.875000 2.091506 -2.437500 +v 1.375000 2.091506 -2.437500 +v 1.375000 1.983253 -2.375000 +v 1.375000 1.983253 -2.250000 +v 1.562500 1.983253 -2.250000 +v 1.562500 1.983253 -2.375000 +v 1.375000 1.766747 -2.250000 +v 1.375000 1.766747 -2.375000 +v 1.562500 1.766747 -2.375000 +v 1.562500 1.766747 -2.250000 +v 1.375000 1.875000 -2.187500 +v 1.562500 1.875000 -2.187500 +v 1.375000 1.875000 -2.437500 +v 1.562500 1.875000 -2.437500 +v 1.562500 1.712620 -2.406250 +v 1.562500 1.712620 -2.218750 +v 1.562500 1.875000 -2.125000 +v 1.562500 2.037380 -2.218750 +v 1.562500 2.037380 -2.406250 +v 1.562500 1.875000 -2.500000 +v 2.312500 1.875000 -2.500000 +v 2.312500 1.712620 -2.406250 +v 2.312500 1.712620 -2.218750 +v 2.312500 1.875000 -2.125000 +v 2.312500 2.037380 -2.218750 +v 2.312500 2.037380 -2.406250 +v 2.312500 1.875000 -2.187500 +v 2.312500 1.983253 -2.250000 +v 2.312500 1.983253 -2.375000 +v 2.312500 1.875000 -2.437500 +v 2.312500 1.766747 -2.375000 +v 2.312500 1.766747 -2.250000 +v 2.500000 1.766747 -2.250000 +v 2.500000 1.875000 -2.187500 +v 2.500000 1.983253 -2.250000 +v 2.500000 1.983253 -2.375000 +v 2.500000 1.766747 -2.375000 +v 2.500000 1.875000 -2.437500 +v 2.500000 1.875000 -2.062500 +v 2.500000 2.091506 -2.187500 +v 2.500000 2.091506 -2.437500 +v 2.500000 1.875000 -2.562500 +v 2.500000 1.658494 -2.437500 +v 2.500000 1.658494 -2.187500 +v 2.625000 2.091506 -2.187500 +v 2.625000 2.091506 -2.437500 +v 2.625000 1.658494 -2.437500 +v 2.625000 1.658494 -2.187500 +v 2.625000 1.875000 -2.062500 +v 2.625000 1.875000 -2.562500 +v 2.750000 1.983253 -2.375000 +v 2.750000 1.875000 -2.437500 +v 2.750000 1.766747 -2.375000 +v 2.750000 1.766747 -2.250000 +v 2.750000 1.875000 -2.187500 +v 2.750000 1.983253 -2.250000 +v -0.187500 1.625000 -4.125000 +v 0.187500 1.625000 -4.125000 +v 0.187500 1.625000 -5.000000 +v -0.187500 1.625000 -5.000000 +v -0.187500 1.669194 -5.397748 +v -0.187500 2.022748 -5.044194 +v -0.187500 2.287913 -5.309359 +v -0.187500 2.022748 -5.574524 +v -0.187500 1.845971 -5.574524 +v 0.187500 1.250000 -5.000000 +v -0.187500 1.250000 -5.000000 +v 0.187500 1.250000 -4.125000 +v -0.187500 1.250000 -4.125000 +v -0.125000 1.625000 -4.734835 +v 0.125000 1.625000 -4.734835 +v 0.125000 1.978553 -5.088388 +v -0.125000 1.978553 -5.088388 +v -0.125000 1.359835 -5.000000 +v -0.125000 1.713388 -5.353553 +v 0.125000 1.359835 -5.000000 +v 0.125000 1.713388 -5.353553 +v 0.187500 1.669194 -5.397748 +v 0.187500 2.022748 -5.044194 +v 0.187500 2.022748 -5.574524 +v 0.187500 1.845971 -5.574524 +v 0.187500 2.287913 -5.309359 +v -0.062500 2.597272 -4.558058 +v 0.062500 2.597272 -4.558058 +v 0.062500 2.774049 -4.734835 +v -0.062500 2.774049 -4.734835 +v 0.062500 2.066942 -5.088388 +v 0.062500 2.243718 -5.265165 +v -0.062500 2.243718 -5.265165 +v -0.062500 2.066942 -5.088388 +v -0.125000 2.423342 -2.962217 +v 0.000000 2.453697 -2.948062 +v 0.216506 2.113832 -3.106544 +v 0.125000 2.030899 -3.145216 +v 0.000000 2.000544 -3.159371 +v -0.125000 2.030899 -3.145216 +v -0.216506 2.113832 -3.106544 +v -0.250000 2.227120 -3.053716 +v -0.216506 2.340409 -3.000889 +v 0.000000 2.374456 -2.778129 +v 0.000000 2.487745 -2.725302 +v 0.000000 2.566986 -2.895234 +v 0.324759 1.977947 -2.963025 +v 0.216506 2.034591 -2.936611 +v 0.324759 2.057188 -3.132957 +v 0.375000 2.227120 -3.053716 +v 0.324760 2.397053 -2.974475 +v 0.187500 2.521452 -2.916467 +v 0.324760 2.317812 -2.804543 +v 0.187500 2.442212 -2.746534 +v -0.437500 2.102596 -3.042822 +v -0.483253 2.144063 -3.023486 +v -0.500000 2.200707 -2.997072 +v -0.483253 2.257351 -2.970659 +v -0.437500 2.298818 -2.951323 +v -0.375000 2.313995 -2.944245 +v -0.312500 2.298818 -2.951323 +v -0.266747 2.257351 -2.970659 +v -0.250000 2.200707 -2.997072 +v -0.266747 2.144063 -3.023486 +v -0.312500 2.102596 -3.042822 +v -0.375000 2.087419 -3.049900 +v -1.125000 1.875000 -1.875000 +v -1.125000 1.875000 -1.625000 +v -0.625000 2.375000 -1.875000 +v -0.625000 2.375000 -2.125000 +v -0.625000 2.375000 -0.875000 +v -1.125000 1.875000 -0.875000 +v -1.125000 1.875000 -2.625000 +v -0.625000 2.375000 -2.375000 +v 1.125000 1.875000 -0.875000 +v 0.625000 2.375000 -0.875000 +v 1.125000 1.875000 -1.625000 +v 0.625000 2.375000 -1.875000 +v 0.448223 2.198223 -1.875000 +v 0.948223 1.698223 -1.625000 +v -1.036612 1.786612 -1.875000 +v -1.036612 1.786612 -2.625000 +v -0.948223 1.698223 -1.625000 +v -0.448223 2.198223 -1.875000 +v -0.536612 2.286612 -2.375000 +v -0.536612 2.286612 -2.125000 +v -0.448223 2.198223 -0.875000 +v -0.948223 1.698223 -0.875000 +v 0.948223 1.698223 -0.875000 +v 0.448223 2.198223 -0.875000 +v -0.137500 2.062500 -3.749900 +v -0.137500 1.937500 -3.749900 +v -0.137500 2.062500 -3.437400 +v -0.137500 2.187500 -3.437400 +v -0.012500 1.937500 -3.749900 +v -0.012500 2.062500 -3.437400 +v 0.137500 1.937500 -3.749900 +v 0.137500 2.062500 -3.749900 +v 0.137500 2.187500 -3.437400 +v 0.137500 2.062500 -3.437400 +v -0.012500 2.062500 -3.749900 +v -0.012500 2.187500 -3.437400 +v 0.137500 2.134191 -3.062400 +v 0.137500 2.009191 -3.062400 +v -0.012500 2.009191 -3.062400 +v -0.137500 2.009191 -3.062400 +v -0.012500 1.937500 -3.874900 +v -0.137500 1.937500 -3.874900 +v 0.137500 1.937500 -3.874900 +v 0.012500 1.937500 -3.874900 +v 0.012500 2.062500 -3.749900 +v 0.012500 1.937500 -3.749900 +v -0.012500 1.687500 -3.874900 +v -0.137500 1.687500 -3.874900 +v -0.137500 1.687500 -3.749900 +v -0.012500 1.687500 -3.749900 +v 0.137500 1.687500 -3.749900 +v 0.137500 1.687500 -3.874900 +v 0.012500 1.687500 -3.874900 +v 0.012500 1.687500 -3.749900 +v 0.012500 2.062500 -3.437400 +v 0.625000 2.001000 -3.187500 +v 0.625000 2.001000 -3.062500 +v 0.875000 2.001000 -3.062500 +v 0.875000 2.001000 -3.187500 +v 0.012500 2.187500 -3.437400 +v 0.012500 2.134191 -3.062400 +v 0.012500 2.009191 -3.062400 +v -0.137500 2.134191 -3.062400 +v -0.012500 2.134191 -3.062400 +v -0.625000 1.938500 -3.250000 +v 0.625000 1.938500 -3.250000 +v 0.625000 1.830247 -3.187500 +v -0.625000 1.830247 -3.187500 +v 0.625000 1.876000 -3.062500 +v 0.875000 1.876000 -3.062500 +v 0.625000 1.830247 -3.062500 +v -0.625000 1.830247 -3.062500 +v 0.625000 1.876000 -3.187500 +v 0.875000 1.876000 -3.187500 +v 0.625000 1.938500 -3.000000 +v -0.625000 1.938500 -3.000000 +v 0.625000 2.046753 -3.062500 +v -0.625000 2.046753 -3.062500 +v 0.625000 2.046753 -3.187500 +v -0.625000 2.046753 -3.187500 +v 1.000000 2.001000 -3.187500 +v 1.000000 2.001000 -3.062500 +v 0.875000 2.126000 -3.187500 +v 1.000000 2.126000 -3.187500 +v 0.875000 2.126000 -3.312500 +v 1.000000 2.126000 -3.312500 +v 1.000000 2.126000 -3.062500 +v 0.875000 2.126000 -3.062500 +v 1.000000 2.251000 -3.187500 +v 0.875000 2.251000 -3.187500 +v 0.875000 2.251000 -3.312500 +v 1.000000 2.251000 -3.312500 +v 1.000000 2.001000 -3.937500 +v 0.875000 2.001000 -3.937500 +v 1.000000 1.876000 -3.937500 +v 1.000000 1.876000 -4.062500 +v 0.875000 1.876000 -3.937500 +v 0.875000 1.876000 -4.062500 +v 0.875000 1.626000 -4.062500 +v 0.875000 1.626000 -3.937500 +v 0.875000 1.501000 -3.937500 +v 0.625000 1.626000 -3.937500 +v 0.625000 1.501000 -3.937500 +v 1.000000 1.626000 -3.937500 +v 1.000000 1.626000 -4.062500 +v 0.875000 1.501000 -4.062500 +v 0.625000 1.626000 -4.062500 +v 0.625000 1.501000 -4.062500 +v 0.110485 0.764515 -0.750000 +v 0.156250 0.875000 -0.750000 +v 0.156250 0.737706 -0.418544 +v 0.110485 0.659581 -0.496669 +v 0.110485 0.985485 -0.750000 +v 0.000000 1.031250 -0.750000 +v 0.000000 0.848192 -0.308058 +v 0.110485 0.815831 -0.340419 +v -0.110486 0.985485 -0.750000 +v -0.156250 0.875000 -0.750000 +v -0.156250 0.737706 -0.418544 +v -0.110486 0.815831 -0.340419 +v -0.110486 0.764515 -0.750000 +v -0.110486 0.659581 -0.496669 +v 0.000000 0.718750 -0.750000 +v 0.000000 0.627221 -0.529029 +v -0.156250 0.585633 -0.316931 +v -0.110486 0.627914 -0.214856 +v 0.000000 0.645427 -0.172575 +v 0.110485 0.627914 -0.214856 +v 0.156250 0.585633 -0.316931 +v 0.110485 0.543352 -0.419007 +v 0.000000 0.525838 -0.461288 +v -0.110486 0.543352 -0.419007 +v 0.110485 0.406250 -0.391735 +v 0.000000 0.406250 -0.437500 +v -0.110486 0.406250 -0.391735 +v -0.156250 0.406250 -0.281250 +v -0.110486 0.406250 -0.170765 +v 0.000000 0.406250 -0.125000 +v 0.110485 0.406250 -0.170765 +v 0.156250 0.406250 -0.281250 +v -0.110486 0.184586 -0.214856 +v 0.000000 0.167073 -0.172575 +v 0.110485 0.184586 -0.214856 +v 0.156250 0.226867 -0.316932 +v 0.110485 0.269148 -0.419007 +v 0.000000 0.286661 -0.461288 +v -0.110486 0.269148 -0.419007 +v -0.156250 0.226867 -0.316932 +v -0.196566 0.367147 -0.468769 +v -0.200528 0.477172 -0.515462 +v -0.286731 0.557772 -0.534803 +v -0.404678 0.561734 -0.515462 +v -0.485279 0.486735 -0.468769 +v -0.481318 0.376710 -0.422076 +v -0.395115 0.296110 -0.402735 +v -0.277166 0.292148 -0.422076 +v 0.230970 1.345671 -0.750000 +v 0.095671 1.480970 -0.750000 +v 0.095671 1.019030 -0.750000 +v 0.230970 1.154329 -0.750000 +v -0.230970 1.154329 -0.750000 +v -0.095671 1.019030 -0.750000 +v -0.095671 1.480970 -0.750000 +v -0.230970 1.345671 -0.750000 +v 0.000000 1.921303 -2.989438 +v -0.125000 1.951658 -2.975283 +v -0.250000 2.147880 -2.883784 +v -0.216506 2.261168 -2.830956 +v 0.125000 1.951658 -2.975283 +v -0.216506 2.034591 -2.936611 +v -0.125000 2.344101 -2.792284 +v 0.375000 2.147880 -2.883783 +v -0.375000 2.261168 -2.830956 +v -0.312500 2.245990 -2.838034 +v -0.500000 2.147880 -2.883784 +v -0.483253 2.204524 -2.857370 +v -0.266747 2.091235 -2.910197 +v -0.312500 2.049769 -2.929533 +v -0.375000 2.034591 -2.936611 +v -0.437500 2.049769 -2.929533 +v -0.266747 2.204524 -2.857370 +v -0.437500 2.245990 -2.838034 +v -0.483253 2.091235 -2.910197 +v -0.250000 2.147880 -2.883784 +v 0.911612 2.036612 -1.125000 +v 0.875000 2.125000 -1.125000 +v 0.823223 2.073223 -0.948223 +v 0.867418 1.992418 -0.974112 +v 0.786612 2.161612 -1.125000 +v 0.698223 2.125000 -1.125000 +v 0.672335 2.099112 -1.036612 +v 0.742418 2.117417 -0.974112 +v -0.786612 2.161612 -1.125000 +v -0.742418 2.117417 -0.974112 +v -0.672335 2.099112 -1.036612 +v -0.698223 2.125000 -1.125000 +v -0.911612 2.036612 -1.125000 +v -0.867418 1.992418 -0.974112 +v -0.823223 2.073223 -0.948223 +v -0.875000 2.125000 -1.125000 +v -0.875000 1.948223 -1.125000 +v -0.849112 1.922335 -1.036612 +v -0.698223 1.948223 -0.875000 +v -0.635723 2.010723 -0.911612 +v -0.786612 1.859835 -1.000000 +v -0.760723 1.885723 -0.911612 +v -0.609835 2.036612 -1.000000 +v -0.609835 2.338388 -1.125000 +v -0.565641 2.294194 -0.974112 +v -0.495558 2.275888 -1.036612 +v -0.521447 2.301777 -1.125000 +v -0.734835 2.213388 -1.125000 +v -0.690641 2.169194 -0.974112 +v -0.646447 2.250000 -0.948223 +v -0.698223 2.301777 -1.125000 +v -0.698223 2.125000 -1.125000 +v -0.672335 2.099112 -1.036612 +v -0.521447 2.125000 -0.875000 +v -0.458947 2.187500 -0.911612 +v -0.609835 2.036612 -1.000000 +v -0.583947 2.062500 -0.911612 +v -0.433058 2.213388 -1.000000 +v -0.963388 1.984835 -1.125000 +v -0.919194 1.940641 -0.974112 +v -0.849112 1.922335 -1.036612 +v -0.875000 1.948223 -1.125000 +v -1.088388 1.859835 -1.125000 +v -1.044194 1.815641 -0.974112 +v -1.000000 1.896446 -0.948223 +v -1.051777 1.948223 -1.125000 +v -1.051777 1.771446 -1.125000 +v -1.025888 1.745558 -1.036612 +v -0.875000 1.771446 -0.875000 +v -0.812500 1.833946 -0.911612 +v -0.963388 1.683058 -1.000000 +v -0.937500 1.708946 -0.911612 +v -0.786612 1.859835 -1.000000 +v -0.698223 2.125000 -1.812500 +v -0.786612 2.161612 -1.812500 +v -0.521447 2.301777 -1.875000 +v -0.609835 2.338388 -1.875000 +v -0.875000 2.125000 -1.812500 +v -0.911612 2.036612 -1.812500 +v -0.875000 1.948223 -1.750000 +v -0.963388 1.984835 -1.750000 +v -0.698223 2.301777 -1.875000 +v -0.875000 1.948223 -1.812500 +v -0.734835 2.213388 -1.875000 +v -1.051777 1.948223 -1.750000 +v -1.088388 1.859835 -1.750000 +v -0.698223 2.125000 -1.875000 +v -1.051777 1.771446 -1.750000 +v 0.875000 1.948223 -1.125000 +v 0.849112 1.922335 -1.036612 +v 0.635723 2.010723 -0.911612 +v 0.698223 1.948223 -0.875000 +v 0.760723 1.885723 -0.911612 +v 0.786612 1.859835 -1.000000 +v 0.609835 2.036612 -1.000000 +v 0.609835 2.338388 -1.125000 +v 0.521447 2.301777 -1.125000 +v 0.495558 2.275888 -1.036612 +v 0.565641 2.294194 -0.974112 +v 0.734835 2.213388 -1.125000 +v 0.698223 2.301777 -1.125000 +v 0.646447 2.250000 -0.948223 +v 0.690641 2.169194 -0.974112 +v 0.698223 2.125000 -1.125000 +v 0.672335 2.099112 -1.036612 +v 0.458947 2.187500 -0.911612 +v 0.521447 2.125000 -0.875000 +v 0.583947 2.062500 -0.911612 +v 0.609835 2.036612 -1.000000 +v 0.433058 2.213388 -1.000000 +v 0.963388 1.984835 -1.125000 +v 0.875000 1.948223 -1.125000 +v 0.849112 1.922335 -1.036612 +v 0.919194 1.940641 -0.974112 +v 1.088388 1.859835 -1.125000 +v 1.051777 1.948223 -1.125000 +v 1.000000 1.896446 -0.948223 +v 1.044194 1.815641 -0.974112 +v 1.051777 1.771446 -1.125000 +v 1.025888 1.745558 -1.036612 +v 0.812500 1.833946 -0.911612 +v 0.875000 1.771446 -0.875000 +v 0.937500 1.708946 -0.911612 +v 0.963388 1.683058 -1.000000 +v 0.786612 1.859835 -1.000000 +v 0.786612 2.161612 -1.812500 +v 0.698223 2.125000 -1.812500 +v 0.609835 2.338388 -1.875000 +v 0.521447 2.301777 -1.875000 +v 0.875000 2.125000 -1.812500 +v 0.911612 2.036612 -1.812500 +v 0.963388 1.984835 -1.750000 +v 0.875000 1.948223 -1.750000 +v 0.698223 2.301777 -1.875000 +v 0.875000 1.948223 -1.812500 +v 0.734835 2.213388 -1.875000 +v 1.051777 1.948223 -1.750000 +v 1.088388 1.859835 -1.750000 +v 0.698223 2.125000 -1.875000 +v 1.051777 1.771446 -1.750000 +v 1.000000 0.500000 -2.625000 +v 0.344030 1.791848 -0.175597 +v 0.424630 1.866847 -0.128904 +v 0.388541 1.881795 -0.128904 +v 0.328091 1.825547 -0.163924 +v 0.420670 1.976871 -0.082211 +v 0.334466 2.057472 -0.062870 +v 0.320918 2.024764 -0.079378 +v 0.385571 1.964314 -0.093884 +v 0.216518 2.061433 -0.082211 +v 0.135918 1.986435 -0.128904 +v 0.172007 1.971487 -0.128904 +v 0.232457 2.027735 -0.093884 +v 0.139879 1.876410 -0.175597 +v 0.174978 1.888968 -0.163924 +v 0.226082 1.795810 -0.194938 +v 0.239630 1.828518 -0.178429 +v 0.208096 1.956538 -0.128904 +v 0.210077 1.901526 -0.152250 +v 0.253178 1.861225 -0.161921 +v 0.312152 1.859245 -0.152250 +v 0.352451 1.896744 -0.128904 +v 0.350472 1.951756 -0.105557 +v 0.307370 1.992056 -0.095887 +v 0.248396 1.994037 -0.105557 +v 0.222349 2.003332 -0.037240 +v 0.161900 1.947084 -0.072260 +v 0.197989 1.932135 -0.072260 +v 0.238288 1.969634 -0.048913 +v 0.164869 1.864565 -0.107280 +v 0.199968 1.877123 -0.095606 +v 0.229523 1.804115 -0.121785 +v 0.243071 1.836822 -0.105277 +v 0.317984 1.801143 -0.107280 +v 0.302044 1.834842 -0.095606 +v 0.378433 1.857392 -0.072260 +v 0.342344 1.872341 -0.072260 +v 0.375462 1.939911 -0.037240 +v 0.340365 1.927353 -0.048913 +v 0.310810 2.000361 -0.022734 +v 0.297262 1.967653 -0.039243 +v -0.110485 1.735485 -0.750000 +v -0.156250 1.625000 -0.750000 +v -0.156250 1.762294 -0.418544 +v -0.110485 1.840419 -0.496669 +v -0.110485 1.514515 -0.750000 +v 0.000000 1.468750 -0.750000 +v 0.000000 1.651808 -0.308058 +v -0.110485 1.684169 -0.340419 +v 0.110486 1.514515 -0.750000 +v 0.156250 1.625000 -0.750000 +v 0.156250 1.762294 -0.418544 +v 0.110486 1.684169 -0.340419 +v 0.110486 1.735485 -0.750000 +v 0.110486 1.840419 -0.496669 +v 0.000000 1.781250 -0.750000 +v 0.000000 1.872779 -0.529029 +v 0.156250 1.914367 -0.316931 +v 0.110486 1.872086 -0.214856 +v 0.000000 1.854573 -0.172575 +v -0.110485 1.872086 -0.214856 +v -0.156250 1.914367 -0.316931 +v -0.110485 1.956648 -0.419007 +v 0.000000 1.974162 -0.461288 +v 0.110486 1.956648 -0.419007 +v -0.110485 2.093750 -0.391735 +v 0.000000 2.093750 -0.437500 +v 0.110486 2.093750 -0.391735 +v 0.156250 2.093750 -0.281250 +v 0.110486 2.093750 -0.170765 +v 0.000000 2.093750 -0.125000 +v -0.110485 2.093750 -0.170765 +v -0.156250 2.093750 -0.281250 +v 0.110486 2.315414 -0.214856 +v 0.000000 2.332927 -0.172575 +v -0.110485 2.315414 -0.214856 +v -0.156250 2.273133 -0.316932 +v -0.110485 2.230852 -0.419007 +v 0.000000 2.213339 -0.461288 +v 0.110486 2.230852 -0.419007 +v 0.156250 2.273133 -0.316932 +v 0.196566 2.132853 -0.468769 +v 0.200528 2.022828 -0.515462 +v 0.286731 1.942228 -0.534803 +v 0.404678 1.938266 -0.515462 +v 0.485279 2.013265 -0.468769 +v 0.481318 2.123290 -0.422076 +v 0.395115 2.203890 -0.402735 +v 0.277166 2.207852 -0.422076 +v -0.541848 1.594031 -0.175597 +v -0.616847 1.674630 -0.128904 +v -0.631795 1.638541 -0.128904 +v -0.575547 1.578091 -0.163924 +v -0.726871 1.670670 -0.082211 +v -0.807472 1.584466 -0.062870 +v -0.774764 1.570918 -0.079378 +v -0.714314 1.635571 -0.093884 +v -0.811433 1.466519 -0.082211 +v -0.736435 1.385918 -0.128904 +v -0.721487 1.422007 -0.128904 +v -0.777735 1.482457 -0.093884 +v -0.626410 1.389879 -0.175597 +v -0.638968 1.424978 -0.163924 +v -0.545810 1.476082 -0.194938 +v -0.578518 1.489630 -0.178429 +v -0.706538 1.458096 -0.128904 +v -0.651526 1.460078 -0.152250 +v -0.611225 1.503178 -0.161921 +v -0.609245 1.562152 -0.152250 +v -0.646744 1.602452 -0.128904 +v -0.701756 1.600472 -0.105557 +v -0.742056 1.557370 -0.095887 +v -0.744037 1.498396 -0.105557 +v -0.753332 1.472349 -0.037240 +v -0.697084 1.411900 -0.072260 +v -0.682135 1.447989 -0.072260 +v -0.719634 1.488288 -0.048913 +v -0.614565 1.414870 -0.107280 +v -0.627123 1.449969 -0.095606 +v -0.554115 1.479523 -0.121785 +v -0.586822 1.493071 -0.105277 +v -0.551143 1.567984 -0.107280 +v -0.584842 1.552044 -0.095606 +v -0.607392 1.628433 -0.072260 +v -0.622341 1.592345 -0.072260 +v -0.689911 1.625462 -0.037240 +v -0.677353 1.590365 -0.048913 +v -0.750361 1.560810 -0.022734 +v -0.717653 1.547262 -0.039243 +v -0.485485 1.139515 -0.750000 +v -0.375000 1.093750 -0.750000 +v -0.512294 1.093750 -0.418544 +v -0.590419 1.139515 -0.496669 +v -0.264515 1.139515 -0.750000 +v -0.218750 1.250000 -0.750000 +v -0.401808 1.250000 -0.308058 +v -0.434169 1.139515 -0.340419 +v -0.264515 1.360486 -0.750000 +v -0.375000 1.406250 -0.750000 +v -0.512294 1.406250 -0.418544 +v -0.434169 1.360486 -0.340419 +v -0.485485 1.360486 -0.750000 +v -0.590419 1.360486 -0.496669 +v -0.531250 1.250000 -0.750000 +v -0.622779 1.250000 -0.529029 +v -0.664367 1.406250 -0.316931 +v -0.622086 1.360486 -0.214856 +v -0.604573 1.250000 -0.172575 +v -0.622086 1.139515 -0.214856 +v -0.664367 1.093750 -0.316931 +v -0.706648 1.139515 -0.419007 +v -0.724162 1.250000 -0.461288 +v -0.706648 1.360486 -0.419007 +v -0.843750 1.139515 -0.391735 +v -0.843750 1.250000 -0.437500 +v -0.843750 1.360486 -0.391735 +v -0.843750 1.406250 -0.281250 +v -0.843750 1.360486 -0.170765 +v -0.843750 1.250000 -0.125000 +v -0.843750 1.139515 -0.170765 +v -0.843750 1.093750 -0.281250 +v -1.065414 1.360486 -0.214856 +v -1.082927 1.250000 -0.172575 +v -1.065414 1.139515 -0.214856 +v -1.023133 1.093750 -0.316932 +v -0.980852 1.139515 -0.419007 +v -0.963339 1.250000 -0.461288 +v -0.980852 1.360486 -0.419007 +v -1.023133 1.406250 -0.316932 +v -0.882853 1.446566 -0.468769 +v -0.772828 1.450528 -0.515462 +v -0.692228 1.536731 -0.534803 +v -0.688266 1.654678 -0.515462 +v -0.763265 1.735279 -0.468769 +v -0.873290 1.731318 -0.422076 +v -0.953890 1.645115 -0.402735 +v -0.957852 1.527166 -0.422076 +v 0.541848 0.905970 -0.175597 +v 0.616847 0.825370 -0.128904 +v 0.631795 0.861459 -0.128904 +v 0.575547 0.921909 -0.163924 +v 0.726871 0.829330 -0.082211 +v 0.807472 0.915534 -0.062870 +v 0.774764 0.929082 -0.079378 +v 0.714314 0.864429 -0.093884 +v 0.811433 1.033482 -0.082211 +v 0.736435 1.114082 -0.128904 +v 0.721487 1.077993 -0.128904 +v 0.777735 1.017543 -0.093884 +v 0.626410 1.110121 -0.175597 +v 0.638968 1.075022 -0.163924 +v 0.545810 1.023918 -0.194938 +v 0.578518 1.010370 -0.178429 +v 0.706538 1.041904 -0.128904 +v 0.651526 1.039923 -0.152250 +v 0.611225 0.996822 -0.161921 +v 0.609245 0.937848 -0.152250 +v 0.646744 0.897549 -0.128904 +v 0.701756 0.899529 -0.105557 +v 0.742056 0.942630 -0.095887 +v 0.744037 1.001604 -0.105557 +v 0.753332 1.027651 -0.037240 +v 0.697084 1.088100 -0.072260 +v 0.682135 1.052011 -0.072260 +v 0.719634 1.011712 -0.048913 +v 0.614565 1.085131 -0.107280 +v 0.627123 1.050032 -0.095606 +v 0.554115 1.020477 -0.121785 +v 0.586822 1.006929 -0.105277 +v 0.551143 0.932016 -0.107280 +v 0.584842 0.947956 -0.095606 +v 0.607392 0.871567 -0.072260 +v 0.622341 0.907656 -0.072260 +v 0.689911 0.874539 -0.037240 +v 0.677353 0.909636 -0.048913 +v 0.750361 0.939190 -0.022734 +v 0.717653 0.952738 -0.039243 +v 0.485485 1.360485 -0.750000 +v 0.375000 1.406250 -0.750000 +v 0.512294 1.406250 -0.418544 +v 0.590419 1.360485 -0.496669 +v 0.264515 1.360485 -0.750000 +v 0.218750 1.250000 -0.750000 +v 0.401808 1.250000 -0.308058 +v 0.434169 1.360485 -0.340419 +v 0.264515 1.139514 -0.750000 +v 0.375000 1.093750 -0.750000 +v 0.512294 1.093750 -0.418544 +v 0.434169 1.139514 -0.340419 +v 0.485485 1.139514 -0.750000 +v 0.590419 1.139514 -0.496669 +v 0.531250 1.250000 -0.750000 +v 0.622779 1.250000 -0.529029 +v 0.664367 1.093750 -0.316931 +v 0.622086 1.139514 -0.214856 +v 0.604573 1.250000 -0.172575 +v 0.622086 1.360485 -0.214856 +v 0.664367 1.406250 -0.316931 +v 0.706648 1.360485 -0.419007 +v 0.724162 1.250000 -0.461288 +v 0.706648 1.139514 -0.419007 +v 0.843750 1.360485 -0.391735 +v 0.843750 1.250000 -0.437500 +v 0.843750 1.139514 -0.391735 +v 0.843750 1.093750 -0.281250 +v 0.843750 1.139514 -0.170765 +v 0.843750 1.250000 -0.125000 +v 0.843750 1.360485 -0.170765 +v 0.843750 1.406250 -0.281250 +v 1.065414 1.139514 -0.214856 +v 1.082927 1.250000 -0.172575 +v 1.065414 1.360485 -0.214856 +v 1.023133 1.406250 -0.316932 +v 0.980852 1.360485 -0.419007 +v 0.963339 1.250000 -0.461288 +v 0.980852 1.139514 -0.419007 +v 1.023133 1.093750 -0.316932 +v 0.882853 1.053434 -0.468769 +v 0.772828 1.049472 -0.515462 +v 0.692228 0.963269 -0.534803 +v 0.688266 0.845322 -0.515462 +v 0.763265 0.764721 -0.468769 +v 0.873290 0.768682 -0.422076 +v 0.953890 0.854885 -0.402735 +v 0.957852 0.972834 -0.422076 +v -0.626411 1.110122 -0.175597 +v -0.736436 1.114082 -0.128904 +v -0.721487 1.077994 -0.128904 +v -0.638968 1.075022 -0.163924 +v -0.811434 1.033483 -0.082211 +v -0.807472 0.915534 -0.062870 +v -0.774764 0.929083 -0.079378 +v -0.777736 1.017543 -0.093884 +v -0.726871 0.829332 -0.082211 +v -0.616847 0.825370 -0.128904 +v -0.631795 0.861459 -0.128904 +v -0.714314 0.864430 -0.093884 +v -0.541848 0.905971 -0.175597 +v -0.575547 0.921910 -0.163924 +v -0.545810 1.023918 -0.194938 +v -0.578518 1.010370 -0.178429 +v -0.646744 0.897548 -0.128904 +v -0.609246 0.937849 -0.152250 +v -0.611225 0.996822 -0.161921 +v -0.651526 1.039924 -0.152250 +v -0.706538 1.041904 -0.128904 +v -0.744037 1.001604 -0.105557 +v -0.742056 0.942631 -0.095887 +v -0.701756 0.899529 -0.105557 +v -0.689911 0.874538 -0.037240 +v -0.607393 0.871567 -0.072260 +v -0.622341 0.907657 -0.072260 +v -0.677353 0.909637 -0.048913 +v -0.551143 0.932017 -0.107280 +v -0.584842 0.947956 -0.095606 +v -0.554116 1.020479 -0.121785 +v -0.586823 1.006931 -0.105277 +v -0.614565 1.085132 -0.107280 +v -0.627123 1.050032 -0.095606 +v -0.697084 1.088102 -0.072260 +v -0.682136 1.052012 -0.072260 +v -0.753332 1.027651 -0.037240 +v -0.719635 1.011713 -0.048913 +v -0.750361 0.939191 -0.022734 +v -0.717654 0.952739 -0.039243 +v -0.265165 0.828586 -0.750000 +v -0.154680 0.874350 -0.750000 +v -0.251761 0.777268 -0.418544 +v -0.339365 0.754386 -0.496669 +v -0.108916 0.984835 -0.750000 +v -0.154680 1.095320 -0.750000 +v -0.284121 0.965879 -0.308058 +v -0.228879 0.864871 -0.340419 +v -0.265166 1.141085 -0.750000 +v -0.375651 1.095320 -0.750000 +v -0.472732 0.998239 -0.418544 +v -0.385129 1.021122 -0.340419 +v -0.421415 0.984836 -0.750000 +v -0.495615 0.910636 -0.496669 +v -0.375651 0.874350 -0.750000 +v -0.440371 0.809629 -0.529029 +v -0.580264 0.890707 -0.316931 +v -0.518007 0.888244 -0.214856 +v -0.427498 0.822502 -0.172575 +v -0.361757 0.731994 -0.214856 +v -0.359293 0.669736 -0.316931 +v -0.421551 0.672200 -0.419007 +v -0.512060 0.737940 -0.461288 +v -0.577801 0.828450 -0.419007 +v -0.518497 0.575254 -0.391735 +v -0.596621 0.653379 -0.437500 +v -0.674747 0.731504 -0.391735 +v -0.707107 0.763864 -0.281250 +v -0.674747 0.731504 -0.170765 +v -0.596621 0.653379 -0.125000 +v -0.518497 0.575254 -0.170765 +v -0.486136 0.542893 -0.281250 +v -0.831487 0.574764 -0.214856 +v -0.765745 0.484255 -0.172575 +v -0.675237 0.418514 -0.214856 +v -0.612979 0.416050 -0.316932 +v -0.615442 0.478308 -0.419007 +v -0.681184 0.568817 -0.461288 +v -0.771693 0.634558 -0.419007 +v -0.833950 0.637021 -0.316932 +v -0.763264 0.764722 -0.468769 +v -0.688267 0.845323 -0.515462 +v -0.692228 0.963270 -0.534803 +v -0.772828 1.049473 -0.515462 +v -0.882854 1.053434 -0.468769 +v -0.957852 0.972834 -0.422076 +v -0.953891 0.854886 -0.402735 +v -0.873290 0.768683 -0.422076 +v 0.626411 1.389878 -0.175597 +v 0.736436 1.385918 -0.128904 +v 0.721487 1.422006 -0.128904 +v 0.638968 1.424978 -0.163924 +v 0.811434 1.466517 -0.082211 +v 0.807472 1.584466 -0.062870 +v 0.774764 1.570918 -0.079378 +v 0.777736 1.482457 -0.093884 +v 0.726872 1.670668 -0.082211 +v 0.616847 1.674630 -0.128904 +v 0.631796 1.638541 -0.128904 +v 0.714314 1.635570 -0.093884 +v 0.541848 1.594029 -0.175597 +v 0.575547 1.578090 -0.163924 +v 0.545810 1.476082 -0.194938 +v 0.578518 1.489630 -0.178429 +v 0.646744 1.602452 -0.128904 +v 0.609246 1.562152 -0.152250 +v 0.611225 1.503178 -0.161921 +v 0.651526 1.460077 -0.152250 +v 0.706538 1.458097 -0.128904 +v 0.744037 1.498396 -0.105557 +v 0.742057 1.557369 -0.095887 +v 0.701756 1.600471 -0.105557 +v 0.689911 1.625462 -0.037240 +v 0.607393 1.628433 -0.072260 +v 0.622342 1.592343 -0.072260 +v 0.677353 1.590363 -0.048913 +v 0.551144 1.567983 -0.107280 +v 0.584842 1.552044 -0.095606 +v 0.554116 1.479522 -0.121785 +v 0.586823 1.493069 -0.105277 +v 0.614566 1.414869 -0.107280 +v 0.627123 1.449969 -0.095606 +v 0.697084 1.411898 -0.072260 +v 0.682136 1.447988 -0.072260 +v 0.753332 1.472350 -0.037240 +v 0.719635 1.488287 -0.048913 +v 0.750361 1.560810 -0.022734 +v 0.717654 1.547261 -0.039243 +v 0.265165 1.671415 -0.750000 +v 0.154680 1.625651 -0.750000 +v 0.251761 1.722732 -0.418544 +v 0.339365 1.745614 -0.496669 +v 0.108916 1.515165 -0.750000 +v 0.154680 1.404680 -0.750000 +v 0.284121 1.534121 -0.308058 +v 0.228879 1.635129 -0.340419 +v 0.265166 1.358915 -0.750000 +v 0.375651 1.404680 -0.750000 +v 0.472732 1.501761 -0.418544 +v 0.385129 1.478879 -0.340419 +v 0.421415 1.515165 -0.750000 +v 0.495615 1.589364 -0.496669 +v 0.375651 1.625651 -0.750000 +v 0.440371 1.690371 -0.529029 +v 0.580264 1.609293 -0.316931 +v 0.518007 1.611756 -0.214856 +v 0.427498 1.677498 -0.172575 +v 0.361757 1.768006 -0.214856 +v 0.359293 1.830264 -0.316931 +v 0.421551 1.827801 -0.419007 +v 0.512060 1.762060 -0.461288 +v 0.577801 1.671550 -0.419007 +v 0.518497 1.924746 -0.391735 +v 0.596621 1.846622 -0.437500 +v 0.674747 1.768496 -0.391735 +v 0.707107 1.736136 -0.281250 +v 0.674747 1.768496 -0.170765 +v 0.596621 1.846622 -0.125000 +v 0.518497 1.924746 -0.170765 +v 0.486136 1.957107 -0.281250 +v 0.831487 1.925236 -0.214856 +v 0.765745 2.015745 -0.172575 +v 0.675237 2.081486 -0.214856 +v 0.612979 2.083950 -0.316932 +v 0.615442 2.021692 -0.419007 +v 0.681184 1.931184 -0.461288 +v 0.771693 1.865442 -0.419007 +v 0.833950 1.862979 -0.316932 +v 0.763264 1.735279 -0.468769 +v 0.688267 1.654677 -0.515462 +v 0.692229 1.536730 -0.534803 +v 0.772828 1.450527 -0.515462 +v 0.882854 1.446566 -0.468769 +v 0.957852 1.527166 -0.422076 +v 0.953891 1.645114 -0.402735 +v 0.873290 1.731318 -0.422076 +v -0.139878 1.876411 -0.175597 +v -0.135918 1.986436 -0.128904 +v -0.172006 1.971487 -0.128904 +v -0.174978 1.888969 -0.163924 +v -0.216517 2.061434 -0.082211 +v -0.334466 2.057472 -0.062870 +v -0.320918 2.024765 -0.079378 +v -0.232457 2.027736 -0.093884 +v -0.420668 1.976872 -0.082211 +v -0.424630 1.866847 -0.128904 +v -0.388541 1.881796 -0.128904 +v -0.385570 1.964314 -0.093884 +v -0.344029 1.791849 -0.175597 +v -0.328090 1.825547 -0.163924 +v -0.226082 1.795810 -0.194938 +v -0.239630 1.828518 -0.178429 +v -0.352452 1.896744 -0.128904 +v -0.312151 1.859246 -0.152250 +v -0.253178 1.861225 -0.161921 +v -0.210077 1.901526 -0.152250 +v -0.208096 1.956538 -0.128904 +v -0.248396 1.994038 -0.105557 +v -0.307369 1.992057 -0.095887 +v -0.350471 1.951756 -0.105557 +v -0.375462 1.939911 -0.037240 +v -0.378433 1.857393 -0.072260 +v -0.342343 1.872342 -0.072260 +v -0.340363 1.927353 -0.048913 +v -0.317983 1.801144 -0.107280 +v -0.302044 1.834842 -0.095606 +v -0.229521 1.804116 -0.121785 +v -0.243069 1.836823 -0.105277 +v -0.164869 1.864566 -0.107280 +v -0.199968 1.877123 -0.095606 +v -0.161898 1.947084 -0.072260 +v -0.197988 1.932136 -0.072260 +v -0.222349 2.003333 -0.037240 +v -0.238287 1.969635 -0.048913 +v -0.310809 2.000361 -0.022734 +v -0.297261 1.967654 -0.039243 +v -0.421415 1.515165 -0.750000 +v -0.375651 1.404680 -0.750000 +v -0.472732 1.501761 -0.418544 +v -0.495614 1.589365 -0.496669 +v -0.265165 1.358916 -0.750000 +v -0.154680 1.404680 -0.750000 +v -0.284121 1.534121 -0.308058 +v -0.385129 1.478879 -0.340419 +v -0.108915 1.515166 -0.750000 +v -0.154680 1.625651 -0.750000 +v -0.251761 1.722732 -0.418544 +v -0.228879 1.635129 -0.340419 +v -0.265164 1.671415 -0.750000 +v -0.339364 1.745615 -0.496669 +v -0.375651 1.625651 -0.750000 +v -0.440371 1.690372 -0.529029 +v -0.359293 1.830264 -0.316931 +v -0.361756 1.768007 -0.214856 +v -0.427498 1.677498 -0.172575 +v -0.518006 1.611757 -0.214856 +v -0.580264 1.609293 -0.316931 +v -0.577800 1.671551 -0.419007 +v -0.512060 1.762060 -0.461288 +v -0.421550 1.827801 -0.419007 +v -0.674746 1.768497 -0.391735 +v -0.596621 1.846622 -0.437500 +v -0.518496 1.924747 -0.391735 +v -0.486136 1.957107 -0.281250 +v -0.518496 1.924747 -0.170765 +v -0.596621 1.846622 -0.125000 +v -0.674746 1.768497 -0.170765 +v -0.707107 1.736136 -0.281250 +v -0.675236 2.081487 -0.214856 +v -0.765745 2.015745 -0.172575 +v -0.831486 1.925237 -0.214856 +v -0.833950 1.862979 -0.316932 +v -0.771692 1.865443 -0.419007 +v -0.681184 1.931184 -0.461288 +v -0.615442 2.021693 -0.419007 +v -0.612979 2.083950 -0.316932 +v -0.485278 2.013265 -0.468769 +v -0.404677 1.938267 -0.515462 +v -0.286730 1.942229 -0.534803 +v -0.200527 2.022829 -0.515462 +v -0.196566 2.132854 -0.468769 +v -0.277167 2.207852 -0.422076 +v -0.395114 2.203891 -0.402735 +v -0.481318 2.123290 -0.422076 +v 0.139878 0.623589 -0.175597 +v 0.135918 0.513564 -0.128904 +v 0.172006 0.528513 -0.128904 +v 0.174978 0.611032 -0.163924 +v 0.216517 0.438566 -0.082211 +v 0.334466 0.442528 -0.062870 +v 0.320918 0.475236 -0.079378 +v 0.232457 0.472264 -0.093884 +v 0.420668 0.523129 -0.082211 +v 0.424630 0.633153 -0.128904 +v 0.388541 0.618205 -0.128904 +v 0.385570 0.535686 -0.093884 +v 0.344029 0.708152 -0.175597 +v 0.328090 0.674453 -0.163924 +v 0.226082 0.704190 -0.194938 +v 0.239630 0.671482 -0.178429 +v 0.352452 0.603256 -0.128904 +v 0.312151 0.640754 -0.152250 +v 0.253178 0.638775 -0.161921 +v 0.210077 0.598474 -0.152250 +v 0.208096 0.543462 -0.128904 +v 0.248396 0.505963 -0.105557 +v 0.307369 0.507944 -0.095887 +v 0.350471 0.548244 -0.105557 +v 0.375462 0.560089 -0.037240 +v 0.378433 0.642607 -0.072260 +v 0.342343 0.627659 -0.072260 +v 0.340363 0.572647 -0.048913 +v 0.317983 0.698857 -0.107280 +v 0.302044 0.665158 -0.095606 +v 0.229521 0.695884 -0.121785 +v 0.243069 0.663177 -0.105277 +v 0.164869 0.635435 -0.107280 +v 0.199969 0.622877 -0.095606 +v 0.161898 0.552916 -0.072260 +v 0.197988 0.567865 -0.072260 +v 0.222349 0.496668 -0.037240 +v 0.238287 0.530365 -0.048913 +v 0.310809 0.499639 -0.022734 +v 0.297261 0.532347 -0.039243 +v 0.421415 0.984835 -0.750000 +v 0.375651 1.095320 -0.750000 +v 0.472732 0.998239 -0.418544 +v 0.495614 0.910635 -0.496669 +v 0.265165 1.141084 -0.750000 +v 0.154680 1.095320 -0.750000 +v 0.284121 0.965879 -0.308058 +v 0.385129 1.021121 -0.340419 +v 0.108915 0.984834 -0.750000 +v 0.154680 0.874350 -0.750000 +v 0.251761 0.777268 -0.418544 +v 0.228879 0.864871 -0.340419 +v 0.265164 0.828585 -0.750000 +v 0.339364 0.754385 -0.496669 +v 0.375650 0.874350 -0.750000 +v 0.440371 0.809629 -0.529029 +v 0.359293 0.669736 -0.316931 +v 0.361756 0.731993 -0.214856 +v 0.427498 0.822502 -0.172575 +v 0.518006 0.888243 -0.214856 +v 0.580264 0.890707 -0.316931 +v 0.577800 0.828449 -0.419007 +v 0.512060 0.737940 -0.461288 +v 0.421550 0.672199 -0.419007 +v 0.674746 0.731503 -0.391735 +v 0.596621 0.653379 -0.437500 +v 0.518496 0.575253 -0.391735 +v 0.486136 0.542893 -0.281250 +v 0.518496 0.575253 -0.170765 +v 0.596621 0.653379 -0.125000 +v 0.674746 0.731503 -0.170765 +v 0.707107 0.763864 -0.281250 +v 0.675236 0.418513 -0.214856 +v 0.765745 0.484255 -0.172575 +v 0.831486 0.574763 -0.214856 +v 0.833950 0.637021 -0.316932 +v 0.771692 0.634558 -0.419007 +v 0.681184 0.568816 -0.461288 +v 0.615442 0.478308 -0.419007 +v 0.612979 0.416050 -0.316932 +v 0.485278 0.486736 -0.468769 +v 0.404677 0.561733 -0.515462 +v 0.286730 0.557772 -0.534803 +v 0.200527 0.477172 -0.515462 +v 0.196566 0.367146 -0.468769 +v 0.277166 0.292148 -0.422076 +v 0.395114 0.296109 -0.402735 +v 0.481317 0.376710 -0.422076 +v 0.391169 2.232164 0.136894 +v 0.014465 2.307096 0.136894 +v 0.014465 2.197720 -0.081856 +v 0.349313 2.131115 -0.081856 +v 0.025414 2.252758 -0.109375 +v 0.360261 2.186152 -0.109375 +v 0.025414 2.362132 0.109375 +v 0.402117 2.287201 0.109375 +v -0.982164 1.641169 0.136894 +v -1.057095 1.264466 0.136894 +v -0.947720 1.264466 -0.081856 +v -0.881115 1.599313 -0.081856 +v -1.002758 1.275414 -0.109375 +v -0.936152 1.610261 -0.109375 +v -1.112132 1.275414 0.109375 +v -1.037201 1.652117 0.109375 +v 0.982164 0.858831 0.136894 +v 1.057095 1.235535 0.136894 +v 0.947720 1.235535 -0.081856 +v 0.881115 0.900687 -0.081856 +v 1.002758 1.224586 -0.109375 +v 0.936152 0.889739 -0.109375 +v 1.112132 1.224586 0.109375 +v 1.037201 0.847883 0.109375 +v -0.971093 0.832103 0.136894 +v -0.757708 0.512749 0.136894 +v -0.680368 0.590089 -0.081856 +v -0.870044 0.873959 -0.081856 +v -0.727027 0.558913 -0.109375 +v -0.916702 0.842784 -0.109375 +v -0.804366 0.481574 0.109375 +v -1.017751 0.800928 0.109375 +v 0.971093 1.667897 0.136894 +v 0.757708 1.987251 0.136894 +v 0.680368 1.909911 -0.081856 +v 0.870044 1.626041 -0.081856 +v 0.727027 1.941087 -0.109375 +v 0.916703 1.657217 -0.109375 +v 0.804366 2.018426 0.109375 +v 1.017752 1.699073 0.109375 +v -0.417897 2.221093 0.136894 +v -0.737251 2.007708 0.136894 +v -0.659911 1.930368 -0.081856 +v -0.376041 2.120044 -0.081856 +v -0.691087 1.977027 -0.109375 +v -0.407216 2.166703 -0.109375 +v -0.768426 2.054366 0.109375 +v -0.449072 2.267752 0.109375 +v 0.417897 0.278907 0.136894 +v 0.737251 0.492292 0.136894 +v 0.659911 0.569632 -0.081856 +v 0.376041 0.379956 -0.081856 +v 0.691087 0.522973 -0.109375 +v 0.407216 0.333298 -0.109375 +v 0.768426 0.445634 0.109375 +v 0.449072 0.232249 0.109375 +v -0.737251 0.492293 0.136894 +v -0.417897 0.278907 0.136894 +v -0.376041 0.379957 -0.081856 +v -0.659911 0.569632 -0.081856 +v -0.407218 0.333298 -0.109375 +v -0.691088 0.522974 -0.109375 +v -0.449074 0.232249 0.109375 +v -0.768427 0.445635 0.109375 +v 0.737251 2.007708 0.136894 +v 0.417897 2.221093 0.136894 +v 0.376041 2.120044 -0.081856 +v 0.659911 1.930368 -0.081856 +v 0.407218 2.166703 -0.109375 +v 0.691088 1.977026 -0.109375 +v 0.449074 2.267751 0.109375 +v 0.768427 2.054366 0.109375 +v -0.757708 1.987251 0.136894 +v -0.971093 1.667897 0.136894 +v -0.870044 1.626041 -0.081856 +v -0.680368 1.909911 -0.081856 +v -0.916702 1.657218 -0.109375 +v -0.727026 1.941088 -0.109375 +v -1.017751 1.699074 0.109375 +v -0.804365 2.018427 0.109375 +v 0.757708 0.512749 0.136894 +v 0.971093 0.832103 0.136894 +v 0.870044 0.873959 -0.081856 +v 0.680368 0.590089 -0.081856 +v 0.916702 0.842782 -0.109375 +v 0.727026 0.558912 -0.109375 +v 1.017751 0.800926 0.109375 +v 0.804366 0.481573 0.109375 +v -1.057095 1.235535 0.136894 +v -0.982164 0.858832 0.136894 +v -0.881115 0.900688 -0.081856 +v -0.947720 1.235535 -0.081856 +v -0.936153 0.889740 -0.109375 +v -1.002758 1.224588 -0.109375 +v -1.037201 0.847885 0.109375 +v -1.112132 1.224588 0.109375 +v 1.057095 1.264465 0.136894 +v 0.982164 1.641169 0.136894 +v 0.881115 1.599313 -0.081856 +v 0.947720 1.264465 -0.081856 +v 0.936153 1.610260 -0.109375 +v 1.002758 1.275412 -0.109375 +v 1.037202 1.652116 0.109375 +v 1.112132 1.275412 0.109375 +v -0.014465 2.307096 0.136894 +v -0.391168 2.232164 0.136894 +v -0.349312 2.131115 -0.081856 +v -0.014465 2.197721 -0.081856 +v -0.360260 2.186153 -0.109375 +v -0.025412 2.252758 -0.109375 +v -0.402115 2.287201 0.109375 +v -0.025412 2.362133 0.109375 +v 0.014465 0.192905 0.136894 +v 0.391169 0.267836 0.136894 +v 0.349312 0.368885 -0.081856 +v 0.014465 0.302280 -0.081856 +v 0.360260 0.313847 -0.109375 +v 0.025412 0.247242 -0.109375 +v 0.402115 0.212799 0.109375 +v 0.025412 0.137868 0.109375 +v 0.375000 2.500000 -1.875000 +v 0.375000 2.500000 -0.875000 +v -0.375000 2.500000 -1.875000 +v -0.375000 2.500000 -0.875000 +v 0.375000 2.250000 -1.875000 +v 0.375000 2.250000 -0.875000 +v -0.375000 2.250000 -1.875000 +v -0.375000 2.250000 -0.875000 +v 0.000000 2.500000 -1.875000 +v -0.088388 2.463388 -1.875000 +v -0.125000 2.375000 -1.875000 +v 0.125000 2.375000 -1.875000 +v 0.088388 2.463388 -1.875000 +v 0.000000 2.500000 -1.125000 +v -0.088388 2.463388 -1.125000 +v -0.125000 2.375000 -1.125000 +v 0.125000 2.375000 -1.125000 +v 0.088388 2.463388 -1.125000 +v 0.000000 2.426777 -0.948223 +v -0.088388 2.400888 -0.974111 +v -0.125000 2.338388 -1.036612 +v 0.125000 2.338388 -1.036612 +v 0.088388 2.400888 -0.974111 +v 0.000000 2.250000 -0.875000 +v -0.088388 2.250000 -0.911611 +v -0.125000 2.250000 -1.000000 +v 0.125000 2.250000 -1.000000 +v 0.088388 2.250000 -0.911611 +v 0.250000 2.500000 -1.875000 +v 0.161612 2.463388 -1.875000 +v 0.125000 2.375000 -1.875000 +v 0.375000 2.375000 -1.875000 +v 0.338388 2.463388 -1.875000 +v 0.250000 2.500000 -1.125000 +v 0.161612 2.463388 -1.125000 +v 0.125000 2.375000 -1.125000 +v 0.375000 2.375000 -1.125000 +v 0.338388 2.463388 -1.125000 +v 0.250000 2.426777 -0.948223 +v 0.161612 2.400888 -0.974111 +v 0.125000 2.338388 -1.036612 +v 0.375000 2.338388 -1.036612 +v 0.338388 2.400888 -0.974111 +v 0.250000 2.250000 -0.875000 +v 0.161612 2.250000 -0.911611 +v 0.125000 2.250000 -1.000000 +v 0.375000 2.250000 -1.000000 +v 0.338388 2.250000 -0.911611 +v -0.250000 2.500000 -1.875000 +v -0.338388 2.463388 -1.875000 +v -0.375000 2.375000 -1.875000 +v -0.125000 2.375000 -1.875000 +v -0.161612 2.463388 -1.875000 +v -0.250000 2.500000 -1.125000 +v -0.338388 2.463388 -1.125000 +v -0.375000 2.375000 -1.125000 +v -0.125000 2.375000 -1.125000 +v -0.161612 2.463388 -1.125000 +v -0.250000 2.426777 -0.948223 +v -0.338388 2.400888 -0.974111 +v -0.375000 2.338388 -1.036612 +v -0.125000 2.338388 -1.036612 +v -0.161612 2.400888 -0.974111 +v -0.250000 2.250000 -0.875000 +v -0.338388 2.250000 -0.911611 +v -0.375000 2.250000 -1.000000 +v -0.125000 2.250000 -1.000000 +v -0.161612 2.250000 -0.911611 +v -0.536612 2.286612 -0.875000 +v -1.036612 1.786612 -0.875000 +v 0.375000 2.375000 -0.875000 +v -0.375000 2.375000 -0.875000 +v 0.536612 2.286612 -0.875000 +v 1.036612 1.786612 -0.875000 +v -0.625000 2.375000 -0.625000 +v -1.125000 1.875000 -0.625000 +v 1.125000 1.875000 -0.625000 +v 0.625000 2.375000 -0.625000 +v 0.375000 2.500000 -0.625000 +v -0.375000 2.500000 -0.625000 +v -0.536612 2.286612 -0.625000 +v -1.036612 1.786612 -0.625000 +v 0.375000 2.375000 -0.625000 +v -0.375000 2.375000 -0.625000 +v 0.536612 2.286612 -0.625000 +v 1.036612 1.786612 -0.625000 +v 1.125000 1.875000 -0.875000 +v 0.625000 2.375000 -0.875000 +v 1.125000 1.875000 -0.625000 +v 0.625000 2.375000 -0.625000 +v 0.375000 2.500000 -0.875000 +v -0.375000 2.500000 -0.875000 +v 0.375000 2.500000 -0.625000 +v -0.375000 2.500000 -0.625000 +v -0.625000 2.375000 -0.875000 +v -1.125000 1.875000 -0.875000 +v -0.625000 2.375000 -0.625000 +v -1.125000 1.875000 -0.625000 +v -0.430519 2.289364 -0.625000 +v 0.430518 2.289365 -0.625000 +v -0.500000 -0.000000 0.125000 +v -0.500000 0.000000 -0.375000 +v 0.500000 0.000000 -0.375000 +v 0.500000 -0.000000 0.125000 +v -0.500000 2.500000 0.125000 +v 0.500000 2.500000 0.125000 +v 0.500000 2.500000 -0.375000 +v -0.500000 2.500000 -0.375000 +v -1.250000 1.750000 0.125000 +v -1.250000 1.750000 -0.375000 +v -1.250000 0.750000 -0.375000 +v -1.250000 0.750000 0.125000 +v 1.250000 1.750000 0.125000 +v 1.250000 0.750000 0.125000 +v 1.250000 0.750000 -0.375000 +v 1.250000 1.750000 -0.375000 +v 1.039364 1.680519 0.125000 +v 1.125000 1.250000 0.125000 +v 1.039364 0.819481 0.125000 +v 0.430518 2.289365 0.125000 +v 0.795495 2.045496 0.125000 +v -0.430519 2.289364 0.125000 +v 0.000000 2.375000 0.125000 +v -1.039364 1.680519 0.125000 +v -0.795495 2.045495 0.125000 +v -1.039364 0.819481 0.125000 +v -1.125000 1.250000 0.125000 +v -0.430519 0.210636 0.125000 +v -0.795495 0.454505 0.125000 +v 0.430519 0.210635 0.125000 +v 0.000000 0.125000 0.125000 +v 0.795495 0.454505 0.125000 +v -0.191341 1.711940 -0.750000 +v -0.353553 1.603553 -0.750000 +v -0.461940 1.441342 -0.750000 +v -0.500000 1.250000 -0.750000 +v -0.461940 1.058658 -0.750000 +v -0.353553 0.896447 -0.750000 +v -0.191341 0.788060 -0.750000 +v 0.000000 0.750000 -0.750000 +v 0.191341 0.788060 -0.750000 +v 0.353553 0.896446 -0.750000 +v 0.461940 1.058658 -0.750000 +v 0.500000 1.250000 -0.750000 +v 0.461940 1.441342 -0.750000 +v 0.353553 1.603554 -0.750000 +v 0.191341 1.711940 -0.750000 +v 0.000000 1.750000 -0.750000 +v 1.039364 1.680519 -0.375000 +v 0.795495 2.045496 -0.375000 +v 0.430518 2.289365 -0.375000 +v 1.039364 0.819481 -0.375000 +v 1.125000 1.250000 -0.375000 +v 0.430519 0.210635 -0.375000 +v 0.795495 0.454505 -0.375000 +v -0.430519 0.210636 -0.375000 +v 0.000000 0.125000 -0.375000 +v -1.039364 0.819481 -0.375000 +v -0.795495 0.454505 -0.375000 +v -1.039364 1.680519 -0.375000 +v -1.125000 1.250000 -0.375000 +v -0.430519 2.289364 -0.375000 +v -0.795495 2.045495 -0.375000 +v 0.000000 2.375000 -0.375000 +v -0.430519 2.289364 -0.625000 +v 0.000000 2.375000 -0.625000 +v 0.430518 2.289365 -0.625000 +v 0.795495 2.045496 -0.625000 +v 1.039364 1.680519 -0.625000 +v 1.125000 1.250000 -0.625000 +v 1.039364 0.819481 -0.625000 +v 0.795495 0.454505 -0.625000 +v 0.430519 0.210635 -0.625000 +v 0.000000 0.125000 -0.625000 +v -0.430519 0.210636 -0.625000 +v -0.795495 0.454505 -0.625000 +v -1.039364 0.819481 -0.625000 +v -1.125000 1.250000 -0.625000 +v -1.039364 1.680519 -0.625000 +v -0.795495 2.045495 -0.625000 +v -0.382683 2.173880 -0.125000 +v 0.000000 2.250000 -0.125000 +v 0.382683 2.173880 -0.125000 +v 0.707106 1.957107 -0.125000 +v 0.923880 1.632684 -0.125000 +v 1.000000 1.250000 -0.125000 +v 0.923880 0.867316 -0.125000 +v 0.707106 0.542893 -0.125000 +v 0.382683 0.326120 -0.125000 +v 0.000000 0.250000 -0.125000 +v -0.382684 0.326120 -0.125000 +v -0.707108 0.542893 -0.125000 +v -0.923880 0.867316 -0.125000 +v -1.000000 1.250000 -0.125000 +v -0.923880 1.632683 -0.125000 +v -0.707108 1.957107 -0.125000 +v -0.382683 2.173880 -0.500000 +v 0.000000 2.250000 -0.500000 +v 0.382683 2.173880 -0.500000 +v 0.382683 0.326120 -0.500000 +v 0.000000 0.250000 -0.500000 +v -0.707108 1.957107 -0.500000 +v 0.707106 0.542893 -0.500000 +v -0.923880 1.632683 -0.500000 +v 0.923880 0.867316 -0.500000 +v -1.000000 1.250000 -0.500000 +v 1.000000 1.250000 -0.500000 +v -0.923880 0.867316 -0.500000 +v 0.923880 1.632684 -0.500000 +v -0.707108 0.542893 -0.500000 +v 0.707106 1.957107 -0.500000 +v -0.382684 0.326120 -0.500000 +vt 0.662069 0.796875 +vt 0.662069 0.875000 +vt 0.551724 0.875000 +vt 0.634483 0.218750 +vt 0.724138 0.250000 +vt 0.551724 0.250000 +vt 0.724138 0.359375 +vt 0.703448 0.375000 +vt 0.606897 -0.000000 +vt 0.551724 0.125000 +vt 0.551724 -0.000000 +vt 0.634483 0.906250 +vt 0.606897 1.000000 +vt 0.413793 0.062500 +vt 0.441379 0.250000 +vt 0.413793 0.187500 +vt 0.682759 0.406250 +vt 0.703448 0.406250 +vt 0.724138 0.875000 +vt 0.717241 0.796875 +vt 0.724138 0.765625 +vt 0.682759 0.750000 +vt 0.717241 0.906250 +vt 0.717241 0.875000 +vt 0.324138 0.796875 +vt 0.282759 0.812500 +vt 0.282759 0.796875 +vt 0.324138 0.828125 +vt 0.282759 0.843750 +vt 0.282759 0.828125 +vt 0.324138 0.859375 +vt 0.282759 0.875000 +vt 0.282759 0.859375 +vt 0.282759 0.890625 +vt 0.331034 0.906250 +vt 0.275862 0.906250 +vt 0.331034 0.765625 +vt 0.282759 0.781250 +vt 0.275862 0.765625 +vt 0.324138 0.812500 +vt 0.282759 1.000000 +vt 0.324138 0.984375 +vt 0.324138 1.000000 +vt 0.275862 0.968750 +vt 0.282759 0.984375 +vt 0.275862 0.984375 +vt 0.324138 0.953125 +vt 0.282759 0.968750 +vt 0.282759 0.953125 +vt 0.275862 0.968750 +vt 0.282759 0.984375 +vt 0.275862 0.984375 +vt 0.282759 0.968750 +vt 0.324138 0.984375 +vt 0.282759 0.984375 +vt 0.324138 0.968750 +vt 0.282759 0.968750 +vt 0.324138 0.984375 +vt 0.324138 0.968750 +vt 0.282759 0.984375 +vt 0.282759 0.968750 +vt 0.275862 0.968750 +vt 0.275862 0.984375 +vt 0.324138 0.953125 +vt 0.282759 0.953125 +vt 0.331034 0.984375 +vt 0.324138 0.968750 +vt 0.331034 0.968750 +vt 0.282759 1.000000 +vt 0.324138 1.000000 +vt 0.331034 0.984375 +vt 0.331034 0.968750 +vt 0.324138 0.953125 +vt 0.282759 0.953125 +vt 0.331034 0.984375 +vt 0.324138 0.968750 +vt 0.331034 0.968750 +vt 0.282759 1.000000 +vt 0.324138 1.000000 +vt 0.331034 0.984375 +vt 0.331034 0.968750 +vt 0.324138 0.953125 +vt 0.282759 0.953125 +vt 0.275862 0.968750 +vt 0.275862 0.984375 +vt 0.282759 1.000000 +vt 0.324138 0.984375 +vt 0.324138 1.000000 +vt 0.737931 0.359375 +vt 0.737931 0.218750 +vt 0.737931 0.250000 +vt 0.737931 0.875000 +vt 0.737931 0.906250 +vt 0.724138 0.375000 +vt 0.724138 0.718750 +vt 0.703448 0.750000 +vt 0.703448 0.718750 +vt 0.682759 0.718750 +vt 0.662069 0.500000 +vt 0.675862 0.625000 +vt 0.662069 0.625000 +vt 0.696552 0.421875 +vt 0.675862 0.500000 +vt 0.696552 0.703125 +vt 0.151724 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.172414 0.046875 +vt 0.165517 0.062500 +vt 0.165517 0.046875 +vt 0.179310 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.186207 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.158621 0.046875 +vt 0.172414 0.062500 +vt 0.193103 0.046875 +vt 0.200000 0.062500 +vt 0.170248 0.114281 +vt 0.170248 0.135718 +vt 0.160786 0.135718 +vt 0.186207 0.078125 +vt 0.179310 0.093750 +vt 0.179310 0.078125 +vt 0.193103 0.093750 +vt 0.186207 0.093750 +vt 0.200000 0.078125 +vt 0.193103 0.078125 +vt 0.151724 0.078125 +vt 0.144828 0.093750 +vt 0.144828 0.078125 +vt 0.158621 0.078125 +vt 0.151724 0.093750 +vt 0.165517 0.093750 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.172414 0.093750 +vt 0.172414 0.078125 +vt 0.117241 0.296875 +vt 0.096552 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.343750 +vt 0.117241 0.328125 +vt 0.124138 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.310345 0.031250 +vt 0.296552 0.046875 +vt 0.296552 0.031250 +vt 0.268584 0.103261 +vt 0.268584 0.115489 +vt 0.264768 0.124136 +vt 0.282759 0.046875 +vt 0.282759 0.031250 +vt 0.268966 0.031250 +vt 0.275862 0.046875 +vt 0.268966 0.046875 +vt 0.255172 0.046875 +vt 0.255172 0.031250 +vt 0.365517 0.031250 +vt 0.351724 0.046875 +vt 0.351724 0.031250 +vt 0.337931 0.046875 +vt 0.337931 0.031250 +vt 0.324138 0.031250 +vt 0.331034 0.046875 +vt 0.324138 0.046875 +vt 0.310345 0.046875 +vt 0.296552 0.078125 +vt 0.303448 0.062500 +vt 0.303448 0.078125 +vt 0.282759 0.078125 +vt 0.289655 0.062500 +vt 0.289655 0.078125 +vt 0.268966 0.062500 +vt 0.275862 0.078125 +vt 0.268966 0.078125 +vt 0.255172 0.062500 +vt 0.262069 0.078125 +vt 0.255172 0.078125 +vt 0.351724 0.062500 +vt 0.358621 0.078125 +vt 0.351724 0.078125 +vt 0.337931 0.078125 +vt 0.344828 0.062500 +vt 0.344828 0.078125 +vt 0.324138 0.078125 +vt 0.331034 0.062500 +vt 0.331034 0.078125 +vt 0.310345 0.078125 +vt 0.317241 0.062500 +vt 0.317241 0.078125 +vt 0.020690 0.781250 +vt 0.013793 0.875000 +vt 0.013793 0.781250 +vt 0.213793 0.781250 +vt 0.227586 0.875000 +vt 0.213793 0.875000 +vt 0.510209 0.406422 +vt 0.506394 0.432721 +vt 0.482676 0.422118 +vt 0.455123 0.406613 +vt 0.458988 0.432863 +vt 0.438078 0.465736 +vt 0.414116 0.500678 +vt 0.425220 0.509148 +vt 0.420595 0.561221 +vt 0.413934 0.622365 +vt 0.425067 0.614088 +vt 0.437826 0.657998 +vt 0.454859 0.718112 +vt 0.458836 0.691761 +vt 0.482625 0.702699 +vt 0.455172 0.609375 +vt 0.441379 0.515625 +vt 0.455172 0.515625 +vt 0.848515 0.125000 +vt 0.903448 0.000542 +vt 0.958382 0.125000 +vt 0.351724 0.906250 +vt 0.331034 0.718750 +vt 0.255172 0.765625 +vt 0.275862 0.953125 +vt 0.848515 0.375000 +vt 0.903448 0.250541 +vt 0.958382 0.375000 +vt 0.737931 0.375000 +vt 0.848276 0.281250 +vt 0.848276 0.375000 +vt 0.737931 0.187500 +vt 0.848276 0.093750 +vt 0.848276 0.187500 +vt 0.737931 0.562500 +vt 0.848276 0.468750 +vt 0.848276 0.562500 +vt 0.737931 0.281250 +vt 0.737931 0.093750 +vt 0.848276 -0.000000 +vt 0.737931 0.656250 +vt 0.848276 0.656250 +vt 0.737931 0.468750 +vt 0.262069 0.140625 +vt 0.268966 0.171875 +vt 0.262069 0.171875 +vt 0.296552 0.171875 +vt 0.303448 0.140625 +vt 0.303448 0.171875 +vt 0.268966 0.125000 +vt 0.296552 0.140625 +vt 0.268966 0.140625 +vt 0.296552 0.187500 +vt 0.268966 0.187500 +vt 0.268966 0.093750 +vt 0.296552 0.125000 +vt 0.303448 0.171875 +vt 0.296552 0.140625 +vt 0.303448 0.140625 +vt 0.268966 0.140625 +vt 0.262069 0.171875 +vt 0.262069 0.140625 +vt 0.296552 0.187500 +vt 0.268966 0.171875 +vt 0.296552 0.171875 +vt 0.268966 0.125000 +vt 0.296552 0.125000 +vt 0.268966 0.093750 +vt 0.296552 0.093750 +vt 0.262069 0.171875 +vt 0.268966 0.140625 +vt 0.268966 0.171875 +vt 0.303448 0.171875 +vt 0.296552 0.140625 +vt 0.303448 0.140625 +vt 0.268966 0.125000 +vt 0.296552 0.187500 +vt 0.268966 0.187500 +vt 0.296552 0.171875 +vt 0.268966 0.093750 +vt 0.296552 0.125000 +vt 0.303448 0.140625 +vt 0.296552 0.171875 +vt 0.296552 0.140625 +vt 0.262069 0.140625 +vt 0.268966 0.171875 +vt 0.262069 0.171875 +vt 0.296552 0.187500 +vt 0.268966 0.125000 +vt 0.296552 0.125000 +vt 0.268966 0.140625 +vt 0.268966 0.093750 +vt 0.296552 0.093750 +vt 0.317241 0.140625 +vt 0.324138 0.171875 +vt 0.317241 0.171875 +vt 0.344828 0.171875 +vt 0.358621 0.187500 +vt 0.344828 0.187500 +vt 0.324138 0.125000 +vt 0.351724 0.140625 +vt 0.324138 0.140625 +vt 0.324138 0.187500 +vt 0.344828 0.093750 +vt 0.351724 0.125000 +vt 0.696552 0.625000 +vt 0.703448 0.687500 +vt 0.696552 0.687500 +vt 0.696552 0.500000 +vt 0.703448 0.437500 +vt 0.703448 0.500000 +vt 0.703448 0.625000 +vt 0.731034 0.687500 +vt 0.413793 0.859375 +vt 0.420690 0.914062 +vt 0.413793 0.914062 +vt 0.475862 0.914062 +vt 0.482759 0.859375 +vt 0.482759 0.914062 +vt 0.431034 0.937500 +vt 0.475862 0.859375 +vt 0.465517 0.937500 +vt 0.431034 0.953125 +vt 0.479310 0.937500 +vt 0.465517 0.953125 +vt 0.417241 0.937500 +vt 0.417241 0.953125 +vt 0.441379 -0.000000 +vt 0.468966 0.250000 +vt 0.255172 0.343750 +vt 0.337931 0.312500 +vt 0.337931 0.343750 +vt 0.363190 0.328752 +vt 0.351724 0.373746 +vt 0.340258 0.328752 +vt 0.255172 0.312500 +vt 0.337931 0.281250 +vt 0.255172 0.281250 +vt 0.337931 0.250000 +vt 0.363190 0.296248 +vt 0.351724 0.311246 +vt 0.340258 0.296248 +vt 0.868966 0.625000 +vt 0.924138 0.500000 +vt 0.924138 0.625000 +vt 0.848276 0.500000 +vt 0.868966 0.500000 +vt 0.944828 0.625000 +vt 0.834483 0.906250 +vt 0.765517 0.718750 +vt 0.834483 0.718750 +vt 0.737931 0.718750 +vt 0.765517 0.906250 +vt 0.737931 0.906250 +vt 0.862069 0.906250 +vt 0.862069 0.718750 +vt 0.765517 0.968750 +vt 0.834483 0.968750 +vt 0.834483 0.656250 +vt 0.765517 0.656250 +vt 0.903448 0.875000 +vt 0.958621 0.718750 +vt 0.958621 0.875000 +vt 0.958621 0.625000 +vt 0.903448 0.718750 +vt 0.903448 0.625000 +vt 0.903448 0.968750 +vt 0.958621 0.968750 +vt 0.862069 0.718750 +vt 0.862069 0.875000 +vt 1.000000 0.875000 +vt 1.000000 0.718750 +vt 0.958621 0.187500 +vt 0.986207 0.156250 +vt 0.986207 0.187500 +vt 0.958621 0.062500 +vt 0.986207 0.031250 +vt 0.986207 0.062500 +vt 0.958621 0.125000 +vt 0.986207 0.093750 +vt 0.986207 0.125000 +vt 0.958621 0.156250 +vt 0.958621 0.031250 +vt 0.986207 0.000000 +vt 0.958621 0.093750 +vt 0.965937 0.193335 +vt 0.978890 0.193335 +vt 0.985367 0.218750 +vt 0.737931 0.109375 +vt 0.724138 0.093750 +vt 0.737931 0.093750 +vt 0.737931 0.015625 +vt 0.724138 0.000000 +vt 0.737931 0.000000 +vt 0.737931 0.140625 +vt 0.724138 0.125000 +vt 0.737931 0.125000 +vt 0.737931 0.078125 +vt 0.724138 0.062500 +vt 0.737931 0.062500 +vt 0.737931 0.046875 +vt 0.724138 0.031250 +vt 0.737931 0.031250 +vt 0.737931 0.171875 +vt 0.724138 0.156250 +vt 0.737931 0.156250 +vt 0.724138 0.015625 +vt 0.717241 0.000000 +vt 0.717241 0.156250 +vt 0.717241 0.125000 +vt 0.724138 0.078125 +vt 0.717241 0.062500 +vt 0.717241 0.031250 +vt 0.724138 0.171875 +vt 0.724138 0.109375 +vt 0.717241 0.093750 +vt 0.675862 0.031250 +vt 0.717241 0.187500 +vt 0.675862 0.156250 +vt 0.675862 0.093750 +vt 0.675862 0.000000 +vt 0.675862 0.125000 +vt 0.675862 0.062500 +vt 0.668966 0.125000 +vt 0.668966 0.093750 +vt 0.668966 0.078125 +vt 0.668966 0.062500 +vt 0.668966 0.031250 +vt 0.668966 0.000000 +vt 0.668966 0.171875 +vt 0.668966 0.156250 +vt 0.655172 0.156250 +vt 0.668966 0.109375 +vt 0.655172 0.093750 +vt 0.668966 0.015625 +vt 0.655172 0.000000 +vt 0.668966 0.140625 +vt 0.655172 0.125000 +vt 0.655172 0.062500 +vt 0.668966 0.046875 +vt 0.655172 0.031250 +vt 0.655172 0.140625 +vt 0.648276 0.125000 +vt 0.655172 0.109375 +vt 0.648276 0.093750 +vt 0.648276 0.062500 +vt 0.655172 0.046875 +vt 0.648276 0.031250 +vt 0.655172 0.015625 +vt 0.648276 0.000000 +vt 0.648276 0.187500 +vt 0.648276 0.156250 +vt 0.641379 0.093750 +vt 0.641379 -0.000000 +vt 0.641379 0.125000 +vt 0.641379 0.062500 +vt 0.641379 0.031250 +vt 0.641379 0.156250 +vt 0.634483 0.062500 +vt 0.634483 0.031250 +vt 0.634483 0.171875 +vt 0.634483 0.156250 +vt 0.634483 0.093750 +vt 0.634483 0.000000 +vt 0.634483 0.140625 +vt 0.634483 0.125000 +vt 0.624290 0.002689 +vt 0.630883 0.002689 +vt 0.634179 0.015625 +vt 0.489655 0.156250 +vt 0.510345 0.046875 +vt 0.510345 0.156250 +vt 0.434483 0.812500 +vt 0.413793 0.765625 +vt 0.420690 0.750000 +vt 0.489655 0.046875 +vt 0.510345 0.000000 +vt 0.468966 0.046875 +vt 0.531034 0.156250 +vt 0.496552 0.187500 +vt 0.468966 0.156250 +vt 0.496552 0.156250 +vt 0.496552 0.312500 +vt 0.468966 0.265625 +vt 0.496552 0.265625 +vt 0.468966 0.234375 +vt 0.496552 0.234375 +vt 0.468966 0.187500 +vt 0.434483 0.750000 +vt 0.455172 0.812500 +vt 0.496552 0.765625 +vt 0.475862 0.750000 +vt 0.496552 0.750000 +vt 0.455172 0.750000 +vt 0.468966 0.750000 +vt 0.475862 0.765625 +vt 0.434483 0.859375 +vt 0.475862 0.812500 +vt 0.496552 0.812500 +vt 0.455172 0.718750 +vt 0.537931 0.828125 +vt 0.524138 0.812500 +vt 0.537931 0.812500 +vt 0.503448 0.718750 +vt 0.517241 0.812500 +vt 0.503448 0.812500 +vt 0.537931 0.718750 +vt 0.524138 0.718750 +vt 0.517241 0.718750 +vt 0.496552 0.812500 +vt 0.496552 0.718750 +vt 0.986207 0.609375 +vt 0.979310 0.593750 +vt 0.986207 0.593750 +vt 0.979310 0.531250 +vt 0.986207 0.515625 +vt 0.986207 0.531250 +vt 0.972414 0.593750 +vt 0.979310 0.578125 +vt 0.551724 0.625000 +vt 0.620690 0.609375 +vt 0.620690 0.734375 +vt 0.620690 0.640625 +vt 0.634483 0.640625 +vt 0.020690 0.875000 +vt 0.006897 0.781250 +vt 0.020690 0.781250 +vt 0.662069 0.734375 +vt 0.648276 0.640625 +vt 0.565517 0.640625 +vt 0.551724 0.625000 +vt 0.565517 0.625000 +vt 0.606897 0.390625 +vt 0.551724 0.375000 +vt 0.662069 0.375000 +vt 0.620690 0.484375 +vt 0.551724 0.500000 +vt 0.117241 0.906250 +vt 0.075862 0.875000 +vt 0.117241 0.875000 +vt 0.158621 0.125000 +vt 0.117241 0.156250 +vt 0.117241 0.125000 +vt 0.117241 0.906250 +vt 0.158621 0.875000 +vt 0.158621 0.906250 +vt 0.144828 0.250000 +vt 0.131034 0.250000 +vt 0.213793 0.875000 +vt 0.220690 0.781250 +vt 0.220690 0.875000 +vt 0.062069 0.781250 +vt 0.020690 0.875000 +vt 0.144828 0.281250 +vt 0.186207 0.250000 +vt 0.186207 0.281250 +vt 0.213793 0.765625 +vt 0.172414 0.781250 +vt 0.172414 0.750000 +vt 0.131034 0.281250 +vt 0.089655 0.250000 +vt 0.075862 0.906250 +vt 0.020690 0.906250 +vt 0.020690 0.890625 +vt 0.020690 0.765625 +vt 0.020690 0.750000 +vt 0.062069 0.750000 +vt 0.544828 0.203125 +vt 0.551724 0.250000 +vt 0.544828 0.250000 +vt 0.531034 0.203125 +vt 0.524138 0.250000 +vt 0.524138 0.203125 +vt 0.510345 0.203125 +vt 0.503448 0.250000 +vt 0.503448 0.203125 +vt 0.537931 0.250000 +vt 0.537931 0.203125 +vt 0.510345 0.296875 +vt 0.503448 0.296875 +vt 0.531034 0.250000 +vt 0.524138 0.296875 +vt 0.531034 0.203125 +vt 0.531034 0.187500 +vt 0.537931 0.187500 +vt 0.544828 0.187500 +vt 0.551724 0.187500 +vt 0.551724 0.203125 +vt 0.503448 0.203125 +vt 0.503448 0.187500 +vt 0.510345 0.187500 +vt 0.517241 0.187500 +vt 0.524138 0.187500 +vt 0.524138 0.203125 +vt 0.544828 0.156250 +vt 0.537931 0.156250 +vt 0.531034 0.156250 +vt 0.524138 0.187500 +vt 0.524138 0.156250 +vt 0.510345 0.156250 +vt 0.503448 0.156250 +vt 0.524138 0.156250 +vt 0.517241 0.156250 +vt 0.551724 0.156250 +vt 0.496552 0.187500 +vt 0.496552 0.156250 +vt 0.496552 0.250000 +vt 0.496552 0.203125 +vt 0.979310 0.515625 +vt 0.986207 0.484375 +vt 0.986207 0.515625 +vt 0.213793 0.890625 +vt 0.565517 0.515625 +vt 0.551724 0.500000 +vt 0.565517 0.500000 +vt 0.517241 0.250000 +vt 0.510345 0.250000 +vt 0.524138 0.250000 +vt 0.517241 0.296875 +vt 0.544828 0.296875 +vt 0.496552 0.296875 +vt 0.537931 0.296875 +vt 0.531034 0.296875 +vt 0.517241 0.203125 +vt 0.213793 0.109375 +vt 0.220690 0.265625 +vt 0.213793 0.265625 +vt 0.972414 0.515625 +vt 0.979310 0.484375 +vt 0.220690 0.109375 +vt 0.227586 0.265625 +vt 0.965517 0.515625 +vt 0.972414 0.484375 +vt 0.186207 0.109375 +vt 0.193103 0.265625 +vt 0.186207 0.265625 +vt 0.958621 0.515625 +vt 0.965517 0.484375 +vt 0.193103 0.109375 +vt 0.200000 0.265625 +vt 0.198836 0.288749 +vt 0.193103 0.296248 +vt 0.187370 0.288749 +vt 0.200000 0.109375 +vt 0.206897 0.265625 +vt 0.206897 0.109375 +vt 0.201164 0.288749 +vt 0.201164 0.273751 +vt 0.212630 0.273751 +vt 0.972414 0.468750 +vt 0.979310 0.484375 +vt 0.979310 0.468750 +vt 0.958621 0.468750 +vt 0.965517 0.468750 +vt 0.958621 0.484375 +vt 0.965517 0.453125 +vt 0.958621 0.437500 +vt 0.965517 0.421875 +vt 0.965517 0.437500 +vt 0.972414 0.453125 +vt 0.979310 0.453125 +vt 0.986207 0.453125 +vt 0.986207 0.468750 +vt 0.972414 0.437500 +vt 0.965517 0.453125 +vt 0.986207 0.453125 +vt 0.979310 0.437500 +vt 0.986207 0.437500 +vt 0.972414 0.421875 +vt 0.979310 0.343750 +vt 0.979310 0.421875 +vt 0.986207 0.421875 +vt 0.965517 0.328125 +vt 0.972414 0.328125 +vt 0.965517 0.343750 +vt 0.986207 0.343750 +vt 0.958621 0.421875 +vt 0.965517 0.343750 +vt 0.972414 0.343750 +vt 0.979310 0.328125 +vt 0.986207 0.296875 +vt 0.986207 0.328125 +vt 0.986207 0.343750 +vt 0.958621 0.281250 +vt 0.965517 0.250000 +vt 0.965517 0.281250 +vt 0.958621 0.328125 +vt 0.965517 0.296875 +vt 0.972414 0.296875 +vt 0.979310 0.296875 +vt 0.979310 0.296875 +vt 0.972414 0.281250 +vt 0.979310 0.281250 +vt 0.958621 0.296875 +vt 0.986207 0.250000 +vt 0.986207 0.281250 +vt 0.979310 0.250000 +vt 0.972414 0.250000 +vt 0.539805 0.495450 +vt 0.539959 0.508696 +vt 0.506403 0.692192 +vt 0.539824 0.629444 +vt 0.512254 0.691859 +vt 0.544674 0.484410 +vt 0.551565 0.500009 +vt 0.544695 0.609268 +vt 0.539977 0.616199 +vt 0.489655 0.156250 +vt 0.510345 0.046875 +vt 0.510345 0.156250 +vt 0.151724 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.172414 0.046875 +vt 0.165517 0.062500 +vt 0.165517 0.046875 +vt 0.179310 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.186207 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.158621 0.046875 +vt 0.172414 0.062500 +vt 0.193103 0.046875 +vt 0.200000 0.062500 +vt 0.170248 0.114281 +vt 0.170248 0.135718 +vt 0.160786 0.135718 +vt 0.186207 0.078125 +vt 0.179310 0.093750 +vt 0.179310 0.078125 +vt 0.193103 0.093750 +vt 0.186207 0.093750 +vt 0.200000 0.078125 +vt 0.193103 0.078125 +vt 0.151724 0.078125 +vt 0.144828 0.093750 +vt 0.144828 0.078125 +vt 0.158621 0.093750 +vt 0.151724 0.093750 +vt 0.158621 0.078125 +vt 0.165517 0.093750 +vt 0.165517 0.078125 +vt 0.172414 0.093750 +vt 0.172414 0.078125 +vt 0.151724 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.172414 0.046875 +vt 0.165517 0.062500 +vt 0.165517 0.046875 +vt 0.179310 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.186207 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.158621 0.046875 +vt 0.172414 0.062500 +vt 0.193103 0.046875 +vt 0.200000 0.062500 +vt 0.170248 0.114281 +vt 0.170248 0.135718 +vt 0.160786 0.135718 +vt 0.186207 0.078125 +vt 0.179310 0.093750 +vt 0.179310 0.078125 +vt 0.193103 0.093750 +vt 0.186207 0.093750 +vt 0.200000 0.078125 +vt 0.193103 0.078125 +vt 0.151724 0.078125 +vt 0.144828 0.093750 +vt 0.144828 0.078125 +vt 0.158621 0.078125 +vt 0.151724 0.093750 +vt 0.165517 0.093750 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.172414 0.093750 +vt 0.172414 0.078125 +vt 0.151724 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.172414 0.046875 +vt 0.165517 0.062500 +vt 0.165517 0.046875 +vt 0.179310 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.186207 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.158621 0.046875 +vt 0.172414 0.062500 +vt 0.193103 0.046875 +vt 0.200000 0.062500 +vt 0.170248 0.114281 +vt 0.170248 0.135718 +vt 0.160786 0.135718 +vt 0.186207 0.078125 +vt 0.179310 0.093750 +vt 0.179310 0.078125 +vt 0.193103 0.093750 +vt 0.186207 0.093750 +vt 0.200000 0.078125 +vt 0.193103 0.078125 +vt 0.151724 0.078125 +vt 0.144828 0.093750 +vt 0.144828 0.078125 +vt 0.158621 0.078125 +vt 0.151724 0.093750 +vt 0.165517 0.093750 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.172414 0.093750 +vt 0.172414 0.078125 +vt 0.151724 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.172414 0.046875 +vt 0.165517 0.062500 +vt 0.165517 0.046875 +vt 0.179310 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.186207 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.158621 0.046875 +vt 0.172414 0.062500 +vt 0.193103 0.046875 +vt 0.200000 0.062500 +vt 0.170248 0.114281 +vt 0.170248 0.135718 +vt 0.160786 0.135718 +vt 0.186207 0.078125 +vt 0.179310 0.093750 +vt 0.179310 0.078125 +vt 0.193103 0.093750 +vt 0.186207 0.093750 +vt 0.200000 0.078125 +vt 0.193103 0.078125 +vt 0.151724 0.078125 +vt 0.144828 0.093750 +vt 0.144828 0.078125 +vt 0.158621 0.078125 +vt 0.151724 0.093750 +vt 0.165517 0.093750 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.172414 0.093750 +vt 0.172414 0.078125 +vt 0.151724 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.172414 0.046875 +vt 0.165517 0.062500 +vt 0.165517 0.046875 +vt 0.179310 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.186207 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.158621 0.046875 +vt 0.172414 0.062500 +vt 0.193103 0.046875 +vt 0.200000 0.062500 +vt 0.170248 0.114281 +vt 0.170248 0.135718 +vt 0.160786 0.135718 +vt 0.186207 0.078125 +vt 0.179310 0.093750 +vt 0.179310 0.078125 +vt 0.193103 0.093750 +vt 0.186207 0.093750 +vt 0.200000 0.078125 +vt 0.193103 0.078125 +vt 0.151724 0.078125 +vt 0.144828 0.093750 +vt 0.144828 0.078125 +vt 0.158621 0.078125 +vt 0.151724 0.093750 +vt 0.165517 0.093750 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.172414 0.093750 +vt 0.172414 0.078125 +vt 0.151724 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.172414 0.046875 +vt 0.165517 0.062500 +vt 0.165517 0.046875 +vt 0.179310 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.186207 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.158621 0.046875 +vt 0.172414 0.062500 +vt 0.193103 0.046875 +vt 0.200000 0.062500 +vt 0.170248 0.114281 +vt 0.170248 0.135718 +vt 0.160786 0.135718 +vt 0.186207 0.078125 +vt 0.179310 0.093750 +vt 0.179310 0.078125 +vt 0.193103 0.093750 +vt 0.186207 0.093750 +vt 0.200000 0.078125 +vt 0.193103 0.078125 +vt 0.151724 0.078125 +vt 0.144828 0.093750 +vt 0.144828 0.078125 +vt 0.158621 0.078125 +vt 0.151724 0.093750 +vt 0.165517 0.093750 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.172414 0.093750 +vt 0.172414 0.078125 +vt 0.151724 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.172414 0.046875 +vt 0.165517 0.062500 +vt 0.165517 0.046875 +vt 0.179310 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.193103 0.046875 +vt 0.186207 0.046875 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.158621 0.046875 +vt 0.172414 0.062500 +vt 0.200000 0.062500 +vt 0.193103 0.062500 +vt 0.170248 0.114281 +vt 0.170248 0.135718 +vt 0.160786 0.135718 +vt 0.186207 0.078125 +vt 0.179310 0.093750 +vt 0.179310 0.078125 +vt 0.193103 0.093750 +vt 0.186207 0.093750 +vt 0.200000 0.078125 +vt 0.193103 0.078125 +vt 0.151724 0.078125 +vt 0.144828 0.093750 +vt 0.144828 0.078125 +vt 0.158621 0.078125 +vt 0.151724 0.093750 +vt 0.165517 0.093750 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.172414 0.093750 +vt 0.172414 0.078125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.117241 0.296875 +vt 0.096552 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.343750 +vt 0.117241 0.328125 +vt 0.124138 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.117241 0.296875 +vt 0.096552 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.343750 +vt 0.117241 0.328125 +vt 0.124138 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.117241 0.296875 +vt 0.096552 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.343750 +vt 0.117241 0.328125 +vt 0.124138 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.117241 0.296875 +vt 0.096552 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.343750 +vt 0.117241 0.328125 +vt 0.124138 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.510345 0.562500 +vt 0.455172 0.562500 +vt 0.455172 0.546875 +vt 0.620690 0.515625 +vt 0.565517 0.515625 +vt 0.565517 0.750000 +vt 0.551724 0.734375 +vt 0.565517 0.734375 +vt 0.620690 0.515625 +vt 0.565517 0.609375 +vt 0.565517 0.515625 +vt 0.448276 0.515625 +vt 0.455172 0.609375 +vt 0.448276 0.609375 +vt 0.524138 0.609375 +vt 0.510345 0.515625 +vt 0.524138 0.515625 +vt 0.455172 0.578125 +vt 0.455172 0.562500 +vt 0.510345 0.562500 +vt 0.565517 0.625000 +vt 0.551724 0.609375 +vt 0.565517 0.609375 +vt 0.565517 0.500000 +vt 0.551724 0.484375 +vt 0.565517 0.484375 +vt 0.565517 0.390625 +vt 0.551724 0.375000 +vt 0.565517 0.375000 +vt 0.565517 0.484375 +vt 0.551724 0.484375 +vt 0.551724 0.515625 +vt 0.565517 0.609375 +vt 0.551724 0.609375 +vt 0.565517 0.640625 +vt 0.551724 0.640625 +vt 0.565517 0.390625 +vt 0.551724 0.390625 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.565517 0.734375 +vt 0.551724 0.750000 +vt 0.551724 0.734375 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.551583 0.624874 +vt 0.510212 0.718578 +vt 0.512238 0.433055 +vt 0.255172 -0.000000 +vt 0.227586 0.125000 +vt 0.227586 -0.000000 +vt 0.227586 0.500000 +vt 0.255172 0.625000 +vt 0.227586 0.625000 +vt 0.255172 0.750000 +vt 0.227586 0.875000 +vt 0.227586 0.750000 +vt 0.227586 0.250000 +vt 0.255172 0.375000 +vt 0.227586 0.375000 +vt 0.255172 0.500000 +vt 0.255172 0.250000 +vt 0.255172 0.125000 +vt 0.227586 1.000000 +vt 0.255172 0.875000 +vt 0.255172 1.000000 +vt 0.185647 0.407982 +vt 0.181809 0.433762 +vt 0.158206 0.423338 +vt 0.227246 0.501121 +vt 0.215680 0.509781 +vt 0.201106 0.462288 +vt 0.226770 0.624909 +vt 0.215543 0.616068 +vt 0.220300 0.563004 +vt 0.185661 0.717018 +vt 0.181941 0.690910 +vt 0.202736 0.659045 +vt 0.131028 0.716313 +vt 0.134829 0.690268 +vt 0.158386 0.701199 +vt 0.089995 0.623885 +vt 0.101155 0.615205 +vt 0.113984 0.658150 +vt 0.089997 0.501305 +vt 0.101178 0.509856 +vt 0.096611 0.562314 +vt 0.130816 0.408077 +vt 0.134644 0.434152 +vt 0.113890 0.466628 +vt 0.117241 0.000640 +vt 0.144545 0.062500 +vt 0.117241 0.124360 +vt 0.282000 0.461238 +vt 0.267164 0.508207 +vt 0.255663 0.499249 +vt 0.324503 0.423194 +vt 0.301337 0.432859 +vt 0.297766 0.407469 +vt 0.368692 0.466561 +vt 0.347882 0.434234 +vt 0.351705 0.408442 +vt 0.386036 0.561123 +vt 0.381418 0.509360 +vt 0.392481 0.500826 +vt 0.368830 0.657546 +vt 0.381587 0.613816 +vt 0.392687 0.622102 +vt 0.324106 0.701882 +vt 0.347834 0.691162 +vt 0.351758 0.717531 +vt 0.279544 0.658120 +vt 0.300333 0.691179 +vt 0.296432 0.717486 +vt 0.262317 0.561201 +vt 0.266830 0.614350 +vt 0.255589 0.622775 +vt 0.606897 0.125000 +vt 0.662069 0.218750 +vt 0.724138 0.218750 +vt 0.682759 0.375000 +vt 0.551724 1.000000 +vt 0.662069 0.906250 +vt 0.724138 0.906250 +vt 0.324138 0.843750 +vt 0.324138 0.875000 +vt 0.324138 0.890625 +vt 0.324138 0.781250 +vt 0.737931 0.765625 +vt 0.724138 0.406250 +vt 0.724138 0.750000 +vt 0.696552 0.453125 +vt 0.696552 0.671875 +vt 0.200000 0.046875 +vt 0.172208 0.125000 +vt 0.165517 0.140158 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.200000 0.093750 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.303448 0.046875 +vt 0.259370 0.124136 +vt 0.255554 0.115489 +vt 0.255554 0.103261 +vt 0.259370 0.094614 +vt 0.264768 0.094614 +vt 0.289655 0.046875 +vt 0.262069 0.046875 +vt 0.358621 0.046875 +vt 0.344828 0.046875 +vt 0.317241 0.046875 +vt 0.296552 0.062500 +vt 0.282759 0.062500 +vt 0.275862 0.062500 +vt 0.262069 0.062500 +vt 0.358621 0.062500 +vt 0.337931 0.062500 +vt 0.324138 0.062500 +vt 0.310345 0.062500 +vt 0.227586 0.781250 +vt 0.441379 0.609375 +vt 0.903448 0.249458 +vt 0.864604 0.213006 +vt 0.864604 0.036995 +vt 0.942292 0.036994 +vt 0.942292 0.213005 +vt 0.351724 0.765625 +vt 0.275862 0.718750 +vt 0.255172 0.906250 +vt 0.331034 0.953125 +vt 0.942292 0.463005 +vt 0.903448 0.499458 +vt 0.864604 0.463005 +vt 0.864604 0.286994 +vt 0.942292 0.286994 +vt 0.737931 -0.000000 +vt 0.296552 0.093750 +vt 0.268966 0.187500 +vt 0.262069 0.140625 +vt 0.296552 0.093750 +vt 0.303448 0.171875 +vt 0.268966 0.187500 +vt 0.358621 0.171875 +vt 0.324138 0.093750 +vt 0.696552 0.437500 +vt 0.731034 0.437500 +vt 0.420690 0.859375 +vt 0.479310 0.953125 +vt 0.468966 -0.000000 +vt 0.351724 0.313754 +vt 0.363190 0.358748 +vt 0.340258 0.358748 +vt 0.255172 0.250000 +vt 0.340258 0.266252 +vt 0.351724 0.251254 +vt 0.363190 0.266252 +vt 0.848276 0.625000 +vt 0.944828 0.500000 +vt 0.958621 0.000000 +vt 0.978890 0.244165 +vt 0.965937 0.244165 +vt 0.959461 0.218750 +vt 0.724138 0.140625 +vt 0.724138 0.046875 +vt 0.675862 0.187500 +vt 0.655172 0.171875 +vt 0.655172 0.078125 +vt 0.641379 0.187500 +vt 0.634483 0.078125 +vt 0.634483 0.046875 +vt 0.634483 0.109375 +vt 0.634483 0.015625 +vt 0.630883 0.028561 +vt 0.624290 0.028561 +vt 0.620993 0.015625 +vt 0.413793 0.812500 +vt 0.489655 0.000000 +vt 0.468966 0.156250 +vt 0.531034 0.046875 +vt 0.468966 0.312500 +vt 0.455172 0.859375 +vt 0.434483 0.718750 +vt 0.524138 0.828125 +vt 0.979310 0.609375 +vt 0.979310 0.515625 +vt 0.972414 0.562500 +vt 0.606897 0.734375 +vt 0.006897 0.875000 +vt 0.551724 0.640625 +vt 0.158621 0.156250 +vt 0.117241 0.875000 +vt 0.213793 0.781250 +vt 0.213793 0.750000 +vt 0.089655 0.281250 +vt 0.551724 0.203125 +vt 0.213793 0.906250 +vt 0.551724 0.515625 +vt 0.524138 0.296875 +vt 0.551724 0.296875 +vt 0.524138 0.203125 +vt 0.227586 0.109375 +vt 0.958621 0.484375 +vt 0.187370 0.273751 +vt 0.193103 0.266252 +vt 0.198836 0.273751 +vt 0.206897 0.266252 +vt 0.212630 0.288749 +vt 0.206897 0.296248 +vt 0.958621 0.453125 +vt 0.958621 0.343750 +vt 0.958621 0.250000 +vt 0.958621 0.296875 +vt 0.551568 0.515616 +vt 0.544680 0.515623 +vt 0.489655 0.046875 +vt 0.200000 0.046875 +vt 0.172208 0.125000 +vt 0.165517 0.140158 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.200000 0.093750 +vt 0.200000 0.046875 +vt 0.172208 0.125000 +vt 0.165517 0.140158 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.200000 0.093750 +vt 0.200000 0.046875 +vt 0.172208 0.125000 +vt 0.165517 0.140158 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.200000 0.093750 +vt 0.200000 0.046875 +vt 0.172208 0.125000 +vt 0.165517 0.140158 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.200000 0.093750 +vt 0.200000 0.046875 +vt 0.172208 0.125000 +vt 0.165517 0.140158 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.200000 0.093750 +vt 0.200000 0.046875 +vt 0.172208 0.125000 +vt 0.165517 0.140158 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.200000 0.093750 +vt 0.200000 0.046875 +vt 0.172208 0.125000 +vt 0.165517 0.140158 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.200000 0.093750 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.455172 0.531250 +vt 0.510345 0.531250 +vt 0.551724 0.750000 +vt 0.620690 0.609375 +vt 0.455172 0.515625 +vt 0.510345 0.609375 +vt 0.510345 0.593750 +vt 0.455172 0.593750 +vt 0.551724 0.625000 +vt 0.551724 0.500000 +vt 0.551724 0.390625 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.551583 0.609269 +vt 0.544695 0.640480 +vt 0.517133 0.702938 +vt 0.517104 0.422013 +vt 0.106793 0.119651 +vt 0.097935 0.106242 +vt 0.092016 0.086173 +vt 0.089938 0.062500 +vt 0.092016 0.038827 +vt 0.097935 0.018758 +vt 0.106793 0.005349 +vt 0.127690 0.005349 +vt 0.136548 0.018758 +vt 0.142467 0.038827 +vt 0.142467 0.086173 +vt 0.136548 0.106242 +vt 0.127690 0.119651 +vt 0.124138 0.390625 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.359375 +vt 0.124138 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.312500 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.375000 +vt 0.144828 0.343750 +vt 0.124138 0.281250 +vt 0.144828 0.296875 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.359375 +vt 0.158621 0.390625 +vt 0.144828 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.343750 +vt 0.158621 0.375000 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.359375 +vt 0.158621 0.281250 +vt 0.172414 0.343750 +vt 0.172414 0.375000 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.312500 +vt 0.186207 0.328125 +vt 0.172414 0.281250 +vt 0.186207 0.296875 +vt 0.193103 -0.000000 +vt 0.186207 -0.000000 +vt 0.151724 -0.000000 +vt 0.144828 -0.000000 +vt 0.158621 -0.000000 +vt 0.179310 -0.000000 +vt 0.172414 -0.000000 +vt 0.165517 -0.000000 +vt 0.193103 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.186207 0.109375 +vt 0.165517 0.109375 +vt 0.172414 0.109375 +vt 0.310345 0.000000 +vt 0.296552 0.000000 +vt 0.282759 0.000000 +vt 0.268966 0.000000 +vt 0.365517 0.000000 +vt 0.351724 0.000000 +vt 0.337931 0.000000 +vt 0.324138 0.000000 +vt 0.255172 0.000000 +vt 0.310345 0.093750 +vt 0.317241 0.093750 +vt 0.296552 0.093750 +vt 0.303448 0.093750 +vt 0.282759 0.093750 +vt 0.289655 0.093750 +vt 0.268966 0.093750 +vt 0.275862 0.093750 +vt 0.324138 0.093750 +vt 0.331034 0.093750 +vt 0.337931 0.093750 +vt 0.344828 0.093750 +vt 0.351724 0.093750 +vt 0.358621 0.093750 +vt 0.255172 0.093750 +vt 0.262069 0.093750 +vt 0.958621 0.609375 +vt 0.965517 0.593750 +vt 0.965517 0.609375 +vt 0.958621 0.562500 +vt 0.965517 0.546875 +vt 0.965517 0.562500 +vt 0.986207 0.578125 +vt 0.965517 0.625000 +vt 0.958621 0.625000 +vt 0.958621 0.578125 +vt 0.965517 0.578125 +vt 0.986207 0.562500 +vt 0.958621 0.531250 +vt 0.965517 0.515625 +vt 0.965517 0.531250 +vt 0.958621 0.640625 +vt 0.965517 0.640625 +vt 0.958621 0.593750 +vt 0.979310 0.562500 +vt 0.986207 0.546875 +vt 0.958621 0.546875 +vt 0.979310 0.546875 +vt 0.965517 0.593750 +vt 0.972414 0.609375 +vt 0.965517 0.609375 +vt 0.965517 0.656250 +vt 0.972414 0.640625 +vt 0.972414 0.656250 +vt 0.965517 0.546875 +vt 0.972414 0.531250 +vt 0.972414 0.546875 +vt 0.965517 0.703125 +vt 0.972414 0.687500 +vt 0.972414 0.703125 +vt 0.972414 0.578125 +vt 0.972414 0.593750 +vt 0.965517 0.625000 +vt 0.965517 0.640625 +vt 0.965517 0.515625 +vt 0.965517 0.531250 +vt 0.965517 0.671875 +vt 0.965517 0.687500 +vt 0.965517 0.562500 +vt 0.965517 0.578125 +vt 0.972414 0.625000 +vt 0.972414 0.671875 +vt 0.972414 0.562500 +vt 0.296552 0.218750 +vt 0.310345 0.234375 +vt 0.296552 0.234375 +vt 0.296552 0.187500 +vt 0.310345 0.203125 +vt 0.296552 0.203125 +vt 0.310345 0.234375 +vt 0.296552 0.250000 +vt 0.296552 0.234375 +vt 0.310345 0.203125 +vt 0.296552 0.218750 +vt 0.296552 0.203125 +vt 0.296552 0.187500 +vt 0.310345 0.218750 +vt 0.324138 0.234375 +vt 0.310345 0.187500 +vt 0.324138 0.203125 +vt 0.324138 0.250000 +vt 0.310345 0.250000 +vt 0.310345 0.234375 +vt 0.296552 0.250000 +vt 0.296552 0.234375 +vt 0.310345 0.203125 +vt 0.296552 0.218750 +vt 0.296552 0.203125 +vt 0.310345 0.187500 +vt 0.296552 0.187500 +vt 0.310345 0.218750 +vt 0.324138 0.234375 +vt 0.324138 0.203125 +vt 0.310345 0.250000 +vt 0.310345 0.234375 +vt 0.296552 0.250000 +vt 0.296552 0.234375 +vt 0.310345 0.203125 +vt 0.296552 0.218750 +vt 0.296552 0.203125 +vt 0.310345 0.187500 +vt 0.296552 0.187500 +vt 0.310345 0.218750 +vt 0.324138 0.234375 +vt 0.324138 0.187500 +vt 0.324138 0.250000 +vt 0.310345 0.250000 +vt 0.324138 0.203125 +vt 0.255172 0.234375 +vt 0.255172 0.234375 +vt 0.255172 0.218750 +vt 0.255172 0.203125 +vt 0.255172 0.234375 +vt 0.255172 0.218750 +vt 0.255172 0.187500 +vt 0.255172 0.203125 +vt 0.255172 0.218750 +vt 0.255172 0.203125 +vt 0.255172 0.187500 +vt 0.255172 0.187500 +vt 0.310345 0.218750 +vt 0.296552 0.250000 +vt 0.310345 0.250000 +vt 0.324138 0.203125 +vt 0.324138 0.218750 +vt 0.324138 0.234375 +vt 0.324138 0.250000 +vt 0.324138 0.187500 +vt 0.296552 0.187500 +vt 0.310345 0.203125 +vt 0.296552 0.203125 +vt 0.296552 0.218750 +vt 0.310345 0.234375 +vt 0.296552 0.234375 +vt 0.310345 0.218750 +vt 0.310345 0.250000 +vt 0.296552 0.250000 +vt 0.324138 0.203125 +vt 0.324138 0.218750 +vt 0.324138 0.234375 +vt 0.324138 0.250000 +vt 0.310345 0.187500 +vt 0.296552 0.187500 +vt 0.310345 0.203125 +vt 0.296552 0.203125 +vt 0.296552 0.218750 +vt 0.310345 0.234375 +vt 0.296552 0.234375 +vt 0.310345 0.218750 +vt 0.310345 0.250000 +vt 0.296552 0.250000 +vt 0.324138 0.203125 +vt 0.324138 0.218750 +vt 0.324138 0.250000 +vt 0.324138 0.187500 +vt 0.324138 0.234375 +vt 0.255172 0.203125 +vt 0.255172 0.203125 +vt 0.255172 0.218750 +vt 0.255172 0.234375 +vt 0.255172 0.203125 +vt 0.255172 0.218750 +vt 0.255172 0.250000 +vt 0.255172 0.234375 +vt 0.255172 0.218750 +vt 0.255172 0.234375 +vt 0.255172 0.250000 +vt 0.255172 0.250000 +vt 0.124138 0.390625 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.359375 +vt 0.124138 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.312500 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.375000 +vt 0.144828 0.343750 +vt 0.124138 0.281250 +vt 0.144828 0.296875 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.359375 +vt 0.158621 0.390625 +vt 0.144828 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.343750 +vt 0.158621 0.375000 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.359375 +vt 0.158621 0.281250 +vt 0.172414 0.343750 +vt 0.172414 0.375000 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.312500 +vt 0.186207 0.328125 +vt 0.172414 0.281250 +vt 0.186207 0.296875 +vt 0.193103 -0.000000 +vt 0.186207 -0.000000 +vt 0.151724 -0.000000 +vt 0.144828 -0.000000 +vt 0.158621 -0.000000 +vt 0.179310 -0.000000 +vt 0.172414 -0.000000 +vt 0.165517 -0.000000 +vt 0.193103 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.186207 0.109375 +vt 0.165517 0.109375 +vt 0.172414 0.109375 +vt 0.124138 0.390625 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.359375 +vt 0.124138 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.312500 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.375000 +vt 0.144828 0.343750 +vt 0.124138 0.281250 +vt 0.144828 0.296875 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.359375 +vt 0.158621 0.390625 +vt 0.144828 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.343750 +vt 0.158621 0.375000 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.359375 +vt 0.158621 0.281250 +vt 0.172414 0.343750 +vt 0.172414 0.375000 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.312500 +vt 0.186207 0.328125 +vt 0.172414 0.281250 +vt 0.186207 0.296875 +vt 0.193103 -0.000000 +vt 0.186207 -0.000000 +vt 0.151724 -0.000000 +vt 0.144828 -0.000000 +vt 0.158621 -0.000000 +vt 0.179310 -0.000000 +vt 0.172414 -0.000000 +vt 0.165517 -0.000000 +vt 0.193103 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.186207 0.109375 +vt 0.165517 0.109375 +vt 0.172414 0.109375 +vt 0.124138 0.390625 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.359375 +vt 0.124138 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.312500 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.375000 +vt 0.144828 0.343750 +vt 0.124138 0.281250 +vt 0.144828 0.296875 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.359375 +vt 0.158621 0.390625 +vt 0.144828 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.343750 +vt 0.158621 0.375000 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.359375 +vt 0.158621 0.281250 +vt 0.172414 0.343750 +vt 0.172414 0.375000 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.312500 +vt 0.186207 0.328125 +vt 0.172414 0.281250 +vt 0.186207 0.296875 +vt 0.193103 -0.000000 +vt 0.186207 -0.000000 +vt 0.151724 -0.000000 +vt 0.144828 -0.000000 +vt 0.158621 -0.000000 +vt 0.172414 -0.000000 +vt 0.165517 -0.000000 +vt 0.179310 -0.000000 +vt 0.193103 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.186207 0.109375 +vt 0.165517 0.109375 +vt 0.172414 0.109375 +vt 0.124138 0.390625 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.359375 +vt 0.124138 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.312500 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.375000 +vt 0.144828 0.343750 +vt 0.124138 0.281250 +vt 0.144828 0.296875 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.359375 +vt 0.158621 0.390625 +vt 0.144828 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.343750 +vt 0.158621 0.375000 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.359375 +vt 0.158621 0.281250 +vt 0.172414 0.343750 +vt 0.172414 0.375000 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.312500 +vt 0.186207 0.328125 +vt 0.172414 0.281250 +vt 0.186207 0.296875 +vt 0.193103 -0.000000 +vt 0.186207 -0.000000 +vt 0.151724 -0.000000 +vt 0.144828 -0.000000 +vt 0.158621 -0.000000 +vt 0.179310 -0.000000 +vt 0.172414 -0.000000 +vt 0.165517 -0.000000 +vt 0.193103 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.186207 0.109375 +vt 0.165517 0.109375 +vt 0.172414 0.109375 +vt 0.124138 0.390625 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.359375 +vt 0.124138 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.312500 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.375000 +vt 0.144828 0.343750 +vt 0.124138 0.281250 +vt 0.144828 0.296875 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.359375 +vt 0.158621 0.390625 +vt 0.144828 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.343750 +vt 0.158621 0.375000 +vt 0.158621 0.406250 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.359375 +vt 0.172414 0.390625 +vt 0.158621 0.281250 +vt 0.172414 0.343750 +vt 0.172414 0.375000 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.312500 +vt 0.186207 0.328125 +vt 0.172414 0.281250 +vt 0.186207 0.296875 +vt 0.193103 -0.000000 +vt 0.186207 -0.000000 +vt 0.151724 -0.000000 +vt 0.144828 -0.000000 +vt 0.158621 -0.000000 +vt 0.179310 -0.000000 +vt 0.172414 -0.000000 +vt 0.165517 -0.000000 +vt 0.193103 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.186207 0.109375 +vt 0.165517 0.109375 +vt 0.172414 0.109375 +vt 0.124138 0.390625 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.359375 +vt 0.124138 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.312500 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.375000 +vt 0.144828 0.343750 +vt 0.124138 0.281250 +vt 0.144828 0.296875 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.359375 +vt 0.158621 0.390625 +vt 0.144828 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.343750 +vt 0.158621 0.375000 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.359375 +vt 0.158621 0.281250 +vt 0.172414 0.343750 +vt 0.172414 0.375000 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.312500 +vt 0.186207 0.328125 +vt 0.172414 0.281250 +vt 0.186207 0.296875 +vt 0.193103 -0.000000 +vt 0.186207 -0.000000 +vt 0.151724 -0.000000 +vt 0.144828 -0.000000 +vt 0.158621 -0.000000 +vt 0.179310 -0.000000 +vt 0.172414 -0.000000 +vt 0.165517 -0.000000 +vt 0.193103 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.186207 0.109375 +vt 0.165517 0.109375 +vt 0.172414 0.109375 +vt 0.124138 0.390625 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.359375 +vt 0.124138 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.312500 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.375000 +vt 0.144828 0.343750 +vt 0.124138 0.281250 +vt 0.144828 0.296875 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.359375 +vt 0.158621 0.390625 +vt 0.144828 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.343750 +vt 0.158621 0.375000 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.359375 +vt 0.158621 0.281250 +vt 0.172414 0.343750 +vt 0.172414 0.375000 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.312500 +vt 0.186207 0.328125 +vt 0.172414 0.281250 +vt 0.186207 0.296875 +vt 0.193103 -0.000000 +vt 0.186207 -0.000000 +vt 0.151724 -0.000000 +vt 0.144828 -0.000000 +vt 0.158621 -0.000000 +vt 0.172414 -0.000000 +vt 0.165517 -0.000000 +vt 0.179310 -0.000000 +vt 0.193103 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.186207 0.109375 +vt 0.165517 0.109375 +vt 0.172414 0.109375 +vt 0.255172 0.218750 +vt 0.296552 0.234375 +vt 0.255172 0.234375 +vt 0.255172 0.187500 +vt 0.296552 0.203125 +vt 0.255172 0.203125 +vt 0.296552 0.250000 +vt 0.255172 0.250000 +vt 0.296552 0.218750 +vt 0.310345 0.187500 +vt 0.310345 0.203125 +vt 0.310345 0.250000 +vt 0.310345 0.218750 +vt 0.310345 0.234375 +vt 0.324138 0.234375 +vt 0.324138 0.187500 +vt 0.324138 0.203125 +vt 0.324138 0.250000 +vt 0.324138 0.218750 +vt 0.255172 0.218750 +vt 0.296552 0.234375 +vt 0.255172 0.234375 +vt 0.255172 0.187500 +vt 0.296552 0.203125 +vt 0.255172 0.203125 +vt 0.296552 0.250000 +vt 0.255172 0.250000 +vt 0.296552 0.218750 +vt 0.310345 0.187500 +vt 0.310345 0.203125 +vt 0.310345 0.250000 +vt 0.310345 0.218750 +vt 0.310345 0.234375 +vt 0.324138 0.234375 +vt 0.324138 0.187500 +vt 0.324138 0.203125 +vt 0.324138 0.250000 +vt 0.324138 0.218750 +vt 0.255172 0.218750 +vt 0.296552 0.234375 +vt 0.255172 0.234375 +vt 0.255172 0.187500 +vt 0.296552 0.203125 +vt 0.255172 0.203125 +vt 0.296552 0.250000 +vt 0.255172 0.250000 +vt 0.296552 0.218750 +vt 0.310345 0.187500 +vt 0.310345 0.203125 +vt 0.310345 0.250000 +vt 0.310345 0.218750 +vt 0.310345 0.234375 +vt 0.324138 0.234375 +vt 0.324138 0.187500 +vt 0.324138 0.203125 +vt 0.324138 0.250000 +vt 0.324138 0.218750 +vt 0.089655 0.375000 +vt 0.075862 0.421875 +vt 0.075862 0.375000 +vt 0.075862 0.328125 +vt 0.089655 0.328125 +vt 0.075862 0.281250 +vt 0.089655 0.281250 +vt 0.075862 0.234375 +vt 0.089655 0.234375 +vt 0.075862 0.187500 +vt 0.089655 0.187500 +vt 0.089655 0.140625 +vt 0.075862 0.140625 +vt 0.089655 0.093750 +vt 0.075862 0.093750 +vt 0.089655 0.046875 +vt 0.075862 0.046875 +vt 0.089655 -0.000000 +vt 0.075862 0.000000 +vt 0.089655 0.750000 +vt 0.075862 0.703125 +vt 0.089655 0.703125 +vt 0.075862 0.656250 +vt 0.089655 0.656250 +vt 0.089655 0.609375 +vt 0.075862 0.609375 +vt 0.075862 0.562500 +vt 0.089655 0.562500 +vt 0.075862 0.515625 +vt 0.089655 0.515625 +vt 0.075862 0.468750 +vt 0.089655 0.468750 +vt 0.089655 0.421875 +vt 0.055172 0.375000 +vt 0.055172 0.328125 +vt 0.055172 -0.000000 +vt 0.055172 0.421875 +vt 0.055172 0.046875 +vt 0.055172 0.468750 +vt 0.055172 0.093750 +vt 0.055172 0.515625 +vt 0.055172 0.140625 +vt 0.055172 0.562500 +vt 0.055172 0.187500 +vt 0.055172 0.609375 +vt 0.055172 0.234375 +vt 0.055172 0.656250 +vt 0.055172 0.281250 +vt 0.075862 0.750000 +vt 0.055172 0.703125 +vt 0.000000 0.125000 +vt 0.000000 0.093750 +vt -0.000000 0.546875 +vt 0.000000 0.515625 +vt -0.000000 0.140625 +vt -0.000000 0.593750 +vt -0.000000 0.562500 +vt 0.000000 0.218750 +vt 0.000000 0.187500 +vt 0.000000 0.609375 +vt -0.000000 0.234375 +vt 0.000000 0.687500 +vt 0.000000 0.656250 +vt -0.000000 0.281250 +vt 0.055172 0.750000 +vt 0.000000 0.703125 +vt -0.000000 0.406250 +vt -0.000000 0.375000 +vt 0.000000 0.328125 +vt 0.000000 0.031250 +vt -0.000000 0.000000 +vt 0.000000 0.421875 +vt -0.000000 0.046875 +vt -0.000000 0.500000 +vt 0.000000 0.468750 +vt 0.393103 0.937500 +vt 0.413793 1.000000 +vt 0.393103 1.000000 +vt 0.393103 0.500000 +vt 0.413793 0.562500 +vt 0.393103 0.562500 +vt 0.393103 0.437500 +vt 0.413793 0.500000 +vt 0.393103 -0.000000 +vt 0.413793 0.062500 +vt 0.393103 0.062500 +vt 0.413793 0.625000 +vt 0.393103 0.625000 +vt 0.413793 0.125000 +vt 0.393103 0.125000 +vt 0.413793 0.687500 +vt 0.393103 0.687500 +vt 0.413793 0.187500 +vt 0.393103 0.187500 +vt 0.413793 0.750000 +vt 0.393103 0.750000 +vt 0.413793 0.250000 +vt 0.393103 0.250000 +vt 0.413793 0.812500 +vt 0.393103 0.812500 +vt 0.413793 0.312500 +vt 0.393103 0.312500 +vt 0.413793 0.875000 +vt 0.393103 0.875000 +vt 0.413793 0.375000 +vt 0.393103 0.375000 +vt 0.413793 0.937500 +vt 0.413793 0.437500 +vt 0.186207 0.281250 +vt 0.200000 -0.000000 +vt 0.144828 0.109375 +vt 0.958621 0.515625 +vt 0.972414 0.515625 +vt 0.310345 0.187500 +vt 0.324138 0.218750 +vt 0.324138 0.187500 +vt 0.324138 0.218750 +vt 0.324138 0.187500 +vt 0.324138 0.250000 +vt 0.324138 0.218750 +vt 0.255172 0.250000 +vt 0.255172 0.250000 +vt 0.255172 0.250000 +vt 0.324138 0.187500 +vt 0.310345 0.187500 +vt 0.255172 0.187500 +vt 0.255172 0.187500 +vt 0.255172 0.187500 +vt 0.186207 0.281250 +vt 0.200000 -0.000000 +vt 0.144828 0.109375 +vt 0.186207 0.281250 +vt 0.200000 -0.000000 +vt 0.144828 0.109375 +vt 0.186207 0.281250 +vt 0.200000 -0.000000 +vt 0.144828 0.109375 +vt 0.186207 0.281250 +vt 0.200000 -0.000000 +vt 0.144828 0.109375 +vt 0.186207 0.281250 +vt 0.200000 -0.000000 +vt 0.144828 0.109375 +vt 0.186207 0.281250 +vt 0.200000 -0.000000 +vt 0.144828 0.109375 +vt 0.186207 0.281250 +vt 0.200000 -0.000000 +vt 0.144828 0.109375 +vt 0.296552 0.187500 +vt 0.296552 0.187500 +vt 0.296552 0.187500 +vt -0.000000 0.171875 +vt 0.000000 0.640625 +vt -0.000000 0.265625 +vt -0.000000 0.312500 +vt -0.000000 0.734375 +vt 0.000000 0.359375 +vt -0.000000 0.453125 +vt -0.000000 0.078125 +vt 0.413793 -0.000000 +vn -1.0000 0.0000 0.0000 +vn 0.7071 -0.7071 -0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 -0.0000 +vn -0.7071 -0.7071 -0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 1.0000 0.0000 +vn -0.7071 -0.7071 0.0057 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.9487 -0.3162 +vn 0.0000 0.4472 -0.8944 +vn 0.1617 0.3904 0.9063 +vn 0.1617 0.3905 0.9063 +vn 0.1752 0.8806 0.4403 +vn 0.0859 0.4318 -0.8979 +vn 0.9845 -0.1567 -0.0783 +vn -0.0859 -0.4318 0.8978 +vn -0.9695 0.2320 -0.0783 +vn -0.7071 0.7071 0.0000 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.9239 0.3827 +vn 0.0000 0.3827 -0.9239 +vn 0.7071 0.7071 0.0000 +vn -0.3162 0.3162 -0.8944 +vn 0.0000 0.4226 -0.9063 +vn 0.0000 0.9063 0.4226 +vn -0.7071 0.6409 0.2988 +vn 0.7071 0.6409 0.2988 +vn 0.0000 0.7934 0.6088 +vn 0.0000 0.1305 -0.9914 +vn 0.0000 0.5000 0.8660 +vn 0.0000 0.5000 -0.8660 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 -0.5000 0.8660 +vn 0.6547 0.3780 -0.6547 +vn 0.6547 -0.3780 -0.6547 +vn 0.6547 -0.3780 0.6547 +vn 0.6547 0.7559 0.0000 +vn 0.6547 -0.7559 0.0000 +vn 0.6547 0.3780 0.6547 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn -0.5000 -0.7849 -0.3660 +vn -0.0000 -0.4226 0.9063 +vn -0.2357 0.2357 0.9428 +vn 0.2357 0.2357 0.9428 +vn -0.2357 -0.2357 -0.9428 +vn -0.2357 -0.2357 0.9428 +vn 0.0000 -0.9285 0.3714 +vn 0.0000 0.9285 -0.3714 +vn 0.0000 -0.9900 -0.1407 +vn 0.0000 0.9900 0.1407 +vn -0.1617 -0.3904 0.9063 +vn -0.1617 -0.3905 0.9063 +vn 0.3904 -0.1617 0.9063 +vn 0.3905 -0.1617 0.9063 +vn -0.3904 0.1617 0.9063 +vn -0.3905 0.1617 0.9063 +vn 0.3905 0.1617 0.9063 +vn 0.3904 0.1617 0.9063 +vn -0.3905 -0.1617 0.9063 +vn -0.3904 -0.1617 0.9063 +vn 0.1617 -0.3905 0.9063 +vn 0.1617 -0.3904 0.9063 +vn -0.1617 0.3905 0.9063 +vn -0.1617 0.3904 0.9063 +vn -0.1752 -0.8806 0.4403 +vn -0.0859 -0.4318 -0.8979 +vn -0.9845 0.1567 -0.0783 +vn 0.0859 0.4318 0.8978 +vn 0.9695 -0.2320 -0.0783 +vn 0.8806 -0.1752 0.4403 +vn 0.4318 -0.0859 -0.8979 +vn -0.1567 -0.9845 -0.0783 +vn -0.4318 0.0859 0.8978 +vn 0.2320 0.9695 -0.0783 +vn -0.8806 0.1752 0.4403 +vn -0.4318 0.0859 -0.8979 +vn 0.1567 0.9845 -0.0783 +vn 0.4318 -0.0859 0.8978 +vn -0.2320 -0.9695 -0.0783 +vn 0.7465 0.4988 0.4403 +vn 0.3661 0.2446 -0.8979 +vn 0.5854 -0.8070 -0.0783 +vn -0.3661 -0.2446 0.8978 +vn -0.5215 0.8496 -0.0783 +vn -0.7465 -0.4988 0.4403 +vn -0.3661 -0.2446 -0.8979 +vn -0.5854 0.8070 -0.0783 +vn 0.3661 0.2446 0.8978 +vn 0.5215 -0.8496 -0.0783 +vn 0.4988 -0.7465 0.4403 +vn 0.2446 -0.3661 -0.8979 +vn -0.8070 -0.5854 -0.0783 +vn -0.2446 0.3661 0.8978 +vn 0.8496 0.5215 -0.0783 +vn -0.4988 0.7465 0.4403 +vn -0.2446 0.3661 -0.8979 +vn 0.8070 0.5854 -0.0783 +vn 0.2446 -0.3661 0.8978 +vn -0.8496 -0.5215 -0.0783 +vn 0.4988 0.7465 0.4403 +vn 0.2446 0.3661 -0.8979 +vn 0.8496 -0.5215 -0.0783 +vn -0.2446 -0.3661 0.8978 +vn -0.8070 0.5854 -0.0783 +vn -0.4988 -0.7465 0.4403 +vn -0.2446 -0.3661 -0.8979 +vn -0.8496 0.5215 -0.0783 +vn 0.2446 0.3661 0.8978 +vn 0.8070 -0.5854 -0.0783 +vn 0.7465 -0.4988 0.4403 +vn 0.3661 -0.2446 -0.8979 +vn -0.5215 -0.8496 -0.0783 +vn -0.3661 0.2446 0.8978 +vn 0.5854 0.8070 -0.0783 +vn -0.7465 0.4988 0.4403 +vn -0.3661 0.2446 -0.8979 +vn 0.5215 0.8496 -0.0783 +vn 0.3661 -0.2446 0.8978 +vn -0.5854 -0.8070 -0.0783 +vn 0.8806 0.1752 0.4403 +vn 0.4318 0.0859 -0.8979 +vn 0.2320 -0.9696 -0.0783 +vn -0.4318 -0.0859 0.8978 +vn -0.1567 0.9845 -0.0783 +vn -0.8806 -0.1752 0.4403 +vn -0.4318 -0.0859 -0.8979 +vn -0.2320 0.9696 -0.0783 +vn 0.4318 0.0859 0.8978 +vn 0.1567 -0.9845 -0.0783 +vn 0.1752 -0.8806 0.4403 +vn 0.0859 -0.4318 -0.8979 +vn -0.9696 -0.2320 -0.0783 +vn -0.0859 0.4318 0.8978 +vn 0.9845 0.1567 -0.0783 +vn -0.1752 0.8806 0.4403 +vn -0.0859 0.4318 -0.8979 +vn 0.9696 0.2320 -0.0783 +vn 0.0859 -0.4318 0.8978 +vn -0.9845 -0.1567 -0.0783 +vn -0.7082 -0.7060 -0.0004 +vn -0.7085 -0.7057 0.0000 +vn 0.0859 0.4318 -0.8978 +vn -0.0859 -0.4318 -0.8978 +vn 0.4318 -0.0859 -0.8978 +vn -0.4318 0.0859 -0.8978 +vn 0.3661 0.2446 -0.8978 +vn -0.3661 -0.2446 -0.8978 +vn 0.2446 -0.3661 -0.8978 +vn -0.2446 0.3661 -0.8978 +vn 0.2446 0.3661 -0.8978 +vn -0.2446 -0.3661 -0.8978 +vn 0.3661 -0.2446 -0.8978 +vn -0.3661 0.2446 -0.8978 +vn 0.4318 0.0859 -0.8978 +vn -0.4318 -0.0859 -0.8978 +vn 0.0859 -0.4318 -0.8978 +vn -0.0859 0.4318 -0.8978 +vn 0.7311 -0.6303 -0.2611 +vn 0.9973 0.0609 0.0399 +vn 0.7430 -0.5190 -0.4226 +vn 0.6721 0.5735 0.4683 +vn 0.6333 0.7150 0.2962 +vn -0.9947 0.0948 0.0393 +vn -0.6721 0.5735 0.4683 +vn -0.6333 0.7150 0.2962 +vn -0.7311 -0.6303 -0.2611 +vn -0.9973 0.0609 0.0399 +vn 0.0000 -0.7779 -0.6284 +vn 0.9947 0.0948 0.0393 +vn 0.0000 0.7690 0.6392 +vn -0.7430 -0.5190 -0.4226 +vn -0.9989 0.0183 0.0441 +vn -0.6840 0.2791 0.6739 +vn 0.6840 0.2791 0.6739 +vn 0.7317 -0.2608 -0.6297 +vn -0.7317 -0.2608 -0.6297 +vn 0.0000 0.3827 0.9239 +vn 0.9989 0.0183 0.0441 +vn 0.7317 0.0000 -0.6816 +vn -0.7317 0.0000 -0.6816 +vn -0.9989 0.0000 0.0477 +vn -0.6841 -0.0000 0.7294 +vn 0.6840 -0.0000 0.7294 +vn 0.9989 0.0000 0.0477 +vn 0.0000 -0.1951 0.9808 +vn 0.6770 -0.1436 0.7219 +vn 0.9988 -0.0095 0.0477 +vn 0.7251 0.1344 -0.6754 +vn 0.0000 0.1951 -0.9808 +vn -0.9988 -0.0095 0.0477 +vn -0.6770 -0.1436 0.7219 +vn -0.7251 0.1344 -0.6754 +vn 0.8985 0.3215 -0.2988 +vn 0.9239 -0.3827 -0.0000 +vn -0.4080 0.8627 -0.2988 +vn 0.3468 0.8373 -0.4226 +vn -0.9239 0.3827 0.0000 +vn -0.8985 -0.3215 0.2988 +vn 0.4080 -0.8627 0.2988 +vn -0.3468 -0.8373 0.4226 +vn -0.4080 0.8627 -0.2989 +vn 0.3827 0.9239 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.3827 -0.9239 0.0000 +vn -0.3827 -0.9239 0.0000 +vn -0.9239 -0.3827 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.0000 -0.9063 -0.4226 +vn -0.8660 0.4532 0.2113 +vn 0.2588 0.8754 0.4082 +vn 0.5000 0.7849 0.3660 +vn 0.5000 -0.7849 -0.3660 +vn -0.8660 -0.4532 -0.2113 +vn 0.8660 0.4532 0.2113 +vn -0.5000 0.7849 0.3660 +vn -0.2588 0.8754 0.4082 +vn 0.7071 -0.6409 -0.2988 +vn 0.9659 -0.2346 -0.1094 +vn 0.8660 -0.4532 -0.2113 +vn 0.6947 0.6947 0.1866 +vn 0.8431 -0.0945 0.5293 +vn 0.9891 0.0283 0.1448 +vn -0.3812 0.9204 0.0866 +vn -0.0945 0.8431 0.5294 +vn 0.0283 0.9891 0.1448 +vn 0.0945 0.8431 0.5294 +vn 0.3812 0.9204 0.0866 +vn -0.0283 0.9891 0.1448 +vn -0.8431 -0.0945 0.5293 +vn -0.6947 0.6947 0.1866 +vn -0.9891 0.0283 0.1448 +vn -0.9204 -0.3812 0.0866 +vn -0.5000 0.5000 0.7071 +vn 0.2384 0.6572 0.7150 +vn -0.8446 -0.4619 0.2706 +vn -0.6572 -0.2384 0.7150 +vn 0.5345 0.7559 0.3780 +vn 0.4619 0.8446 0.2706 +vn -0.8431 -0.0945 0.5294 +vn -0.7559 -0.5345 0.3780 +vn 0.5000 0.5000 0.7071 +vn 0.9204 -0.3812 0.0866 +vn 0.8446 -0.4619 0.2706 +vn -0.2384 0.6572 0.7150 +vn 0.2706 0.2706 0.9239 +vn 0.6572 -0.2384 0.7150 +vn 0.7559 -0.5345 0.3780 +vn -0.5345 0.7559 0.3780 +vn -0.4619 0.8446 0.2706 +vn 0.8431 -0.0945 0.5294 +vn -0.7311 0.6303 -0.2611 +vn -0.9973 -0.0609 0.0399 +vn -0.7430 0.5190 -0.4226 +vn -0.6721 -0.5735 0.4683 +vn -0.6333 -0.7150 0.2962 +vn 0.9947 -0.0948 0.0393 +vn 0.6721 -0.5735 0.4683 +vn 0.6333 -0.7150 0.2962 +vn 0.7311 0.6303 -0.2611 +vn 0.9973 -0.0609 0.0399 +vn -0.0000 0.7779 -0.6284 +vn -0.9947 -0.0948 0.0393 +vn -0.0000 -0.7690 0.6392 +vn 0.7430 0.5190 -0.4226 +vn 0.9989 -0.0183 0.0441 +vn 0.6841 -0.2791 0.6739 +vn -0.6840 -0.2791 0.6739 +vn -0.7317 0.2608 -0.6297 +vn 0.7317 0.2608 -0.6297 +vn -0.9989 -0.0183 0.0441 +vn 0.6841 -0.0000 0.7294 +vn -0.6840 0.0000 0.7294 +vn -0.0000 0.1951 0.9808 +vn -0.6770 0.1436 0.7219 +vn -0.9988 0.0095 0.0477 +vn -0.7251 -0.1344 -0.6754 +vn -0.0000 -0.1951 -0.9808 +vn 0.9988 0.0095 0.0477 +vn 0.6770 0.1436 0.7219 +vn 0.7251 -0.1344 -0.6754 +vn -0.8985 -0.3215 -0.2988 +vn 0.4080 -0.8627 -0.2988 +vn -0.3468 -0.8373 -0.4226 +vn 0.8985 0.3215 0.2988 +vn -0.4080 0.8627 0.2988 +vn 0.3468 0.8373 0.4226 +vn 0.4080 -0.8627 -0.2989 +vn -0.6303 -0.7311 -0.2611 +vn 0.0609 -0.9973 0.0399 +vn -0.5190 -0.7430 -0.4226 +vn 0.9239 -0.0000 0.3827 +vn 0.5735 -0.6721 0.4683 +vn 0.7150 -0.6333 0.2962 +vn 0.0948 0.9947 0.0393 +vn 0.5735 0.6721 0.4683 +vn 0.7150 0.6333 0.2962 +vn -0.6303 0.7311 -0.2611 +vn 0.0609 0.9973 0.0399 +vn -0.9239 -0.0000 -0.3827 +vn -0.7779 -0.0000 -0.6284 +vn 0.0948 -0.9947 0.0393 +vn 0.7690 -0.0000 0.6392 +vn -0.5190 0.7430 -0.4226 +vn 0.0183 0.9989 0.0441 +vn 0.2791 0.6841 0.6739 +vn 0.2791 -0.6840 0.6739 +vn -0.2608 -0.7317 -0.6297 +vn -0.2608 0.7317 -0.6297 +vn 0.3827 -0.0000 0.9239 +vn 0.0183 -0.9989 0.0441 +vn -0.3827 -0.0000 -0.9239 +vn 0.0000 -0.7317 -0.6816 +vn 0.0000 0.7317 -0.6816 +vn 0.0000 0.9989 0.0477 +vn 0.0000 0.6841 0.7294 +vn -0.0000 -0.6840 0.7294 +vn 0.0000 -0.9989 0.0477 +vn -0.1951 -0.0000 0.9808 +vn -0.1436 -0.6770 0.7219 +vn -0.0095 -0.9988 0.0477 +vn 0.1344 -0.7251 -0.6754 +vn 0.1951 -0.0000 -0.9808 +vn -0.0095 0.9988 0.0477 +vn -0.1436 0.6770 0.7219 +vn 0.1344 0.7251 -0.6754 +vn 0.3215 -0.8985 -0.2988 +vn 0.8627 0.4080 -0.2988 +vn 0.8373 -0.3468 -0.4226 +vn -0.3215 0.8985 0.2988 +vn -0.8627 -0.4080 0.2988 +vn -0.8373 0.3468 0.4226 +vn 0.8627 0.4080 -0.2989 +vn 0.6303 0.7311 -0.2611 +vn -0.0609 0.9973 0.0399 +vn 0.5190 0.7430 -0.4226 +vn -0.9239 0.0000 0.3827 +vn -0.5735 0.6721 0.4683 +vn -0.7150 0.6333 0.2962 +vn -0.0948 -0.9947 0.0393 +vn -0.5735 -0.6721 0.4683 +vn -0.7150 -0.6333 0.2962 +vn 0.6303 -0.7311 -0.2611 +vn -0.0609 -0.9973 0.0399 +vn 0.9239 0.0000 -0.3827 +vn 0.7779 0.0000 -0.6284 +vn -0.0948 0.9947 0.0393 +vn -0.7690 0.0000 0.6392 +vn 0.5190 -0.7430 -0.4226 +vn -0.0183 -0.9989 0.0441 +vn -0.2791 -0.6840 0.6739 +vn -0.2791 0.6840 0.6739 +vn 0.2608 0.7317 -0.6297 +vn 0.2608 -0.7317 -0.6297 +vn -0.3827 0.0000 0.9239 +vn -0.0183 0.9989 0.0441 +vn 0.3827 0.0000 -0.9239 +vn -0.0000 -0.6841 0.7294 +vn 0.0000 0.6840 0.7294 +vn 0.1951 0.0000 0.9808 +vn 0.1436 0.6770 0.7219 +vn 0.0095 0.9988 0.0477 +vn -0.1344 0.7251 -0.6754 +vn -0.1951 0.0000 -0.9808 +vn 0.0095 -0.9988 0.0477 +vn 0.1436 -0.6770 0.7219 +vn -0.1344 -0.7251 -0.6754 +vn -0.3215 0.8985 -0.2988 +vn -0.8627 -0.4080 -0.2988 +vn -0.8373 0.3468 -0.4226 +vn 0.3215 -0.8985 0.2988 +vn 0.8373 -0.3468 0.4226 +vn 0.8627 0.4080 0.2988 +vn -0.8627 -0.4080 -0.2989 +vn 0.3215 -0.8985 0.2989 +vn 0.0712 -0.9627 -0.2611 +vn 0.7483 -0.6622 0.0399 +vn 0.1584 -0.8924 -0.4226 +vn 0.6533 0.6533 0.3827 +vn 0.8808 -0.0697 0.4683 +vn 0.9534 0.0578 0.2962 +vn -0.6364 0.7704 0.0393 +vn -0.0697 0.8808 0.4683 +vn 0.0578 0.9534 0.2962 +vn -0.9627 0.0712 -0.2611 +vn -0.6622 0.7483 0.0399 +vn -0.6533 -0.6533 -0.3827 +vn -0.5501 -0.5501 -0.6284 +vn 0.7704 -0.6363 0.0393 +vn 0.5438 0.5438 0.6392 +vn -0.8924 0.1584 -0.4226 +vn -0.6934 0.7192 0.0441 +vn -0.2863 0.6811 0.6739 +vn 0.6811 -0.2863 0.6739 +vn 0.3330 -0.7018 -0.6297 +vn -0.7018 0.3330 -0.6297 +vn 0.7192 -0.6934 0.0441 +vn -0.2706 -0.2706 -0.9239 +vn 0.5174 -0.5174 -0.6816 +vn -0.5174 0.5174 -0.6816 +vn -0.7063 0.7063 0.0477 +vn -0.4837 0.4837 0.7294 +vn 0.4837 -0.4837 0.7294 +vn 0.7063 -0.7063 0.0477 +vn -0.1379 -0.1379 0.9808 +vn 0.3772 -0.5802 0.7219 +vn 0.6996 -0.7130 0.0477 +vn 0.6077 -0.4177 -0.6754 +vn 0.1380 0.1379 -0.9808 +vn -0.7130 0.6996 0.0477 +vn -0.5802 0.3772 0.7219 +vn -0.4177 0.6077 -0.6754 +vn 0.8627 -0.4080 -0.2988 +vn 0.3215 0.8985 -0.2988 +vn 0.8373 0.3468 -0.4226 +vn -0.8627 0.4080 0.2988 +vn -0.3215 -0.8985 0.2988 +vn -0.8373 -0.3468 0.4226 +vn 0.3215 0.8985 -0.2989 +vn -0.0712 0.9627 -0.2611 +vn -0.7483 0.6622 0.0399 +vn -0.1584 0.8924 -0.4226 +vn -0.6533 -0.6533 0.3827 +vn -0.8808 0.0697 0.4683 +vn -0.9534 -0.0578 0.2962 +vn 0.6364 -0.7704 0.0393 +vn 0.0697 -0.8808 0.4683 +vn -0.0578 -0.9534 0.2962 +vn 0.9627 -0.0712 -0.2611 +vn 0.6622 -0.7483 0.0399 +vn 0.6533 0.6533 -0.3827 +vn 0.5501 0.5501 -0.6284 +vn -0.7704 0.6363 0.0393 +vn -0.5438 -0.5438 0.6392 +vn 0.8924 -0.1584 -0.4226 +vn 0.6934 -0.7192 0.0441 +vn 0.2863 -0.6811 0.6739 +vn -0.6811 0.2863 0.6739 +vn -0.3330 0.7018 -0.6297 +vn 0.7018 -0.3330 -0.6297 +vn -0.2706 -0.2706 0.9239 +vn -0.7192 0.6934 0.0441 +vn 0.2706 0.2706 -0.9239 +vn 0.1379 0.1379 0.9808 +vn -0.3772 0.5802 0.7219 +vn -0.6996 0.7130 0.0477 +vn -0.6077 0.4177 -0.6754 +vn -0.1380 -0.1380 -0.9808 +vn 0.7130 -0.6996 0.0477 +vn 0.5802 -0.3772 0.7219 +vn 0.4177 -0.6077 -0.6754 +vn -0.8627 0.4080 -0.2988 +vn -0.3215 -0.8985 -0.2988 +vn -0.8373 -0.3468 -0.4226 +vn 0.8627 -0.4080 0.2988 +vn 0.3215 0.8985 0.2988 +vn 0.8373 0.3468 0.4226 +vn -0.8627 0.4080 -0.2989 +vn -0.3215 -0.8985 -0.2989 +vn 0.8627 -0.4080 0.2989 +vn -0.9627 -0.0712 -0.2611 +vn -0.6622 -0.7483 0.0399 +vn -0.8924 -0.1584 -0.4226 +vn 0.6533 -0.6533 0.3827 +vn -0.0697 -0.8808 0.4683 +vn 0.0578 -0.9534 0.2962 +vn 0.7704 0.6364 0.0393 +vn 0.8808 0.0697 0.4683 +vn 0.9534 -0.0578 0.2962 +vn 0.0712 0.9627 -0.2611 +vn 0.7483 0.6622 0.0399 +vn -0.6533 0.6533 -0.3827 +vn -0.5501 0.5501 -0.6284 +vn -0.6363 -0.7704 0.0393 +vn 0.5438 -0.5438 0.6392 +vn 0.1584 0.8924 -0.4226 +vn 0.7192 0.6934 0.0441 +vn 0.6811 0.2863 0.6739 +vn -0.2863 -0.6811 0.6739 +vn -0.7018 -0.3330 -0.6297 +vn 0.3330 0.7018 -0.6297 +vn 0.2706 -0.2706 0.9239 +vn -0.6934 -0.7192 0.0441 +vn -0.2706 0.2706 -0.9239 +vn -0.5174 -0.5174 -0.6816 +vn 0.5174 0.5174 -0.6816 +vn 0.7063 0.7063 0.0477 +vn 0.4837 0.4837 0.7294 +vn -0.4837 -0.4837 0.7294 +vn -0.7063 -0.7063 0.0477 +vn -0.1379 0.1379 0.9808 +vn -0.5802 -0.3772 0.7219 +vn -0.7130 -0.6996 0.0477 +vn -0.4177 -0.6077 -0.6754 +vn 0.1379 -0.1380 -0.9808 +vn 0.6996 0.7130 0.0477 +vn 0.3772 0.5802 0.7219 +vn 0.6077 0.4177 -0.6754 +vn -0.4080 -0.8627 -0.2988 +vn 0.8985 -0.3215 -0.2988 +vn 0.3468 -0.8373 -0.4226 +vn 0.4080 0.8627 0.2988 +vn -0.8985 0.3215 0.2988 +vn -0.3468 0.8373 0.4226 +vn 0.8985 -0.3215 -0.2989 +vn 0.9627 0.0712 -0.2611 +vn 0.6622 0.7483 0.0399 +vn 0.8924 0.1584 -0.4226 +vn -0.6533 0.6533 0.3827 +vn 0.0697 0.8808 0.4683 +vn -0.0578 0.9534 0.2962 +vn -0.7704 -0.6363 0.0393 +vn -0.8808 -0.0697 0.4683 +vn -0.9534 0.0578 0.2962 +vn -0.0713 -0.9627 -0.2611 +vn -0.7483 -0.6622 0.0399 +vn 0.6533 -0.6533 -0.3827 +vn 0.5501 -0.5501 -0.6284 +vn 0.6363 0.7704 0.0393 +vn -0.5438 0.5438 0.6392 +vn -0.1584 -0.8924 -0.4226 +vn -0.7192 -0.6934 0.0441 +vn -0.6811 -0.2863 0.6739 +vn 0.2863 0.6811 0.6739 +vn 0.7018 0.3330 -0.6297 +vn -0.3330 -0.7018 -0.6297 +vn -0.2706 0.2706 0.9239 +vn 0.6934 0.7192 0.0441 +vn 0.2706 -0.2706 -0.9239 +vn 0.1379 -0.1379 0.9808 +vn 0.5802 0.3772 0.7219 +vn 0.7130 0.6996 0.0477 +vn 0.4177 0.6077 -0.6754 +vn -0.1379 0.1380 -0.9808 +vn -0.6996 -0.7130 0.0477 +vn -0.3772 -0.5802 0.7219 +vn -0.6077 -0.4177 -0.6754 +vn 0.4080 0.8627 -0.2988 +vn -0.8985 0.3215 -0.2988 +vn -0.3468 0.8373 -0.4226 +vn -0.4080 -0.8627 0.2988 +vn 0.3468 -0.8373 0.4226 +vn 0.8985 -0.3215 0.2988 +vn 0.4080 0.8627 -0.2989 +vn -0.8985 0.3215 -0.2989 +vn -0.4080 -0.8627 0.2989 +vn 0.6794 0.7194 0.1448 +vn -0.6794 0.7194 0.1448 +vn 0.9204 0.3812 0.0866 +vn -0.0000 0.9824 0.1866 +vn -0.9239 0.2706 0.2706 +vn -0.6630 0.5294 0.5294 +vn 0.9239 0.2706 0.2706 +vn 0.6630 0.5294 0.5294 +vn 0.6333 0.2962 0.7150 +vn -0.9125 0.1566 0.3780 +vn -0.6333 0.2962 0.7150 +vn 0.9125 0.1566 0.3780 +vn 0.0000 -0.8944 0.4472 +vn 0.3423 -0.8263 0.4472 +vn -0.3423 -0.8263 0.4472 +vn -0.6325 -0.6325 0.4472 +vn -0.8263 -0.3423 0.4472 +vn -0.8944 -0.0000 0.4472 +vn -0.8263 0.3423 0.4472 +vn -0.6325 0.6325 0.4472 +vn -0.3423 0.8263 0.4472 +vn 0.0000 0.8944 0.4472 +vn 0.3423 0.8263 0.4472 +vn 0.6325 0.6325 0.4472 +vn 0.8263 0.3423 0.4472 +vn 0.8944 0.0000 0.4472 +vn 0.8263 -0.3423 0.4472 +vn 0.6325 -0.6325 0.4472 +vn -0.3162 0.3162 0.8944 +vn -0.4132 0.1711 0.8944 +vn 0.4132 -0.1711 0.8944 +vn 0.4472 -0.0000 0.8944 +vn -0.4472 -0.0000 0.8944 +vn 0.4132 0.1711 0.8944 +vn -0.4132 -0.1711 0.8944 +vn 0.3162 0.3162 0.8944 +vn -0.3162 -0.3162 0.8944 +vn 0.1711 0.4132 0.8944 +vn -0.1711 -0.4132 0.8944 +vn -0.0000 0.4472 0.8944 +vn 0.0000 -0.4472 0.8944 +vn 0.1711 -0.4132 0.8944 +vn -0.1711 0.4132 0.8944 +vn 0.3162 -0.3162 0.8944 +vn -0.9204 0.3812 0.0866 +s off +f 229/323/124 230/324/124 231/325/124 +f 233/326/125 235/327/125 236/328/125 +f 235/327/126 240/329/126 241/330/126 +f 243/331/127 237/332/127 242/333/127 +f 245/334/128 243/335/128 231/325/128 +f 243/336/129 233/337/129 232/338/129 +f 247/339/130 241/330/130 246/340/130 +f 248/341/124 250/342/124 251/343/124 +f 250/342/124 229/323/124 228/344/124 +f 248/341/131 254/345/131 249/346/131 +f 256/347/124 258/348/124 255/349/124 +f 260/350/124 262/351/124 259/352/124 +f 264/353/124 266/354/124 263/355/124 +f 268/356/124 270/357/124 267/358/124 +f 272/359/124 274/360/124 271/361/124 +f 263/355/124 267/358/124 262/351/124 +f 257/362/124 256/347/124 272/359/124 +f 263/363/127 276/364/127 264/365/127 +f 262/366/132 275/367/132 263/368/132 +f 257/369/130 279/370/130 258/371/130 +f 258/372/132 280/373/132 259/374/132 +f 282/375/124 284/376/124 281/377/124 +f 285/378/124 275/367/124 277/379/124 +f 279/370/124 286/380/124 280/373/124 +f 288/381/124 290/382/124 287/383/124 +f 266/384/132 281/377/132 268/385/132 +f 265/386/130 282/375/130 266/387/130 +f 269/388/133 283/389/133 265/390/133 +f 259/391/127 286/380/127 260/392/127 +f 264/393/133 285/378/133 261/394/133 +f 261/395/130 277/379/130 262/396/130 +f 260/397/133 278/398/133 257/399/133 +f 268/400/127 284/376/127 269/401/127 +f 256/402/133 288/381/133 273/403/133 +f 273/404/130 287/383/130 274/405/130 +f 274/406/132 290/382/132 255/407/132 +f 255/408/127 289/409/127 256/410/127 +f 235/327/133 292/411/133 240/329/133 +f 235/327/133 234/412/133 291/413/133 +f 251/343/133 294/414/133 248/341/133 +f 248/341/133 294/414/133 253/415/133 +f 240/416/134 246/340/134 241/330/134 +f 293/417/134 252/418/134 295/419/134 +f 295/419/130 228/344/130 296/420/130 +f 298/421/135 300/422/135 297/423/135 +f 238/424/135 299/425/135 298/421/135 +f 300/422/135 228/426/135 297/423/135 +f 301/427/136 303/428/136 304/429/136 +f 306/430/136 308/431/136 305/432/136 +f 309/433/136 311/434/136 312/435/136 +f 310/436/136 314/437/136 311/434/136 +f 315/438/137 304/429/137 316/439/137 +f 302/440/136 308/431/136 303/428/136 +f 309/433/136 307/441/136 306/430/136 +f 313/442/136 316/443/136 314/437/136 +f 324/444/136 318/445/136 320/446/136 +f 326/447/136 328/448/136 325/449/136 +f 326/447/136 330/450/136 327/451/136 +f 331/452/137 330/450/137 329/453/137 +f 333/454/136 332/455/136 331/456/136 +f 335/457/137 334/458/137 333/454/137 +f 335/457/137 338/459/137 336/460/137 +f 337/461/136 340/462/136 338/459/136 +f 339/463/137 328/448/137 340/462/137 +f 342/464/138 344/465/138 341/466/138 +f 345/467/139 344/465/139 343/468/139 +f 347/469/140 343/468/140 342/464/140 +f 347/470/141 341/466/141 348/471/141 +f 348/472/142 344/465/142 346/473/142 +f 350/474/132 352/475/132 349/476/132 +f 358/477/132 359/478/132 360/479/132 +f 349/476/132 362/480/132 361/481/132 +f 363/482/132 362/483/132 364/484/132 +f 363/482/132 366/485/132 365/486/132 +f 365/487/132 368/488/132 367/489/132 +f 367/489/132 370/490/132 369/491/132 +f 371/492/132 370/493/132 372/494/132 +f 371/492/132 351/495/132 350/474/132 +f 373/496/132 375/497/132 376/498/132 +f 377/499/132 374/500/132 373/501/132 +f 380/502/132 377/503/132 379/504/132 +f 382/505/132 379/506/132 381/507/132 +f 384/508/132 381/509/132 383/510/132 +f 385/511/132 384/512/132 383/513/132 +f 387/514/132 386/515/132 385/516/132 +f 376/517/132 388/518/132 387/519/132 +f 668/520/133 1759/521/133 1760/522/133 +f 1756/523/143 1767/524/143 1755/525/143 +f 239/526/132 391/527/132 392/528/132 +f 236/529/132 393/530/132 394/531/132 +f 237/532/132 395/533/132 396/534/132 +f 242/535/132 397/536/132 398/537/132 +f 231/538/132 399/539/132 400/540/132 +f 1758/541/130 1769/542/130 1757/543/130 +f 403/544/124 405/545/124 407/546/124 +f 272/359/132 411/547/132 270/357/132 +f 271/361/127 410/548/127 272/359/127 +f 267/358/133 412/549/133 271/361/133 +f 270/357/130 413/550/130 267/358/130 +f 417/551/126 419/552/126 421/553/126 +f 421/554/144 404/555/144 403/556/144 +f 419/557/145 406/558/145 405/559/145 +f 415/560/146 402/561/146 409/562/146 +f 420/563/147 405/559/147 404/555/147 +f 418/564/148 407/565/148 406/558/148 +f 416/566/149 409/562/149 408/567/149 +f 414/568/150 403/556/150 402/561/150 +f 423/569/132 425/570/132 422/571/132 +f 427/572/133 429/573/133 426/574/133 +f 423/575/125 428/576/125 424/577/125 +f 425/570/143 426/578/143 422/579/143 +f 424/577/151 427/572/151 425/570/151 +f 422/580/128 429/581/128 423/575/128 +f 431/582/132 433/583/132 430/584/132 +f 435/585/133 437/586/133 434/587/133 +f 431/588/143 436/589/143 432/590/143 +f 433/583/125 434/591/125 430/592/125 +f 432/590/128 435/585/128 433/583/128 +f 430/592/151 437/593/151 431/594/151 +f 438/595/132 440/596/132 441/597/132 +f 442/598/133 444/599/133 445/600/133 +f 439/601/128 444/599/128 440/596/128 +f 441/597/151 442/602/151 438/603/151 +f 440/596/125 443/604/125 441/597/125 +f 438/605/143 445/606/143 439/601/143 +f 446/607/132 448/608/132 449/609/132 +f 450/610/133 452/611/133 453/612/133 +f 447/613/151 452/611/151 448/608/151 +f 449/609/128 450/614/128 446/615/128 +f 448/608/143 451/616/143 449/609/143 +f 446/615/125 453/617/125 447/618/125 +f 455/619/132 457/620/132 454/621/132 +f 459/622/152 461/623/152 458/624/152 +f 455/625/125 460/626/125 456/627/125 +f 457/620/143 458/624/143 454/628/143 +f 456/627/151 459/622/151 457/620/151 +f 455/625/128 458/629/128 461/630/128 +f 300/631/125 463/632/125 296/633/125 +f 299/634/128 464/635/128 465/636/128 +f 299/634/127 462/637/127 300/631/127 +f 465/636/135 463/638/135 462/637/135 +f 467/639/126 469/640/126 466/641/126 +f 470/642/124 472/643/124 473/644/124 +f 475/645/153 471/646/153 474/647/153 +f 474/647/154 477/648/154 475/645/154 +f 470/649/155 476/650/155 474/647/155 +f 469/651/156 477/648/156 466/652/156 +f 245/653/127 950/654/127 233/337/127 +f 479/655/157 481/656/157 478/657/157 +f 483/658/126 480/659/126 485/660/126 +f 480/661/146 486/662/146 481/656/146 +f 484/663/158 487/664/158 486/662/158 +f 478/665/124 481/666/124 486/667/124 +f 491/668/127 493/669/127 490/670/127 +f 491/668/126 495/671/126 492/672/126 +f 493/669/124 497/673/124 490/670/124 +f 499/674/133 501/675/133 498/676/133 +f 503/677/126 500/678/126 502/679/126 +f 505/680/124 498/676/124 504/681/124 +f 502/682/130 499/674/130 505/683/130 +f 504/684/127 501/675/127 503/685/127 +f 507/686/133 509/687/133 506/688/133 +f 511/689/127 508/690/127 510/691/127 +f 513/692/130 506/688/130 512/693/130 +f 510/694/126 507/686/126 513/695/126 +f 512/696/124 509/687/124 511/697/124 +f 515/698/127 517/699/127 514/700/127 +f 519/701/159 521/702/159 518/703/159 +f 523/704/160 525/705/160 522/706/160 +f 516/707/161 522/706/161 517/699/161 +f 520/708/162 514/709/162 521/702/162 +f 524/710/130 518/703/130 525/705/130 +f 514/711/126 517/712/126 522/713/126 +f 527/714/130 529/715/130 526/716/130 +f 531/717/127 533/718/127 530/719/127 +f 534/720/159 528/721/159 527/722/159 +f 526/723/160 537/724/160 536/725/160 +f 536/726/161 532/727/161 531/728/161 +f 530/729/162 535/730/162 534/731/162 +f 532/732/124 539/733/124 533/718/124 +f 528/721/124 540/734/124 541/735/124 +f 529/736/124 543/737/124 537/724/124 +f 532/727/124 543/737/124 538/738/124 +f 533/739/124 540/734/124 535/730/124 +f 528/740/124 542/741/124 529/715/124 +f 543/737/161 545/742/161 538/738/161 +f 539/743/162 547/744/162 540/734/162 +f 541/735/130 549/745/130 542/741/130 +f 538/738/127 546/746/127 539/733/127 +f 540/734/159 548/747/159 541/735/159 +f 542/741/160 544/748/160 543/737/160 +f 547/744/126 551/749/126 548/747/126 +f 548/747/126 552/750/126 549/745/126 +f 544/748/126 552/751/126 553/752/126 +f 544/748/126 554/753/126 545/742/126 +f 545/742/126 555/754/126 546/746/126 +f 547/744/126 555/755/126 550/756/126 +f 555/755/162 557/757/162 550/756/162 +f 551/758/130 559/759/130 552/750/130 +f 554/760/127 556/761/127 555/754/127 +f 550/762/159 558/763/159 551/749/159 +f 552/751/160 561/764/160 553/752/160 +f 553/765/161 560/766/161 554/753/161 +f 557/767/124 563/768/124 558/763/124 +f 558/769/124 564/770/124 559/759/124 +f 561/764/124 564/770/124 565/771/124 +f 561/772/124 566/773/124 560/766/124 +f 560/774/124 567/775/124 556/761/124 +f 557/757/124 567/776/124 562/777/124 +f 563/768/130 569/778/130 564/770/130 +f 566/773/127 571/779/127 567/775/127 +f 562/777/159 568/780/159 563/768/159 +f 564/770/160 573/781/160 565/771/160 +f 565/771/161 570/782/161 566/773/161 +f 567/776/162 572/783/162 562/777/162 +f 569/778/163 575/784/163 573/781/163 +f 573/781/164 576/785/164 570/782/164 +f 572/783/165 577/786/165 578/787/165 +f 568/780/166 574/788/166 569/778/166 +f 570/782/167 577/789/167 571/779/167 +f 568/780/168 578/790/168 579/791/168 +f 577/792/126 576/793/126 575/794/126 +f 581/795/130 583/796/130 580/797/130 +f 585/798/124 587/799/124 588/800/124 +f 582/801/133 590/802/133 583/796/133 +f 581/795/126 589/803/126 582/801/126 +f 583/796/124 592/804/124 580/797/124 +f 594/805/169 596/806/169 593/807/169 +f 593/808/124 598/809/124 597/810/124 +f 597/810/129 600/811/129 599/812/129 +f 594/805/126 600/811/126 595/813/126 +f 584/814/170 602/815/170 585/798/170 +f 587/816/133 604/817/133 588/818/133 +f 601/819/126 604/820/126 603/821/126 +f 602/815/169 586/822/169 585/798/169 +f 605/823/171 587/816/171 586/824/171 +f 584/814/129 604/825/129 601/819/129 +f 607/826/169 609/827/169 606/828/169 +f 610/829/126 608/830/126 607/831/126 +f 613/832/124 609/827/124 612/833/124 +f 612/833/171 608/830/171 611/834/171 +f 610/829/170 606/835/170 613/836/170 +f 615/837/124 624/838/124 625/839/124 +f 626/840/172 616/841/172 628/842/172 +f 623/843/173 633/844/173 624/838/173 +f 390/845/130 1689/846/130 297/423/130 +f 646/847/143 648/848/143 649/849/143 +f 1759/850/151 1772/851/151 1760/852/151 +f 297/423/143 652/853/143 653/854/143 +f 646/847/143 652/853/143 228/344/143 +f 297/423/143 649/849/143 648/848/143 +f 1755/855/128 1761/856/128 650/857/128 +f 656/858/151 239/859/151 238/860/151 +f 238/860/151 657/861/151 656/858/151 +f 389/862/151 657/861/151 298/421/151 +f 656/863/174 658/864/174 659/865/174 +f 646/866/151 661/867/151 652/868/151 +f 647/869/175 663/870/175 648/871/175 +f 661/867/143 665/872/143 664/873/143 +f 666/874/133 1756/875/133 1755/876/133 +f 659/877/151 669/878/151 668/520/151 +f 649/879/176 660/880/176 646/881/176 +f 1756/882/151 662/883/151 647/884/151 +f 653/885/177 661/886/177 664/873/177 +f 653/885/128 665/872/128 649/879/128 +f 657/887/125 655/888/125 1759/889/125 +f 1760/890/143 654/891/143 656/892/143 +f 670/893/124 672/894/124 673/895/124 +f 674/896/178 672/897/178 671/898/178 +f 677/899/126 679/900/126 676/901/126 +f 670/893/179 681/902/179 680/903/179 +f 679/900/126 682/904/126 683/905/126 +f 675/906/180 685/907/180 672/897/180 +f 680/908/126 674/909/126 686/910/126 +f 687/911/171 680/903/171 686/910/171 +f 687/911/124 671/912/124 670/913/124 +f 677/914/126 676/915/126 688/916/126 +f 689/917/171 677/899/171 688/916/171 +f 689/917/124 691/918/124 690/919/124 +f 693/920/133 686/910/133 692/921/133 +f 695/922/132 671/923/132 694/924/132 +f 697/925/126 676/915/126 696/926/126 +f 699/927/124 689/917/124 698/928/124 +f 694/929/124 687/911/124 693/920/124 +f 698/928/133 688/916/133 697/925/133 +f 696/926/132 691/930/132 699/931/132 +f 692/921/126 674/909/126 695/922/126 +f 676/901/178 700/932/178 691/933/178 +f 680/903/126 675/906/126 674/896/126 +f 702/934/130 704/935/130 701/936/130 +f 662/883/143 666/874/143 663/870/143 +f 663/870/128 666/874/128 1755/937/128 +f 1757/938/124 1765/939/124 1688/940/124 +f 705/941/181 682/904/181 678/942/181 +f 700/943/124 706/944/124 705/941/124 +f 672/894/124 708/945/124 673/895/124 +f 679/900/180 707/946/180 700/932/180 +f 675/906/126 709/947/126 684/948/126 +f 673/895/181 709/947/181 681/902/181 +f 690/949/124 700/943/124 705/941/124 +f 690/949/179 678/942/179 677/899/179 +f 711/950/161 713/951/161 710/952/161 +f 714/953/132 703/954/132 702/934/132 +f 712/955/127 717/956/127 713/951/127 +f 718/957/127 715/958/127 714/953/127 +f 716/959/162 721/960/162 717/961/162 +f 701/962/133 719/963/133 718/957/133 +f 720/964/159 723/965/159 721/960/159 +f 722/966/126 720/967/126 716/968/126 +f 722/969/130 725/970/130 723/965/130 +f 724/971/160 710/952/160 725/970/160 +f 723/972/124 725/973/124 713/974/124 +f 719/963/125 727/975/125 715/958/125 +f 715/976/132 727/975/132 703/977/132 +f 704/978/133 726/979/133 719/980/133 +f 704/978/133 729/981/133 726/979/133 +f 728/982/127 731/983/127 729/984/127 +f 726/979/126 732/985/126 727/975/126 +f 727/975/132 733/986/132 703/977/132 +f 703/977/124 728/987/124 704/988/124 +f 729/984/126 734/989/126 732/990/126 +f 733/991/124 735/992/124 728/993/124 +f 734/989/169 733/986/169 732/985/169 +f 737/994/179 739/995/179 736/996/179 +f 729/984/126 737/994/126 734/989/126 +f 734/989/130 736/996/130 735/992/130 +f 735/992/124 730/997/124 728/993/124 +f 740/998/126 741/999/126 738/1000/126 +f 730/997/124 739/995/124 742/1001/124 +f 730/1002/178 740/1003/178 731/983/178 +f 731/983/126 738/1004/126 737/994/126 +f 741/999/171 739/995/171 738/1004/171 +f 743/1005/124 745/1006/124 742/1007/124 +f 742/1007/124 739/1008/124 743/1005/124 +f 745/1009/132 748/1010/132 746/1011/132 +f 742/1012/132 749/1013/132 740/998/132 +f 740/998/126 750/1014/126 741/999/126 +f 741/999/133 744/1015/133 743/1005/133 +f 750/1016/133 751/1017/133 744/1018/133 +f 746/1011/125 750/1014/125 749/1013/125 +f 745/1009/132 746/1011/132 749/1019/132 +f 744/1018/130 747/1020/130 745/1021/130 +f 751/1017/133 752/1022/133 744/1018/133 +f 746/1011/127 753/1023/127 751/1017/127 +f 391/527/132 1771/1024/132 1786/1025/132 +f 401/1026/132 1767/1027/132 1768/1028/132 +f 1771/1024/132 1764/1029/132 389/1030/132 +f 1786/1025/132 1770/1031/132 1785/1032/132 +f 592/1033/127 589/1034/127 591/1035/127 +f 951/1036/182 953/1037/182 954/1038/182 +f 956/1039/182 958/1040/182 955/1041/182 +f 959/1042/182 961/1043/182 962/1044/182 +f 960/1045/182 964/1046/182 961/1043/182 +f 965/1047/183 954/1038/183 966/1048/183 +f 952/1049/182 958/1040/182 953/1037/182 +f 956/1039/182 962/1044/182 957/1050/182 +f 963/1051/182 966/1052/182 964/1046/182 +f 974/1053/182 968/1054/182 970/1055/182 +f 976/1056/182 978/1057/182 975/1058/182 +f 976/1056/182 980/1059/182 977/1060/182 +f 981/1061/183 980/1059/183 979/1062/183 +f 983/1063/182 982/1064/182 981/1065/182 +f 983/1063/183 986/1066/183 984/1067/183 +f 985/1068/183 988/1069/183 986/1066/183 +f 987/1070/182 990/1071/182 988/1069/182 +f 989/1072/183 978/1057/183 990/1071/183 +f 1039/1073/184 1041/1074/184 1042/1075/184 +f 1044/1076/184 1046/1077/184 1043/1078/184 +f 1047/1079/184 1049/1080/184 1050/1081/184 +f 1048/1082/184 1052/1083/184 1049/1080/184 +f 1053/1084/185 1042/1075/185 1054/1085/185 +f 1040/1086/184 1046/1077/184 1041/1074/184 +f 1047/1079/184 1045/1087/184 1044/1076/184 +f 1051/1088/184 1054/1089/184 1052/1083/184 +f 1062/1090/184 1056/1091/184 1058/1092/184 +f 1064/1093/184 1066/1094/184 1063/1095/184 +f 1064/1093/184 1068/1096/184 1065/1097/184 +f 1069/1098/185 1068/1096/185 1067/1099/185 +f 1071/1100/184 1070/1101/184 1069/1102/184 +f 1073/1103/185 1072/1104/185 1071/1100/185 +f 1073/1103/185 1076/1105/185 1074/1106/185 +f 1075/1107/184 1078/1108/184 1076/1105/184 +f 1077/1109/185 1066/1094/185 1078/1108/185 +f 1127/1110/186 1129/1111/186 1130/1112/186 +f 1132/1113/186 1134/1114/186 1131/1115/186 +f 1135/1116/186 1137/1117/186 1138/1118/186 +f 1136/1119/186 1140/1120/186 1137/1117/186 +f 1141/1121/187 1130/1112/187 1142/1122/187 +f 1128/1123/186 1134/1114/186 1129/1111/186 +f 1135/1116/186 1133/1124/186 1132/1113/186 +f 1139/1125/186 1142/1126/186 1140/1120/186 +f 1150/1127/186 1144/1128/186 1146/1129/186 +f 1152/1130/186 1154/1131/186 1151/1132/186 +f 1152/1130/186 1156/1133/186 1153/1134/186 +f 1157/1135/187 1156/1133/187 1155/1136/187 +f 1159/1137/186 1158/1138/186 1157/1139/186 +f 1161/1140/187 1160/1141/187 1159/1137/187 +f 1161/1140/187 1164/1142/187 1162/1143/187 +f 1163/1144/186 1166/1145/186 1164/1142/186 +f 1165/1146/187 1154/1131/187 1166/1145/187 +f 1215/1147/188 1217/1148/188 1218/1149/188 +f 1220/1150/189 1222/1151/189 1219/1152/189 +f 1223/1153/188 1225/1154/188 1226/1155/188 +f 1224/1156/189 1228/1157/189 1225/1154/189 +f 1229/1158/188 1218/1149/188 1230/1159/188 +f 1216/1160/189 1222/1151/189 1217/1148/189 +f 1223/1153/189 1221/1161/189 1220/1150/189 +f 1227/1162/189 1230/1163/189 1228/1157/189 +f 1238/1164/188 1232/1165/188 1234/1166/188 +f 1240/1167/188 1242/1168/188 1239/1169/188 +f 1240/1167/189 1244/1170/189 1241/1171/189 +f 1245/1172/188 1244/1170/188 1243/1173/188 +f 1247/1174/189 1246/1175/189 1245/1176/189 +f 1249/1177/189 1248/1178/189 1247/1174/189 +f 1249/1177/188 1252/1179/188 1250/1180/188 +f 1251/1181/189 1254/1182/189 1252/1179/189 +f 1253/1183/188 1242/1168/188 1254/1182/188 +f 1303/1184/190 1305/1185/190 1306/1186/190 +f 1308/1187/191 1310/1188/191 1307/1189/191 +f 1311/1190/190 1313/1191/190 1314/1192/190 +f 1312/1193/191 1316/1194/191 1313/1191/191 +f 1317/1195/190 1306/1186/190 1318/1196/190 +f 1304/1197/191 1310/1188/191 1305/1185/191 +f 1311/1190/191 1309/1198/191 1308/1187/191 +f 1315/1199/191 1318/1200/191 1316/1194/191 +f 1326/1201/191 1320/1202/191 1322/1203/191 +f 1328/1204/190 1330/1205/190 1327/1206/190 +f 1328/1204/191 1332/1207/191 1329/1208/191 +f 1333/1209/190 1332/1207/190 1331/1210/190 +f 1335/1211/191 1334/1212/191 1333/1213/191 +f 1337/1214/190 1336/1215/190 1335/1211/190 +f 1337/1214/190 1340/1216/190 1338/1217/190 +f 1339/1218/191 1342/1219/191 1340/1216/191 +f 1341/1220/190 1330/1205/190 1342/1219/190 +f 1391/1221/192 1393/1222/192 1394/1223/192 +f 1396/1224/192 1398/1225/192 1395/1226/192 +f 1399/1227/192 1401/1228/192 1402/1229/192 +f 1400/1230/193 1404/1231/193 1401/1228/193 +f 1405/1232/193 1394/1223/193 1406/1233/193 +f 1392/1234/193 1398/1225/193 1393/1222/193 +f 1396/1224/193 1402/1229/193 1397/1235/193 +f 1403/1236/193 1406/1237/193 1404/1231/193 +f 1414/1238/192 1408/1239/192 1410/1240/192 +f 1416/1241/192 1418/1242/192 1415/1243/192 +f 1416/1241/193 1420/1244/193 1417/1245/193 +f 1421/1246/192 1420/1244/192 1419/1247/192 +f 1423/1248/193 1422/1249/193 1421/1250/193 +f 1425/1251/193 1424/1252/193 1423/1248/193 +f 1425/1251/192 1428/1253/192 1426/1254/192 +f 1427/1255/193 1430/1256/193 1428/1253/193 +f 1429/1257/192 1418/1242/192 1430/1256/192 +f 1479/1258/194 1481/1259/194 1482/1260/194 +f 1484/1261/195 1486/1262/195 1483/1263/195 +f 1487/1264/194 1489/1265/194 1490/1266/194 +f 1491/1267/195 1489/1265/195 1488/1268/195 +f 1493/1269/194 1482/1260/194 1494/1270/194 +f 1480/1271/195 1486/1262/195 1481/1259/195 +f 1487/1264/195 1485/1272/195 1484/1261/195 +f 1491/1267/195 1494/1273/195 1492/1274/195 +f 1502/1275/195 1496/1276/195 1498/1277/195 +f 1504/1278/194 1506/1279/194 1503/1280/194 +f 1504/1278/195 1508/1281/195 1505/1282/195 +f 1509/1283/194 1508/1281/194 1507/1284/194 +f 1511/1285/195 1510/1286/195 1509/1287/195 +f 1513/1288/194 1512/1289/194 1511/1285/194 +f 1513/1288/194 1516/1290/194 1514/1291/194 +f 1515/1292/195 1518/1293/195 1516/1290/195 +f 1517/1294/194 1506/1279/194 1518/1293/194 +f 1567/1295/196 1569/1296/196 1570/1297/196 +f 1571/1298/197 1570/1297/197 1569/1296/197 +f 1573/1299/198 1569/1296/198 1568/1300/198 +f 1573/1301/199 1567/1295/199 1574/1302/199 +f 1574/1303/200 1570/1297/200 1572/1304/200 +f 1576/1305/201 1578/1306/201 1575/1307/201 +f 1579/1308/202 1578/1306/202 1577/1309/202 +f 1581/1310/203 1577/1309/203 1576/1305/203 +f 1581/1311/204 1575/1307/204 1582/1312/204 +f 1582/1313/205 1578/1306/205 1580/1314/205 +f 1583/1315/206 1585/1316/206 1586/1317/206 +f 1587/1318/207 1586/1317/207 1585/1316/207 +f 1589/1319/208 1585/1316/208 1584/1320/208 +f 1589/1321/209 1583/1315/209 1590/1322/209 +f 1590/1323/210 1586/1317/210 1588/1324/210 +f 1591/1325/211 1593/1326/211 1594/1327/211 +f 1595/1328/212 1594/1327/212 1593/1326/212 +f 1597/1329/213 1593/1326/213 1592/1330/213 +f 1597/1331/214 1591/1325/214 1598/1332/214 +f 1598/1333/215 1594/1327/215 1596/1334/215 +f 1599/1335/216 1601/1336/216 1602/1337/216 +f 1603/1338/217 1602/1337/217 1601/1336/217 +f 1605/1339/218 1601/1336/218 1600/1340/218 +f 1605/1341/219 1599/1335/219 1606/1342/219 +f 1606/1343/220 1602/1337/220 1604/1344/220 +f 1608/1345/221 1610/1346/221 1607/1347/221 +f 1611/1348/222 1610/1346/222 1609/1349/222 +f 1613/1350/223 1609/1349/223 1608/1345/223 +f 1613/1351/224 1607/1347/224 1614/1352/224 +f 1614/1353/225 1610/1346/225 1612/1354/225 +f 1615/1355/226 1617/1356/226 1618/1357/226 +f 1619/1358/227 1618/1357/227 1617/1356/227 +f 1621/1359/228 1617/1356/228 1616/1360/228 +f 1621/1361/229 1615/1355/229 1622/1362/229 +f 1622/1363/230 1618/1357/230 1620/1364/230 +f 1624/1365/231 1626/1366/231 1623/1367/231 +f 1627/1368/232 1626/1366/232 1625/1369/232 +f 1629/1370/233 1625/1369/233 1624/1365/233 +f 1629/1371/234 1623/1367/234 1630/1372/234 +f 1630/1373/235 1626/1366/235 1628/1374/235 +f 1631/1375/236 1633/1376/236 1634/1377/236 +f 1635/1378/237 1634/1377/237 1633/1376/237 +f 1637/1379/238 1633/1376/238 1632/1380/238 +f 1637/1381/239 1631/1375/239 1638/1382/239 +f 1638/1383/240 1634/1377/240 1636/1384/240 +f 1639/1385/241 1641/1386/241 1642/1387/241 +f 1643/1388/242 1642/1387/242 1641/1386/242 +f 1645/1389/243 1641/1386/243 1640/1390/243 +f 1645/1391/244 1639/1385/244 1646/1392/244 +f 1646/1393/245 1642/1387/245 1644/1394/245 +f 1647/1395/246 1649/1396/246 1650/1397/246 +f 1651/1398/247 1650/1397/247 1649/1396/247 +f 1653/1399/248 1649/1396/248 1648/1400/248 +f 1653/1401/249 1647/1395/249 1654/1402/249 +f 1654/1403/250 1650/1397/250 1652/1404/250 +f 1655/1405/251 1657/1406/251 1658/1407/251 +f 1659/1408/252 1658/1407/252 1657/1406/252 +f 1661/1409/253 1657/1406/253 1656/1410/253 +f 1661/1411/254 1655/1405/254 1662/1412/254 +f 1662/1413/255 1658/1407/255 1660/1414/255 +f 1663/1415/256 1665/1416/256 1666/1417/256 +f 1667/1418/257 1666/1417/257 1665/1416/257 +f 1669/1419/258 1665/1416/258 1664/1420/258 +f 1669/1421/259 1663/1415/259 1670/1422/259 +f 1670/1423/260 1666/1417/260 1668/1424/260 +f 1672/1425/261 1674/1426/261 1671/1427/261 +f 1675/1428/262 1674/1426/262 1673/1429/262 +f 1677/1430/263 1673/1429/263 1672/1425/263 +f 1677/1431/264 1671/1427/264 1678/1432/264 +f 1678/1433/265 1674/1426/265 1676/1434/265 +f 1679/1435/266 1681/1436/266 1682/1437/266 +f 1683/1438/267 1682/1437/267 1681/1436/267 +f 1685/1439/268 1681/1436/268 1680/1440/268 +f 1685/1441/269 1679/1435/269 1686/1442/269 +f 1686/1443/270 1682/1437/270 1684/1444/270 +f 1691/1445/124 1692/1446/124 1757/1447/124 +f 297/423/130 1687/1448/130 298/421/130 +f 389/862/130 1687/1448/130 1688/1449/130 +f 651/1450/151 1768/1451/151 1756/1452/151 +f 1691/1453/130 1694/1454/130 1692/1455/130 +f 1757/1456/133 1694/1457/133 1758/1458/133 +f 1689/1459/132 1691/1460/132 1687/1461/132 +f 1758/1462/126 1694/1463/126 1693/1464/126 +f 1690/1465/126 1770/1466/126 1758/1467/126 +f 655/1468/125 1771/1469/125 1759/1470/125 +f 1760/1471/143 1763/1472/143 654/1473/143 +f 655/1474/151 389/862/151 1764/1475/151 +f 1688/1449/130 1765/1476/130 389/862/130 +f 1690/1477/130 390/845/130 1766/1478/130 +f 650/1479/143 1761/1480/143 390/845/143 +f 654/1481/151 1763/1482/151 239/859/151 +f 1775/1483/151 1774/1484/151 1776/1485/151 +f 1778/1486/130 1779/1487/130 1777/1488/130 +f 651/1489/143 227/1490/143 1762/1491/143 +f 1783/1492/143 1782/1493/143 1784/1494/143 +f 390/1495/132 1767/1027/132 1770/1031/132 +f 1768/1028/132 227/1496/132 401/1026/132 +f 239/526/132 1772/1497/132 391/527/132 +f 1788/1498/127 1790/1499/127 1787/1500/127 +f 1792/1501/130 1794/1502/130 1791/1503/130 +f 1796/1504/124 1798/1505/124 1795/1506/124 +f 1800/1507/126 1802/1508/126 1799/1509/126 +f 1799/1509/151 1793/1510/151 1792/1501/151 +f 1801/1511/125 1790/1499/125 1789/1512/125 +f 1787/1513/128 1797/1514/128 1788/1515/128 +f 1794/1502/143 1795/1506/143 1791/1503/143 +f 1799/1516/132 1803/1517/132 1804/1518/132 +f 1792/1519/132 1806/1520/132 1807/1521/132 +f 1791/1522/132 1808/1523/132 1809/1524/132 +f 1795/1525/132 1810/1526/132 1811/1527/132 +f 1798/1528/132 1812/1529/132 1813/1530/132 +f 1787/1531/132 1814/1532/132 1815/1533/132 +f 1790/1534/132 1816/1535/132 1817/1536/132 +f 1800/1537/132 1805/1538/132 1818/1539/132 +f 1826/1540/132 1830/1541/132 1834/1542/132 +f 1836/1543/133 1837/1544/133 1793/1545/133 +f 1839/1546/133 1835/1547/133 1802/1548/133 +f 1841/1549/133 1838/1550/133 1801/1551/133 +f 1843/1552/133 1840/1553/133 1789/1554/133 +f 1845/1555/133 1842/1556/133 1788/1557/133 +f 1847/1558/133 1844/1559/133 1797/1560/133 +f 1849/1561/133 1846/1562/133 1796/1563/133 +f 1850/1564/133 1848/1565/133 1794/1566/133 +f 231/325/124 227/1490/124 229/323/124 +f 227/1490/124 228/344/124 229/323/124 +f 237/332/125 232/1567/125 236/328/125 +f 232/1567/125 233/326/125 236/328/125 +f 950/1568/125 234/1569/125 235/327/125 +f 233/326/125 950/1568/125 235/327/125 +f 241/330/126 238/1570/126 235/327/126 +f 238/1570/126 239/859/126 236/328/126 +f 235/327/126 238/1570/126 236/328/126 +f 243/331/127 232/1567/127 237/332/127 +f 242/1571/128 231/325/128 243/335/128 +f 231/325/271 230/324/271 245/334/271 +f 230/324/272 244/1572/272 245/334/272 +f 243/336/129 245/653/129 233/337/129 +f 247/339/130 238/1570/130 241/330/130 +f 248/341/124 249/346/124 250/342/124 +f 228/344/124 252/418/124 250/342/124 +f 252/418/124 251/343/124 250/342/124 +f 248/341/131 253/1573/131 254/345/131 +f 256/347/124 257/362/124 258/348/124 +f 260/350/124 261/1574/124 262/351/124 +f 264/353/124 265/1575/124 266/354/124 +f 268/356/124 269/1576/124 270/357/124 +f 272/359/124 273/1577/124 274/360/124 +f 268/356/124 267/358/124 266/354/124 +f 267/358/124 271/361/124 262/351/124 +f 266/354/124 267/358/124 263/355/124 +f 271/361/124 274/360/124 255/349/124 +f 258/348/124 259/352/124 271/361/124 +f 259/352/124 262/351/124 271/361/124 +f 271/361/124 255/349/124 258/348/124 +f 272/359/124 270/357/124 261/1574/124 +f 270/357/124 269/1576/124 265/1575/124 +f 265/1575/124 264/353/124 270/357/124 +f 264/353/124 261/1574/124 270/357/124 +f 256/347/124 273/1577/124 272/359/124 +f 261/1574/124 260/350/124 272/359/124 +f 260/350/124 257/362/124 272/359/124 +f 263/363/127 275/367/127 276/364/127 +f 262/366/132 277/379/132 275/367/132 +f 257/369/130 278/398/130 279/370/130 +f 258/372/132 279/370/132 280/373/132 +f 282/375/124 283/389/124 284/376/124 +f 285/378/124 276/364/124 275/367/124 +f 279/370/124 278/398/124 286/380/124 +f 288/381/124 289/409/124 290/382/124 +f 266/384/132 282/375/132 281/377/132 +f 265/386/130 283/389/130 282/375/130 +f 269/388/133 284/376/133 283/389/133 +f 259/391/127 280/373/127 286/380/127 +f 264/393/133 276/364/133 285/378/133 +f 261/395/130 285/378/130 277/379/130 +f 260/397/133 286/380/133 278/398/133 +f 268/400/127 281/377/127 284/376/127 +f 256/402/133 289/409/133 288/381/133 +f 273/404/130 288/381/130 287/383/130 +f 274/406/132 287/383/132 290/382/132 +f 255/408/127 290/382/127 289/409/127 +f 235/327/133 291/413/133 292/411/133 +f 251/343/133 293/1578/133 294/414/133 +f 240/416/134 292/1579/134 246/340/134 +f 293/417/134 251/1580/134 252/418/134 +f 295/419/130 252/418/130 228/344/130 +f 298/421/135 299/425/135 300/422/135 +f 238/424/135 247/1581/135 299/425/135 +f 300/422/135 296/1582/135 228/426/135 +f 301/427/137 302/440/137 303/428/137 +f 306/430/136 307/441/136 308/431/136 +f 309/433/137 310/436/137 311/434/137 +f 310/436/136 313/442/136 314/437/136 +f 315/438/136 301/427/136 304/429/136 +f 302/440/136 305/432/136 308/431/136 +f 309/433/136 312/435/136 307/441/136 +f 313/442/137 315/1583/137 316/443/137 +f 324/444/136 317/1584/136 318/445/136 +f 318/445/136 319/1585/136 320/446/136 +f 320/446/136 321/1586/136 324/444/136 +f 321/1586/137 322/1587/137 324/444/137 +f 322/1587/136 323/1588/136 324/444/136 +f 326/447/137 327/451/137 328/448/137 +f 326/447/136 329/453/136 330/450/136 +f 331/452/136 332/1589/136 330/450/136 +f 333/454/137 334/458/137 332/455/137 +f 335/457/136 336/460/136 334/458/136 +f 335/457/136 337/461/136 338/459/136 +f 337/461/137 339/463/137 340/462/137 +f 339/463/136 325/449/136 328/448/136 +f 342/464/138 343/468/138 344/465/138 +f 345/467/273 346/1590/273 344/465/273 +f 347/469/140 345/1591/140 343/468/140 +f 347/470/141 342/464/141 341/466/141 +f 348/472/142 341/466/142 344/465/142 +f 350/474/132 351/1592/132 352/475/132 +f 360/479/132 353/1593/132 354/1594/132 +f 354/1594/132 355/1595/132 360/479/132 +f 355/1595/132 356/1596/132 360/479/132 +f 356/1596/132 357/1597/132 360/479/132 +f 357/1597/132 358/477/132 360/479/132 +f 349/476/132 352/1598/132 362/480/132 +f 363/482/132 361/481/132 362/483/132 +f 363/482/132 364/1599/132 366/485/132 +f 365/487/132 366/1600/132 368/488/132 +f 367/489/132 368/1601/132 370/490/132 +f 371/492/132 369/491/132 370/493/132 +f 371/492/132 372/1602/132 351/495/132 +f 373/496/132 374/1603/132 375/497/132 +f 377/499/132 378/1604/132 374/500/132 +f 380/502/132 378/1605/132 377/503/132 +f 382/505/132 380/1606/132 379/506/132 +f 384/508/132 382/1607/132 381/509/132 +f 385/511/132 386/1608/132 384/512/132 +f 387/514/132 388/1609/132 386/515/132 +f 376/517/132 375/1610/132 388/518/132 +f 668/520/133 669/878/133 1759/521/133 +f 1756/523/143 1768/1611/143 1767/524/143 +f 393/530/132 236/529/132 392/528/132 +f 236/529/132 239/526/132 392/528/132 +f 395/533/132 237/532/132 394/531/132 +f 237/532/132 236/529/132 394/531/132 +f 397/536/132 242/535/132 396/534/132 +f 242/535/132 237/532/132 396/534/132 +f 399/539/132 231/538/132 398/537/132 +f 231/538/132 242/535/132 398/537/132 +f 401/1026/132 227/1496/132 400/540/132 +f 227/1496/132 231/538/132 400/540/132 +f 1758/541/130 1770/1612/130 1769/542/130 +f 409/1613/124 402/1614/124 403/544/124 +f 403/544/124 404/1615/124 405/545/124 +f 405/545/124 406/1616/124 407/546/124 +f 407/546/124 408/1617/124 409/1613/124 +f 409/1613/124 403/544/124 407/546/124 +f 272/359/132 410/1618/132 411/547/132 +f 271/361/127 412/1619/127 410/548/127 +f 267/358/133 413/1620/133 412/549/133 +f 270/357/130 411/1621/130 413/550/130 +f 421/553/126 414/1622/126 415/1623/126 +f 415/1623/126 416/1624/126 417/551/126 +f 417/551/126 418/1625/126 419/552/126 +f 419/552/126 420/1626/126 421/553/126 +f 421/553/126 415/1623/126 417/551/126 +f 421/554/144 420/563/144 404/555/144 +f 419/557/145 418/564/145 406/558/145 +f 415/560/146 414/568/146 402/561/146 +f 420/563/147 419/557/147 405/559/147 +f 418/564/148 417/1627/148 407/565/148 +f 416/566/149 415/560/149 409/562/149 +f 414/568/150 421/554/150 403/556/150 +f 423/569/132 424/577/132 425/570/132 +f 427/572/133 428/576/133 429/573/133 +f 423/575/125 429/581/125 428/576/125 +f 425/570/143 427/572/143 426/578/143 +f 424/577/151 428/576/151 427/572/151 +f 422/580/128 426/1628/128 429/581/128 +f 431/582/132 432/590/132 433/583/132 +f 435/585/133 436/589/133 437/586/133 +f 431/588/143 437/1629/143 436/589/143 +f 433/583/125 435/585/125 434/591/125 +f 432/590/128 436/589/128 435/585/128 +f 430/592/151 434/591/151 437/593/151 +f 438/595/132 439/1630/132 440/596/132 +f 442/598/133 443/604/133 444/599/133 +f 439/601/128 445/606/128 444/599/128 +f 441/597/151 443/604/151 442/602/151 +f 440/596/125 444/599/125 443/604/125 +f 438/605/143 442/1631/143 445/606/143 +f 446/607/132 447/1632/132 448/608/132 +f 450/610/133 451/616/133 452/611/133 +f 447/613/151 453/1633/151 452/611/151 +f 449/609/128 451/616/128 450/614/128 +f 448/608/143 452/611/143 451/616/143 +f 446/615/125 450/614/125 453/617/125 +f 455/619/132 456/627/132 457/620/132 +f 459/622/152 460/1634/152 461/623/152 +f 455/625/125 461/630/125 460/626/125 +f 457/620/143 459/622/143 458/624/143 +f 456/627/151 460/626/151 459/622/151 +f 455/625/128 454/1635/128 458/629/128 +f 300/631/125 462/637/125 463/632/125 +f 299/634/128 247/1636/128 464/635/128 +f 299/634/127 465/636/127 462/637/127 +f 465/636/135 464/1637/135 463/638/135 +f 467/639/126 468/1638/126 469/640/126 +f 470/642/124 471/646/124 472/643/124 +f 475/645/153 469/640/153 468/1638/153 +f 468/1638/153 471/646/153 475/645/153 +f 471/646/153 470/642/153 474/647/153 +f 474/647/154 476/650/154 477/648/154 +f 470/649/155 473/1639/155 476/650/155 +f 469/651/156 475/645/156 477/648/156 +f 245/653/127 244/1640/127 950/654/127 +f 479/655/157 480/661/157 481/656/157 +f 485/660/126 482/1641/126 483/658/126 +f 483/658/126 484/1642/126 480/659/126 +f 480/659/126 479/1643/126 485/660/126 +f 480/661/146 484/663/146 486/662/146 +f 484/663/158 483/1644/158 487/664/158 +f 486/667/124 487/1645/124 478/665/124 +f 487/1645/124 488/1646/124 478/665/124 +f 488/1646/124 489/1647/124 478/665/124 +f 491/668/127 492/672/127 493/669/127 +f 491/668/126 494/1648/126 495/671/126 +f 493/669/124 496/1649/124 497/673/124 +f 499/674/133 500/678/133 501/675/133 +f 503/677/126 501/675/126 500/678/126 +f 505/680/124 499/674/124 498/676/124 +f 502/682/130 500/678/130 499/674/130 +f 504/684/127 498/676/127 501/675/127 +f 507/686/133 508/690/133 509/687/133 +f 511/689/127 509/687/127 508/690/127 +f 513/692/130 507/686/130 506/688/130 +f 510/694/126 508/690/126 507/686/126 +f 512/696/124 506/688/124 509/687/124 +f 515/698/127 516/707/127 517/699/127 +f 519/701/159 520/708/159 521/702/159 +f 523/704/160 524/710/160 525/705/160 +f 516/707/161 523/704/161 522/706/161 +f 520/708/162 515/1650/162 514/709/162 +f 524/710/130 519/701/130 518/703/130 +f 522/713/126 525/1651/126 514/711/126 +f 525/1651/126 518/1652/126 514/711/126 +f 518/1652/126 521/1653/126 514/711/126 +f 527/714/130 528/740/130 529/715/130 +f 531/717/127 532/732/127 533/718/127 +f 534/720/159 535/1654/159 528/721/159 +f 526/723/160 529/736/160 537/724/160 +f 536/726/161 537/1655/161 532/727/161 +f 530/729/162 533/739/162 535/730/162 +f 532/732/124 538/738/124 539/733/124 +f 528/721/124 535/1654/124 540/734/124 +f 529/736/124 542/741/124 543/737/124 +f 532/727/124 537/1655/124 543/737/124 +f 533/739/124 539/743/124 540/734/124 +f 528/740/124 541/735/124 542/741/124 +f 543/737/161 544/748/161 545/742/161 +f 539/743/162 546/1656/162 547/744/162 +f 541/735/130 548/747/130 549/745/130 +f 538/738/127 545/742/127 546/746/127 +f 540/734/159 547/744/159 548/747/159 +f 542/741/160 549/745/160 544/748/160 +f 547/744/126 550/762/126 551/749/126 +f 548/747/126 551/758/126 552/750/126 +f 544/748/126 549/745/126 552/751/126 +f 544/748/126 553/765/126 554/753/126 +f 545/742/126 554/760/126 555/754/126 +f 547/744/126 546/1656/126 555/755/126 +f 555/755/162 556/1657/162 557/757/162 +f 551/758/130 558/769/130 559/759/130 +f 554/760/127 560/774/127 556/761/127 +f 550/762/159 557/767/159 558/763/159 +f 552/751/160 559/1658/160 561/764/160 +f 553/765/161 561/772/161 560/766/161 +f 557/767/124 562/777/124 563/768/124 +f 558/769/124 563/768/124 564/770/124 +f 561/764/124 559/1658/124 564/770/124 +f 561/772/124 565/771/124 566/773/124 +f 560/774/124 566/773/124 567/775/124 +f 557/757/124 556/1657/124 567/776/124 +f 563/768/130 568/780/130 569/778/130 +f 566/773/127 570/782/127 571/779/127 +f 562/777/159 572/783/159 568/780/159 +f 564/770/160 569/778/160 573/781/160 +f 565/771/161 573/781/161 570/782/161 +f 567/776/162 571/1659/162 572/783/162 +f 569/778/163 574/1660/163 575/784/163 +f 573/781/164 575/1661/164 576/785/164 +f 572/783/165 571/1659/165 577/786/165 +f 568/780/166 579/1662/166 574/788/166 +f 570/782/167 576/1663/167 577/789/167 +f 568/780/168 572/783/168 578/790/168 +f 575/794/126 574/1664/126 577/792/126 +f 574/1664/126 579/1665/126 577/792/126 +f 579/1665/126 578/1666/126 577/792/126 +f 581/795/130 582/801/130 583/796/130 +f 588/800/124 584/814/124 585/798/124 +f 585/798/124 586/1667/124 587/799/124 +f 582/801/133 589/1668/133 590/802/133 +f 581/795/126 591/1669/126 589/803/126 +f 583/796/124 590/1670/124 592/804/124 +f 594/805/169 595/813/169 596/806/169 +f 593/808/124 596/1671/124 598/809/124 +f 597/810/129 598/809/129 600/811/129 +f 594/805/126 599/812/126 600/811/126 +f 584/814/170 601/819/170 602/815/170 +f 587/816/133 603/821/133 604/817/133 +f 605/823/126 602/815/126 603/821/126 +f 602/815/126 601/819/126 603/821/126 +f 602/815/169 605/1672/169 586/822/169 +f 605/823/171 603/821/171 587/816/171 +f 584/814/129 588/1673/129 604/825/129 +f 607/826/169 608/1674/169 609/827/169 +f 610/829/126 611/834/126 608/830/126 +f 613/832/124 606/828/124 609/827/124 +f 612/833/171 609/827/171 608/830/171 +f 610/829/170 607/831/170 606/835/170 +f 615/837/124 623/1675/124 624/838/124 +f 626/840/172 627/1676/172 616/841/172 +f 623/843/173 632/1677/173 633/844/173 +f 390/845/130 1690/1477/130 1689/846/130 +f 646/847/143 647/1678/143 648/848/143 +f 1759/850/151 1771/1679/151 1772/851/151 +f 297/423/143 228/344/143 652/853/143 +f 228/344/143 227/1490/143 646/847/143 +f 227/1490/143 651/1489/143 647/1678/143 +f 647/1678/143 646/847/143 227/1490/143 +f 650/1479/143 390/845/143 648/848/143 +f 390/845/143 297/423/143 648/848/143 +f 297/423/143 653/854/143 649/849/143 +f 1755/855/128 1767/1680/128 1761/856/128 +f 656/858/151 654/1481/151 239/859/151 +f 238/860/151 298/421/151 657/861/151 +f 389/862/151 655/1474/151 657/861/151 +f 656/863/174 657/887/174 658/864/174 +f 646/866/151 660/1681/151 661/867/151 +f 647/869/175 662/1682/175 663/870/175 +f 661/867/143 660/1681/143 665/872/143 +f 666/874/133 667/1683/133 1756/875/133 +f 659/877/151 658/864/151 669/878/151 +f 649/879/176 665/872/176 660/880/176 +f 647/884/151 651/1684/151 1756/882/151 +f 1756/882/151 667/1683/151 662/883/151 +f 653/885/177 652/1685/177 661/886/177 +f 653/885/128 664/873/128 665/872/128 +f 1759/889/125 669/878/125 658/864/125 +f 658/864/125 657/887/125 1759/889/125 +f 656/892/143 659/877/143 1760/890/143 +f 659/877/143 668/520/143 1760/890/143 +f 670/893/124 671/1686/124 672/894/124 +f 674/896/178 675/906/178 672/897/178 +f 677/899/126 678/942/126 679/900/126 +f 670/893/179 673/895/179 681/902/179 +f 679/900/126 678/942/126 682/904/126 +f 675/906/180 684/948/180 685/907/180 +f 687/911/171 670/893/171 680/903/171 +f 689/917/171 690/949/171 677/899/171 +f 693/920/133 687/911/133 686/910/133 +f 695/922/132 674/909/132 671/923/132 +f 697/925/126 688/916/126 676/915/126 +f 699/927/124 691/918/124 689/917/124 +f 694/929/124 671/912/124 687/911/124 +f 698/928/133 689/917/133 688/916/133 +f 696/926/132 676/915/132 691/930/132 +f 692/921/126 686/910/126 674/909/126 +f 676/901/178 679/900/178 700/932/178 +f 680/903/126 681/902/126 675/906/126 +f 702/934/130 703/954/130 704/935/130 +f 662/883/143 667/1683/143 666/874/143 +f 650/1687/128 648/871/128 1755/937/128 +f 648/871/128 663/870/128 1755/937/128 +f 1757/938/124 1769/1688/124 1765/939/124 +f 705/941/181 706/944/181 682/904/181 +f 700/943/124 707/1689/124 706/944/124 +f 672/894/124 685/1690/124 708/945/124 +f 679/900/180 683/905/180 707/946/180 +f 675/906/126 681/902/126 709/947/126 +f 673/895/181 708/945/181 709/947/181 +f 690/949/124 691/1691/124 700/943/124 +f 690/949/179 705/941/179 678/942/179 +f 711/950/161 712/955/161 713/951/161 +f 714/953/132 715/958/132 703/954/132 +f 712/955/127 716/1692/127 717/956/127 +f 718/957/127 719/963/127 715/958/127 +f 716/959/162 720/964/162 721/960/162 +f 701/962/133 704/1693/133 719/963/133 +f 720/964/159 722/969/159 723/965/159 +f 716/968/126 712/1694/126 711/1695/126 +f 711/1695/126 724/1696/126 716/968/126 +f 724/1696/126 722/966/126 716/968/126 +f 722/969/130 724/971/130 725/970/130 +f 724/971/160 711/950/160 710/952/160 +f 725/973/124 710/1697/124 713/974/124 +f 713/974/124 717/1698/124 721/1699/124 +f 721/1699/124 723/972/124 713/974/124 +f 719/963/125 726/979/125 727/975/125 +f 704/978/133 728/1700/133 729/981/133 +f 728/982/127 730/1002/127 731/983/127 +f 726/979/126 729/981/126 732/985/126 +f 727/975/132 732/985/132 733/986/132 +f 703/977/124 733/986/124 728/987/124 +f 734/989/169 735/992/169 733/986/169 +f 737/994/179 738/1004/179 739/995/179 +f 729/984/126 731/983/126 737/994/126 +f 734/989/130 737/994/130 736/996/130 +f 735/992/124 736/996/124 730/997/124 +f 730/997/124 736/996/124 739/995/124 +f 730/1002/178 742/1701/178 740/1003/178 +f 731/983/126 740/1003/126 738/1004/126 +f 741/999/171 743/1005/171 739/995/171 +f 743/1005/124 744/1015/124 745/1006/124 +f 745/1009/132 747/1702/132 748/1010/132 +f 742/1012/132 745/1703/132 749/1013/132 +f 740/998/126 749/1013/126 750/1014/126 +f 741/999/133 750/1014/133 744/1015/133 +f 746/1011/125 751/1017/125 750/1014/125 +f 744/1018/130 752/1022/130 747/1020/130 +f 751/1017/133 753/1023/133 752/1022/133 +f 746/1011/127 748/1010/127 753/1023/127 +f 391/527/132 1772/1497/132 1771/1024/132 +f 401/1026/132 1785/1032/132 1767/1027/132 +f 1765/1704/132 1769/1705/132 389/1030/132 +f 1769/1705/132 1786/1025/132 1771/1024/132 +f 389/1030/132 1769/1705/132 1771/1024/132 +f 1786/1025/132 1769/1705/132 1770/1031/132 +f 592/1033/127 590/1706/127 589/1034/127 +f 951/1036/183 952/1049/183 953/1037/183 +f 956/1039/182 957/1050/182 958/1040/182 +f 959/1042/182 960/1045/182 961/1043/182 +f 960/1045/182 963/1051/182 964/1046/182 +f 965/1047/182 951/1036/182 954/1038/182 +f 952/1049/182 955/1041/182 958/1040/182 +f 956/1039/182 959/1042/182 962/1044/182 +f 963/1051/183 965/1707/183 966/1052/183 +f 974/1053/182 967/1708/182 968/1054/182 +f 968/1054/183 969/1709/183 970/1055/183 +f 970/1055/183 971/1710/183 972/1711/183 +f 972/1711/182 973/1712/182 970/1055/182 +f 973/1712/182 974/1053/182 970/1055/182 +f 976/1056/183 977/1060/183 978/1057/183 +f 976/1056/182 979/1062/182 980/1059/182 +f 981/1061/182 982/1713/182 980/1059/182 +f 983/1063/183 984/1067/183 982/1064/183 +f 983/1063/182 985/1068/182 986/1066/182 +f 985/1068/183 987/1070/183 988/1069/183 +f 987/1070/183 989/1072/183 990/1071/183 +f 989/1072/182 975/1058/182 978/1057/182 +f 1039/1073/184 1040/1086/184 1041/1074/184 +f 1044/1076/184 1045/1087/184 1046/1077/184 +f 1047/1079/185 1048/1082/185 1049/1080/185 +f 1048/1082/184 1051/1088/184 1052/1083/184 +f 1053/1084/184 1039/1073/184 1042/1075/184 +f 1040/1086/184 1043/1078/184 1046/1077/184 +f 1047/1079/184 1050/1081/184 1045/1087/184 +f 1051/1088/185 1053/1714/185 1054/1089/185 +f 1062/1090/184 1055/1715/184 1056/1091/184 +f 1056/1091/185 1057/1716/185 1058/1092/185 +f 1058/1092/184 1059/1717/184 1062/1090/184 +f 1059/1717/185 1060/1718/185 1062/1090/185 +f 1060/1718/184 1061/1719/184 1062/1090/184 +f 1064/1093/185 1065/1097/185 1066/1094/185 +f 1064/1093/184 1067/1099/184 1068/1096/184 +f 1069/1098/184 1070/1720/184 1068/1096/184 +f 1071/1100/185 1072/1104/185 1070/1101/185 +f 1073/1103/184 1074/1106/184 1072/1104/184 +f 1073/1103/184 1075/1107/184 1076/1105/184 +f 1075/1107/185 1077/1109/185 1078/1108/185 +f 1077/1109/184 1063/1095/184 1066/1094/184 +f 1127/1110/187 1128/1123/187 1129/1111/187 +f 1132/1113/186 1133/1124/186 1134/1114/186 +f 1135/1116/187 1136/1119/187 1137/1117/187 +f 1136/1119/186 1139/1125/186 1140/1120/186 +f 1141/1121/186 1127/1110/186 1130/1112/186 +f 1128/1123/186 1131/1115/186 1134/1114/186 +f 1135/1116/186 1138/1118/186 1133/1124/186 +f 1139/1125/187 1141/1721/187 1142/1126/187 +f 1150/1127/186 1143/1722/186 1144/1128/186 +f 1144/1128/187 1145/1723/187 1146/1129/187 +f 1146/1129/186 1147/1724/186 1150/1127/186 +f 1147/1724/187 1148/1725/187 1150/1127/187 +f 1148/1725/186 1149/1726/186 1150/1127/186 +f 1152/1130/187 1153/1134/187 1154/1131/187 +f 1152/1130/186 1155/1136/186 1156/1133/186 +f 1157/1135/186 1158/1727/186 1156/1133/186 +f 1159/1137/187 1160/1141/187 1158/1138/187 +f 1161/1140/186 1162/1143/186 1160/1141/186 +f 1161/1140/187 1163/1144/187 1164/1142/187 +f 1163/1144/187 1165/1146/187 1166/1145/187 +f 1165/1146/186 1151/1132/186 1154/1131/186 +f 1215/1147/189 1216/1160/189 1217/1148/189 +f 1220/1150/189 1221/1161/189 1222/1151/189 +f 1223/1153/189 1224/1156/189 1225/1154/189 +f 1224/1156/189 1227/1162/189 1228/1157/189 +f 1229/1158/189 1215/1147/189 1218/1149/189 +f 1216/1160/189 1219/1152/189 1222/1151/189 +f 1223/1153/189 1226/1155/189 1221/1161/189 +f 1227/1162/188 1229/1728/188 1230/1163/188 +f 1238/1164/188 1231/1729/188 1232/1165/188 +f 1232/1165/188 1233/1730/188 1234/1166/188 +f 1234/1166/189 1235/1731/189 1238/1164/189 +f 1235/1731/188 1236/1732/188 1238/1164/188 +f 1236/1732/189 1237/1733/189 1238/1164/189 +f 1240/1167/188 1241/1171/188 1242/1168/188 +f 1240/1167/188 1243/1173/188 1244/1170/188 +f 1245/1172/189 1246/1734/189 1244/1170/189 +f 1247/1174/188 1248/1178/188 1246/1175/188 +f 1249/1177/189 1250/1180/189 1248/1178/189 +f 1249/1177/189 1251/1181/189 1252/1179/189 +f 1251/1181/188 1253/1183/188 1254/1182/188 +f 1253/1183/189 1239/1169/189 1242/1168/189 +f 1303/1184/191 1304/1197/191 1305/1185/191 +f 1308/1187/191 1309/1198/191 1310/1188/191 +f 1311/1190/191 1312/1193/191 1313/1191/191 +f 1312/1193/191 1315/1199/191 1316/1194/191 +f 1317/1195/191 1303/1184/191 1306/1186/191 +f 1304/1197/191 1307/1189/191 1310/1188/191 +f 1311/1190/191 1314/1192/191 1309/1198/191 +f 1315/1199/190 1317/1735/190 1318/1200/190 +f 1326/1201/190 1319/1736/190 1320/1202/190 +f 1320/1202/190 1321/1737/190 1322/1203/190 +f 1322/1203/191 1323/1738/191 1326/1201/191 +f 1323/1738/190 1324/1739/190 1326/1201/190 +f 1324/1739/191 1325/1740/191 1326/1201/191 +f 1328/1204/190 1329/1208/190 1330/1205/190 +f 1328/1204/190 1331/1210/190 1332/1207/190 +f 1333/1209/191 1334/1741/191 1332/1207/191 +f 1335/1211/190 1336/1215/190 1334/1212/190 +f 1337/1214/191 1338/1217/191 1336/1215/191 +f 1337/1214/191 1339/1218/191 1340/1216/191 +f 1339/1218/190 1341/1220/190 1342/1219/190 +f 1341/1220/191 1327/1206/191 1330/1205/191 +f 1391/1221/193 1392/1234/193 1393/1222/193 +f 1396/1224/193 1397/1235/193 1398/1225/193 +f 1399/1227/193 1400/1230/193 1401/1228/193 +f 1400/1230/193 1403/1236/193 1404/1231/193 +f 1405/1232/193 1391/1221/193 1394/1223/193 +f 1392/1234/193 1395/1226/193 1398/1225/193 +f 1396/1224/193 1399/1227/193 1402/1229/193 +f 1403/1236/192 1405/1742/192 1406/1237/192 +f 1414/1238/192 1407/1743/192 1408/1239/192 +f 1408/1239/192 1409/1744/192 1410/1240/192 +f 1410/1240/193 1411/1745/193 1412/1746/193 +f 1412/1746/192 1413/1747/192 1410/1240/192 +f 1413/1747/193 1414/1238/193 1410/1240/193 +f 1416/1241/192 1417/1245/192 1418/1242/192 +f 1416/1241/192 1419/1247/192 1420/1244/192 +f 1421/1246/193 1422/1748/193 1420/1244/193 +f 1423/1248/192 1424/1252/192 1422/1249/192 +f 1425/1251/193 1426/1254/193 1424/1252/193 +f 1425/1251/193 1427/1255/193 1428/1253/193 +f 1427/1255/192 1429/1257/192 1430/1256/192 +f 1429/1257/193 1415/1243/193 1418/1242/193 +f 1479/1258/195 1480/1271/195 1481/1259/195 +f 1484/1261/195 1485/1272/195 1486/1262/195 +f 1487/1264/195 1488/1268/195 1489/1265/195 +f 1491/1267/195 1492/1274/195 1489/1265/195 +f 1493/1269/195 1479/1258/195 1482/1260/195 +f 1480/1271/195 1483/1263/195 1486/1262/195 +f 1487/1264/195 1490/1266/195 1485/1272/195 +f 1491/1267/194 1493/1749/194 1494/1273/194 +f 1502/1275/194 1495/1750/194 1496/1276/194 +f 1496/1276/194 1497/1751/194 1498/1277/194 +f 1498/1277/195 1499/1752/195 1502/1275/195 +f 1499/1752/194 1500/1753/194 1502/1275/194 +f 1500/1753/195 1501/1754/195 1502/1275/195 +f 1504/1278/194 1505/1282/194 1506/1279/194 +f 1504/1278/194 1507/1284/194 1508/1281/194 +f 1509/1283/195 1510/1755/195 1508/1281/195 +f 1511/1285/194 1512/1289/194 1510/1286/194 +f 1513/1288/195 1514/1291/195 1512/1289/195 +f 1513/1288/195 1515/1292/195 1516/1290/195 +f 1515/1292/194 1517/1294/194 1518/1293/194 +f 1517/1294/195 1503/1280/195 1506/1279/195 +f 1567/1295/196 1568/1300/196 1569/1296/196 +f 1571/1298/274 1572/1756/274 1570/1297/274 +f 1573/1299/198 1571/1757/198 1569/1296/198 +f 1573/1301/199 1568/1300/199 1567/1295/199 +f 1574/1303/200 1567/1295/200 1570/1297/200 +f 1576/1305/201 1577/1309/201 1578/1306/201 +f 1579/1308/275 1580/1758/275 1578/1306/275 +f 1581/1310/203 1579/1759/203 1577/1309/203 +f 1581/1311/204 1576/1305/204 1575/1307/204 +f 1582/1313/205 1575/1307/205 1578/1306/205 +f 1583/1315/206 1584/1320/206 1585/1316/206 +f 1587/1318/276 1588/1760/276 1586/1317/276 +f 1589/1319/208 1587/1761/208 1585/1316/208 +f 1589/1321/209 1584/1320/209 1583/1315/209 +f 1590/1323/210 1583/1315/210 1586/1317/210 +f 1591/1325/211 1592/1330/211 1593/1326/211 +f 1595/1328/277 1596/1762/277 1594/1327/277 +f 1597/1329/213 1595/1763/213 1593/1326/213 +f 1597/1331/214 1592/1330/214 1591/1325/214 +f 1598/1333/215 1591/1325/215 1594/1327/215 +f 1599/1335/216 1600/1340/216 1601/1336/216 +f 1603/1338/278 1604/1764/278 1602/1337/278 +f 1605/1339/218 1603/1765/218 1601/1336/218 +f 1605/1341/219 1600/1340/219 1599/1335/219 +f 1606/1343/220 1599/1335/220 1602/1337/220 +f 1608/1345/221 1609/1349/221 1610/1346/221 +f 1611/1348/279 1612/1766/279 1610/1346/279 +f 1613/1350/223 1611/1767/223 1609/1349/223 +f 1613/1351/224 1608/1345/224 1607/1347/224 +f 1614/1353/225 1607/1347/225 1610/1346/225 +f 1615/1355/226 1616/1360/226 1617/1356/226 +f 1619/1358/280 1620/1768/280 1618/1357/280 +f 1621/1359/228 1619/1769/228 1617/1356/228 +f 1621/1361/229 1616/1360/229 1615/1355/229 +f 1622/1363/230 1615/1355/230 1618/1357/230 +f 1624/1365/231 1625/1369/231 1626/1366/231 +f 1627/1368/281 1628/1770/281 1626/1366/281 +f 1629/1370/233 1627/1771/233 1625/1369/233 +f 1629/1371/234 1624/1365/234 1623/1367/234 +f 1630/1373/235 1623/1367/235 1626/1366/235 +f 1631/1375/236 1632/1380/236 1633/1376/236 +f 1635/1378/282 1636/1772/282 1634/1377/282 +f 1637/1379/238 1635/1773/238 1633/1376/238 +f 1637/1381/239 1632/1380/239 1631/1375/239 +f 1638/1383/240 1631/1375/240 1634/1377/240 +f 1639/1385/241 1640/1390/241 1641/1386/241 +f 1643/1388/283 1644/1774/283 1642/1387/283 +f 1645/1389/243 1643/1775/243 1641/1386/243 +f 1645/1391/244 1640/1390/244 1639/1385/244 +f 1646/1393/245 1639/1385/245 1642/1387/245 +f 1647/1395/246 1648/1400/246 1649/1396/246 +f 1651/1398/284 1652/1776/284 1650/1397/284 +f 1653/1399/248 1651/1777/248 1649/1396/248 +f 1653/1401/249 1648/1400/249 1647/1395/249 +f 1654/1403/250 1647/1395/250 1650/1397/250 +f 1655/1405/251 1656/1410/251 1657/1406/251 +f 1659/1408/285 1660/1778/285 1658/1407/285 +f 1661/1409/253 1659/1779/253 1657/1406/253 +f 1661/1411/254 1656/1410/254 1655/1405/254 +f 1662/1413/255 1655/1405/255 1658/1407/255 +f 1663/1415/256 1664/1420/256 1665/1416/256 +f 1667/1418/286 1668/1780/286 1666/1417/286 +f 1669/1419/258 1667/1781/258 1665/1416/258 +f 1669/1421/259 1664/1420/259 1663/1415/259 +f 1670/1423/260 1663/1415/260 1666/1417/260 +f 1672/1425/261 1673/1429/261 1674/1426/261 +f 1675/1428/287 1676/1782/287 1674/1426/287 +f 1677/1430/263 1675/1783/263 1673/1429/263 +f 1677/1431/264 1672/1425/264 1671/1427/264 +f 1678/1433/265 1671/1427/265 1674/1426/265 +f 1679/1435/266 1680/1440/266 1681/1436/266 +f 1683/1438/288 1684/1784/288 1682/1437/288 +f 1685/1439/268 1683/1785/268 1681/1436/268 +f 1685/1441/269 1680/1440/269 1679/1435/269 +f 1686/1443/270 1679/1435/270 1682/1437/270 +f 1757/1447/124 1688/1786/124 1687/1787/124 +f 1687/1787/124 1691/1445/124 1757/1447/124 +f 297/423/130 1689/846/130 1687/1448/130 +f 389/862/130 298/421/130 1687/1448/130 +f 651/1450/151 1762/1788/151 1768/1451/151 +f 1691/1453/130 1693/1789/130 1694/1454/130 +f 1757/1456/133 1692/1790/133 1694/1457/133 +f 1689/1459/132 1693/1791/132 1691/1460/132 +f 1693/1464/126 1689/1792/126 1758/1462/126 +f 1689/1792/126 1690/1793/126 1758/1462/126 +f 1690/1465/126 1766/1794/126 1770/1466/126 +f 655/1468/125 1764/1795/125 1771/1469/125 +f 1760/1471/143 1772/1796/143 1763/1472/143 +f 1775/1483/151 1773/1797/151 1774/1484/151 +f 1778/1486/130 1780/1798/130 1779/1487/130 +f 1783/1492/143 1781/1799/143 1782/1493/143 +f 1785/1032/132 1770/1031/132 1767/1027/132 +f 1770/1031/132 1766/1800/132 390/1495/132 +f 390/1495/132 1761/1801/132 1767/1027/132 +f 1768/1028/132 1762/1802/132 227/1496/132 +f 239/526/132 1763/1803/132 1772/1497/132 +f 1788/1498/127 1789/1512/127 1790/1499/127 +f 1792/1501/130 1793/1510/130 1794/1502/130 +f 1796/1504/124 1797/1514/124 1798/1505/124 +f 1800/1507/126 1801/1511/126 1802/1508/126 +f 1799/1509/151 1802/1508/151 1793/1510/151 +f 1801/1511/125 1800/1507/125 1790/1499/125 +f 1787/1513/128 1798/1505/128 1797/1514/128 +f 1794/1502/143 1796/1504/143 1795/1506/143 +f 1805/1538/132 1800/1537/132 1804/1518/132 +f 1800/1537/132 1799/1516/132 1804/1518/132 +f 1803/1517/132 1799/1516/132 1807/1521/132 +f 1799/1516/132 1792/1519/132 1807/1521/132 +f 1806/1520/132 1792/1519/132 1809/1524/132 +f 1792/1519/132 1791/1522/132 1809/1524/132 +f 1808/1523/132 1791/1522/132 1811/1527/132 +f 1791/1522/132 1795/1525/132 1811/1527/132 +f 1810/1526/132 1795/1525/132 1813/1530/132 +f 1795/1525/132 1798/1528/132 1813/1530/132 +f 1812/1529/132 1798/1528/132 1815/1533/132 +f 1798/1528/132 1787/1531/132 1815/1533/132 +f 1814/1532/132 1787/1531/132 1817/1536/132 +f 1787/1531/132 1790/1534/132 1817/1536/132 +f 1816/1535/132 1790/1534/132 1818/1539/132 +f 1790/1534/132 1800/1537/132 1818/1539/132 +f 1834/1542/132 1819/1804/132 1820/1805/132 +f 1820/1805/132 1821/1806/132 1822/1807/132 +f 1822/1807/132 1823/1808/132 1824/1809/132 +f 1824/1809/132 1825/1810/132 1826/1540/132 +f 1826/1540/132 1827/1811/132 1828/1812/132 +f 1828/1812/132 1829/1813/132 1830/1541/132 +f 1830/1541/132 1831/1814/132 1832/1815/132 +f 1832/1815/132 1833/1816/132 1834/1542/132 +f 1834/1542/132 1820/1805/132 1826/1540/132 +f 1820/1805/132 1822/1807/132 1826/1540/132 +f 1822/1807/132 1824/1809/132 1826/1540/132 +f 1826/1540/132 1828/1812/132 1830/1541/132 +f 1830/1541/132 1832/1815/132 1834/1542/132 +f 1793/1545/133 1802/1548/133 1836/1543/133 +f 1802/1548/133 1835/1547/133 1836/1543/133 +f 1802/1548/133 1801/1551/133 1839/1546/133 +f 1801/1551/133 1838/1550/133 1839/1546/133 +f 1801/1551/133 1789/1554/133 1841/1549/133 +f 1789/1554/133 1840/1553/133 1841/1549/133 +f 1789/1554/133 1788/1557/133 1843/1552/133 +f 1788/1557/133 1842/1556/133 1843/1552/133 +f 1788/1557/133 1797/1560/133 1845/1555/133 +f 1797/1560/133 1844/1559/133 1845/1555/133 +f 1797/1560/133 1796/1563/133 1847/1558/133 +f 1796/1563/133 1846/1562/133 1847/1558/133 +f 1796/1563/133 1794/1566/133 1849/1561/133 +f 1794/1566/133 1848/1565/133 1849/1561/133 +f 1794/1566/133 1793/1545/133 1850/1564/133 +f 1793/1545/133 1837/1544/133 1850/1564/133 +s 1 +f 754/1817/289 756/1818/290 757/1819/291 +f 759/1820/149 761/1821/292 758/1822/293 +f 763/1823/294 765/1824/295 762/1825/296 +f 766/1826/297 764/1827/298 763/1823/294 +f 768/1828/147 757/1819/291 769/1829/299 +f 755/1830/300 761/1821/292 756/1818/290 +f 759/1820/149 765/1824/295 760/1831/301 +f 768/1832/147 767/1833/302 766/1826/297 +f 765/1824/295 770/1834/303 771/1835/304 +f 760/1831/301 773/1836/305 761/1821/292 +f 756/1818/290 775/1837/306 757/1819/291 +f 769/1838/299 777/1839/307 767/1833/302 +f 760/1831/301 771/1835/304 772/1840/308 +f 761/1821/292 774/1841/309 756/1818/290 +f 769/1829/299 775/1837/306 776/1842/144 +f 764/1827/298 777/1839/307 770/1834/303 +f 776/1842/144 778/1843/310 779/1844/133 +f 770/1834/303 780/1845/311 781/1846/312 +f 770/1834/303 782/1847/313 771/1835/304 +f 772/1840/308 784/1848/314 773/1836/305 +f 774/1841/309 778/1843/310 775/1837/306 +f 776/1849/144 780/1845/311 777/1839/307 +f 772/1840/308 782/1847/313 783/1850/132 +f 774/1841/309 784/1848/314 785/1851/315 +f 782/1847/313 787/1852/316 783/1850/132 +f 785/1851/315 788/1853/317 789/1854/318 +f 779/1844/133 790/1855/319 791/1856/320 +f 780/1845/311 793/1857/321 781/1846/312 +f 781/1846/312 786/1858/322 782/1847/313 +f 784/1848/314 787/1852/316 788/1853/317 +f 778/1843/310 789/1854/318 790/1855/319 +f 779/1859/133 792/1860/323 780/1845/311 +f 795/1861/324 310/436/325 794/1862/325 +f 797/1863/326 315/438/327 796/1864/327 +f 798/1865/328 305/432/329 302/440/328 +f 801/1866/330 306/430/331 800/1867/331 +f 795/1861/324 315/1583/327 313/442/324 +f 797/1863/326 302/440/328 301/427/326 +f 800/1867/331 305/432/329 799/1868/329 +f 794/1862/325 309/433/330 801/1866/330 +f 318/1869/329 327/451/328 330/450/329 +f 312/435/330 326/447/325 325/449/330 +f 318/1869/329 332/1589/331 319/1870/331 +f 314/437/324 326/447/325 311/434/325 +f 320/1871/330 332/455/331 334/458/330 +f 316/443/327 329/453/324 314/437/324 +f 320/1871/330 336/460/325 321/1872/325 +f 304/429/332 331/456/327 316/439/327 +f 307/441/331 325/449/330 339/463/331 +f 324/1873/326 327/451/328 317/1874/328 +f 307/441/331 337/461/329 308/431/329 +f 324/1873/326 340/462/327 328/448/326 +f 303/428/328 337/461/329 335/457/328 +f 322/1875/324 340/462/327 323/1876/327 +f 303/428/328 333/454/332 304/429/332 +f 322/1875/324 336/460/325 338/459/324 +f 803/1877/333 349/476/334 802/1878/334 +f 805/1879/325 363/482/335 804/1880/335 +f 807/1881/336 367/489/337 806/1882/337 +f 809/1883/328 371/492/338 808/1884/338 +f 802/1878/334 361/481/325 805/1879/325 +f 804/1880/335 365/486/336 807/1885/336 +f 806/1882/337 369/491/328 809/1883/328 +f 808/1884/338 350/474/333 803/1877/333 +f 351/1592/333 374/1603/334 352/475/334 +f 360/1886/336 387/519/335 353/1887/335 +f 359/1888/337 376/498/336 360/1889/336 +f 352/1598/334 378/1604/325 362/480/325 +f 358/1890/328 373/501/337 359/1891/337 +f 362/483/325 380/502/335 364/484/335 +f 357/1892/338 377/503/328 358/1893/328 +f 364/1599/335 382/505/336 366/485/336 +f 372/1602/338 375/1610/333 351/495/333 +f 353/1894/335 385/516/325 354/1895/325 +f 370/493/328 388/1609/338 372/494/338 +f 354/1896/325 383/513/334 355/1897/334 +f 368/1601/337 386/1608/328 370/490/328 +f 355/1898/334 381/509/333 356/1899/333 +f 366/1600/336 384/508/337 368/488/337 +f 356/1900/333 379/506/338 357/1901/338 +f 810/1902/339 619/1903/172 618/1904/339 +f 812/1905/124 622/1906/340 621/1907/124 +f 624/838/341 631/1908/342 625/839/341 +f 810/1902/339 617/1909/343 814/1910/343 +f 815/1911/344 621/1907/124 620/1912/344 +f 633/844/342 630/1913/345 631/1908/342 +f 816/1914/346 615/1915/347 614/1916/346 +f 627/1917/348 617/1909/343 616/1918/348 +f 815/1911/344 619/1903/172 811/1919/172 +f 632/1920/345 629/1921/126 630/1913/345 +f 816/1914/346 622/1906/340 813/1922/340 +f 626/840/349 629/1921/126 817/1923/126 +f 819/1924/342 639/1925/154 818/1926/154 +f 820/1927/124 637/1928/340 636/1929/124 +f 822/1930/350 644/1931/343 643/1932/350 +f 824/1933/339 634/1934/172 645/1935/339 +f 819/1924/342 641/1936/345 640/1937/342 +f 827/1938/346 637/1928/340 821/1939/340 +f 824/1940/339 644/1931/343 823/1941/343 +f 828/1942/344 634/1934/172 825/1943/172 +f 829/1944/126 641/1936/345 826/1945/345 +f 827/1938/346 639/1925/154 638/1946/346 +f 820/1927/124 635/1947/344 828/1942/344 +f 829/1944/126 643/1932/350 642/1948/126 +f 831/1949/351 833/1950/352 830/1951/353 +f 835/1952/354 837/1953/355 834/1954/356 +f 839/1955/357 841/1956/358 838/1957/359 +f 843/1958/360 845/1959/361 842/1960/362 +f 845/1959/361 839/1955/357 838/1957/359 +f 846/1961/363 843/1958/360 842/1960/362 +f 844/1962/364 849/1963/365 839/1955/357 +f 847/1964/366 851/1965/367 843/1958/360 +f 839/1955/357 852/1966/368 840/1967/369 +f 851/1965/367 844/1962/364 843/1958/360 +f 854/1968/357 856/1969/358 853/1970/359 +f 858/1971/360 860/1972/361 857/1973/362 +f 860/1972/361 854/1968/357 853/1970/359 +f 862/1974/366 857/1973/362 861/1975/363 +f 859/1976/364 864/1977/365 854/1968/357 +f 862/1974/366 866/1978/367 858/1971/360 +f 864/1977/365 855/1979/369 854/1968/357 +f 866/1978/367 859/1976/364 858/1971/360 +f 869/1980/357 871/1981/358 868/1982/359 +f 873/1983/370 875/1984/361 872/1985/362 +f 875/1984/361 869/1980/357 868/1982/359 +f 877/1986/366 872/1985/362 876/1987/363 +f 874/1988/364 879/1989/365 869/1980/357 +f 880/1990/371 873/1983/370 877/1986/366 +f 869/1980/357 882/1991/368 870/1992/369 +f 881/1993/367 874/1988/364 873/1983/370 +f 841/1956/358 884/1994/130 838/1957/359 +f 856/1969/358 886/1995/130 853/1970/359 +f 838/1957/359 887/1996/143 845/1959/361 +f 845/1959/361 888/1997/124 842/1960/362 +f 871/1981/358 890/1998/130 868/1982/359 +f 853/1970/359 891/1999/143 860/1972/361 +f 842/1960/362 892/2000/337 846/1961/363 +f 860/1972/361 893/2001/124 857/1973/362 +f 868/1982/359 894/2002/143 875/1984/361 +f 875/1984/361 895/2003/124 872/1985/362 +f 857/1973/362 896/2004/337 861/1975/363 +f 872/1985/362 897/2005/337 876/1987/363 +f 831/1949/351 837/1953/355 832/2006/372 +f 898/2007/373 833/1950/352 899/2008/374 +f 832/2006/372 900/2009/375 901/2010/376 +f 899/2008/374 902/2011/377 903/2012/378 +f 837/1953/355 904/2013/379 900/2009/375 +f 832/2006/372 902/2011/377 833/1950/352 +f 906/2014/354 908/2015/355 905/2016/356 +f 910/2017/351 912/2018/352 909/2019/353 +f 910/2017/351 908/2015/355 911/2020/372 +f 909/2019/353 914/2021/374 913/2022/373 +f 911/2020/372 915/2023/375 916/2024/376 +f 914/2021/374 917/2025/377 918/2026/378 +f 907/2027/380 915/2023/375 908/2015/355 +f 911/2020/372 917/2025/377 912/2018/352 +f 921/2028/354 923/2029/355 920/2030/356 +f 925/2031/351 927/2032/381 924/2033/353 +f 925/2031/351 923/2029/355 926/2034/372 +f 924/2033/353 929/2035/374 928/2036/373 +f 926/2034/372 930/2037/375 931/2038/376 +f 927/2032/381 933/2039/378 929/2035/374 +f 923/2029/355 934/2040/379 930/2037/375 +f 926/2034/372 932/2041/377 927/2032/381 +f 935/2042/130 835/1952/354 834/1954/356 +f 937/2043/130 906/2014/354 905/2016/356 +f 939/2044/151 834/1954/356 831/1949/351 +f 940/2045/126 831/1949/351 830/1951/353 +f 941/2046/130 921/2028/354 920/2030/356 +f 943/2047/151 905/2016/356 910/2017/351 +f 944/2048/325 830/1951/353 898/2007/373 +f 945/2049/126 910/2017/351 909/2019/353 +f 946/2050/151 920/2030/356 925/2031/351 +f 947/2051/126 925/2031/351 924/2033/353 +f 948/2052/325 909/2019/353 913/2022/373 +f 949/2053/325 924/2033/353 928/2036/373 +f 991/2054/382 993/2055/383 994/2056/384 +f 996/2057/145 998/2058/385 995/2059/386 +f 1000/2060/387 1002/2061/388 999/2062/389 +f 1003/2063/390 1001/2064/391 1000/2060/387 +f 1005/2065/146 994/2056/384 1006/2066/392 +f 995/2059/386 993/2055/383 992/2067/393 +f 996/2057/145 1002/2061/388 997/2068/394 +f 1005/2069/146 1004/2070/395 1003/2063/390 +f 1002/2061/388 1007/2071/396 1008/2072/397 +f 997/2068/394 1010/2073/398 998/2058/385 +f 993/2055/383 1012/2074/399 994/2056/384 +f 1006/2075/392 1014/2076/400 1004/2070/395 +f 997/2068/394 1008/2072/397 1009/2077/148 +f 998/2058/385 1011/2078/401 993/2055/383 +f 1006/2066/392 1012/2074/399 1013/2079/150 +f 1001/2064/391 1014/2076/400 1007/2071/396 +f 1013/2079/150 1015/2080/311 1016/2081/133 +f 1007/2071/396 1017/2082/310 1018/2083/315 +f 1007/2071/396 1019/2084/402 1008/2072/397 +f 1009/2077/148 1021/2085/403 1010/2073/398 +f 1011/2078/401 1015/2080/311 1012/2074/399 +f 1013/2086/150 1017/2082/310 1014/2076/400 +f 1009/2077/148 1019/2084/402 1020/2087/132 +f 1011/2078/401 1021/2085/403 1022/2088/312 +f 1019/2084/402 1024/2089/404 1020/2087/132 +f 1022/2088/312 1025/2090/405 1026/2091/406 +f 1016/2081/133 1027/2092/407 1028/2093/408 +f 1017/2082/310 1030/2094/409 1018/2083/315 +f 1018/2083/315 1023/2095/410 1019/2084/402 +f 1021/2085/403 1024/2089/404 1025/2090/405 +f 1015/2080/311 1026/2091/406 1027/2092/407 +f 1016/2096/133 1029/2097/411 1017/2082/310 +f 1032/2098/412 960/1045/328 1031/2099/328 +f 1034/2100/413 965/1047/414 1033/2101/414 +f 1035/2102/325 955/1041/415 952/1049/325 +f 1038/2103/416 956/1039/417 1037/2104/417 +f 1032/2098/412 965/1707/414 963/1051/412 +f 1034/2100/413 952/1049/325 951/1036/413 +f 1037/2104/417 955/1041/415 1036/2105/415 +f 1031/2099/328 959/1042/416 1038/2103/416 +f 968/2106/415 977/1060/325 980/1059/415 +f 962/1044/416 976/1056/328 975/1058/416 +f 968/2106/415 982/1713/417 969/2107/417 +f 964/1046/412 976/1056/328 961/1043/328 +f 970/2108/416 982/1064/417 984/1067/416 +f 966/1052/414 979/1062/412 964/1046/412 +f 970/2108/416 986/1066/328 971/2109/328 +f 954/1038/418 981/1065/414 966/1048/414 +f 957/1050/417 975/1058/416 989/1072/417 +f 974/2110/413 977/1060/325 967/2111/325 +f 957/1050/417 987/1070/415 958/1040/415 +f 974/2110/413 990/1071/414 978/1057/413 +f 953/1037/325 987/1070/415 985/1068/325 +f 972/2112/412 990/1071/414 973/2113/414 +f 953/1037/325 983/1063/418 954/1038/418 +f 972/2112/412 986/1066/328 988/1069/412 +f 1079/2114/419 1081/2115/420 1082/2116/421 +f 1084/2117/422 1086/2118/423 1083/2119/424 +f 1088/2120/425 1090/2121/426 1087/2122/427 +f 1091/2123/428 1089/2124/429 1088/2120/425 +f 1093/2125/430 1082/2116/421 1094/2126/431 +f 1083/2119/424 1081/2115/420 1080/2127/432 +f 1084/2117/422 1090/2121/426 1085/2128/433 +f 1093/2129/430 1092/2130/434 1091/2123/428 +f 1090/2121/426 1095/2131/435 1096/2132/436 +f 1085/2128/433 1098/2133/437 1086/2118/423 +f 1081/2115/420 1100/2134/438 1082/2116/421 +f 1094/2135/431 1102/2136/439 1092/2130/434 +f 1085/2128/433 1096/2132/436 1097/2137/440 +f 1086/2118/423 1099/2138/441 1081/2115/420 +f 1094/2126/431 1100/2134/438 1101/2139/442 +f 1089/2124/429 1102/2136/439 1095/2131/435 +f 1101/2139/442 1103/2140/443 1104/2141/133 +f 1095/2131/435 1105/2142/444 1106/2143/445 +f 1095/2131/435 1107/2144/446 1096/2132/436 +f 1097/2137/440 1109/2145/447 1098/2133/437 +f 1099/2138/441 1103/2140/443 1100/2134/438 +f 1101/2146/442 1105/2142/444 1102/2136/439 +f 1097/2137/440 1107/2144/446 1108/2147/132 +f 1099/2138/441 1109/2145/447 1110/2148/448 +f 1107/2144/446 1112/2149/449 1108/2147/132 +f 1110/2148/448 1113/2150/450 1114/2151/451 +f 1104/2141/133 1115/2152/452 1116/2153/453 +f 1105/2142/444 1118/2154/454 1106/2143/445 +f 1106/2143/445 1111/2155/455 1107/2144/446 +f 1109/2145/447 1112/2149/449 1113/2150/450 +f 1103/2140/443 1114/2151/451 1115/2152/452 +f 1104/2156/133 1117/2157/456 1105/2142/444 +f 1120/2158/457 1048/1082/336 1119/2159/336 +f 1122/2160/458 1053/1084/459 1121/2161/459 +f 1123/2162/333 1043/1078/460 1040/1086/333 +f 1126/2163/461 1044/1076/462 1125/2164/462 +f 1120/2158/457 1053/1714/459 1051/1088/457 +f 1122/2160/458 1040/1086/333 1039/1073/458 +f 1124/2165/460 1044/1076/462 1043/1078/460 +f 1119/2159/336 1047/1079/461 1126/2163/461 +f 1056/2166/460 1065/1097/333 1068/1096/460 +f 1050/1081/461 1064/1093/336 1063/1095/461 +f 1056/2166/460 1070/1720/462 1057/2167/462 +f 1052/1083/457 1064/1093/336 1049/1080/336 +f 1058/2168/461 1070/1101/462 1072/1104/461 +f 1054/1089/459 1067/1099/457 1052/1083/457 +f 1058/2168/461 1074/1106/336 1059/2169/336 +f 1042/1075/463 1069/1102/459 1054/1085/459 +f 1045/1087/462 1063/1095/461 1077/1109/462 +f 1062/2170/458 1065/1097/333 1055/2171/333 +f 1045/1087/462 1075/1107/460 1046/1077/460 +f 1062/2170/458 1078/1108/459 1066/1094/458 +f 1046/1077/460 1073/1103/333 1041/1074/333 +f 1060/2172/457 1078/1108/459 1061/2173/459 +f 1041/1074/333 1071/1100/463 1042/1075/463 +f 1060/2172/457 1074/1106/336 1076/1105/457 +f 1167/2174/464 1169/2175/465 1170/2176/466 +f 1172/2177/467 1174/2178/468 1171/2179/469 +f 1176/2180/470 1178/2181/471 1175/2182/472 +f 1179/2183/473 1177/2184/474 1176/2180/470 +f 1181/2185/475 1170/2176/466 1182/2186/476 +f 1168/2187/477 1174/2178/468 1169/2175/465 +f 1172/2177/467 1178/2181/471 1173/2188/478 +f 1181/2189/475 1180/2190/479 1179/2183/473 +f 1178/2181/471 1183/2191/480 1184/2192/481 +f 1173/2188/478 1186/2193/482 1174/2178/468 +f 1169/2175/465 1188/2194/483 1170/2176/466 +f 1182/2195/476 1190/2196/484 1180/2190/479 +f 1173/2188/478 1184/2192/481 1185/2197/485 +f 1174/2178/468 1187/2198/486 1169/2175/465 +f 1182/2186/476 1188/2194/483 1189/2199/487 +f 1177/2184/474 1190/2196/484 1183/2191/480 +f 1189/2199/487 1191/2200/444 1192/2201/133 +f 1183/2191/480 1193/2202/443 1194/2203/448 +f 1183/2191/480 1195/2204/488 1184/2192/481 +f 1185/2197/485 1197/2205/489 1186/2193/482 +f 1187/2198/486 1191/2200/444 1188/2194/483 +f 1189/2206/487 1193/2202/443 1190/2196/484 +f 1185/2197/485 1195/2204/488 1196/2207/132 +f 1187/2198/486 1197/2205/489 1198/2208/445 +f 1195/2204/488 1200/2209/490 1196/2207/132 +f 1198/2208/445 1201/2210/491 1202/2211/492 +f 1192/2201/133 1203/2212/493 1204/2213/494 +f 1193/2202/443 1206/2214/495 1194/2203/448 +f 1194/2203/448 1199/2215/496 1195/2204/488 +f 1197/2205/489 1200/2209/490 1201/2210/491 +f 1191/2200/444 1202/2211/492 1203/2212/493 +f 1192/2216/133 1205/2217/497 1193/2202/443 +f 1208/2218/498 1136/1119/333 1207/2219/333 +f 1210/2220/499 1141/1121/500 1209/2221/500 +f 1211/2222/336 1131/1115/501 1128/1123/336 +f 1213/2223/502 1135/1116/503 1132/1113/502 +f 1208/2218/498 1141/1721/500 1139/1125/498 +f 1210/2220/499 1128/1123/336 1127/1110/499 +f 1213/2223/502 1131/1115/501 1212/2224/501 +f 1207/2219/333 1135/1116/503 1214/2225/503 +f 1144/2226/501 1153/1134/336 1156/1133/501 +f 1138/1118/503 1152/1130/333 1151/1132/503 +f 1144/2226/501 1158/1727/502 1145/2227/502 +f 1140/1120/498 1152/1130/333 1137/1117/333 +f 1146/2228/503 1158/1138/502 1160/1141/503 +f 1142/1126/500 1155/1136/498 1140/1120/498 +f 1146/2228/503 1162/1143/333 1147/2229/333 +f 1130/1112/504 1157/1139/500 1142/1122/500 +f 1133/1124/502 1151/1132/503 1165/1146/502 +f 1150/2230/499 1153/1134/336 1143/2231/336 +f 1133/1124/502 1163/1144/505 1134/1114/501 +f 1150/2230/499 1166/1145/500 1154/1131/499 +f 1134/1114/501 1161/1140/336 1129/1111/336 +f 1148/2232/498 1166/1145/500 1149/2233/500 +f 1129/1111/336 1159/1137/504 1130/1112/504 +f 1148/2232/498 1162/1143/333 1164/1142/498 +f 1255/2234/506 1257/2235/507 1258/2236/508 +f 1260/2237/509 1262/2238/510 1259/2239/511 +f 1264/2240/512 1266/2241/513 1263/2242/514 +f 1267/2243/515 1265/2244/516 1264/2240/512 +f 1269/2245/517 1258/2236/508 1270/2246/518 +f 1256/2247/519 1262/2238/510 1257/2235/507 +f 1260/2237/509 1266/2241/513 1261/2248/520 +f 1269/2249/517 1268/2250/521 1267/2243/515 +f 1266/2241/513 1271/2251/522 1272/2252/523 +f 1261/2248/520 1274/2253/524 1262/2238/510 +f 1257/2235/507 1276/2254/525 1258/2236/508 +f 1270/2255/518 1278/2256/526 1268/2250/521 +f 1261/2248/520 1272/2252/523 1273/2257/376 +f 1262/2238/510 1275/2258/527 1257/2235/507 +f 1270/2246/518 1276/2254/525 1277/2259/528 +f 1265/2244/516 1278/2256/526 1271/2251/522 +f 1277/2259/528 1279/2260/529 1280/2261/133 +f 1271/2251/522 1281/2262/530 1282/2263/531 +f 1271/2251/522 1283/2264/532 1272/2252/523 +f 1273/2257/376 1285/2265/533 1274/2253/524 +f 1275/2258/527 1279/2260/529 1276/2254/525 +f 1277/2266/528 1281/2262/530 1278/2256/526 +f 1273/2257/376 1283/2264/532 1284/2267/132 +f 1275/2258/527 1285/2265/533 1286/2268/534 +f 1283/2264/532 1288/2269/535 1284/2267/132 +f 1286/2268/534 1289/2270/536 1290/2271/537 +f 1280/2261/133 1291/2272/538 1292/2273/539 +f 1281/2262/530 1294/2274/540 1282/2263/531 +f 1282/2263/531 1287/2275/541 1283/2264/532 +f 1285/2265/533 1288/2269/535 1289/2270/536 +f 1279/2260/529 1290/2271/537 1291/2272/538 +f 1280/2276/133 1293/2277/542 1281/2262/530 +f 1296/2278/543 1224/1156/335 1295/2279/335 +f 1298/2280/544 1229/1158/545 1297/2281/545 +f 1299/2282/338 1219/1152/546 1216/1160/338 +f 1302/2283/547 1220/1150/548 1301/2284/548 +f 1296/2278/543 1229/1728/545 1227/1162/543 +f 1298/2280/544 1216/1160/338 1215/1147/544 +f 1300/2285/546 1220/1150/548 1219/1152/546 +f 1295/2279/335 1223/1153/547 1302/2283/547 +f 1232/2286/546 1241/1171/338 1244/1170/546 +f 1226/1155/547 1240/1167/335 1239/1169/547 +f 1232/2286/546 1246/1734/548 1233/2287/548 +f 1228/1157/543 1240/1167/335 1225/1154/335 +f 1234/2288/547 1246/1175/548 1248/1178/547 +f 1230/1163/545 1243/1173/543 1228/1157/543 +f 1234/2288/547 1250/1180/335 1235/2289/335 +f 1218/1149/549 1245/1176/545 1230/1159/545 +f 1221/1161/548 1239/1169/547 1253/1183/548 +f 1238/2290/544 1241/1171/338 1231/2291/338 +f 1221/1161/548 1251/1181/546 1222/1151/546 +f 1238/2290/544 1254/1182/545 1242/1168/544 +f 1222/1151/546 1249/1177/338 1217/1148/338 +f 1236/2292/543 1254/1182/545 1237/2293/545 +f 1217/1148/338 1247/1174/549 1218/1149/549 +f 1236/2292/543 1250/1180/335 1252/1179/543 +f 1343/2294/550 1345/2295/551 1346/2296/552 +f 1348/2297/553 1350/2298/554 1347/2299/555 +f 1352/2300/556 1354/2301/557 1351/2302/558 +f 1355/2303/559 1353/2304/560 1352/2300/556 +f 1357/2305/561 1346/2296/552 1358/2306/562 +f 1344/2307/563 1350/2298/554 1345/2295/551 +f 1351/2302/558 1349/2308/564 1348/2297/553 +f 1357/2309/561 1356/2310/565 1355/2303/559 +f 1354/2301/557 1359/2311/566 1360/2312/567 +f 1349/2308/564 1362/2313/568 1350/2298/554 +f 1345/2295/551 1364/2314/569 1346/2296/552 +f 1358/2315/562 1366/2316/570 1356/2310/565 +f 1349/2308/564 1360/2312/567 1361/2317/571 +f 1350/2298/554 1363/2318/572 1345/2295/551 +f 1358/2306/562 1364/2314/569 1365/2319/573 +f 1353/2304/560 1366/2316/570 1359/2311/566 +f 1364/2314/569 1368/2320/133 1365/2319/573 +f 1359/2311/566 1369/2321/529 1370/2322/534 +f 1359/2311/566 1371/2323/533 1360/2312/567 +f 1361/2317/571 1373/2324/532 1362/2313/568 +f 1363/2318/572 1367/2325/530 1364/2314/569 +f 1365/2326/573 1369/2321/529 1366/2316/570 +f 1361/2317/571 1371/2323/533 1372/2327/132 +f 1363/2318/572 1373/2324/532 1374/2328/531 +f 1371/2323/533 1376/2329/574 1372/2327/132 +f 1374/2328/531 1377/2330/575 1378/2331/576 +f 1368/2320/133 1379/2332/577 1380/2333/578 +f 1369/2321/529 1382/2334/579 1370/2322/534 +f 1370/2322/534 1375/2335/580 1371/2323/533 +f 1373/2324/532 1376/2329/574 1377/2330/575 +f 1367/2325/530 1378/2331/576 1379/2332/577 +f 1368/2336/133 1381/2337/581 1369/2321/529 +f 1384/2338/582 1312/1193/338 1383/2339/338 +f 1386/2340/583 1317/1195/584 1385/2341/584 +f 1387/2342/335 1307/1189/585 1304/1197/335 +f 1390/2343/586 1308/1187/587 1389/2344/587 +f 1384/2338/582 1317/1735/584 1315/1199/582 +f 1386/2340/583 1304/1197/335 1303/1184/583 +f 1389/2344/587 1307/1189/585 1388/2345/585 +f 1383/2339/338 1311/1190/586 1390/2343/586 +f 1320/2346/585 1329/1208/335 1332/1207/585 +f 1314/1192/586 1328/1204/338 1327/1206/586 +f 1320/2346/585 1334/1741/587 1321/2347/587 +f 1313/1191/338 1331/1210/582 1328/1204/338 +f 1322/2348/586 1334/1212/587 1336/1215/586 +f 1318/1200/584 1331/1210/582 1316/1194/588 +f 1322/2348/586 1338/1217/338 1323/2349/338 +f 1306/1186/589 1333/1213/584 1318/1196/584 +f 1309/1198/587 1327/1206/586 1341/1220/587 +f 1326/2350/583 1329/1208/335 1319/2351/335 +f 1309/1198/587 1339/1218/590 1310/1188/585 +f 1326/2350/583 1342/1219/584 1330/1205/583 +f 1310/1188/585 1337/1214/335 1305/1185/335 +f 1324/2352/582 1342/1219/584 1325/2353/584 +f 1305/1185/335 1335/1211/589 1306/1186/589 +f 1324/2352/582 1338/1217/338 1340/1216/582 +f 1431/2354/591 1433/2355/592 1434/2356/593 +f 1436/2357/594 1438/2358/595 1435/2359/596 +f 1440/2360/597 1442/2361/598 1439/2362/599 +f 1443/2363/600 1441/2364/601 1440/2360/597 +f 1445/2365/602 1434/2356/593 1446/2366/603 +f 1435/2359/596 1433/2355/592 1432/2367/604 +f 1436/2357/594 1442/2361/598 1437/2368/605 +f 1445/2369/602 1444/2370/606 1443/2363/600 +f 1442/2361/598 1447/2371/607 1448/2372/608 +f 1437/2368/605 1450/2373/609 1438/2358/595 +f 1433/2355/592 1452/2374/610 1434/2356/593 +f 1446/2375/603 1454/2376/611 1444/2370/606 +f 1437/2368/605 1448/2372/608 1449/2377/612 +f 1438/2358/595 1451/2378/613 1433/2355/592 +f 1446/2366/603 1452/2374/610 1453/2379/614 +f 1441/2364/601 1454/2376/611 1447/2371/607 +f 1453/2379/614 1455/2380/615 1456/2381/133 +f 1447/2371/607 1457/2382/616 1458/2383/617 +f 1447/2371/607 1459/2384/618 1448/2372/608 +f 1449/2377/612 1461/2385/619 1450/2373/609 +f 1451/2378/613 1455/2380/615 1452/2374/610 +f 1453/2386/614 1457/2382/616 1454/2376/611 +f 1449/2377/612 1459/2384/618 1460/2387/132 +f 1451/2378/613 1461/2385/619 1462/2388/620 +f 1459/2384/618 1464/2389/621 1460/2387/132 +f 1462/2388/620 1465/2390/622 1466/2391/623 +f 1456/2381/133 1467/2392/624 1468/2393/625 +f 1457/2382/616 1470/2394/626 1458/2383/617 +f 1458/2383/617 1463/2395/627 1459/2384/618 +f 1461/2385/619 1464/2389/621 1465/2390/622 +f 1455/2380/615 1466/2391/623 1467/2392/624 +f 1456/2396/133 1469/2397/628 1457/2382/616 +f 1472/2398/629 1400/1230/337 1471/2399/337 +f 1474/2400/630 1405/1232/631 1473/2401/631 +f 1475/2402/334 1395/1226/632 1392/1234/334 +f 1478/2403/633 1396/1224/634 1477/2404/634 +f 1472/2398/629 1405/1742/631 1403/1236/629 +f 1474/2400/630 1392/1234/334 1391/1221/630 +f 1477/2404/634 1395/1226/632 1476/2405/632 +f 1471/2399/337 1399/1227/633 1478/2403/633 +f 1408/2406/632 1417/1245/334 1420/1244/632 +f 1402/1229/633 1416/1241/337 1415/1243/633 +f 1408/2406/632 1422/1748/634 1409/2407/634 +f 1404/1231/629 1416/1241/337 1401/1228/337 +f 1410/2408/633 1422/1249/634 1424/1252/633 +f 1406/1237/631 1419/1247/629 1404/1231/629 +f 1410/2408/633 1426/1254/337 1411/2409/337 +f 1394/1223/635 1421/1250/631 1406/1233/631 +f 1397/1235/634 1415/1243/633 1429/1257/634 +f 1414/2410/630 1417/1245/334 1407/2411/334 +f 1397/1235/634 1427/1255/632 1398/1225/632 +f 1414/2410/630 1430/1256/631 1418/1242/630 +f 1398/1225/632 1425/1251/334 1393/1222/334 +f 1412/2412/629 1430/1256/631 1413/2413/631 +f 1393/1222/334 1423/1248/635 1394/1223/635 +f 1412/2412/629 1426/1254/337 1428/1253/629 +f 1519/2414/636 1521/2415/637 1522/2416/638 +f 1524/2417/639 1526/2418/640 1523/2419/641 +f 1528/2420/642 1530/2421/643 1527/2422/644 +f 1531/2423/645 1529/2424/646 1528/2420/642 +f 1533/2425/647 1522/2416/638 1534/2426/648 +f 1520/2427/649 1526/2418/640 1521/2415/637 +f 1524/2417/639 1530/2421/643 1525/2428/650 +f 1533/2429/647 1532/2430/651 1531/2423/645 +f 1530/2421/643 1535/2431/652 1536/2432/653 +f 1525/2428/650 1538/2433/654 1526/2418/640 +f 1521/2415/637 1540/2434/655 1522/2416/638 +f 1534/2435/648 1542/2436/656 1532/2430/651 +f 1530/2421/643 1537/2437/657 1525/2428/650 +f 1526/2418/640 1539/2438/658 1521/2415/637 +f 1534/2426/648 1540/2434/655 1541/2439/659 +f 1529/2424/646 1542/2436/656 1535/2431/652 +f 1541/2439/659 1543/2440/616 1544/2441/133 +f 1535/2431/652 1545/2442/615 1546/2443/620 +f 1535/2431/652 1547/2444/619 1536/2432/653 +f 1537/2437/657 1549/2445/618 1538/2433/654 +f 1539/2438/658 1543/2440/616 1540/2434/655 +f 1541/2446/659 1545/2442/615 1542/2436/656 +f 1537/2437/657 1547/2444/619 1548/2447/132 +f 1539/2438/658 1549/2445/618 1550/2448/617 +f 1547/2444/619 1552/2449/660 1548/2447/132 +f 1550/2448/617 1553/2450/661 1554/2451/662 +f 1544/2441/133 1555/2452/663 1556/2453/664 +f 1545/2442/615 1558/2454/665 1546/2443/620 +f 1546/2443/620 1551/2455/666 1547/2444/619 +f 1549/2445/618 1552/2449/660 1553/2450/661 +f 1543/2440/616 1554/2451/662 1555/2452/663 +f 1544/2456/133 1557/2457/667 1545/2442/615 +f 1560/2458/668 1488/1268/334 1559/2459/334 +f 1562/2460/669 1493/1269/670 1561/2461/670 +f 1563/2462/337 1483/1263/671 1480/1271/337 +f 1565/2463/672 1487/1264/673 1484/1261/672 +f 1560/2458/668 1493/1749/670 1491/1267/668 +f 1562/2460/669 1480/1271/337 1479/1258/669 +f 1564/2464/671 1484/1261/672 1483/1263/671 +f 1559/2459/334 1487/1264/673 1566/2465/673 +f 1496/2466/671 1505/1282/337 1508/1281/671 +f 1490/1266/673 1504/1278/334 1503/1280/673 +f 1496/2466/671 1510/1755/672 1497/2467/672 +f 1489/1265/334 1507/1284/668 1504/1278/334 +f 1498/2468/673 1510/1286/672 1512/1289/673 +f 1494/1273/670 1507/1284/668 1492/1274/674 +f 1498/2468/673 1514/1291/334 1499/2469/334 +f 1482/1260/675 1509/1287/670 1494/1270/670 +f 1485/1272/672 1503/1280/673 1517/1294/672 +f 1502/2470/669 1505/1282/337 1495/2471/337 +f 1485/1272/672 1515/1292/676 1486/1262/671 +f 1502/2470/669 1518/1293/670 1506/1279/669 +f 1486/1262/671 1513/1288/337 1481/1259/337 +f 1500/2472/668 1518/1293/670 1501/2473/670 +f 1481/1259/337 1511/1285/675 1482/1260/675 +f 1500/2472/668 1514/1291/334 1516/1290/668 +f 1695/2474/130 1704/2475/677 1699/2476/151 +f 1697/2477/328 1701/2478/678 1696/2479/143 +f 1699/2476/151 1703/2480/679 1698/2481/334 +f 1696/2479/143 1700/2482/680 1695/2474/130 +f 1701/2478/678 1707/2483/681 1706/2484/682 +f 1704/2475/677 1708/2485/683 1703/2480/679 +f 1701/2478/678 1705/2486/169 1700/2482/680 +f 1704/2475/677 1705/2486/169 1709/2487/684 +f 1705/2486/169 1714/2488/685 1709/2487/684 +f 1706/2484/682 1712/2489/686 1711/2490/687 +f 1709/2487/684 1713/2491/688 1708/2485/683 +f 1705/2486/169 1711/2490/687 1710/2492/308 +f 1715/2493/130 1724/2494/677 1719/2495/151 +f 1717/2496/328 1721/2497/678 1716/2498/143 +f 1719/2495/151 1723/2499/679 1718/2500/334 +f 1716/2498/143 1720/2501/680 1715/2493/130 +f 1721/2497/678 1727/2502/681 1726/2503/682 +f 1724/2494/677 1728/2504/683 1723/2499/679 +f 1721/2497/678 1725/2505/169 1720/2501/680 +f 1724/2494/677 1725/2505/169 1729/2506/684 +f 1725/2505/169 1734/2507/685 1729/2506/684 +f 1726/2503/682 1732/2508/686 1731/2509/687 +f 1729/2506/684 1733/2510/688 1728/2504/683 +f 1726/2503/682 1730/2511/308 1725/2505/169 +f 1735/2512/130 1744/2513/677 1739/2514/151 +f 1737/2515/328 1741/2516/678 1736/2517/143 +f 1739/2514/151 1743/2518/679 1738/2519/334 +f 1736/2517/143 1740/2520/680 1735/2512/130 +f 1741/2516/678 1747/2521/681 1746/2522/682 +f 1744/2513/677 1748/2523/683 1743/2518/679 +f 1741/2516/678 1745/2524/169 1740/2520/680 +f 1744/2513/677 1745/2524/169 1749/2525/684 +f 1745/2524/169 1754/2526/685 1749/2525/684 +f 1746/2522/682 1752/2527/686 1751/2528/687 +f 1749/2525/684 1753/2529/688 1748/2523/683 +f 1746/2522/682 1750/2530/308 1745/2524/169 +f 1809/2531/689 1867/2532/690 1868/2533/689 +f 1809/2531/689 1869/2534/691 1806/2535/691 +f 1806/2535/691 1870/2536/692 1807/2537/692 +f 1807/2537/692 1871/2538/693 1803/2539/693 +f 1803/2539/693 1872/2540/694 1804/2541/694 +f 1805/2542/695 1872/2540/694 1873/2543/695 +f 1818/2544/696 1873/2543/695 1874/2545/696 +f 1816/2546/697 1874/2545/696 1875/2547/697 +f 1817/2548/698 1875/2547/697 1876/2549/698 +f 1817/2550/698 1877/2551/699 1814/2552/699 +f 1814/2552/699 1878/2553/700 1815/2554/700 +f 1812/2555/701 1878/2553/700 1879/2556/701 +f 1812/2555/701 1880/2557/702 1813/2558/702 +f 1813/2558/702 1881/2559/703 1810/2560/703 +f 1810/2560/703 1882/2561/704 1811/2562/704 +f 1808/2563/690 1882/2561/704 1867/2532/690 +f 1867/2532/335 1884/2564/127 1868/2533/127 +f 1868/2533/127 1885/2565/336 1869/2534/336 +f 1875/2547/338 1887/2566/130 1876/2549/130 +f 1882/2561/125 1883/2567/335 1867/2532/335 +f 1874/2545/143 1886/2568/338 1875/2547/338 +f 1881/2559/325 1888/2569/125 1882/2561/125 +f 1873/2543/328 1889/2570/143 1874/2545/143 +f 1880/2557/126 1890/2571/325 1881/2559/325 +f 1872/2540/124 1891/2572/328 1873/2543/328 +f 1879/2556/334 1892/2573/126 1880/2557/126 +f 1871/2538/337 1893/2574/124 1872/2540/124 +f 1878/2553/151 1894/2575/334 1879/2556/334 +f 1870/2536/128 1895/2576/337 1871/2538/337 +f 1877/2551/333 1896/2577/151 1878/2553/151 +f 1869/2534/336 1897/2578/128 1870/2536/128 +f 1876/2579/130 1898/2580/333 1877/2551/333 +f 1889/2570/705 1829/2581/706 1828/2582/705 +f 1890/2571/707 1822/2583/708 1821/2584/707 +f 1893/2574/709 1829/2585/706 1891/2572/706 +f 1892/2573/708 1823/2586/710 1822/2587/708 +f 1893/2574/709 1831/2588/711 1830/2589/709 +f 1896/2577/712 1823/2590/710 1894/2575/710 +f 1897/2578/713 1831/2591/711 1895/2576/711 +f 1896/2577/712 1825/2592/714 1824/2593/712 +f 1885/2565/715 1832/2594/713 1897/2578/713 +f 1887/2595/716 1825/2596/714 1898/2580/714 +f 1884/2564/717 1819/2597/718 1834/2598/717 +f 1884/2564/717 1833/2599/715 1885/2565/715 +f 1887/2566/716 1827/2600/719 1826/2601/716 +f 1888/2569/720 1819/2602/718 1883/2567/718 +f 1889/2570/705 1827/2603/719 1886/2568/719 +f 1888/2569/720 1821/2604/707 1820/2605/720 +f 1842/2606/336 1860/2607/127 1843/2608/127 +f 1850/2609/130 1851/2610/338 1848/2611/338 +f 1837/2612/333 1852/2613/130 1850/2609/130 +f 1843/2614/127 1859/2615/335 1840/2616/335 +f 1848/2611/338 1866/2617/143 1849/2618/143 +f 1840/2616/335 1858/2619/125 1841/2620/125 +f 1849/2618/143 1865/2621/328 1846/2622/328 +f 1841/2620/125 1857/2623/325 1838/2624/325 +f 1846/2622/328 1864/2625/124 1847/2626/124 +f 1838/2624/325 1856/2627/126 1839/2628/126 +f 1847/2626/124 1863/2629/337 1844/2630/337 +f 1839/2628/126 1855/2631/334 1835/2632/334 +f 1844/2630/337 1862/2633/128 1845/2634/128 +f 1835/2632/334 1854/2635/151 1836/2636/151 +f 1845/2634/128 1861/2637/336 1842/2606/336 +f 1836/2636/151 1853/2638/333 1837/2612/333 +f 754/1817/289 755/1830/300 756/1818/290 +f 759/1820/149 760/1831/301 761/1821/292 +f 763/1823/294 764/1827/298 765/1824/295 +f 766/1826/297 767/1833/302 764/1827/298 +f 768/1828/147 754/1817/289 757/1819/291 +f 755/1830/300 758/1822/293 761/1821/292 +f 759/1820/149 762/1825/296 765/1824/295 +f 768/1832/147 769/1838/299 767/1833/302 +f 765/1824/295 764/1827/298 770/1834/303 +f 760/1831/301 772/1840/308 773/1836/305 +f 756/1818/290 774/1841/309 775/1837/306 +f 769/1838/299 776/1849/144 777/1839/307 +f 760/1831/301 765/1824/295 771/1835/304 +f 761/1821/292 773/1836/305 774/1841/309 +f 769/1829/299 757/1819/291 775/1837/306 +f 764/1827/298 767/1833/302 777/1839/307 +f 776/1842/144 775/1837/306 778/1843/310 +f 770/1834/303 777/1839/307 780/1845/311 +f 770/1834/303 781/1846/312 782/1847/313 +f 772/1840/308 783/1850/132 784/1848/314 +f 774/1841/309 785/1851/315 778/1843/310 +f 776/1849/144 779/1859/133 780/1845/311 +f 772/1840/308 771/1835/304 782/1847/313 +f 774/1841/309 773/1836/305 784/1848/314 +f 782/1847/313 786/1858/322 787/1852/316 +f 785/1851/315 784/1848/314 788/1853/317 +f 779/1844/133 778/1843/310 790/1855/319 +f 780/1845/311 792/1860/323 793/1857/321 +f 781/1846/312 793/1857/321 786/1858/322 +f 784/1848/314 783/1850/132 787/1852/316 +f 778/1843/310 785/1851/315 789/1854/318 +f 779/1859/133 791/2639/320 792/1860/323 +f 795/1861/324 313/442/324 310/436/325 +f 797/1863/326 301/427/326 315/438/327 +f 798/1865/328 799/1868/329 305/432/329 +f 801/1866/330 309/433/330 306/430/331 +f 795/1861/324 796/2640/327 315/1583/327 +f 797/1863/326 798/1865/328 302/440/328 +f 800/1867/331 306/430/331 305/432/329 +f 794/1862/325 310/436/325 309/433/330 +f 318/1869/329 317/1874/328 327/451/328 +f 312/435/330 311/434/325 326/447/325 +f 318/1869/329 330/450/329 332/1589/331 +f 314/437/324 329/453/324 326/447/325 +f 320/1871/330 319/2641/331 332/455/331 +f 316/443/327 331/452/327 329/453/324 +f 320/1871/330 334/458/330 336/460/325 +f 304/429/332 333/454/332 331/456/327 +f 307/441/331 312/435/330 325/449/330 +f 324/1873/326 328/448/326 327/451/328 +f 307/441/331 339/463/331 337/461/329 +f 324/1873/326 323/1876/327 340/462/327 +f 303/428/328 308/431/329 337/461/329 +f 322/1875/324 338/459/324 340/462/327 +f 303/428/328 335/457/328 333/454/332 +f 322/1875/324 321/1872/325 336/460/325 +f 803/1877/333 350/474/333 349/476/334 +f 805/1879/325 361/481/325 363/482/335 +f 807/1881/336 365/487/336 367/489/337 +f 809/1883/328 369/491/328 371/492/338 +f 802/1878/334 349/476/334 361/481/325 +f 804/1880/335 363/482/335 365/486/336 +f 806/1882/337 367/489/337 369/491/328 +f 808/1884/338 371/492/338 350/474/333 +f 351/1592/333 375/497/333 374/1603/334 +f 360/1886/336 376/517/336 387/519/335 +f 359/1888/337 373/496/337 376/498/336 +f 352/1598/334 374/500/334 378/1604/325 +f 358/1890/328 377/499/328 373/501/337 +f 362/483/325 378/1605/325 380/502/335 +f 357/1892/338 379/504/338 377/503/328 +f 364/1599/335 380/1606/335 382/505/336 +f 372/1602/338 388/518/338 375/1610/333 +f 353/1894/335 387/514/335 385/516/325 +f 370/493/328 386/515/328 388/1609/338 +f 354/1896/325 385/511/325 383/513/334 +f 368/1601/337 384/512/337 386/1608/328 +f 355/1898/334 383/510/334 381/509/333 +f 366/1600/336 382/1607/336 384/508/337 +f 356/1900/333 381/507/333 379/506/338 +f 810/1902/339 811/1919/172 619/1903/172 +f 812/1905/124 813/1922/340 622/1906/340 +f 624/838/341 633/844/342 631/1908/342 +f 810/1902/339 618/1904/339 617/1909/343 +f 815/1911/344 812/1905/124 621/1907/124 +f 633/844/342 632/1920/345 630/1913/345 +f 816/1914/346 623/2642/347 615/1915/347 +f 627/1917/348 814/1910/343 617/1909/343 +f 815/1911/344 620/1912/344 619/1903/172 +f 632/1920/345 817/1923/126 629/1921/126 +f 816/1914/346 614/1916/346 622/1906/340 +f 626/840/349 628/842/349 629/1921/126 +f 819/1924/342 640/1937/342 639/1925/154 +f 820/1927/124 821/1939/340 637/1928/340 +f 822/1930/350 823/1941/343 644/1931/343 +f 824/1933/339 825/1943/172 634/1934/172 +f 819/1924/342 826/1945/345 641/1936/345 +f 827/1938/346 638/1946/346 637/1928/340 +f 824/1940/339 645/2643/339 644/1931/343 +f 828/1942/344 635/1947/344 634/1934/172 +f 829/1944/126 642/1948/126 641/1936/345 +f 827/1938/346 818/1926/154 639/1925/154 +f 820/1927/124 636/1929/124 635/1947/344 +f 829/1944/126 822/1930/350 643/1932/350 +f 831/1949/351 832/2006/372 833/1950/352 +f 835/1952/354 836/2644/380 837/1953/355 +f 839/1955/357 840/1967/369 841/1956/358 +f 843/1958/360 844/1962/364 845/1959/361 +f 845/1959/361 844/1962/364 839/1955/357 +f 846/1961/363 847/1964/366 843/1958/360 +f 844/1962/364 848/2645/657 849/1963/365 +f 847/1964/366 850/2646/371 851/1965/367 +f 839/1955/357 849/1963/365 852/1966/368 +f 851/1965/367 848/2645/657 844/1962/364 +f 854/1968/357 855/1979/369 856/1969/358 +f 858/1971/360 859/1976/364 860/1972/361 +f 860/1972/361 859/1976/364 854/1968/357 +f 862/1974/366 858/1971/360 857/1973/362 +f 859/1976/364 863/2647/657 864/1977/365 +f 862/1974/366 865/2648/371 866/1978/367 +f 864/1977/365 867/2649/368 855/1979/369 +f 866/1978/367 863/2647/657 859/1976/364 +f 869/1980/357 870/1992/369 871/1981/358 +f 873/1983/370 874/1988/364 875/1984/361 +f 875/1984/361 874/1988/364 869/1980/357 +f 877/1986/366 873/1983/370 872/1985/362 +f 874/1988/364 878/2650/657 879/1989/365 +f 880/1990/371 881/1993/367 873/1983/370 +f 869/1980/357 879/1989/365 882/1991/368 +f 881/1993/367 878/2650/657 874/1988/364 +f 841/1956/358 883/2651/333 884/1994/130 +f 856/1969/358 885/2652/333 886/1995/130 +f 838/1957/359 884/1994/130 887/1996/143 +f 845/1959/361 887/1996/143 888/1997/124 +f 871/1981/358 889/2653/333 890/1998/130 +f 853/1970/359 886/1995/130 891/1999/143 +f 842/1960/362 888/1997/124 892/2000/337 +f 860/1972/361 891/1999/143 893/2001/124 +f 868/1982/359 890/1998/130 894/2002/143 +f 875/1984/361 894/2002/143 895/2003/124 +f 857/1973/362 893/2001/124 896/2004/337 +f 872/1985/362 895/2003/124 897/2005/337 +f 831/1949/351 834/1954/356 837/1953/355 +f 898/2007/373 830/1951/353 833/1950/352 +f 832/2006/372 837/1953/355 900/2009/375 +f 899/2008/374 833/1950/352 902/2011/377 +f 837/1953/355 836/2644/380 904/2013/379 +f 832/2006/372 901/2010/376 902/2011/377 +f 906/2014/354 907/2027/380 908/2015/355 +f 910/2017/351 911/2020/372 912/2018/352 +f 910/2017/351 905/2016/356 908/2015/355 +f 909/2019/353 912/2018/352 914/2021/374 +f 911/2020/372 908/2015/355 915/2023/375 +f 914/2021/374 912/2018/352 917/2025/377 +f 907/2027/380 919/2654/379 915/2023/375 +f 911/2020/372 916/2024/376 917/2025/377 +f 921/2028/354 922/2655/380 923/2029/355 +f 925/2031/351 926/2034/372 927/2032/381 +f 925/2031/351 920/2030/356 923/2029/355 +f 924/2033/353 927/2032/381 929/2035/374 +f 926/2034/372 923/2029/355 930/2037/375 +f 927/2032/381 932/2041/377 933/2039/378 +f 923/2029/355 922/2655/380 934/2040/379 +f 926/2034/372 931/2038/376 932/2041/377 +f 935/2042/130 936/2656/338 835/1952/354 +f 937/2043/130 938/2657/338 906/2014/354 +f 939/2044/151 935/2042/130 834/1954/356 +f 940/2045/126 939/2044/151 831/1949/351 +f 941/2046/130 942/2658/338 921/2028/354 +f 943/2047/151 937/2043/130 905/2016/356 +f 944/2048/325 940/2045/126 830/1951/353 +f 945/2049/126 943/2047/151 910/2017/351 +f 946/2050/151 941/2046/130 920/2030/356 +f 947/2051/126 946/2050/151 925/2031/351 +f 948/2052/325 945/2049/126 909/2019/353 +f 949/2053/325 947/2051/126 924/2033/353 +f 991/2054/382 992/2067/393 993/2055/383 +f 996/2057/145 997/2068/394 998/2058/385 +f 1000/2060/387 1001/2064/391 1002/2061/388 +f 1003/2063/390 1004/2070/395 1001/2064/391 +f 1005/2065/146 991/2054/382 994/2056/384 +f 995/2059/386 998/2058/385 993/2055/383 +f 996/2057/145 999/2062/389 1002/2061/388 +f 1005/2069/146 1006/2075/392 1004/2070/395 +f 1002/2061/388 1001/2064/391 1007/2071/396 +f 997/2068/394 1009/2077/148 1010/2073/398 +f 993/2055/383 1011/2078/401 1012/2074/399 +f 1006/2075/392 1013/2086/150 1014/2076/400 +f 997/2068/394 1002/2061/388 1008/2072/397 +f 998/2058/385 1010/2073/398 1011/2078/401 +f 1006/2066/392 994/2056/384 1012/2074/399 +f 1001/2064/391 1004/2070/395 1014/2076/400 +f 1013/2079/150 1012/2074/399 1015/2080/311 +f 1007/2071/396 1014/2076/400 1017/2082/310 +f 1007/2071/396 1018/2083/315 1019/2084/402 +f 1009/2077/148 1020/2087/132 1021/2085/403 +f 1011/2078/401 1022/2088/312 1015/2080/311 +f 1013/2086/150 1016/2096/133 1017/2082/310 +f 1009/2077/148 1008/2072/397 1019/2084/402 +f 1011/2078/401 1010/2073/398 1021/2085/403 +f 1019/2084/402 1023/2095/410 1024/2089/404 +f 1022/2088/312 1021/2085/403 1025/2090/405 +f 1016/2081/133 1015/2080/311 1027/2092/407 +f 1017/2082/310 1029/2097/411 1030/2094/409 +f 1018/2083/315 1030/2094/409 1023/2095/410 +f 1021/2085/403 1020/2087/132 1024/2089/404 +f 1015/2080/311 1022/2088/312 1026/2091/406 +f 1016/2096/133 1028/2659/408 1029/2097/411 +f 1032/2098/412 963/1051/412 960/1045/328 +f 1034/2100/413 951/1036/413 965/1047/414 +f 1035/2102/325 1036/2105/415 955/1041/415 +f 1038/2103/416 959/1042/416 956/1039/417 +f 1032/2098/412 1033/2660/414 965/1707/414 +f 1034/2100/413 1035/2102/325 952/1049/325 +f 1037/2104/417 956/1039/417 955/1041/415 +f 1031/2099/328 960/1045/328 959/1042/416 +f 968/2106/415 967/2111/325 977/1060/325 +f 962/1044/416 961/1043/328 976/1056/328 +f 968/2106/415 980/1059/415 982/1713/417 +f 964/1046/412 979/1062/412 976/1056/328 +f 970/2108/416 969/2661/417 982/1064/417 +f 966/1052/414 981/1061/414 979/1062/412 +f 970/2108/416 984/1067/416 986/1066/328 +f 954/1038/418 983/1063/418 981/1065/414 +f 957/1050/417 962/1044/416 975/1058/416 +f 974/2110/413 978/1057/413 977/1060/325 +f 957/1050/417 989/1072/417 987/1070/415 +f 974/2110/413 973/2113/414 990/1071/414 +f 953/1037/325 958/1040/415 987/1070/415 +f 972/2112/412 988/1069/412 990/1071/414 +f 953/1037/325 985/1068/325 983/1063/418 +f 972/2112/412 971/2109/328 986/1066/328 +f 1079/2114/419 1080/2127/432 1081/2115/420 +f 1084/2117/422 1085/2128/433 1086/2118/423 +f 1088/2120/425 1089/2124/429 1090/2121/426 +f 1091/2123/428 1092/2130/434 1089/2124/429 +f 1093/2125/430 1079/2114/419 1082/2116/421 +f 1083/2119/424 1086/2118/423 1081/2115/420 +f 1084/2117/422 1087/2122/427 1090/2121/426 +f 1093/2129/430 1094/2135/431 1092/2130/434 +f 1090/2121/426 1089/2124/429 1095/2131/435 +f 1085/2128/433 1097/2137/440 1098/2133/437 +f 1081/2115/420 1099/2138/441 1100/2134/438 +f 1094/2135/431 1101/2146/442 1102/2136/439 +f 1085/2128/433 1090/2121/426 1096/2132/436 +f 1086/2118/423 1098/2133/437 1099/2138/441 +f 1094/2126/431 1082/2116/421 1100/2134/438 +f 1089/2124/429 1092/2130/434 1102/2136/439 +f 1101/2139/442 1100/2134/438 1103/2140/443 +f 1095/2131/435 1102/2136/439 1105/2142/444 +f 1095/2131/435 1106/2143/445 1107/2144/446 +f 1097/2137/440 1108/2147/132 1109/2145/447 +f 1099/2138/441 1110/2148/448 1103/2140/443 +f 1101/2146/442 1104/2156/133 1105/2142/444 +f 1097/2137/440 1096/2132/436 1107/2144/446 +f 1099/2138/441 1098/2133/437 1109/2145/447 +f 1107/2144/446 1111/2155/455 1112/2149/449 +f 1110/2148/448 1109/2145/447 1113/2150/450 +f 1104/2141/133 1103/2140/443 1115/2152/452 +f 1105/2142/444 1117/2157/456 1118/2154/454 +f 1106/2143/445 1118/2154/454 1111/2155/455 +f 1109/2145/447 1108/2147/132 1112/2149/449 +f 1103/2140/443 1110/2148/448 1114/2151/451 +f 1104/2156/133 1116/2662/453 1117/2157/456 +f 1120/2158/457 1051/1088/457 1048/1082/336 +f 1122/2160/458 1039/1073/458 1053/1084/459 +f 1123/2162/333 1124/2165/460 1043/1078/460 +f 1126/2163/461 1047/1079/461 1044/1076/462 +f 1120/2158/457 1121/2663/459 1053/1714/459 +f 1122/2160/458 1123/2162/333 1040/1086/333 +f 1124/2165/460 1125/2164/462 1044/1076/462 +f 1119/2159/336 1048/1082/336 1047/1079/461 +f 1056/2166/460 1055/2171/333 1065/1097/333 +f 1050/1081/461 1049/1080/336 1064/1093/336 +f 1056/2166/460 1068/1096/460 1070/1720/462 +f 1052/1083/457 1067/1099/457 1064/1093/336 +f 1058/2168/461 1057/2664/462 1070/1101/462 +f 1054/1089/459 1069/1098/459 1067/1099/457 +f 1058/2168/461 1072/1104/461 1074/1106/336 +f 1042/1075/463 1071/1100/463 1069/1102/459 +f 1045/1087/462 1050/1081/461 1063/1095/461 +f 1062/2170/458 1066/1094/458 1065/1097/333 +f 1045/1087/462 1077/1109/462 1075/1107/460 +f 1062/2170/458 1061/2173/459 1078/1108/459 +f 1046/1077/460 1075/1107/460 1073/1103/333 +f 1060/2172/457 1076/1105/457 1078/1108/459 +f 1041/1074/333 1073/1103/333 1071/1100/463 +f 1060/2172/457 1059/2169/336 1074/1106/336 +f 1167/2174/464 1168/2187/477 1169/2175/465 +f 1172/2177/467 1173/2188/478 1174/2178/468 +f 1176/2180/470 1177/2184/474 1178/2181/471 +f 1179/2183/473 1180/2190/479 1177/2184/474 +f 1181/2185/475 1167/2174/464 1170/2176/466 +f 1168/2187/477 1171/2179/469 1174/2178/468 +f 1172/2177/467 1175/2182/472 1178/2181/471 +f 1181/2189/475 1182/2195/476 1180/2190/479 +f 1178/2181/471 1177/2184/474 1183/2191/480 +f 1173/2188/478 1185/2197/485 1186/2193/482 +f 1169/2175/465 1187/2198/486 1188/2194/483 +f 1182/2195/476 1189/2206/487 1190/2196/484 +f 1173/2188/478 1178/2181/471 1184/2192/481 +f 1174/2178/468 1186/2193/482 1187/2198/486 +f 1182/2186/476 1170/2176/466 1188/2194/483 +f 1177/2184/474 1180/2190/479 1190/2196/484 +f 1189/2199/487 1188/2194/483 1191/2200/444 +f 1183/2191/480 1190/2196/484 1193/2202/443 +f 1183/2191/480 1194/2203/448 1195/2204/488 +f 1185/2197/485 1196/2207/132 1197/2205/489 +f 1187/2198/486 1198/2208/445 1191/2200/444 +f 1189/2206/487 1192/2216/133 1193/2202/443 +f 1185/2197/485 1184/2192/481 1195/2204/488 +f 1187/2198/486 1186/2193/482 1197/2205/489 +f 1195/2204/488 1199/2215/496 1200/2209/490 +f 1198/2208/445 1197/2205/489 1201/2210/491 +f 1192/2201/133 1191/2200/444 1203/2212/493 +f 1193/2202/443 1205/2217/497 1206/2214/495 +f 1194/2203/448 1206/2214/495 1199/2215/496 +f 1197/2205/489 1196/2207/132 1200/2209/490 +f 1191/2200/444 1198/2208/445 1202/2211/492 +f 1192/2216/133 1204/2665/494 1205/2217/497 +f 1208/2218/498 1139/1125/498 1136/1119/333 +f 1210/2220/499 1127/1110/499 1141/1121/500 +f 1211/2222/336 1212/2224/501 1131/1115/501 +f 1213/2223/502 1214/2225/503 1135/1116/503 +f 1208/2218/498 1209/2666/500 1141/1721/500 +f 1210/2220/499 1211/2222/336 1128/1123/336 +f 1213/2223/502 1132/1113/502 1131/1115/501 +f 1207/2219/333 1136/1119/333 1135/1116/503 +f 1144/2226/501 1143/2231/336 1153/1134/336 +f 1138/1118/503 1137/1117/333 1152/1130/333 +f 1144/2226/501 1156/1133/501 1158/1727/502 +f 1140/1120/498 1155/1136/498 1152/1130/333 +f 1146/2228/503 1145/2667/502 1158/1138/502 +f 1142/1126/500 1157/1135/500 1155/1136/498 +f 1146/2228/503 1160/1141/503 1162/1143/333 +f 1130/1112/504 1159/1137/504 1157/1139/500 +f 1133/1124/502 1138/1118/503 1151/1132/503 +f 1150/2230/499 1154/1131/499 1153/1134/336 +f 1133/1124/502 1165/1146/502 1163/1144/505 +f 1150/2230/499 1149/2233/500 1166/1145/500 +f 1134/1114/501 1163/1144/505 1161/1140/336 +f 1148/2232/498 1164/1142/498 1166/1145/500 +f 1129/1111/336 1161/1140/336 1159/1137/504 +f 1148/2232/498 1147/2229/333 1162/1143/333 +f 1255/2234/506 1256/2247/519 1257/2235/507 +f 1260/2237/509 1261/2248/520 1262/2238/510 +f 1264/2240/512 1265/2244/516 1266/2241/513 +f 1267/2243/515 1268/2250/521 1265/2244/516 +f 1269/2245/517 1255/2234/506 1258/2236/508 +f 1256/2247/519 1259/2239/511 1262/2238/510 +f 1260/2237/509 1263/2242/514 1266/2241/513 +f 1269/2249/517 1270/2255/518 1268/2250/521 +f 1266/2241/513 1265/2244/516 1271/2251/522 +f 1261/2248/520 1273/2257/376 1274/2253/524 +f 1257/2235/507 1275/2258/527 1276/2254/525 +f 1270/2255/518 1277/2266/528 1278/2256/526 +f 1261/2248/520 1266/2241/513 1272/2252/523 +f 1262/2238/510 1274/2253/524 1275/2258/527 +f 1270/2246/518 1258/2236/508 1276/2254/525 +f 1265/2244/516 1268/2250/521 1278/2256/526 +f 1277/2259/528 1276/2254/525 1279/2260/529 +f 1271/2251/522 1278/2256/526 1281/2262/530 +f 1271/2251/522 1282/2263/531 1283/2264/532 +f 1273/2257/376 1284/2267/132 1285/2265/533 +f 1275/2258/527 1286/2268/534 1279/2260/529 +f 1277/2266/528 1280/2276/133 1281/2262/530 +f 1273/2257/376 1272/2252/523 1283/2264/532 +f 1275/2258/527 1274/2253/524 1285/2265/533 +f 1283/2264/532 1287/2275/541 1288/2269/535 +f 1286/2268/534 1285/2265/533 1289/2270/536 +f 1280/2261/133 1279/2260/529 1291/2272/538 +f 1281/2262/530 1293/2277/542 1294/2274/540 +f 1282/2263/531 1294/2274/540 1287/2275/541 +f 1285/2265/533 1284/2267/132 1288/2269/535 +f 1279/2260/529 1286/2268/534 1290/2271/537 +f 1280/2276/133 1292/2668/539 1293/2277/542 +f 1296/2278/543 1227/1162/543 1224/1156/335 +f 1298/2280/544 1215/1147/544 1229/1158/545 +f 1299/2282/338 1300/2285/546 1219/1152/546 +f 1302/2283/547 1223/1153/547 1220/1150/548 +f 1296/2278/543 1297/2669/545 1229/1728/545 +f 1298/2280/544 1299/2282/338 1216/1160/338 +f 1300/2285/546 1301/2284/548 1220/1150/548 +f 1295/2279/335 1224/1156/335 1223/1153/547 +f 1232/2286/546 1231/2291/338 1241/1171/338 +f 1226/1155/547 1225/1154/335 1240/1167/335 +f 1232/2286/546 1244/1170/546 1246/1734/548 +f 1228/1157/543 1243/1173/543 1240/1167/335 +f 1234/2288/547 1233/2670/548 1246/1175/548 +f 1230/1163/545 1245/1172/545 1243/1173/543 +f 1234/2288/547 1248/1178/547 1250/1180/335 +f 1218/1149/549 1247/1174/549 1245/1176/545 +f 1221/1161/548 1226/1155/547 1239/1169/547 +f 1238/2290/544 1242/1168/544 1241/1171/338 +f 1221/1161/548 1253/1183/548 1251/1181/546 +f 1238/2290/544 1237/2293/545 1254/1182/545 +f 1222/1151/546 1251/1181/546 1249/1177/338 +f 1236/2292/543 1252/1179/543 1254/1182/545 +f 1217/1148/338 1249/1177/338 1247/1174/549 +f 1236/2292/543 1235/2289/335 1250/1180/335 +f 1343/2294/550 1344/2307/563 1345/2295/551 +f 1348/2297/553 1349/2308/564 1350/2298/554 +f 1352/2300/556 1353/2304/560 1354/2301/557 +f 1355/2303/559 1356/2310/565 1353/2304/560 +f 1357/2305/561 1343/2294/550 1346/2296/552 +f 1344/2307/563 1347/2299/555 1350/2298/554 +f 1351/2302/558 1354/2301/557 1349/2308/564 +f 1357/2309/561 1358/2315/562 1356/2310/565 +f 1354/2301/557 1353/2304/560 1359/2311/566 +f 1349/2308/564 1361/2317/571 1362/2313/568 +f 1345/2295/551 1363/2318/572 1364/2314/569 +f 1358/2315/562 1365/2326/573 1366/2316/570 +f 1349/2308/564 1354/2301/557 1360/2312/567 +f 1350/2298/554 1362/2313/568 1363/2318/572 +f 1358/2306/562 1346/2296/552 1364/2314/569 +f 1353/2304/560 1356/2310/565 1366/2316/570 +f 1364/2314/569 1367/2325/530 1368/2320/133 +f 1359/2311/566 1366/2316/570 1369/2321/529 +f 1359/2311/566 1370/2322/534 1371/2323/533 +f 1361/2317/571 1372/2327/132 1373/2324/532 +f 1363/2318/572 1374/2328/531 1367/2325/530 +f 1365/2326/573 1368/2336/133 1369/2321/529 +f 1361/2317/571 1360/2312/567 1371/2323/533 +f 1363/2318/572 1362/2313/568 1373/2324/532 +f 1371/2323/533 1375/2335/580 1376/2329/574 +f 1374/2328/531 1373/2324/532 1377/2330/575 +f 1368/2320/133 1367/2325/530 1379/2332/577 +f 1369/2321/529 1381/2337/581 1382/2334/579 +f 1370/2322/534 1382/2334/579 1375/2335/580 +f 1373/2324/532 1372/2327/132 1376/2329/574 +f 1367/2325/530 1374/2328/531 1378/2331/576 +f 1368/2336/133 1380/2671/578 1381/2337/581 +f 1384/2338/582 1315/1199/582 1312/1193/338 +f 1386/2340/583 1303/1184/583 1317/1195/584 +f 1387/2342/335 1388/2345/585 1307/1189/585 +f 1390/2343/586 1311/1190/586 1308/1187/587 +f 1384/2338/582 1385/2672/584 1317/1735/584 +f 1386/2340/583 1387/2342/335 1304/1197/335 +f 1389/2344/587 1308/1187/587 1307/1189/585 +f 1383/2339/338 1312/1193/338 1311/1190/586 +f 1320/2346/585 1319/2351/335 1329/1208/335 +f 1314/1192/586 1313/1191/338 1328/1204/338 +f 1320/2346/585 1332/1207/585 1334/1741/587 +f 1313/1191/338 1316/1194/588 1331/1210/582 +f 1322/2348/586 1321/2673/587 1334/1212/587 +f 1318/1200/584 1333/1209/584 1331/1210/582 +f 1322/2348/586 1336/1215/586 1338/1217/338 +f 1306/1186/589 1335/1211/589 1333/1213/584 +f 1309/1198/587 1314/1192/586 1327/1206/586 +f 1326/2350/583 1330/1205/583 1329/1208/335 +f 1309/1198/587 1341/1220/587 1339/1218/590 +f 1326/2350/583 1325/2353/584 1342/1219/584 +f 1310/1188/585 1339/1218/590 1337/1214/335 +f 1324/2352/582 1340/1216/582 1342/1219/584 +f 1305/1185/335 1337/1214/335 1335/1211/589 +f 1324/2352/582 1323/2349/338 1338/1217/338 +f 1431/2354/591 1432/2367/604 1433/2355/592 +f 1436/2357/594 1437/2368/605 1438/2358/595 +f 1440/2360/597 1441/2364/601 1442/2361/598 +f 1443/2363/600 1444/2370/606 1441/2364/601 +f 1445/2365/602 1431/2354/591 1434/2356/593 +f 1435/2359/596 1438/2358/595 1433/2355/592 +f 1436/2357/594 1439/2362/599 1442/2361/598 +f 1445/2369/602 1446/2375/603 1444/2370/606 +f 1442/2361/598 1441/2364/601 1447/2371/607 +f 1437/2368/605 1449/2377/612 1450/2373/609 +f 1433/2355/592 1451/2378/613 1452/2374/610 +f 1446/2375/603 1453/2386/614 1454/2376/611 +f 1437/2368/605 1442/2361/598 1448/2372/608 +f 1438/2358/595 1450/2373/609 1451/2378/613 +f 1446/2366/603 1434/2356/593 1452/2374/610 +f 1441/2364/601 1444/2370/606 1454/2376/611 +f 1453/2379/614 1452/2374/610 1455/2380/615 +f 1447/2371/607 1454/2376/611 1457/2382/616 +f 1447/2371/607 1458/2383/617 1459/2384/618 +f 1449/2377/612 1460/2387/132 1461/2385/619 +f 1451/2378/613 1462/2388/620 1455/2380/615 +f 1453/2386/614 1456/2396/133 1457/2382/616 +f 1449/2377/612 1448/2372/608 1459/2384/618 +f 1451/2378/613 1450/2373/609 1461/2385/619 +f 1459/2384/618 1463/2395/627 1464/2389/621 +f 1462/2388/620 1461/2385/619 1465/2390/622 +f 1456/2381/133 1455/2380/615 1467/2392/624 +f 1457/2382/616 1469/2397/628 1470/2394/626 +f 1458/2383/617 1470/2394/626 1463/2395/627 +f 1461/2385/619 1460/2387/132 1464/2389/621 +f 1455/2380/615 1462/2388/620 1466/2391/623 +f 1456/2396/133 1468/2674/625 1469/2397/628 +f 1472/2398/629 1403/1236/629 1400/1230/337 +f 1474/2400/630 1391/1221/630 1405/1232/631 +f 1475/2402/334 1476/2405/632 1395/1226/632 +f 1478/2403/633 1399/1227/633 1396/1224/634 +f 1472/2398/629 1473/2675/631 1405/1742/631 +f 1474/2400/630 1475/2402/334 1392/1234/334 +f 1477/2404/634 1396/1224/634 1395/1226/632 +f 1471/2399/337 1400/1230/337 1399/1227/633 +f 1408/2406/632 1407/2411/334 1417/1245/334 +f 1402/1229/633 1401/1228/337 1416/1241/337 +f 1408/2406/632 1420/1244/632 1422/1748/634 +f 1404/1231/629 1419/1247/629 1416/1241/337 +f 1410/2408/633 1409/2676/634 1422/1249/634 +f 1406/1237/631 1421/1246/631 1419/1247/629 +f 1410/2408/633 1424/1252/633 1426/1254/337 +f 1394/1223/635 1423/1248/635 1421/1250/631 +f 1397/1235/634 1402/1229/633 1415/1243/633 +f 1414/2410/630 1418/1242/630 1417/1245/334 +f 1397/1235/634 1429/1257/634 1427/1255/632 +f 1414/2410/630 1413/2413/631 1430/1256/631 +f 1398/1225/632 1427/1255/632 1425/1251/334 +f 1412/2412/629 1428/1253/629 1430/1256/631 +f 1393/1222/334 1425/1251/334 1423/1248/635 +f 1412/2412/629 1411/2409/337 1426/1254/337 +f 1519/2414/636 1520/2427/649 1521/2415/637 +f 1524/2417/639 1525/2428/650 1526/2418/640 +f 1528/2420/642 1529/2424/646 1530/2421/643 +f 1531/2423/645 1532/2430/651 1529/2424/646 +f 1533/2425/647 1519/2414/636 1522/2416/638 +f 1520/2427/649 1523/2419/641 1526/2418/640 +f 1524/2417/639 1527/2422/644 1530/2421/643 +f 1533/2429/647 1534/2435/648 1532/2430/651 +f 1530/2421/643 1529/2424/646 1535/2431/652 +f 1525/2428/650 1537/2437/657 1538/2433/654 +f 1521/2415/637 1539/2438/658 1540/2434/655 +f 1534/2435/648 1541/2446/659 1542/2436/656 +f 1530/2421/643 1536/2432/653 1537/2437/657 +f 1526/2418/640 1538/2433/654 1539/2438/658 +f 1534/2426/648 1522/2416/638 1540/2434/655 +f 1529/2424/646 1532/2430/651 1542/2436/656 +f 1541/2439/659 1540/2434/655 1543/2440/616 +f 1535/2431/652 1542/2436/656 1545/2442/615 +f 1535/2431/652 1546/2443/620 1547/2444/619 +f 1537/2437/657 1548/2447/132 1549/2445/618 +f 1539/2438/658 1550/2448/617 1543/2440/616 +f 1541/2446/659 1544/2456/133 1545/2442/615 +f 1537/2437/657 1536/2432/653 1547/2444/619 +f 1539/2438/658 1538/2433/654 1549/2445/618 +f 1547/2444/619 1551/2455/666 1552/2449/660 +f 1550/2448/617 1549/2445/618 1553/2450/661 +f 1544/2441/133 1543/2440/616 1555/2452/663 +f 1545/2442/615 1557/2457/667 1558/2454/665 +f 1546/2443/620 1558/2454/665 1551/2455/666 +f 1549/2445/618 1548/2447/132 1552/2449/660 +f 1543/2440/616 1550/2448/617 1554/2451/662 +f 1544/2456/133 1556/2677/664 1557/2457/667 +f 1560/2458/668 1491/1267/668 1488/1268/334 +f 1562/2460/669 1479/1258/669 1493/1269/670 +f 1563/2462/337 1564/2464/671 1483/1263/671 +f 1565/2463/672 1566/2465/673 1487/1264/673 +f 1560/2458/668 1561/2678/670 1493/1749/670 +f 1562/2460/669 1563/2462/337 1480/1271/337 +f 1564/2464/671 1565/2463/672 1484/1261/672 +f 1559/2459/334 1488/1268/334 1487/1264/673 +f 1496/2466/671 1495/2471/337 1505/1282/337 +f 1490/1266/673 1489/1265/334 1504/1278/334 +f 1496/2466/671 1508/1281/671 1510/1755/672 +f 1489/1265/334 1492/1274/674 1507/1284/668 +f 1498/2468/673 1497/2679/672 1510/1286/672 +f 1494/1273/670 1509/1283/670 1507/1284/668 +f 1498/2468/673 1512/1289/673 1514/1291/334 +f 1482/1260/675 1511/1285/675 1509/1287/670 +f 1485/1272/672 1490/1266/673 1503/1280/673 +f 1502/2470/669 1506/1279/669 1505/1282/337 +f 1485/1272/672 1517/1294/672 1515/1292/676 +f 1502/2470/669 1501/2473/670 1518/1293/670 +f 1486/1262/671 1515/1292/676 1513/1288/337 +f 1500/2472/668 1516/1290/668 1518/1293/670 +f 1481/1259/337 1513/1288/337 1511/1285/675 +f 1500/2472/668 1499/2469/334 1514/1291/334 +f 1695/2474/130 1700/2482/680 1704/2475/677 +f 1697/2477/328 1702/2680/721 1701/2478/678 +f 1699/2476/151 1704/2475/677 1703/2480/679 +f 1696/2479/143 1701/2478/678 1700/2482/680 +f 1701/2478/678 1702/2680/721 1707/2483/681 +f 1704/2475/677 1709/2487/684 1708/2485/683 +f 1701/2478/678 1706/2484/682 1705/2486/169 +f 1704/2475/677 1700/2482/680 1705/2486/169 +f 1705/2486/169 1710/2492/308 1714/2488/685 +f 1706/2484/682 1707/2483/681 1712/2489/686 +f 1709/2487/684 1714/2488/685 1713/2491/688 +f 1705/2486/169 1706/2484/682 1711/2490/687 +f 1715/2493/130 1720/2501/680 1724/2494/677 +f 1717/2496/328 1722/2681/721 1721/2497/678 +f 1719/2495/151 1724/2494/677 1723/2499/679 +f 1716/2498/143 1721/2497/678 1720/2501/680 +f 1721/2497/678 1722/2681/721 1727/2502/681 +f 1724/2494/677 1729/2506/684 1728/2504/683 +f 1721/2497/678 1726/2503/682 1725/2505/169 +f 1724/2494/677 1720/2501/680 1725/2505/169 +f 1725/2505/169 1730/2511/308 1734/2507/685 +f 1726/2503/682 1727/2502/681 1732/2508/686 +f 1729/2506/684 1734/2507/685 1733/2510/688 +f 1726/2503/682 1731/2509/687 1730/2511/308 +f 1735/2512/130 1740/2520/680 1744/2513/677 +f 1737/2515/328 1742/2682/721 1741/2516/678 +f 1739/2514/151 1744/2513/677 1743/2518/679 +f 1736/2517/143 1741/2516/678 1740/2520/680 +f 1741/2516/678 1742/2682/721 1747/2521/681 +f 1744/2513/677 1749/2525/684 1748/2523/683 +f 1741/2516/678 1746/2522/682 1745/2524/169 +f 1744/2513/677 1740/2520/680 1745/2524/169 +f 1745/2524/169 1750/2530/308 1754/2526/685 +f 1746/2522/682 1747/2521/681 1752/2527/686 +f 1749/2525/684 1754/2526/685 1753/2529/688 +f 1746/2522/682 1751/2528/687 1750/2530/308 +f 1809/2531/689 1808/2563/690 1867/2532/690 +f 1809/2531/689 1868/2533/689 1869/2534/691 +f 1806/2535/691 1869/2534/691 1870/2536/692 +f 1807/2537/692 1870/2536/692 1871/2538/693 +f 1803/2539/693 1871/2538/693 1872/2540/694 +f 1805/2542/695 1804/2541/694 1872/2540/694 +f 1818/2544/696 1805/2542/695 1873/2543/695 +f 1816/2546/697 1818/2544/696 1874/2545/696 +f 1817/2548/698 1816/2546/697 1875/2547/697 +f 1817/2550/698 1876/2579/698 1877/2551/699 +f 1814/2552/699 1877/2551/699 1878/2553/700 +f 1812/2555/701 1815/2554/700 1878/2553/700 +f 1812/2555/701 1879/2556/701 1880/2557/702 +f 1813/2558/702 1880/2557/702 1881/2559/703 +f 1810/2560/703 1881/2559/703 1882/2561/704 +f 1808/2563/690 1811/2562/704 1882/2561/704 +f 1867/2532/335 1883/2567/335 1884/2564/127 +f 1868/2533/127 1884/2564/127 1885/2565/336 +f 1875/2547/338 1886/2568/338 1887/2566/130 +f 1882/2561/125 1888/2569/125 1883/2567/335 +f 1874/2545/143 1889/2570/143 1886/2568/338 +f 1881/2559/325 1890/2571/325 1888/2569/125 +f 1873/2543/328 1891/2572/328 1889/2570/143 +f 1880/2557/126 1892/2573/126 1890/2571/325 +f 1872/2540/124 1893/2574/124 1891/2572/328 +f 1879/2556/334 1894/2575/334 1892/2573/126 +f 1871/2538/337 1895/2576/337 1893/2574/124 +f 1878/2553/151 1896/2577/151 1894/2575/334 +f 1870/2536/128 1897/2578/128 1895/2576/337 +f 1877/2551/333 1898/2580/333 1896/2577/151 +f 1869/2534/336 1885/2565/336 1897/2578/128 +f 1876/2579/130 1887/2595/130 1898/2580/333 +f 1889/2570/705 1891/2572/706 1829/2581/706 +f 1890/2571/707 1892/2573/708 1822/2583/708 +f 1893/2574/709 1830/2683/709 1829/2585/706 +f 1892/2573/708 1894/2575/710 1823/2586/710 +f 1893/2574/709 1895/2576/711 1831/2588/711 +f 1896/2577/712 1824/2684/712 1823/2590/710 +f 1897/2578/713 1832/2685/713 1831/2591/711 +f 1896/2577/712 1898/2580/714 1825/2592/714 +f 1885/2565/715 1833/2686/715 1832/2594/713 +f 1887/2595/716 1826/2687/716 1825/2596/714 +f 1884/2564/717 1883/2567/718 1819/2597/718 +f 1884/2564/717 1834/2688/717 1833/2599/715 +f 1887/2566/716 1886/2568/719 1827/2600/719 +f 1888/2569/720 1820/2689/720 1819/2602/718 +f 1889/2570/705 1828/2690/705 1827/2603/719 +f 1888/2569/720 1890/2571/707 1821/2604/707 +f 1842/2606/336 1861/2637/336 1860/2607/127 +f 1850/2609/130 1852/2613/130 1851/2610/338 +f 1837/2612/333 1853/2638/333 1852/2613/130 +f 1843/2614/127 1860/2691/127 1859/2615/335 +f 1848/2611/338 1851/2610/338 1866/2617/143 +f 1840/2616/335 1859/2615/335 1858/2619/125 +f 1849/2618/143 1866/2617/143 1865/2621/328 +f 1841/2620/125 1858/2619/125 1857/2623/325 +f 1846/2622/328 1865/2621/328 1864/2625/124 +f 1838/2624/325 1857/2623/325 1856/2627/126 +f 1847/2626/124 1864/2625/124 1863/2629/337 +f 1839/2628/126 1856/2627/126 1855/2631/334 +f 1844/2630/337 1863/2629/337 1862/2633/128 +f 1835/2632/334 1855/2631/334 1854/2635/151 +f 1845/2634/128 1862/2633/128 1861/2637/336 +f 1836/2636/151 1854/2635/151 1853/2638/333 diff --git a/src/main/resources/assets/hbm/textures/models/tank/tank_IONGEL.png b/src/main/resources/assets/hbm/textures/models/tank/tank_IONGEL.png new file mode 100644 index 0000000000000000000000000000000000000000..174c13aaabe9467dfd30673a6e2af8587757e01a GIT binary patch literal 1172 zcmeAS@N?(olHy`uVBq!ia0vp^RY2Us!3HEZPulwcNU;<Eakt zG3V`F`@Gu*BF77NozN_5JahA|o@C5|W^2(CoV%8;zRi7Pv)_e_Cq(#pA1Ma!NjF+eY?pLtp%wP|;i{_C}d$7alr zxA*IN`+LXz_p9H=2F~c7J^OH3UroJtm+Hku!kad;CG1{g zP=9Yxn0QBcQ%Cp*rMQKrTx(fc!E5i;!euop9^PKt*EPubh@164=A(uT(;W>M_UM}toZ~E004s_Dz)z4}>!Z|zV z?&W&5c=0~v?r+!To!dJkOuD-rJ*K+@_ zYdiQqYAJ5~xN5r0T<<*+#=kOT0$vDmRIS~eyXTT!K=!L$KnoOWO?0h*inLyA&3iOe zMvt!rX#Fcycj5JI?(%C{ET!1bAen#U*y;s8GagNyv+q%;{`H=P);hV3ZZXEoSiZ+; z9^4zw{Msn4Rc19O&_v&luL}3y-z~rW`}y|s$EB1%dI^ZLAM*b6$ieTf@_{97LQgVO zcYM!ExKqulKW*Cy5%1^&-bI<*AjuWcoN4Q)Bz((Ch>_vY*W)`Q0@is?8!8!R5V&ai zQr&?5rMeG}UJ{%6=#fK(>fR!Sw&1y~^)@y#viuj^wH+5uRfyx9)D;eloz%#ASNbn6 z5*CtLpCmS087yqLTG8N@ABT7J0@J9HXHNMOmb+>@?h#TET%WXPs^OLwOInVszEQdd z7z-+oLf>S}IT+!j@>sO>9Ls5cMGkP}u2|pA?0jL7@S)pW>0RIVHi>Tz&**i6SZtY= zKi^zdrn_S5ipaBN@g3o|A4JR2Zf(tZ6q@u#DSyuMTVlUOj%YjXQ`&vodCsxj*LJx+ zuZfC}xO?@|FH5n{DXZANDP^AjOSPO3$80&SllUo>tj==5HMi{ z$*+H4eyU>W!HmbEw-Uc`tqsgj1!gs1$Q;qG5L|EMx~EC}BSBHkqpSDFuQ55TziRG9 QU@^ns>FVdQ&MBb@06%;_iU0rr literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon.png index c581b38ae7e1baf8c6690090441fec5da627a8f7..93e7958ea079061f61a8271916cacd7c2472ee19 100644 GIT binary patch delta 2157 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 Date: Tue, 23 May 2023 21:54:10 +0200 Subject: [PATCH 007/109] fish oil, some experimental mixer stuff --- .../java/com/hbm/inventory/fluid/Fluids.java | 10 +++- .../hbm/inventory/recipes/CokerRecipes.java | 2 + .../inventory/recipes/CrucibleRecipes.java | 4 +- .../recipes/CrystallizerRecipes.java | 1 + .../recipes/LiquefactionRecipes.java | 8 +++ .../hbm/inventory/recipes/MixerRecipes.java | 46 ++++++++++++++++++ src/main/resources/assets/hbm/lang/de_DE.lang | 2 + src/main/resources/assets/hbm/lang/en_US.lang | 2 + .../hbm/textures/gui/fluids/fishoil.png | Bin 0 -> 489 bytes .../hbm/textures/gui/fluids/sunfloweroil.png | Bin 0 -> 490 bytes .../hbm/textures/gui/processing/gui_mixer.png | Bin 3119 -> 3122 bytes .../gui/processing/gui_mixer_experimental.png | Bin 0 -> 3194 bytes .../hbm/textures/models/tank/tank_FISHOIL.png | Bin 0 -> 1350 bytes .../models/tank/tank_SUNFLOWEROIL.png | Bin 0 -> 1075 bytes 14 files changed, 72 insertions(+), 3 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/fishoil.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/sunfloweroil.png create mode 100644 src/main/resources/assets/hbm/textures/gui/processing/gui_mixer_experimental.png create mode 100644 src/main/resources/assets/hbm/textures/models/tank/tank_FISHOIL.png create mode 100644 src/main/resources/assets/hbm/textures/models/tank/tank_SUNFLOWEROIL.png diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index bf2ce2575..9b0c6f33a 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -130,6 +130,8 @@ public class Fluids { public static FluidType EGG; public static FluidType CHOLESTEROL; public static FluidType ESTRADIOL; + public static FluidType FISHOIL; + public static FluidType SUNFLOWEROIL; private static final HashMap idMapping = new HashMap(); private static final HashMap nameMapping = new HashMap(); @@ -270,7 +272,9 @@ public class Fluids { GAS_COKER = new FluidType("GAS_COKER", 0xDEF4CA, 1, 4, 0, EnumSymbol.NONE).addTraits(GASEOUS); EGG = new FluidType("EGG", 0xD2C273, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); CHOLESTEROL = new FluidType("CHOLESTEROL", 0xD6D2BD, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); - ESTRADIOL = new FluidType(109, "ESTRADIOL", 0xCDD5D8, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); + ESTRADIOL = new FluidType("ESTRADIOL", 0xCDD5D8, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); + FISHOIL = new FluidType("FISHOIL", 0x4B4A45, 0, 1, 0, EnumSymbol.NONE).addTraits(LIQUID); + SUNFLOWEROIL = new FluidType(111, "SUNFLOWEROIL", 0xCBAD45, 0, 1, 0, EnumSymbol.NONE).addTraits(LIQUID); // ^ ^ ^ ^ ^ ^ ^ ^ //ADD NEW FLUIDS HERE @@ -357,6 +361,8 @@ public class Fluids { metaOrder.add(BIOGAS); metaOrder.add(BIOFUEL); metaOrder.add(ETHANOL); + metaOrder.add(FISHOIL); + metaOrder.add(SUNFLOWEROIL); metaOrder.add(NITAN); metaOrder.add(BALEFIRE); //processing fluids @@ -523,6 +529,8 @@ public class Fluids { registerCalculatedFuel(WOODOIL, 110_000 /* 20_000 TU per 250mB + a bonus */, 0, null); registerCalculatedFuel(COALCREOSOTE, 250_000 /* 20_000 TU per 100mB + a bonus */, 0, null); + registerCalculatedFuel(FISHOIL, 75_000, 0, null); + registerCalculatedFuel(SUNFLOWEROIL, 50_000, 0, null); registerCalculatedFuel(SOLVENT, 100_000, 0, null); // flammable, sure, but not combustable registerCalculatedFuel(RADIOSOLVENT, 150_000, 0, null); diff --git a/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java b/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java index 1c74b406c..e87da47ca 100644 --- a/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java @@ -50,6 +50,8 @@ public class CokerRecipes extends SerializableRecipe { registerAuto(AROMATICS, GAS_COKER); registerAuto(REFORMATE, GAS_COKER); registerAuto(XYLENE, GAS_COKER); + registerAuto(FISHOIL, NAPHTHA_COKER); + registerAuto(SUNFLOWEROIL, GAS_COKER); registerSFAuto(WOODOIL, 340_000L, new ItemStack(Items.coal, 1, 1), GAS_COKER); diff --git a/src/main/java/com/hbm/inventory/recipes/CrucibleRecipes.java b/src/main/java/com/hbm/inventory/recipes/CrucibleRecipes.java index 9fa52a29e..1c87197ba 100644 --- a/src/main/java/com/hbm/inventory/recipes/CrucibleRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CrucibleRecipes.java @@ -186,11 +186,11 @@ public class CrucibleRecipes extends SerializableRecipe { input[i] = new MaterialStack(Mats.matByName.get(matname), amount); } MaterialStack[] output = new MaterialStack[obj.get("output").getAsJsonArray().size()]; - for(int i = 0; i < input.length; i++) { + for(int i = 0; i < output.length; i++) { JsonArray entry = obj.get("output").getAsJsonArray().get(i).getAsJsonArray(); String matname = entry.get(0).getAsString(); int amount = entry.get(1).getAsInt(); - input[i] = new MaterialStack(Mats.matByName.get(matname), amount); + output[i] = new MaterialStack(Mats.matByName.get(matname), amount); } recipes.add(new CrucibleRecipe(id, name, freq, icon).inputs(input).outputs(output)); } diff --git a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java index 933a7c970..3eee4adf6 100644 --- a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java @@ -102,6 +102,7 @@ public class CrystallizerRecipes extends SerializableRecipe { registerRecipe(new ComparableStack(ModItems.powder_semtex_mix), new CrystallizerRecipe(ModItems.ingot_semtex, baseTime)); registerRecipe(new ComparableStack(ModItems.powder_desh_ready), new CrystallizerRecipe(ModItems.ingot_desh, baseTime)); registerRecipe(new ComparableStack(ModItems.powder_meteorite), new CrystallizerRecipe(ModItems.fragment_meteorite, utilityTime)); + registerRecipe(CD.dust(), new CrystallizerRecipe(ModItems.ingot_rubber, baseTime), new FluidStack(Fluids.FISHOIL, 250)); registerRecipe(new ComparableStack(ModItems.meteorite_sword_treated), new CrystallizerRecipe(ModItems.meteorite_sword_etched, baseTime)); registerRecipe(new ComparableStack(ModItems.powder_impure_osmiridium), new CrystallizerRecipe(ModItems.crystal_osmiridium, baseTime), new FluidStack(Fluids.SCHRABIDIC, 1_000)); diff --git a/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java b/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java index bd6698749..7a663f90d 100644 --- a/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java @@ -23,6 +23,7 @@ import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemFood; import net.minecraft.item.ItemStack; +import net.minecraftforge.oredict.OreDictionary; public class LiquefactionRecipes extends SerializableRecipe { @@ -56,6 +57,8 @@ public class LiquefactionRecipes extends SerializableRecipe { recipes.put(new ComparableStack(ModBlocks.plant_flower, 1, 3), new FluidStack(150, Fluids.ETHANOL)); recipes.put(new ComparableStack(ModBlocks.plant_flower, 1, 4), new FluidStack(50, Fluids.ETHANOL)); recipes.put(new ComparableStack(ModItems.biomass), new FluidStack(125, Fluids.BIOGAS)); + recipes.put(new ComparableStack(Items.fish, 1, OreDictionary.WILDCARD_VALUE), new FluidStack(100, Fluids.FISHOIL)); + recipes.put(new ComparableStack(Blocks.double_plant, 1, 0), new FluidStack(100, Fluids.SUNFLOWEROIL)); recipes.put(new ComparableStack(Items.wheat_seeds), new FluidStack(50, Fluids.SEEDSLURRY)); recipes.put(new ComparableStack(Blocks.tallgrass, 1, 1), new FluidStack(100, Fluids.SEEDSLURRY)); @@ -74,6 +77,11 @@ public class LiquefactionRecipes extends SerializableRecipe { ComparableStack comp = new ComparableStack(stack.getItem(), 1, stack.getItemDamage()); + if(recipes.containsKey(comp)) + return recipes.get(comp); + + comp = new ComparableStack(stack.getItem(), 1, OreDictionary.WILDCARD_VALUE); + if(recipes.containsKey(comp)) return recipes.get(comp); diff --git a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java index 9e79c597a..421453a5d 100644 --- a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java @@ -21,12 +21,16 @@ import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFluidIcon; +import net.minecraft.init.Blocks; import net.minecraft.init.Items; +import net.minecraftforge.oredict.OreDictionary; public class MixerRecipes extends SerializableRecipe { public static HashMap recipes = new HashMap(); + public static HashMap recipes_experimental = new HashMap(); + @Override public void registerDefaults() { recipes.put(Fluids.COOLANT, new MixerRecipe(2_000, 50).setStack1(new FluidStack(Fluids.WATER, 1_800)).setSolid(new OreDictStack(KNO.dust()))); @@ -40,6 +44,8 @@ public class MixerRecipes extends SerializableRecipe { recipes.put(Fluids.MUSTARDGAS, new MixerRecipe(1000, 20).setStack1(new FluidStack(Fluids.REFORMGAS, 750)).setStack2(new FluidStack(Fluids.CHLORINE, 250)).setSolid(new OreDictStack(S.dust()))); recipes.put(Fluids.IONGEL, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.WATER, 1000)).setStack2(new FluidStack(Fluids.HYDROGEN, 200)).setSolid(new ComparableStack(ModItems.pellet_charged))); recipes.put(Fluids.EGG, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.RADIOSOLVENT, 500)).setSolid(new ComparableStack(Items.egg))); + recipes.put(Fluids.FISHOIL, new MixerRecipe(100, 50).setSolid(new ComparableStack(Items.fish, 1, OreDictionary.WILDCARD_VALUE))); + recipes.put(Fluids.SUNFLOWEROIL, new MixerRecipe(100, 50).setSolid(new ComparableStack(Blocks.double_plant, 1, 0))); recipes.put(Fluids.SOLVENT, new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.NAPHTHA, 500)).setStack2(new FluidStack(Fluids.AROMATICS, 500))); recipes.put(Fluids.SULFURIC_ACID, new MixerRecipe(500, 50).setStack1(new FluidStack(Fluids.ACID, 800)).setSolid(new OreDictStack(S.dust()))); @@ -62,6 +68,22 @@ public class MixerRecipes extends SerializableRecipe { recipes.put(Fluids.KEROSENE_REFORM, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.KEROSENE, 900)).setStack2(new FluidStack(Fluids.REFORMATE, 100))); } + public static void registerExperimental(FluidType type, MixerRecipe... recipes) { + recipes_experimental.put(type, recipes); + } + + public static MixerRecipe[] getOutputExperimental(FluidType type) { + return recipes_experimental.get(type); + } + + public static MixerRecipe getOutputExperimental(FluidType type, int index) { + MixerRecipe[] recs = recipes_experimental.get(type); + + if(recs == null) return null; + + return recs[index % recs.length]; + } + public static MixerRecipe getOutput(FluidType type) { return recipes.get(type); } @@ -130,6 +152,30 @@ public class MixerRecipes extends SerializableRecipe { return recipes; } + + public static HashMap getRecipesExperimental() { + + HashMap recipes = new HashMap(); + + for(Entry entry : MixerRecipes.recipes_experimental.entrySet()) { + + FluidType type = entry.getKey(); + MixerRecipe[] recs = entry.getValue(); + + for(MixerRecipe recipe : recs) { + FluidStack output = new FluidStack(type, recipe.output); + + List objects = new ArrayList(); + if(recipe.input1 != null) objects.add(ItemFluidIcon.make(recipe.input1)); + if(recipe.input2 != null) objects.add(ItemFluidIcon.make(recipe.input2)); + if(recipe.solidInput != null) objects.add(recipe.solidInput); + + recipes.put(objects.toArray(), ItemFluidIcon.make(output)); + } + } + + return recipes; + } public static class MixerRecipe { public FluidStack input1; diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 4a9c5faf2..8f2c19202 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -625,6 +625,7 @@ hbmfluid.egg=Gelöstes Ei hbmfluid.estradiol=Estradiollösung hbmfluid.ethanol=Ethanol hbmfluid.enderjuice=Endersaft +hbmfluid.fishoil=Fischöl hbmfluid.fracksol=Frackinglösung hbmfluid.gas=Erdgas hbmfluid.gas_coker=Koker-Gas @@ -689,6 +690,7 @@ hbmfluid.sourgas=Saures Gas hbmfluid.spentsteam=Niedrigdruckdampf hbmfluid.steam=Dampf hbmfluid.sulfuric_acid=Schwefelsäure +hbmfluid.sunfloweroil=Sonnenblumenkernöl hbmfluid.superhotsteam=Superverdichteter Dampf hbmfluid.syngas=Synthesegas hbmfluid.tritium=Tritium diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index b179aee53..9ba04761b 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1197,6 +1197,7 @@ hbmfluid.egg=Dissolved Egg hbmfluid.estradiol=Estradiol Solution hbmfluid.ethanol=Ethanol hbmfluid.enderjuice=Ender Juice +hbmfluid.fishoil=Fish Oil hbmfluid.fracksol=Fracking Solution hbmfluid.gas=Natural Gas hbmfluid.gas_coker=Coker Gas @@ -1261,6 +1262,7 @@ hbmfluid.sourgas=Sour Gas hbmfluid.spentsteam=Low-Pressure Steam hbmfluid.steam=Steam hbmfluid.sulfuric_acid=Sulfuric Acid +hbmfluid.sunfloweroil=Sunflower Seed Oil hbmfluid.superhotsteam=Super Dense Steam hbmfluid.syngas=Syngas hbmfluid.tritium=Tritium diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/fishoil.png b/src/main/resources/assets/hbm/textures/gui/fluids/fishoil.png new file mode 100644 index 0000000000000000000000000000000000000000..59a2057bdb491f1ecf6cfd833124cf81499a9f27 GIT binary patch literal 489 zcmV@o%48uU%w%BnTQA&|gLMesT8m%=cB~nVI zp@^{WJKlTddFJ(cky64MV^B&VBIQ8-R!U*5MJYwwwq-K!{r~>}F~(9b#^9VI##nC8 zb*(k)x|Tepgw6PjF=d_SnUqpFtdzogf8a(bMT`-fZw3kktu<}ivhRCo(lia*wjm;j zNP%IUbL{($h#VSi+g3&e$Vv^vP>BBd`N8&m&-Hrc{eCk|Q^DQ$Jt2ewC9mT+VvM2d zy05H#-?JZmoYNvyfjS|cKa5WYUh zrm0!Z>eP-j#uPQ0runK+Z>*K5^SYKN3L$(ss7K2i>ZtSD;whysZ}nrzo3nhirJJU~ z7{jtG2bc#4H4k}2tu$qO8hzPgajmP6rd}5oXp>1122mo|l$K`S%#>nUMA;yUJ gp6By<@I^M*KYijnZ0#n!+W-In07*qoM6N<$f;^7o1ONa4 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_mixer.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_mixer.png index dae11341596fb9f50342357f592ecdd19a724971..1bb5e85f15bff9b71477d24b72c32ca467896ce5 100644 GIT binary patch delta 2725 zcmYLJdpwkB8-Cu`n1e%%3XK?}Eee?$QaMc_*^=3rXmDDiBoY|Tijl*oQU}NH4+cDWjmyY5ht5#8-`Ibi*`TQaV{sZdxrj3u4 z%!<4)QP5RaTSH?fJ@K^BM8rjFot(dK^@#1n{sL}O5o0QN&GXdpoAb_Ri@p;Vg^{rR019qsg zl3@gxZ(Y9d&VL<$hUW#HOGX{E`PbfNec*zek0NMz1H9y9bL>d zp(q~oBWxH&qKX-}YOx6e{W(#*j9)qB(ULC>pa3~Z~6hlj}>i!Jp<+0Pn0AL+`A z|Ky-A@PaF&KlcR)QSnIpS_k=Hfhm7}%y^~4*yjFnRUA>Etmk{W57Fd=X?rHILjKj(0BHJ%D zv^qUmEYgA|T*gLrZArtQZxlzndvkaF7g|F&{pD zGPYN)x@HHN($x(O-pQSa)TD0E7&|mu@Vv}EVf@1NO6hxKy;QoK12<=PgEQgnpx1kA zgPIcGykl{q<(^TLd8O2&rvMz;NO%~dLMN7{YFUA$n%;s-J9@Y!&pI>N$d$!NTb8kMc|5`%9f6)VH2~Gd-fo_1=D>$Zn5%>Wa;zV>;8bX2x{HmbpjVB8g$$( zkQpYSSib47XM^Qq&d}pE`;&xFFDo+xp{b#zH<9QPZd6u!%+ln-uq-I`OLwbvK4++U zjnHS&(te1p{|E}*8=_{X_K*%8+^%&&xz?tlSJjw!4s2OORejLMTZfDp09$T-H zaFY4;N-^Z{H2|!%fr)TJp$0pL7SB?RzrVW-8}o_pJy=JGB`aycCm*P@wXE2pHfh~u zdNGL;e6ulQQd#$&&Ncmbe0)HN68Cp>T%e!mZY<@JyL2|~9Cj_jfelf|;ESM?CzUMK zh;VJi6lm7eov#I+O4s3P^5$jIMy;#`;Vr_s5!_^Jt6@MS@2-NQ&1Lk!yVeILLf;$MMWaP!H}IaydTaXktDP%O z=jP4<6MrQW%DXt|+^F%x0#wB=4aMO5m?;UuGOlz3lk-Cs2QU#uIpnD%L`< z!Z8eY=inpVWD?u%lM?skES!HA8N3Kl$={_BtQNXQq7wT4xpdBl(3mONh}KYQ%&--K zu>)ic7+|}aTm+D-3iqN{%w#aS<$nw^J?e#t3Hjf;>zq%S>mM~Nu+rK>tLXgNl+tqGL5EI zZOJ5b@!R!0O|$?>5~DD5SDC3=@aX6l;U4Trx*h19c{|}Y99L|I3Gcn3_bB!{C3&G7 zOGi5B9a?brV`%~TslfY5pb$~2wx)Op%NJIyI@J_M5Y8O$SIRH%r z{EO-|vj^OIyX8f2yD|)no*&Eb#IT9}oI1f4m{Fg_WFZ2YjPm>-<6M>!=LG-sAtml# zo82n5lfCfIz29sH`E9IKpmZ5yXyhdFHS^sKI+sJ;R}MO>ShP>#(`7x`rgMZNpEnsY zbRnR-3xF#`VDdrSRq}@hq~(S2i;=(K{pIb_`mGgn%h&1WBNco;Id7FuL`;mC)^KbR zA(*wW;h;@v;xi2ZQqvve!6Xgys#8fXSpy*z!3&OwuYxH%@lI3eR9RlLL04BMp4M)n z{XtnUKRfx_K%FXh`}StiXJWA0LkuSEtm=xi2^G?oQSnMyU!S2&d1hv2U|`@<4- z8x69(S}1P3Jyf-h$J6-=CnhF_hllU9c}#nvAL`+rxF@Yo#d^o6Sc4H3=DtirBOwsw z;aI*&jUg4jSCjmDqT}`Be=fKZnPmg(>+4@lYMh!XYh04N$VgJ0&qa0;P4q)RS_#1- zO+dh{slP#g>=A3TJMsU~NX*^bPdz~{+=xO*q0_%ujI|B?cAs?IF!#NFJeyRuX1}c; ztcbINFo59`MojgOKcTp|23}(jseB*Jk+(H>+3o-Fal7h^1^>OvKR$0+4czczE%>(` z^p)0fm(|uzN6UQ7yqHX8#70I+He^=G<0Tv5saR#f)-3(14dE*U(Q0vNZ&h8=`c$zx a$Hx#K)f(}5+js#$m#gzWr{bNAU;Y7kr~79B delta 2717 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 RuYzyjAl>yqm4pBJ{{f-52?YQE diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_mixer_experimental.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_mixer_experimental.png new file mode 100644 index 0000000000000000000000000000000000000000..a04e3e7a7aa6e466705f4cae7b27c2ba3b8cc458 GIT binary patch literal 3194 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 Qmm8?o7WU*~Gs=~}1EiZ{`v3p{ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/tank/tank_FISHOIL.png b/src/main/resources/assets/hbm/textures/models/tank/tank_FISHOIL.png new file mode 100644 index 0000000000000000000000000000000000000000..5b9c063b537df683600ebde779e4e786bd64a2ee GIT binary patch literal 1350 zcmV-M1-bf(P)*xP zba%7tXP=qpv-8ZPAqUH^y!^oBb{Mw)^=4z#ZQ`%((xnw`e6u$AI*KA49_)?fxiknd z9Ib`LL9nfbMMY7hna2IGJT^faF*EHafXN_eBM91vk+VXHS$9!+XWc$Aq64yYX=Ui^ z*23c09-CQrK&V$JjZL=^1Z@OC8$rGDhtyeC$n`N~6llQfa?`xwddRVXA?l!w~+MA3TXvX7=-c{Hhd<mCIvgVKNqwtP8WdydkpQ4Ad)+SR9B{EDl5_4r&-dk2ZpHucnN1uaJsMTT~R6 zwm>Q_ZGlY8x{cuIl@T1hnlcs#A{C1RD=MVLfsE*YaPAc{G3z#hO}7zT+G5JMv;|Ue zX^VjOc*4)~o)EJP+!XN51M+k*gt4 zuL8oQEl?UGy5d|mXdF7*C6`hSU84HNddPUF` zQTFmv?4yk!Xd|ds9))z}Kt^;x__M+l71H0mV%8lHj$WZOf;NJnji6q|tgUZIl2(?N zBuQ_*e_226ey{H~t`vGa>Q#XHAt%3!Bp+ zpFi^-9?TK7o!uwNTR9`i8!`aU9_1AHJ>mm!4Pi>=_;X-czsB)#HCZ zq9@O{BuNLJgXZX!C-IQ4cdreF+&p_mot<4B{CHD8Y~PS1J^Rf0X+GUj%A{gFZKA3KK6tpsoid$`WjE_wKX}S`#m`s^48|6wl-IFbN^e-HRsj6{qu?Y zh)J8>BMGxXMIz1&3Wx_-x>s6B;+D|)+>`Ey6>|$-wP&WsrZ!x zU6`&{?|kuzB&pZwsJ{?g+$)qu&_)on5!5S>s8>iuy{ahc6;e^J zP#QrSLC{7}uRNk&Arc#16vpxAA~)!o1LOedlF3UuWlHx3bd0PMWCc7nNK45{=dlyWZBRQDSi^g>_p+ukB|Q}+u^MbpMUSBw&@<* z$Cq2Vx%_o{9YT=%{d1DbuTq{)NP3tosq|v+c&Qd$E#%fCSDmLUSV}~-A+(wCn&TN#4AI@D?|~m3Prqv ziLp}!U3UdET|9-ZKnP)S8wy>4uV4O7ZbQ5>w06AW99@W|@k+BD@ygIz@k+BD@v0(p z-JsAlAV)i)$@oMs6yo)(s1h%@xy5B#mZ&7OgAn3X)pt;sf zp`D=66;NI4&S?T$ZPq%roTCe~G+t@W(Znl5Ob$d+ZI0&3Sml^A<^(w!C)~XgIrCI=!Zx^5>JbvwarN+(#_Vq+|Afhd-?C=`xPJM!K8TF2jpqdP7tpQS;VV; zw4y~9NE5G?L@N>El_`sOwIo`J5U+}-?YbFt7vkLIr#MGDL7|->UKz@1*~F`i zbc@^;Huk%%(RH6;sG!}~TXo~9xh?ciOO6f5YACkLLQi$qH5QwtEew78{$4~xnx+{% z#%mp0mn}NhQe)@na|dNj)9l8I+-DiDT#vfP3c1C|ySqfi;dmt>gwy&Y=Z?Bv7g~gP zQmm7$#C)qlj`xeAre$zcEh002ovPDHLkV1iDi{v`ka literal 0 HcmV?d00001 From 305b7232f23ad4f1d26e55cea170179c95fe6b35 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 24 May 2023 14:35:43 +0200 Subject: [PATCH 008/109] Blast fishing, fish bombing, dynamite fishing or grenade fishing is a de structive fishing practice using explosives to stun or kill schools of fish for easy collection. --- .../java/com/hbm/crafting/WeaponRecipes.java | 1 + .../grenade/EntityGrenadeBouncyGeneric.java | 2 +- .../grenade/EntityGrenadeImpactGeneric.java | 2 +- .../entity/projectile/EntityRBMKDebris.java | 48 +++--- .../java/com/hbm/inventory/fluid/Fluids.java | 5 +- .../java/com/hbm/inventory/gui/GUIMixer.java | 38 +++++ .../hbm/inventory/recipes/CokerRecipes.java | 2 +- .../recipes/CrystallizerRecipes.java | 16 +- .../hbm/inventory/recipes/MixerRecipes.java | 160 +++++++++--------- src/main/java/com/hbm/items/ModItems.java | 2 + .../hbm/items/weapon/ItemGenericGrenade.java | 4 +- .../hbm/items/weapon/ItemGrenadeFishing.java | 59 +++++++ .../machine/TileEntityMachineMixer.java | 41 ++++- src/main/resources/assets/hbm/lang/de_DE.lang | 2 + src/main/resources/assets/hbm/lang/en_US.lang | 2 + .../hbm/textures/gui/processing/gui_mixer.png | Bin 3122 -> 3194 bytes .../gui/processing/gui_mixer_experimental.png | Bin 3194 -> 0 bytes .../textures/items/stick_dynamite_fishing.png | Bin 0 -> 215 bytes 18 files changed, 263 insertions(+), 121 deletions(-) create mode 100644 src/main/java/com/hbm/items/weapon/ItemGrenadeFishing.java delete mode 100644 src/main/resources/assets/hbm/textures/gui/processing/gui_mixer_experimental.png create mode 100644 src/main/resources/assets/hbm/textures/items/stick_dynamite_fishing.png diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index 72585ccb7..87da12304 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -348,6 +348,7 @@ public class WeaponRecipes { //Sticks of explosives CraftingManager.addRecipeAuto(new ItemStack(ModItems.stick_dynamite, 4), new Object[] { " S ", "PDP", "PDP", 'S', ModItems.safety_fuse, 'P', Items.paper, 'D', ModItems.ball_dynamite }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.stick_dynamite_fishing, 1), new Object[] { ModItems.stick_dynamite, ModItems.stick_dynamite, ModItems.stick_dynamite, Items.paper, ANY_TAR.any() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.stick_tnt, 4), new Object[] { " S ", "PDP", "PDP", 'S', ModBlocks.det_cord, 'P', Items.paper, 'D', ModItems.ball_tnt }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.stick_semtex, 4), new Object[] { " S ", "PDP", "PDP", 'S', ModBlocks.det_cord, 'P', Items.paper, 'D', ModItems.ingot_semtex }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.stick_c4, 4), new Object[] { " S ", "PDP", "PDP", 'S', ModBlocks.det_cord, 'P', Items.paper, 'D', ModItems.ingot_c4 }); diff --git a/src/main/java/com/hbm/entity/grenade/EntityGrenadeBouncyGeneric.java b/src/main/java/com/hbm/entity/grenade/EntityGrenadeBouncyGeneric.java index cc440ec35..05f5326dd 100644 --- a/src/main/java/com/hbm/entity/grenade/EntityGrenadeBouncyGeneric.java +++ b/src/main/java/com/hbm/entity/grenade/EntityGrenadeBouncyGeneric.java @@ -40,7 +40,7 @@ public class EntityGrenadeBouncyGeneric extends EntityGrenadeBouncyBase implemen @Override public void explode() { - getGrenade().explode(worldObj, posX, posY, posZ); + getGrenade().explode(this, this.getThrower(), worldObj, posX, posY, posZ); this.setDead(); } diff --git a/src/main/java/com/hbm/entity/grenade/EntityGrenadeImpactGeneric.java b/src/main/java/com/hbm/entity/grenade/EntityGrenadeImpactGeneric.java index febe81373..82d4e89ca 100644 --- a/src/main/java/com/hbm/entity/grenade/EntityGrenadeImpactGeneric.java +++ b/src/main/java/com/hbm/entity/grenade/EntityGrenadeImpactGeneric.java @@ -42,7 +42,7 @@ public class EntityGrenadeImpactGeneric extends EntityGrenadeBase implements IGe public void explode() { if(!this.worldObj.isRemote && getGrenade() != null) { - getGrenade().explode(worldObj, posX, posY, posZ); + getGrenade().explode(this, this.getThrower(), worldObj, posX, posY, posZ); this.setDead(); } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityRBMKDebris.java b/src/main/java/com/hbm/entity/projectile/EntityRBMKDebris.java index c92fb2ae6..0bc62c9e3 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityRBMKDebris.java +++ b/src/main/java/com/hbm/entity/projectile/EntityRBMKDebris.java @@ -68,30 +68,6 @@ public class EntityRBMKDebris extends EntityDebrisBase { hasSizeSet = true; } - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - this.motionY -= 0.04D; - this.moveEntity(this.motionX, this.motionY, this.motionZ); - - this.lastRot = this.rot; - - if(this.onGround) { - this.motionX *= 0.85D; - this.motionZ *= 0.85D; - this.motionY *= -0.5D; - - } else { - - this.rot += 10F; - - if(rot >= 360F) { - this.rot -= 360F; - this.lastRot -= 360F; - } - } - if(!worldObj.isRemote) { if(this.getType() == DebrisType.LID && motionY > 0) { @@ -133,6 +109,30 @@ public class EntityRBMKDebris extends EntityDebrisBase { if(!RBMKDials.getPermaScrap(worldObj) && this.ticksExisted > getLifetime() + this.getEntityId() % 50) this.setDead(); } + + this.prevPosX = this.posX; + this.prevPosY = this.posY; + this.prevPosZ = this.posZ; + + this.motionY -= 0.04D; + this.moveEntity(this.motionX, this.motionY, this.motionZ); + + this.lastRot = this.rot; + + if(this.onGround) { + this.motionX *= 0.85D; + this.motionZ *= 0.85D; + this.motionY *= -0.5D; + + } else { + + this.rot += 10F; + + if(rot >= 360F) { + this.rot -= 360F; + this.lastRot -= 360F; + } + } } @Override diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 9b0c6f33a..b7c73b12e 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -132,6 +132,7 @@ public class Fluids { public static FluidType ESTRADIOL; public static FluidType FISHOIL; public static FluidType SUNFLOWEROIL; + public static FluidType NITROGLYCERIN; private static final HashMap idMapping = new HashMap(); private static final HashMap nameMapping = new HashMap(); @@ -274,7 +275,8 @@ public class Fluids { CHOLESTEROL = new FluidType("CHOLESTEROL", 0xD6D2BD, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); ESTRADIOL = new FluidType("ESTRADIOL", 0xCDD5D8, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); FISHOIL = new FluidType("FISHOIL", 0x4B4A45, 0, 1, 0, EnumSymbol.NONE).addTraits(LIQUID); - SUNFLOWEROIL = new FluidType(111, "SUNFLOWEROIL", 0xCBAD45, 0, 1, 0, EnumSymbol.NONE).addTraits(LIQUID); + SUNFLOWEROIL = new FluidType("SUNFLOWEROIL", 0xCBAD45, 0, 1, 0, EnumSymbol.NONE).addTraits(LIQUID); + NITROGLYCERIN = new FluidType(112, "SUNFLOWEROIL", 0xCBAD45, 0, 4, 0, EnumSymbol.NONE).addTraits(LIQUID); // ^ ^ ^ ^ ^ ^ ^ ^ //ADD NEW FLUIDS HERE @@ -390,6 +392,7 @@ public class Fluids { metaOrder.add(PHOSGENE); metaOrder.add(MUSTARDGAS); metaOrder.add(ESTRADIOL); + metaOrder.add(NITROGLYCERIN); //antimatter metaOrder.add(AMAT); metaOrder.add(ASCHRAB); diff --git a/src/main/java/com/hbm/inventory/gui/GUIMixer.java b/src/main/java/com/hbm/inventory/gui/GUIMixer.java index ae109391e..9d082bbfe 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMixer.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMixer.java @@ -1,14 +1,26 @@ package com.hbm.inventory.gui; +import java.util.ArrayList; +import java.util.List; + import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMixer; +import com.hbm.inventory.recipes.MixerRecipes; +import com.hbm.inventory.recipes.MixerRecipes.MixerRecipe; import com.hbm.lib.RefStrings; +import com.hbm.packet.AuxButtonPacket; +import com.hbm.packet.NBTControlPacket; +import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.machine.TileEntityMachineMixer; +import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.ResourceLocation; public class GUIMixer extends GuiInfoContainer { @@ -29,12 +41,38 @@ public class GUIMixer extends GuiInfoContainer { super.drawScreen(x, y, interp); this.drawElectricityInfo(this, x, y, guiLeft + 23, guiTop + 23, 16, 52, mixer.getPower(), mixer.getMaxPower()); + + MixerRecipe[] recipes = MixerRecipes.getOutput(mixer.tanks[2].getTankType()); + + if(recipes != null && recipes.length > 1) { + List label = new ArrayList(); + label.add(EnumChatFormatting.YELLOW + "Current recipe (" + (mixer.recipeIndex + 1) + "/" + recipes.length + "):"); + MixerRecipe recipe = recipes[mixer.recipeIndex % recipes.length]; + if(recipe.input1 != null) label.add("-" + I18nUtil.resolveKey(recipe.input1.type.getUnlocalizedName())); + if(recipe.input2 != null) label.add("-" + I18nUtil.resolveKey(recipe.input2.type.getUnlocalizedName())); + if(recipe.solidInput != null) label.add("-" + recipe.solidInput.extractForCyclingDisplay(20).getDisplayName()); + label.add(EnumChatFormatting.RED + "Click to change!"); + this.drawCustomInfoStat(x, y, guiLeft + 62, guiTop + 22, 12, 12, x, y, label); + } mixer.tanks[0].renderTankInfo(this, x, y, guiLeft + 43, guiTop + 23, 7, 52); mixer.tanks[1].renderTankInfo(this, x, y, guiLeft + 52, guiTop + 23, 7, 52); mixer.tanks[2].renderTankInfo(this, x, y, guiLeft + 117, guiTop + 23, 16, 52); } + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + if(guiLeft + 62 <= x && guiLeft + 62 + 12 > x && guiTop + 22 < y && guiTop + 22 + 12 >= y) { + + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("toggle", true); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, mixer.xCoord, mixer.yCoord, mixer.zCoord)); + } + } + @Override protected void drawGuiContainerForegroundLayer( int i, int j) { diff --git a/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java b/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java index e87da47ca..01dfe8dd6 100644 --- a/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java @@ -50,7 +50,7 @@ public class CokerRecipes extends SerializableRecipe { registerAuto(AROMATICS, GAS_COKER); registerAuto(REFORMATE, GAS_COKER); registerAuto(XYLENE, GAS_COKER); - registerAuto(FISHOIL, NAPHTHA_COKER); + registerAuto(FISHOIL, MERCURY); registerAuto(SUNFLOWEROIL, GAS_COKER); registerSFAuto(WOODOIL, 340_000L, new ItemStack(Items.coal, 1, 1), GAS_COKER); diff --git a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java index 3eee4adf6..7b73f053f 100644 --- a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java @@ -127,13 +127,15 @@ public class CrystallizerRecipes extends SerializableRecipe { registerRecipe(new ComparableStack(ModItems.ore_nitrocrystalline, 1, i), new CrystallizerRecipe(new ItemStack(ModItems.ore_seared, 1, i), oreTime), hiperf); } - FluidStack woodOil = new FluidStack(Fluids.WOODOIL, 100); - registerRecipe(COAL.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.BLACK, 4), 20), woodOil); - registerRecipe(TI.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.WHITE, 4), 20), woodOil); - registerRecipe(IRON.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.RED, 4), 20), woodOil); - registerRecipe(W.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.YELLOW, 4), 20), woodOil); - registerRecipe(CU.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.GREEN, 4), 20), woodOil); - registerRecipe(CO.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.BLUE, 4), 20), woodOil); + FluidStack[] dyes = new FluidStack[] {new FluidStack(Fluids.WOODOIL, 100), new FluidStack(Fluids.FISHOIL, 100)}; + for(FluidStack dye : dyes) { + registerRecipe(COAL.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.BLACK, 4), 20), dye); + registerRecipe(TI.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.WHITE, 4), 20), dye); + registerRecipe(IRON.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.RED, 4), 20), dye); + registerRecipe(W.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.YELLOW, 4), 20), dye); + registerRecipe(CU.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.GREEN, 4), 20), dye); + registerRecipe(CO.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.BLUE, 4), 20), dye); + } registerRecipe(new ComparableStack(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE)), new CrystallizerRecipe(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.WAX), 20), new FluidStack(Fluids.CHLORINE, 250)); registerRecipe(new ComparableStack(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRACK)), new CrystallizerRecipe(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.WAX), 20), new FluidStack(Fluids.CHLORINE, 100)); diff --git a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java index 421453a5d..d1a12d6f2 100644 --- a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java @@ -8,6 +8,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map.Entry; +import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; @@ -27,67 +28,72 @@ import net.minecraftforge.oredict.OreDictionary; public class MixerRecipes extends SerializableRecipe { - public static HashMap recipes = new HashMap(); - - public static HashMap recipes_experimental = new HashMap(); + public static HashMap recipes = new HashMap(); @Override public void registerDefaults() { - recipes.put(Fluids.COOLANT, new MixerRecipe(2_000, 50).setStack1(new FluidStack(Fluids.WATER, 1_800)).setSolid(new OreDictStack(KNO.dust()))); - recipes.put(Fluids.CRYOGEL, new MixerRecipe(2_000, 50).setStack1(new FluidStack(Fluids.COOLANT, 1_800)).setSolid(new ComparableStack(ModItems.powder_ice))); - recipes.put(Fluids.NITAN, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.KEROSENE, 600)).setStack2(new FluidStack(Fluids.MERCURY, 200)).setSolid(new ComparableStack(ModItems.powder_nitan_mix))); - recipes.put(Fluids.FRACKSOL, new MixerRecipe(1_000, 20).setStack1(new FluidStack(Fluids.SULFURIC_ACID, 900)).setStack2(new FluidStack(Fluids.PETROLEUM, 100))); - recipes.put(Fluids.ENDERJUICE, new MixerRecipe(100, 100).setStack1(new FluidStack(Fluids.XPJUICE, 500)).setSolid(new OreDictStack(DIAMOND.dust()))); - recipes.put(Fluids.SALIENT, new MixerRecipe(1000, 20).setStack1(new FluidStack(Fluids.SEEDSLURRY, 500)).setStack2(new FluidStack(Fluids.BLOOD, 500))); - recipes.put(Fluids.COLLOID, new MixerRecipe(500, 20).setStack1(new FluidStack(Fluids.WATER, 500)).setSolid(new ComparableStack(ModItems.dust))); - recipes.put(Fluids.PHOSGENE, new MixerRecipe(1000, 20).setStack1(new FluidStack(Fluids.UNSATURATEDS, 500)).setStack2(new FluidStack(Fluids.CHLORINE, 500))); - recipes.put(Fluids.MUSTARDGAS, new MixerRecipe(1000, 20).setStack1(new FluidStack(Fluids.REFORMGAS, 750)).setStack2(new FluidStack(Fluids.CHLORINE, 250)).setSolid(new OreDictStack(S.dust()))); - recipes.put(Fluids.IONGEL, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.WATER, 1000)).setStack2(new FluidStack(Fluids.HYDROGEN, 200)).setSolid(new ComparableStack(ModItems.pellet_charged))); - recipes.put(Fluids.EGG, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.RADIOSOLVENT, 500)).setSolid(new ComparableStack(Items.egg))); - recipes.put(Fluids.FISHOIL, new MixerRecipe(100, 50).setSolid(new ComparableStack(Items.fish, 1, OreDictionary.WILDCARD_VALUE))); - recipes.put(Fluids.SUNFLOWEROIL, new MixerRecipe(100, 50).setSolid(new ComparableStack(Blocks.double_plant, 1, 0))); + register(Fluids.COOLANT, new MixerRecipe(2_000, 50).setStack1(new FluidStack(Fluids.WATER, 1_800)).setSolid(new OreDictStack(KNO.dust()))); + register(Fluids.CRYOGEL, new MixerRecipe(2_000, 50).setStack1(new FluidStack(Fluids.COOLANT, 1_800)).setSolid(new ComparableStack(ModItems.powder_ice))); + register(Fluids.NITAN, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.KEROSENE, 600)).setStack2(new FluidStack(Fluids.MERCURY, 200)).setSolid(new ComparableStack(ModItems.powder_nitan_mix))); + register(Fluids.FRACKSOL, + new MixerRecipe(1_000, 20).setStack1(new FluidStack(Fluids.SULFURIC_ACID, 900)).setStack2(new FluidStack(Fluids.PETROLEUM, 100)), + new MixerRecipe(1_000, 20).setStack1(new FluidStack(Fluids.WATER, 1000)).setStack2(new FluidStack(Fluids.PETROLEUM, 100)).setSolid(new OreDictStack(S.dust()))); + register(Fluids.ENDERJUICE, new MixerRecipe(100, 100).setStack1(new FluidStack(Fluids.XPJUICE, 500)).setSolid(new OreDictStack(DIAMOND.dust()))); + register(Fluids.SALIENT, new MixerRecipe(1000, 20).setStack1(new FluidStack(Fluids.SEEDSLURRY, 500)).setStack2(new FluidStack(Fluids.BLOOD, 500))); + register(Fluids.COLLOID, new MixerRecipe(500, 20).setStack1(new FluidStack(Fluids.WATER, 500)).setSolid(new ComparableStack(ModItems.dust))); + register(Fluids.PHOSGENE, new MixerRecipe(1000, 20).setStack1(new FluidStack(Fluids.UNSATURATEDS, 500)).setStack2(new FluidStack(Fluids.CHLORINE, 500))); + register(Fluids.MUSTARDGAS, new MixerRecipe(1000, 20).setStack1(new FluidStack(Fluids.REFORMGAS, 750)).setStack2(new FluidStack(Fluids.CHLORINE, 250)).setSolid(new OreDictStack(S.dust()))); + register(Fluids.IONGEL, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.WATER, 1000)).setStack2(new FluidStack(Fluids.HYDROGEN, 200)).setSolid(new ComparableStack(ModItems.pellet_charged))); + register(Fluids.EGG, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.RADIOSOLVENT, 500)).setSolid(new ComparableStack(Items.egg))); + register(Fluids.FISHOIL, new MixerRecipe(100, 50).setSolid(new ComparableStack(Items.fish, 1, OreDictionary.WILDCARD_VALUE))); + register(Fluids.SUNFLOWEROIL, new MixerRecipe(100, 50).setSolid(new ComparableStack(Blocks.double_plant, 1, 0))); - recipes.put(Fluids.SOLVENT, new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.NAPHTHA, 500)).setStack2(new FluidStack(Fluids.AROMATICS, 500))); - recipes.put(Fluids.SULFURIC_ACID, new MixerRecipe(500, 50).setStack1(new FluidStack(Fluids.ACID, 800)).setSolid(new OreDictStack(S.dust()))); - recipes.put(Fluids.NITRIC_ACID, new MixerRecipe(500, 50).setStack1(new FluidStack(Fluids.SULFURIC_ACID, 500)).setSolid(new OreDictStack(KNO.dust()))); - recipes.put(Fluids.RADIOSOLVENT, new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.REFORMGAS, 750)).setStack2(new FluidStack(Fluids.CHLORINE, 250))); - recipes.put(Fluids.SCHRABIDIC, new MixerRecipe(16_000, 100).setStack1(new FluidStack(Fluids.SAS3, 8_000)).setStack2(new FluidStack(Fluids.ACID, 6_000)).setSolid(new ComparableStack(ModItems.pellet_charged))); + register(Fluids.SOLVENT, new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.NAPHTHA, 500)).setStack2(new FluidStack(Fluids.AROMATICS, 500))); + register(Fluids.SULFURIC_ACID, new MixerRecipe(500, 50).setStack1(new FluidStack(Fluids.ACID, 800)).setSolid(new OreDictStack(S.dust()))); + register(Fluids.NITRIC_ACID, new MixerRecipe(500, 50).setStack1(new FluidStack(Fluids.SULFURIC_ACID, 500)).setSolid(new OreDictStack(KNO.dust()))); + register(Fluids.RADIOSOLVENT, new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.REFORMGAS, 750)).setStack2(new FluidStack(Fluids.CHLORINE, 250))); + register(Fluids.SCHRABIDIC, new MixerRecipe(16_000, 100).setStack1(new FluidStack(Fluids.SAS3, 8_000)).setStack2(new FluidStack(Fluids.ACID, 6_000)).setSolid(new ComparableStack(ModItems.pellet_charged))); - recipes.put(Fluids.LUBRICANT, new MixerRecipe(1_000, 20).setStack1(new FluidStack(Fluids.HEATINGOIL, 500)).setStack2(new FluidStack(Fluids.UNSATURATEDS, 500))); - recipes.put(Fluids.PETROIL, new MixerRecipe(1_000, 30).setStack1(new FluidStack(Fluids.RECLAIMED, 800)).setStack2(new FluidStack(Fluids.LUBRICANT, 200))); + register(Fluids.PETROIL, new MixerRecipe(1_000, 30).setStack1(new FluidStack(Fluids.RECLAIMED, 800)).setStack2(new FluidStack(Fluids.LUBRICANT, 200))); + register(Fluids.LUBRICANT, + new MixerRecipe(1_000, 20).setStack1(new FluidStack(Fluids.HEATINGOIL, 500)).setStack2(new FluidStack(Fluids.UNSATURATEDS, 500)), + new MixerRecipe(1_000, 20).setStack1(new FluidStack(Fluids.FISHOIL, 800)).setStack2(new FluidStack(Fluids.ETHANOL, 200)), + new MixerRecipe(1_000, 20).setStack1(new FluidStack(Fluids.SUNFLOWEROIL, 800)).setStack2(new FluidStack(Fluids.ETHANOL, 200))); + register(Fluids.BIOFUEL, + new MixerRecipe(250, 20).setStack1(new FluidStack(Fluids.FISHOIL, 500)).setStack2(new FluidStack(Fluids.WOODOIL, 500)), + new MixerRecipe(200, 20).setStack1(new FluidStack(Fluids.SUNFLOWEROIL, 500)).setStack2(new FluidStack(Fluids.WOODOIL, 500))); + register(Fluids.NITROGLYCERIN, + new MixerRecipe(1000, 20).setStack1(new FluidStack(Fluids.PETROLEUM, 1_000)).setStack2(new FluidStack(Fluids.NITRIC_ACID, 1_000)), + new MixerRecipe(1000, 20).setStack1(new FluidStack(Fluids.FISHOIL, 500)).setStack2(new FluidStack(Fluids.NITRIC_ACID, 500))); - recipes.put(Fluids.SYNGAS, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.COALOIL, 500)).setStack2(new FluidStack(Fluids.STEAM, 500))); - recipes.put(Fluids.OXYHYDROGEN, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.HYDROGEN, 500)).setStack2(new FluidStack(Fluids.OXYGEN, 500))); + register(Fluids.SYNGAS, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.COALOIL, 500)).setStack2(new FluidStack(Fluids.STEAM, 500))); + register(Fluids.OXYHYDROGEN, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.HYDROGEN, 500)).setStack2(new FluidStack(Fluids.OXYGEN, 500))); - recipes.put(Fluids.PETROIL_LEADED, new MixerRecipe(12_000, 40).setStack1(new FluidStack(Fluids.PETROIL, 10_000)).setSolid(new ComparableStack(ModItems.antiknock))); - recipes.put(Fluids.GASOLINE_LEADED, new MixerRecipe(12_000, 40).setStack1(new FluidStack(Fluids.GASOLINE, 10_000)).setSolid(new ComparableStack(ModItems.antiknock))); - recipes.put(Fluids.COALGAS_LEADED, new MixerRecipe(12_000, 40).setStack1(new FluidStack(Fluids.COALGAS, 10_000)).setSolid(new ComparableStack(ModItems.antiknock))); + register(Fluids.PETROIL_LEADED, new MixerRecipe(12_000, 40).setStack1(new FluidStack(Fluids.PETROIL, 10_000)).setSolid(new ComparableStack(ModItems.antiknock))); + register(Fluids.GASOLINE_LEADED, new MixerRecipe(12_000, 40).setStack1(new FluidStack(Fluids.GASOLINE, 10_000)).setSolid(new ComparableStack(ModItems.antiknock))); + register(Fluids.COALGAS_LEADED, new MixerRecipe(12_000, 40).setStack1(new FluidStack(Fluids.COALGAS, 10_000)).setSolid(new ComparableStack(ModItems.antiknock))); - recipes.put(Fluids.DIESEL_REFORM, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.DIESEL, 900)).setStack2(new FluidStack(Fluids.REFORMATE, 100))); - recipes.put(Fluids.DIESEL_CRACK_REFORM, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.DIESEL_CRACK, 900)).setStack2(new FluidStack(Fluids.REFORMATE, 100))); - recipes.put(Fluids.KEROSENE_REFORM, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.KEROSENE, 900)).setStack2(new FluidStack(Fluids.REFORMATE, 100))); + register(Fluids.DIESEL_REFORM, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.DIESEL, 900)).setStack2(new FluidStack(Fluids.REFORMATE, 100))); + register(Fluids.DIESEL_CRACK_REFORM, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.DIESEL_CRACK, 900)).setStack2(new FluidStack(Fluids.REFORMATE, 100))); + register(Fluids.KEROSENE_REFORM, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.KEROSENE, 900)).setStack2(new FluidStack(Fluids.REFORMATE, 100))); } - public static void registerExperimental(FluidType type, MixerRecipe... recipes) { - recipes_experimental.put(type, recipes); + public static void register(FluidType type, MixerRecipe... rec) { + recipes.put(type, rec); } - public static MixerRecipe[] getOutputExperimental(FluidType type) { - return recipes_experimental.get(type); + public static MixerRecipe[] getOutput(FluidType type) { + return recipes.get(type); } - public static MixerRecipe getOutputExperimental(FluidType type, int index) { - MixerRecipe[] recs = recipes_experimental.get(type); + public static MixerRecipe getOutput(FluidType type, int index) { + MixerRecipe[] recs = recipes.get(type); if(recs == null) return null; return recs[index % recs.length]; } - public static MixerRecipe getOutput(FluidType type) { - return recipes.get(type); - } - @Override public String getFileName() { return "hbmMixer.json"; @@ -107,57 +113,53 @@ public class MixerRecipes extends SerializableRecipe { public void readRecipe(JsonElement recipe) { JsonObject obj = (JsonObject) recipe; - FluidStack output = this.readFluidStack(obj.get("output").getAsJsonArray()); - MixerRecipe mix = new MixerRecipe(output.fill, obj.get("duration").getAsInt()); - - if(obj.has("input1")) mix.setStack1(this.readFluidStack(obj.get("input1").getAsJsonArray())); - if(obj.has("input2")) mix.setStack2(this.readFluidStack(obj.get("input2").getAsJsonArray())); - if(obj.has("solidInput")) mix.setSolid(this.readAStack(obj.get("solidInput").getAsJsonArray())); + FluidType outputType = Fluids.fromName(obj.get("outputType").getAsString()); + JsonArray recipeArray = obj.get("recipes").getAsJsonArray(); + MixerRecipe[] array = new MixerRecipe[recipeArray.size()]; - recipes.put(output.type, mix); + for(int i = 0; i < recipeArray.size(); i++) { + JsonObject sub = recipeArray.get(i).getAsJsonObject(); + MixerRecipe mix = new MixerRecipe(sub.get("outputAmount").getAsInt(), sub.get("duration").getAsInt()); + + if(sub.has("input1")) mix.setStack1(this.readFluidStack(sub.get("input1").getAsJsonArray())); + if(sub.has("input2")) mix.setStack2(this.readFluidStack(sub.get("input2").getAsJsonArray())); + if(sub.has("solidInput")) mix.setSolid(this.readAStack(sub.get("solidInput").getAsJsonArray())); + + array[i] = mix; + + } + + recipes.put(outputType, array); } @Override public void writeRecipe(Object recipe, JsonWriter writer) throws IOException { - Entry rec = (Entry) recipe; - MixerRecipe mix = rec.getValue(); - FluidStack output = new FluidStack(rec.getKey(), mix.output); + Entry rec = (Entry) recipe; + MixerRecipe[] recipes = rec.getValue(); - writer.name("duration").value(mix.processTime); - writer.name("output"); - this.writeFluidStack(output, writer); + writer.name("outputType").value(rec.getKey().getName()); + writer.name("recipes").beginArray(); - if(mix.input1 != null) { writer.name("input1"); this.writeFluidStack(mix.input1, writer); } - if(mix.input2 != null) { writer.name("input2"); this.writeFluidStack(mix.input2, writer); } - if(mix.solidInput != null) { writer.name("solidInput"); this.writeAStack(mix.solidInput, writer); } + for(MixerRecipe mix : recipes) { + writer.beginObject(); + FluidStack output = new FluidStack(rec.getKey(), mix.output); + + writer.name("duration").value(mix.processTime); + writer.name("outputAmount").value(mix.output); + + if(mix.input1 != null) { writer.name("input1"); this.writeFluidStack(mix.input1, writer); } + if(mix.input2 != null) { writer.name("input2"); this.writeFluidStack(mix.input2, writer); } + if(mix.solidInput != null) { writer.name("solidInput"); this.writeAStack(mix.solidInput, writer); } + writer.endObject(); + } + writer.endArray(); } public static HashMap getRecipes() { HashMap recipes = new HashMap(); - for(Entry entry : MixerRecipes.recipes.entrySet()) { - - FluidType type = entry.getKey(); - MixerRecipe recipe = entry.getValue(); - FluidStack output = new FluidStack(type, recipe.output); - - List objects = new ArrayList(); - if(recipe.input1 != null) objects.add(ItemFluidIcon.make(recipe.input1)); - if(recipe.input2 != null) objects.add(ItemFluidIcon.make(recipe.input2)); - if(recipe.solidInput != null) objects.add(recipe.solidInput); - - recipes.put(objects.toArray(), ItemFluidIcon.make(output)); - } - - return recipes; - } - - public static HashMap getRecipesExperimental() { - - HashMap recipes = new HashMap(); - - for(Entry entry : MixerRecipes.recipes_experimental.entrySet()) { + for(Entry entry : MixerRecipes.recipes.entrySet()) { FluidType type = entry.getKey(); MixerRecipe[] recs = entry.getValue(); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 8fc513266..5bce97c3c 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1613,6 +1613,7 @@ public class ModItems { public static Item crucible; public static Item stick_dynamite; + public static Item stick_dynamite_fishing; public static Item stick_tnt; public static Item stick_semtex; public static Item stick_c4; @@ -4220,6 +4221,7 @@ public class ModItems { crucible = new ItemCrucible(5000, 1F, matCrucible).setUnlocalizedName("crucible").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":crucible"); stick_dynamite = new ItemGrenade(3).setUnlocalizedName("stick_dynamite").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":stick_dynamite"); + stick_dynamite_fishing = new ItemGrenadeFishing(3).setUnlocalizedName("stick_dynamite_fishing").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":stick_dynamite_fishing"); stick_tnt = new Item().setUnlocalizedName("stick_tnt").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":stick_tnt"); stick_semtex = new Item().setUnlocalizedName("stick_semtex").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":stick_semtex"); stick_c4 = new Item().setUnlocalizedName("stick_c4").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":stick_c4"); diff --git a/src/main/java/com/hbm/items/weapon/ItemGenericGrenade.java b/src/main/java/com/hbm/items/weapon/ItemGenericGrenade.java index e7f417999..c300075f8 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGenericGrenade.java +++ b/src/main/java/com/hbm/items/weapon/ItemGenericGrenade.java @@ -3,6 +3,8 @@ package com.hbm.items.weapon; import com.hbm.entity.grenade.EntityGrenadeBouncyGeneric; import com.hbm.entity.grenade.EntityGrenadeImpactGeneric; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -33,7 +35,7 @@ public class ItemGenericGrenade extends ItemGrenade { return stack; } - public void explode(World world, double x, double y, double z) { } + public void explode(Entity grenade, EntityLivingBase thrower, World world, double x, double y, double z) { } public int getMaxTimer() { return this.fuse * 20; diff --git a/src/main/java/com/hbm/items/weapon/ItemGrenadeFishing.java b/src/main/java/com/hbm/items/weapon/ItemGrenadeFishing.java new file mode 100644 index 000000000..f61e6a274 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/ItemGrenadeFishing.java @@ -0,0 +1,59 @@ +package com.hbm.items.weapon; + +import java.util.Random; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class ItemGrenadeFishing extends ItemGenericGrenade { + + public ItemGrenadeFishing(int fuse) { + super(fuse); + } + + @Override + public void explode(Entity grenade, EntityLivingBase thrower, World world, double x, double y, double z) { + world.newExplosion(null, x, y + 0.25D, z, 3F, false, false); + + int iX = (int) Math.floor(x); + int iY = (int) Math.floor(y); + int iZ = (int) Math.floor(z); + + for(int i = 0; i < 15; i++) { + + int rX = iX + world.rand.nextInt(15) - 7; + int rY = iY + world.rand.nextInt(15) - 7; + int rZ = iZ + world.rand.nextInt(15) - 7; + + if(world.getBlock(rX, rY, rZ).getMaterial() == Material.water) { + ItemStack loot = this.getRandomLoot(world.rand); + if(loot != null) { + EntityItem item = new EntityItem(world, rX + 0.5, rY + 0.5, rZ + 0.5, loot.copy()); + item.motionY = 3; + world.spawnEntityInWorld(item); + } + } + } + } + + public static ItemStack getRandomLoot(Random rand) { + float chance = rand.nextFloat(); + int luck = 0; + int speed = 100; //reduces both the junk and treasure chance to near zero + return net.minecraftforge.common.FishingHooks.getRandomFishable(rand, chance, luck, speed); + } + + @Override + public int getMaxTimer() { + return 60; + } + + @Override + public double getBounceMod() { + return 0.5D; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java index 37333a316..4f62b9aa8 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java @@ -1,5 +1,6 @@ package com.hbm.tileentity.machine; +import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerMixer; import com.hbm.inventory.fluid.Fluids; @@ -26,12 +27,13 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; -public class TileEntityMachineMixer extends TileEntityMachineBase implements INBTPacketReceiver, IGUIProvider, IEnergyUser, IFluidStandardTransceiver { +public class TileEntityMachineMixer extends TileEntityMachineBase implements INBTPacketReceiver, IControlReceiver, IGUIProvider, IEnergyUser, IFluidStandardTransceiver { public long power; public static final long maxPower = 10_000; public int progress; public int processTime; + public int recipeIndex; public float rotation; public float prevRotation; @@ -107,6 +109,7 @@ public class TileEntityMachineMixer extends TileEntityMachineBase implements INB data.setLong("power", power); data.setInteger("processTime", processTime); data.setInteger("progress", progress); + data.setInteger("recipe", recipeIndex); data.setBoolean("wasOn", wasOn); for(int i = 0; i < 3; i++) { tanks[i].writeToNBT(data, i + ""); @@ -133,6 +136,7 @@ public class TileEntityMachineMixer extends TileEntityMachineBase implements INB this.power = nbt.getLong("power"); this.processTime = nbt.getInteger("processTime"); this.progress = nbt.getInteger("progress"); + this.recipeIndex = nbt.getInteger("recipe"); this.wasOn = nbt.getBoolean("wasOn"); for(int i = 0; i < 3; i++) { tanks[i].readFromNBT(nbt, i + ""); @@ -140,10 +144,19 @@ public class TileEntityMachineMixer extends TileEntityMachineBase implements INB } public boolean canProcess() { + + MixerRecipe[] recipes = MixerRecipes.getOutput(tanks[2].getTankType()); + if(recipes == null || recipes.length <= 0) { + this.recipeIndex = 0; + return false; + } - MixerRecipe recipe = MixerRecipes.getOutput(tanks[2].getTankType()); - - if(recipe == null) return false; + this.recipeIndex = this.recipeIndex % recipes.length; + MixerRecipe recipe = recipes[this.recipeIndex]; + if(recipe == null) { + this.recipeIndex = 0; + return false; + } tanks[0].setTankType(recipe.input1 != null ? recipe.input1.type : Fluids.NONE); tanks[1].setTankType(recipe.input2 != null ? recipe.input2.type : Fluids.NONE); @@ -169,7 +182,8 @@ public class TileEntityMachineMixer extends TileEntityMachineBase implements INB protected void process() { - MixerRecipe recipe = MixerRecipes.getOutput(tanks[2].getTankType()); + MixerRecipe[] recipes = MixerRecipes.getOutput(tanks[2].getTankType()); + MixerRecipe recipe = recipes[this.recipeIndex % recipes.length]; if(recipe.input1 != null) tanks[0].setFill(tanks[0].getFill() - recipe.input1.fill); if(recipe.input2 != null) tanks[1].setFill(tanks[1].getFill() - recipe.input2.fill); @@ -199,8 +213,10 @@ public class TileEntityMachineMixer extends TileEntityMachineBase implements INB @Override public boolean isItemValidForSlot(int i, ItemStack itemStack) { - MixerRecipe recipe = MixerRecipes.getOutput(tanks[2].getTankType()); + MixerRecipe[] recipes = MixerRecipes.getOutput(tanks[2].getTankType()); + if(recipes == null || recipes.length <= 0) return false; + MixerRecipe recipe = recipes[this.recipeIndex % recipes.length]; if(recipe == null || recipe.solidInput == null) return false; return recipe.solidInput.matchesRecipe(itemStack, true); @@ -213,6 +229,7 @@ public class TileEntityMachineMixer extends TileEntityMachineBase implements INB this.power = nbt.getLong("power"); this.progress = nbt.getInteger("progress"); this.processTime = nbt.getInteger("processTime"); + this.recipeIndex = nbt.getInteger("recipe"); for(int i = 0; i < 3; i++) this.tanks[i].readFromNBT(nbt, i + ""); } @@ -223,6 +240,7 @@ public class TileEntityMachineMixer extends TileEntityMachineBase implements INB nbt.setLong("power", power); nbt.setInteger("progress", progress); nbt.setInteger("processTime", processTime); + nbt.setInteger("recipe", recipeIndex); for(int i = 0; i < 3; i++) this.tanks[i].writeToNBT(nbt, i + ""); } @@ -284,4 +302,15 @@ public class TileEntityMachineMixer extends TileEntityMachineBase implements INB public double getMaxRenderDistanceSquared() { return 65536.0D; } + + @Override + public boolean hasPermission(EntityPlayer player) { + return player.getDistance(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5) <= 16; + } + + @Override + public void receiveControl(NBTTagCompound data) { + + if(data.hasKey("toggle")) this.recipeIndex++; + } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 8f2c19202..4e2684089 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -659,6 +659,7 @@ hbmfluid.naphtha_coker=Koker-Naphtha hbmfluid.naphtha_crack=Crack-Mitteldestillat hbmfluid.nitan=NITAN© 100 Oktan Supertreibstoff hbmfluid.nitric_acid=Salpetersäure +hbmfluid.nitroglycerin=Nitroglycerin hbmfluid.none=Nichts hbmfluid.oil=Rohöl hbmfluid.oil_coker=Koker-Öl @@ -3097,6 +3098,7 @@ item.steel_shovel.name=Stahlschaufel item.steel_sword.name=Stahlschwert item.stick_c4.name=Stange C4 item.stick_dynamite.name=Stange Dynamit +item.stick_dynamite_fishing.name=Stange Fischerei-Dynamit item.stick_semtex.name=Stange Semtex item.stick_tnt.name=Stange TNT item.stopsign.name=Stopschild-Streitaxt diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 9ba04761b..3758781ef 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1231,6 +1231,7 @@ hbmfluid.naphtha_coker=Coker Naphtha hbmfluid.naphtha_crack=Cracked Naphtha hbmfluid.nitan=NITAN© 100 Octane Super Fuel hbmfluid.nitric_acid=Nitric Acid +hbmfluid.nitroglycerin=Nitroglycerin hbmfluid.none=None hbmfluid.oil=Crude Oil hbmfluid.oil_coker=Coker Oil @@ -3882,6 +3883,7 @@ item.steel_shovel.name=Steel Shovel item.steel_sword.name=Steel Sword item.stick_c4.name=Stick of C-4 item.stick_dynamite.name=Stick of Dynamite +item.stick_dynamite_fishing.name=Stick of Fishing Dynamite item.stick_semtex.name=Stick of Semtex item.stick_tnt.name=Stick of TNT item.stopsign.name=Stop Sign Battle Axe diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_mixer.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_mixer.png index 1bb5e85f15bff9b71477d24b72c32ca467896ce5..a04e3e7a7aa6e466705f4cae7b27c2ba3b8cc458 100644 GIT binary patch literal 3194 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 Qmm8?o7WU*~Gs=~}1EiZ{`v3p{ literal 3122 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 diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_mixer_experimental.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_mixer_experimental.png deleted file mode 100644 index a04e3e7a7aa6e466705f4cae7b27c2ba3b8cc458..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3194 zcmb_eXH-+!7Ctu#A(TicN|O>4L=gdz5)l$0AWdMz2UyS`DuOiWqd*cxaR323N>`*y zk!onM0SZzC1VKoY8Kg)XN+2QdF7wt~Gwc0%Wxey~>~q&$-`@K>-~R6X#nJvCR#;9L z0D!f&A|D0-fxfjM&n08t%lvgwiV)Ttq&zm&CH^PK0B zVOqE#N?(hHqNf!J>04mlZTb$_-ghkcMbMVJ{^K*Ke#i&>xgmWZsh@&BdrL!*A zU32+L7zsiW&&l*uR@SZVH3Zj%g#em(rOqS*-@!R`?HaRjy?=(I5<_cQG$pEu2DYg& zqT4~S-J%%nq*8m-z504%!v6hoN{C1#X}dMX@Q^#(VT3=@+ia(51Mbd>(SI^WkhXha z4A;W*>_=?nHM-6L=JxAonpFU1b!m`DCd-v{I1H!vDiI^KT3fYTsKY-qdIzF5p+K;_ zBv3KMv(XJiM?RfD-|Fc?%t&o$XeDY@UH+yfw|_9BaB1<#vvSV6QMVq z7rxp9r_eVA*(T=Iny5gIX31EJ2Qq9S2Tn(HGQ)-M*`~F=ztx-4lQ83qUCmcWjRC?L=m+MQsq^RGK zO=7V*BkyGQAh`C!>F?URHCF~%MA1vB1GY3Oe4Vh5^1eHxn(uk5_8}7os?7B+Oy)9dMGTC* z_ots#!^wcj$uL2&UsElZ6O)DQvF7N;7Ey$9lO41Eh1f^fjoo~Vu3$V0_kPAac3p-|d%JgRkx%rny!#pDlW(U_&Vf3wFJ^uH- zfzpsiT4oQLR3rzQ(pGpjCX(9Ds9-(1>yDk35c^F5v|R82<-9PS>n#(^ClEZUk%{?7 zD}GV}I_D5Z4%NlQJif=Lp2a&xS2G%pZ}Ri!y|ave(A(ZW#VpIm()#s49CFxeGPlyG z`s~X1e5Kx&$So%bzez*BPVzvfef5x%$I&MY=fhT@R3bpd;{p&}OPS#AJmXcC-~csg zc&V~oCyQ1uD?=3V6S$P;iw{(q#owf&=DDP|q`t zeg3nIWhu&V51Mx8v;s+zv$QlcKb!((gGy>InNYv76~@ zVJ{Met};wdUCGjg)WdNdPv$7k6O_KjI^7oCReNWV_XHjIY{N7| zHI1QDGmjcLkp+{aTnA!W#;FsvBOQ?qaLyNI-XL<1K;h)Ft?Q*?6A;*rn#hS-8@@tZ zTNs_ZSaQ1&R)1@236=B5@bk)1eQQa4VULMHhoAv*b@CYSW7xIHqP>xn_j07c%&>xc z5$iLn&CBjd^8+1yxf!F3ZJmy5`%Fej3eO=wJ8z_N7#5y;11uNsOE~17)ZM8|?b8W6 z&}zr#99JoPI~GHP{gV6A+Hhz-6De}dwVGIe?%C#sd#!Y_>-@&$&3 zKFBZ&S>yHDvq-zx!K4W0mrg!IDBUu7qk#0$Btq4S;p$IJ=W`Yg`vH9GD*0x zY<-ZE2W6)h!yaSv!f7sPMnLBA4Fx)e?(B`sybF7cJg4t=gvYIk8G+>)C7G`fT)(ab zmieF-le`N>{T6B_^^-iv(xc(~s{H8o@VNF(#>pbg8>KVz z6zDjzFL+}(&vE-)UCwvC|G@vbG*o-?R1t2h`vJ^Bw6Zsn`H+FuuDr>+V4$xgTlg#^ zc1Rp!+9Sy9$w0Tct7ht+QS0OwzR!URual-ssAOt2-847nzWadUDjxg{i*4*-Bjb>Z z5+RNjStTA9(#QVt$u^S+k74{XsHlXca3DNz3shL*|MSYzkmf9z(Gwb`#*2`42$mw8 zza)};oS2m|0MySCXL*=>o*Fa=H@If(c!PAFSPFD@$& z>VE=ruzZqsq#{BKjGDuDb{LtAbWg^olY}?+A%7b=2)iUB1F09z&w&H)DK(pX@6W- zZhczraqE%{Jt^pOGSYmz2yK2ouDv8_;u|%K%vu`I?-u1>i7lqHDjG={mwEgpbFkDoO~8VR8Ln+UnQ2N3=|iS%t)f~Ha~XUwT^@dh(t%Gq`G%z@3(DPs~lE; zwH?Zw`|ussYPv$oE9I&x6S4X;w3DBaOkbs`;o#}-AI+7Ur)qQt`(&QCXk7sNu)&)6 z%tLNe?n{w~J3Jx2LFQ%2y#i_XiQBGfe%68}hJEUw`B`4FtTb6|7vlFO+r-vg3%B?Z zpgS+cU1t&j0r9VU+jb$CH*y?KQRE?QkKS?ykuAH5bKhA?=%sg5u&Ron&Lapv>K5XVka8Sxm%O6!^mNV&BC1Oi+a2Q+sSpvXW##uEI8N7uR%ZMMLkaYHfXy4PpHyuxG5>tCL_dCbL@Y?)?b19#czbh`U{R%Ok+@YVJrLg zRpL*iV{x<}!ghc3vsq@YR6~0s+uQNr8r1*VfECRqxCh!$*ai;;HRHr@ zHL5CcZ%>!)H!^w>1bKWBrIb}x>Wzy)*E504!AhjdojPHP;fA*Uk4txnXnTBY$oKV` Qmm8?o7WU*~Gs=~}1EiZ{`v3p{ diff --git a/src/main/resources/assets/hbm/textures/items/stick_dynamite_fishing.png b/src/main/resources/assets/hbm/textures/items/stick_dynamite_fishing.png new file mode 100644 index 0000000000000000000000000000000000000000..973506281c341fe739640eab0ef3e0a6354a8341 GIT binary patch literal 215 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfb2yQDN_uVe3WLmdZysH zGV|fN{5-tRIG0$?e)#S8f1ca&f6`~vJhXQ{=*aV&pYN=X#H@*b&J=tHDrBj4tNEtL zqY!9(# Date: Wed, 24 May 2023 16:13:14 +0200 Subject: [PATCH 009/109] buoyant items, press fix --- .../java/com/hbm/entity/EntityMappings.java | 3 +++ .../hbm/entity/item/EntityItemBuoyant.java | 27 +++++++++++++++++++ src/main/java/com/hbm/items/ModItems.java | 1 + .../hbm/items/weapon/ItemGrenadeFishing.java | 7 ++--- src/main/java/com/hbm/main/MainRegistry.java | 13 +++++++++ .../machine/TileEntityMachineEPress.java | 4 +-- .../machine/TileEntityMachinePress.java | 4 +-- 7 files changed, 52 insertions(+), 7 deletions(-) create mode 100644 src/main/java/com/hbm/entity/item/EntityItemBuoyant.java diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index f5457e462..8d388474a 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -212,6 +212,9 @@ public class EntityMappings { addEntity(EntityChemical.class, "entity_chemthrower_splash", 1000); addEntity(EntityMist.class, "entity_mist", 1000); + addEntity(EntityItemWaste.class, "entity_item_waste", 100); + addEntity(EntityItemBuoyant.class, "entity_item_buoyant", 100); + addEntity(SeatDummyEntity.class, "entity_ntm_seat_dummy", 250, false); addEntity(BoundingBoxDummyEntity.class, "entity_ntm_bounding_dummy", 250, false); addEntity(TrainCargoTram.class, "entity_ntm_cargo_tram", 250, false); diff --git a/src/main/java/com/hbm/entity/item/EntityItemBuoyant.java b/src/main/java/com/hbm/entity/item/EntityItemBuoyant.java new file mode 100644 index 000000000..9a19b7490 --- /dev/null +++ b/src/main/java/com/hbm/entity/item/EntityItemBuoyant.java @@ -0,0 +1,27 @@ +package com.hbm.entity.item; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class EntityItemBuoyant extends EntityItem { + + public EntityItemBuoyant(World world) { + super(world); + } + + public EntityItemBuoyant(World world, double x, double y, double z, ItemStack stack) { + super(world, x, y, z, stack); + } + + @Override + public void onUpdate() { + + if(worldObj.getBlock((int) Math.floor(posX), (int) Math.floor(posY - 0.0625), (int) Math.floor(posZ)).getMaterial() == Material.water) { + this.motionY += 0.045D; + } + + super.onUpdate(); + } +} diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 5bce97c3c..68ae2a5a4 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -7262,6 +7262,7 @@ public class ModItems { //Grenades GameRegistry.registerItem(stick_dynamite, stick_dynamite.getUnlocalizedName()); //heave-ho! + GameRegistry.registerItem(stick_dynamite_fishing, stick_dynamite_fishing.getUnlocalizedName()); GameRegistry.registerItem(stick_tnt, stick_tnt.getUnlocalizedName()); GameRegistry.registerItem(stick_semtex, stick_semtex.getUnlocalizedName()); GameRegistry.registerItem(stick_c4, stick_c4.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/weapon/ItemGrenadeFishing.java b/src/main/java/com/hbm/items/weapon/ItemGrenadeFishing.java index f61e6a274..a04d29f7e 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGrenadeFishing.java +++ b/src/main/java/com/hbm/items/weapon/ItemGrenadeFishing.java @@ -2,10 +2,11 @@ package com.hbm.items.weapon; import java.util.Random; +import com.hbm.entity.item.EntityItemBuoyant; + import net.minecraft.block.material.Material; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.item.EntityItem; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -32,8 +33,8 @@ public class ItemGrenadeFishing extends ItemGenericGrenade { if(world.getBlock(rX, rY, rZ).getMaterial() == Material.water) { ItemStack loot = this.getRandomLoot(world.rand); if(loot != null) { - EntityItem item = new EntityItem(world, rX + 0.5, rY + 0.5, rZ + 0.5, loot.copy()); - item.motionY = 3; + EntityItemBuoyant item = new EntityItemBuoyant(world, rX + 0.5, rY + 0.5, rZ + 0.5, loot.copy()); + item.motionY = 1; world.spawnEntityInWorld(item); } } diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index acaadd51d..e58761275 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -67,6 +67,7 @@ import com.hbm.inventory.recipes.anvil.AnvilRecipes; import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.ModItems; import com.hbm.items.tool.ItemFertilizer; +import com.hbm.items.weapon.ItemGenericGrenade; import com.hbm.items.ItemAmmoEnums.Ammo4Gauge; import com.hbm.lib.HbmWorld; import com.hbm.lib.Library; @@ -613,6 +614,18 @@ public class MainRegistry { return new EntityGrenadeDynamite(world, position.getX(), position.getY(), position.getZ()); } }); + BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_kyiv, new BehaviorProjectileDispense() { + + protected IProjectile getProjectileEntity(World world, IPosition position) { + return new EntityGrenadeImpactGeneric(world, position.getX(), position.getY(), position.getZ()).setType((ItemGenericGrenade) ModItems.grenade_kyiv); + } + }); + BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.stick_dynamite_fishing, new BehaviorProjectileDispense() { + + protected IProjectile getProjectileEntity(World world, IPosition position) { + return new EntityGrenadeImpactGeneric(world, position.getX(), position.getY(), position.getZ()).setType((ItemGenericGrenade) ModItems.stick_dynamite_fishing); + } + }); BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.powder_fertilizer, new BehaviorDefaultDispenseItem() { private boolean dispenseSound = true; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java index c99db935b..01ba0af31 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java @@ -171,8 +171,8 @@ public class TileEntityMachineEPress extends TileEntityMachineBase implements IE @Override public boolean isItemValidForSlot(int i, ItemStack stack) { - if(stack.getItem() instanceof ItemStamp && i == 1) - return true; + if(stack.getItem() instanceof ItemStamp) + return i == 1; return i == 2; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePress.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePress.java index 1de7e31a5..c049d696e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePress.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePress.java @@ -191,8 +191,8 @@ public class TileEntityMachinePress extends TileEntityMachineBase implements IGU @Override public boolean isItemValidForSlot(int i, ItemStack stack) { - if(stack.getItem() instanceof ItemStamp && i == 1) - return true; + if(stack.getItem() instanceof ItemStamp) + return i == 1; if(TileEntityFurnace.getItemBurnTime(stack) > 0 && i == 0) return true; From 9a1d7c76e8febf16249414b485b329ab283edc93 Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 24 May 2023 21:46:26 +0200 Subject: [PATCH 010/109] some fixes, tram flatbed wagon --- .../blocks/machine/pile/BlockGraphite.java | 2 +- .../java/com/hbm/entity/EntityMappings.java | 3 +- .../entity/train/TrainCargoTramTrailer.java | 54 ++ .../java/com/hbm/inventory/fluid/Fluids.java | 2 +- .../recipes/CrystallizerRecipes.java | 2 + .../hbm/inventory/recipes/MixerRecipes.java | 2 - .../java/com/hbm/items/special/ItemTrain.java | 16 +- src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/CraftingManager.java | 2 +- .../java/com/hbm/main/ResourceManager.java | 2 + .../item/RenderTrainCargoTramTrailer.java | 41 ++ .../machine/TileEntityCoreEmitter.java | 4 +- .../hbm/models/vehicles/tram_trailer.obj | 561 ++++++++++++++++++ .../hbm/textures/gui/fluids/nitroglycerin.png | Bin 0 -> 717 bytes .../items/train.cargo_tram_trailer.png | Bin 0 -> 164 bytes .../models/tank/tank_NITROGLYCERIN.png | Bin 0 -> 1270 bytes .../textures/models/trains/tram_trailer.png | Bin 0 -> 3204 bytes 17 files changed, 677 insertions(+), 15 deletions(-) create mode 100644 src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java create mode 100644 src/main/java/com/hbm/render/entity/item/RenderTrainCargoTramTrailer.java create mode 100644 src/main/resources/assets/hbm/models/vehicles/tram_trailer.obj create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/nitroglycerin.png create mode 100644 src/main/resources/assets/hbm/textures/items/train.cargo_tram_trailer.png create mode 100644 src/main/resources/assets/hbm/textures/models/tank/tank_NITROGLYCERIN.png create mode 100644 src/main/resources/assets/hbm/textures/models/trains/tram_trailer.png diff --git a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphite.java b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphite.java index 45ceb6d10..c5018700a 100644 --- a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphite.java +++ b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphite.java @@ -32,7 +32,7 @@ public class BlockGraphite extends BlockFlammable implements IToolable { PacketDispatcher.wrapper.sendToAllAround(new ParticleBurstPacket(x, y, z, Block.getIdFromBlock(this), 0), new TargetPoint(world.provider.dimensionId, x, y, z, 50)); world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, this.stepSound.func_150496_b(), (this.stepSound.getVolume() + 1.0F) / 2.0F, this.stepSound.getPitch() * 0.8F); - BlockGraphiteRod.ejectItem(world, x, y, z, ForgeDirection.getOrientation(side), new ItemStack(ModItems.powder_coal)); + BlockGraphiteRod.ejectItem(world, x, y, z, ForgeDirection.getOrientation(side), new ItemStack(ModItems.ingot_graphite)); } return true; diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 8d388474a..fee770026 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -16,7 +16,7 @@ import com.hbm.entity.particle.*; import com.hbm.entity.projectile.*; import com.hbm.entity.train.EntityRailCarBase.BoundingBoxDummyEntity; import com.hbm.entity.train.EntityRailCarRidable.SeatDummyEntity; -import com.hbm.entity.train.TrainCargoTram; +import com.hbm.entity.train.*; import com.hbm.main.MainRegistry; import com.hbm.util.Tuple.Quartet; @@ -218,6 +218,7 @@ public class EntityMappings { addEntity(SeatDummyEntity.class, "entity_ntm_seat_dummy", 250, false); addEntity(BoundingBoxDummyEntity.class, "entity_ntm_bounding_dummy", 250, false); addEntity(TrainCargoTram.class, "entity_ntm_cargo_tram", 250, false); + addEntity(TrainCargoTramTrailer.class, "entity_ntm_cargo_tram_trailer", 250, false); addMob(EntityCreeperNuclear.class, "entity_mob_nuclear_creeper", 0x204131, 0x75CE00); addMob(EntityCreeperTainted.class, "entity_mob_tainted_creeper", 0x813b9b, 0xd71fdd); diff --git a/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java b/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java new file mode 100644 index 000000000..8ff36ead4 --- /dev/null +++ b/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java @@ -0,0 +1,54 @@ +package com.hbm.entity.train; + +import com.hbm.blocks.rail.IRailNTM.TrackGauge; + +import net.minecraft.util.DamageSource; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class TrainCargoTramTrailer extends EntityRailCarCargo { + + /* + * + * <-- + * + * _O\____________________________________________/O_ + * |____| |____| + * \__________________________________________/ + * '( + )' '( + )' + * + */ + + public TrainCargoTramTrailer(World world) { + super(world); + this.setSize(5F, 2F); + } + + @Override public TrackGauge getGauge() { return TrackGauge.STANDARD; } + @Override public double getLengthSpan() { return 1.5; } + @Override public int getSizeInventory() { return 29; } + @Override public String getInventoryName() { return this.hasCustomInventoryName() ? this.getEntityName() : "container.trainTramTrailer"; } + + @Override + public double getCurrentSpeed() { + return 0; //we'll figure out how linked carts work later on - i hope + } + + @Override + public DummyConfig[] getDummies() { + return new DummyConfig[] { + new DummyConfig(2F, 1F, Vec3.createVectorHelper(0, 0, 1.5)), + new DummyConfig(2F, 1F, Vec3.createVectorHelper(0, 0, 0)), + new DummyConfig(2F, 1F, Vec3.createVectorHelper(0, 0, -1.5)) + }; + } + + @Override + public boolean attackEntityFrom(DamageSource source, float amount) { + if(!this.worldObj.isRemote && !this.isDead) { + this.setDead(); + } + + return true; + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index b7c73b12e..b39ac64ad 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -276,7 +276,7 @@ public class Fluids { ESTRADIOL = new FluidType("ESTRADIOL", 0xCDD5D8, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); FISHOIL = new FluidType("FISHOIL", 0x4B4A45, 0, 1, 0, EnumSymbol.NONE).addTraits(LIQUID); SUNFLOWEROIL = new FluidType("SUNFLOWEROIL", 0xCBAD45, 0, 1, 0, EnumSymbol.NONE).addTraits(LIQUID); - NITROGLYCERIN = new FluidType(112, "SUNFLOWEROIL", 0xCBAD45, 0, 4, 0, EnumSymbol.NONE).addTraits(LIQUID); + NITROGLYCERIN = new FluidType(112, "NITROGLYCERIN", 0x92ACA6, 0, 4, 0, EnumSymbol.NONE).addTraits(LIQUID); // ^ ^ ^ ^ ^ ^ ^ ^ //ADD NEW FLUIDS HERE diff --git a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java index 7b73f053f..b47ad8804 100644 --- a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java @@ -143,6 +143,8 @@ public class CrystallizerRecipes extends SerializableRecipe { registerRecipe(new ComparableStack(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.PARAFFIN)), new CrystallizerRecipe(new ItemStack(ModItems.pill_red), 200), new FluidStack(Fluids.ESTRADIOL, 250)); registerRecipe(KEY_SAND, new CrystallizerRecipe(Blocks.clay, 20), new FluidStack(Fluids.COLLOID, 1_000)); + registerRecipe(new ComparableStack(ModBlocks.sand_quartz), new CrystallizerRecipe(new ItemStack(ModItems.ball_dynamite, 16), 20), new FluidStack(Fluids.NITROGLYCERIN, 1_000)); + registerRecipe(NETHERQUARTZ.dust(), new CrystallizerRecipe(new ItemStack(ModItems.ball_dynamite, 4), 20), new FluidStack(Fluids.NITROGLYCERIN, 250)); /// COMPAT CERTUS QUARTZ /// List quartz = OreDictionary.getOres("crystalCertusQuartz"); diff --git a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java index d1a12d6f2..e9bcf6ffc 100644 --- a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java @@ -142,8 +142,6 @@ public class MixerRecipes extends SerializableRecipe { for(MixerRecipe mix : recipes) { writer.beginObject(); - FluidStack output = new FluidStack(rec.getKey(), mix.output); - writer.name("duration").value(mix.processTime); writer.name("outputAmount").value(mix.output); diff --git a/src/main/java/com/hbm/items/special/ItemTrain.java b/src/main/java/com/hbm/items/special/ItemTrain.java index 1a2648d38..05f55231d 100644 --- a/src/main/java/com/hbm/items/special/ItemTrain.java +++ b/src/main/java/com/hbm/items/special/ItemTrain.java @@ -5,6 +5,7 @@ import java.util.List; import com.hbm.blocks.rail.IRailNTM; import com.hbm.entity.train.EntityRailCarBase; import com.hbm.entity.train.TrainCargoTram; +import com.hbm.entity.train.TrainCargoTramTrailer; import com.hbm.items.ItemEnumMulti; import com.hbm.util.EnumUtil; @@ -27,18 +28,19 @@ public class ItemTrain extends ItemEnumMulti { public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { EnumTrainType train = EnumUtil.grabEnumSafely(this.theEnum, stack.getItemDamage()); - list.add(EnumChatFormatting.GREEN + "Engine: " + EnumChatFormatting.RESET + train.engine); + if(train.engine != null) list.add(EnumChatFormatting.GREEN + "Engine: " + EnumChatFormatting.RESET + train.engine); list.add(EnumChatFormatting.GREEN + "Gauge: " + EnumChatFormatting.RESET + train.gauge); - list.add(EnumChatFormatting.GREEN + "Max Speed: " + EnumChatFormatting.RESET + train.maxSpeed); - list.add(EnumChatFormatting.GREEN + "Acceleration: " + EnumChatFormatting.RESET + train.acceleration); - list.add(EnumChatFormatting.GREEN + "Engine Brake Threshold: " + EnumChatFormatting.RESET + train.brakeThreshold); - list.add(EnumChatFormatting.GREEN + "Parking Brake: " + EnumChatFormatting.RESET + train.parkingBrake); + if(train.maxSpeed != null) list.add(EnumChatFormatting.GREEN + "Max Speed: " + EnumChatFormatting.RESET + train.maxSpeed); + if(train.acceleration != null) list.add(EnumChatFormatting.GREEN + "Acceleration: " + EnumChatFormatting.RESET + train.acceleration); + if(train.brakeThreshold != null) list.add(EnumChatFormatting.GREEN + "Engine Brake Threshold: " + EnumChatFormatting.RESET + train.brakeThreshold); + if(train.parkingBrake != null) list.add(EnumChatFormatting.GREEN + "Parking Brake: " + EnumChatFormatting.RESET + train.parkingBrake); } public static enum EnumTrainType { - // Engine Gauge Max Speed Accel. Eng. Brake Parking Brake - CARGO_TRAM(TrainCargoTram.class, "Electric", "Standard Gauge", "10m/s", "0.2m/s", "<1m/s", "Yes"); + // Engine Gauge Max Speed Accel. Eng. Brake Parking Brake + CARGO_TRAM(TrainCargoTram.class, "Electric", "Standard Gauge", "10m/s", "0.2m/s", "<1m/s", "Yes"), + CARGO_TRAM_TRAILER(TrainCargoTramTrailer.class, null, "Standard Gauge", "Yes", null, null, "No"); public Class train; public String engine; diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index c47b1b9e1..a757432e5 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -691,6 +691,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(SeatDummyEntity.class, new RenderEmpty()); RenderingRegistry.registerEntityRenderingHandler(BoundingBoxDummyEntity.class, new RenderEmpty()); RenderingRegistry.registerEntityRenderingHandler(TrainCargoTram.class, new RenderTrainCargoTram()); + RenderingRegistry.registerEntityRenderingHandler(TrainCargoTramTrailer.class, new RenderTrainCargoTramTrailer()); //items RenderingRegistry.registerEntityRenderingHandler(EntityMovingItem.class, new RenderMovingItem()); RenderingRegistry.registerEntityRenderingHandler(EntityMovingPackage.class, new RenderMovingPackage()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 02ce53a80..7fda63959 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -578,7 +578,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.gun_kit_2, 1), new Object[] { "III", "GLG", "PPP", 'I', ModItems.plate_polymer, 'L', ModItems.ducttape, 'G', ModItems.gun_kit_1, 'P', IRON.plate() }); addRecipeAuto(new ItemStack(ModItems.igniter, 1), new Object[] { " W", "SC", "CE", 'S', STEEL.plate(), 'W', ModItems.wire_schrabidium, 'C', ModItems.circuit_schrabidium, 'E', EUPH.ingot() }); - addRecipeAuto(new ItemStack(ModItems.watch, 1), new Object[] { "LEL", "EWE", "LEL", 'E', EUPH.ingot(), 'L', KEY_BLUE, 'W', Items.clock }); + addRecipeAuto(new ItemStack(ModItems.watch, 1), new Object[] { "LYL", "EWE", "LYL", 'E', EUPH.ingot(), 'L', KEY_BLUE, 'W', Items.clock, 'Y', ModItems.billet_yharonite }); addRecipeAuto(new ItemStack(ModItems.key, 1), new Object[] { " B", " B ", "P ", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten }); addRecipeAuto(new ItemStack(ModItems.key_kit, 1), new Object[] { "PKP", "DTD", "PKP", 'P', GOLD.plate(), 'K', ModItems.key, 'D', DESH.dust(), 'T', KEY_TOOL_SCREWDRIVER }); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index c947a97be..30f1e2c2e 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1014,6 +1014,7 @@ public class ResourceManager { public static final IModelCustom cart_destroyer = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vehicles/cart_destroyer.obj")); public static final IModelCustom cart_powder = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vehicles/cart_powder.obj")); public static final IModelCustom train_cargo_tram = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vehicles/tram.obj")); + public static final IModelCustom train_cargo_tram_trailer = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vehicles/tram_trailer.obj")); ////Texture Entities @@ -1288,6 +1289,7 @@ public class ResourceManager { public static final ResourceLocation cart_semtex_side = new ResourceLocation(RefStrings.MODID, "textures/blocks/semtex_side.png"); public static final ResourceLocation cart_semtex_top = new ResourceLocation(RefStrings.MODID, "textures/blocks/semtex_bottom.png"); public static final ResourceLocation train_tram = new ResourceLocation(RefStrings.MODID, "textures/models/trains/tram.png"); + public static final ResourceLocation tram_trailer = new ResourceLocation(RefStrings.MODID, "textures/models/trains/tram_trailer.png"); //ISBRHs public static final IModelCustom scaffold = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/scaffold.obj")); diff --git a/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTramTrailer.java b/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTramTrailer.java new file mode 100644 index 000000000..e0166ac4a --- /dev/null +++ b/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTramTrailer.java @@ -0,0 +1,41 @@ +package com.hbm.render.entity.item; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; + +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; + +public class RenderTrainCargoTramTrailer extends Render { + + @Override + public void doRender(Entity entity, double x, double y, double z, float swing, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x, y, z); + + float yaw = entity.rotationYaw; + float prevYaw = entity.prevRotationYaw; + + if(yaw - prevYaw > 180) yaw -= 360; + if(prevYaw - yaw > 180) prevYaw -= 360; + + float yawInterp = prevYaw + (yaw - prevYaw) * interp - 720; + + GL11.glRotated(-yawInterp, 0, 1, 0); + GL11.glRotated(-entity.rotationPitch, 0, 0, 1); + + GL11.glDisable(GL11.GL_CULL_FACE); + bindTexture(ResourceManager.tram_trailer); + ResourceManager.train_cargo_tram_trailer.renderAll(); + GL11.glEnable(GL11.GL_CULL_FACE); + + GL11.glPopMatrix(); + } + + @Override + protected ResourceLocation getEntityTexture(Entity entity) { + return ResourceManager.tram_trailer; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java index ec4354528..218168090 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java @@ -66,8 +66,6 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne watts = MathHelper.clamp_int(watts, 1, 100); long demand = maxPower * watts / 2000; - - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); beam = 0; @@ -175,6 +173,7 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne data.setLong("prev", prev); data.setInteger("beam", beam); data.setBoolean("isOn", isOn); + tank.writeToNBT(data, "tank"); this.networkPack(data, 250); } } @@ -186,6 +185,7 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne prev = data.getLong("prev"); beam = data.getInteger("beam"); isOn = data.getBoolean("isOn"); + tank.readFromNBT(data, "tank"); } public long getPowerScaled(long i) { diff --git a/src/main/resources/assets/hbm/models/vehicles/tram_trailer.obj b/src/main/resources/assets/hbm/models/vehicles/tram_trailer.obj new file mode 100644 index 000000000..270cdde15 --- /dev/null +++ b/src/main/resources/assets/hbm/models/vehicles/tram_trailer.obj @@ -0,0 +1,561 @@ +# Blender v2.79 (sub 0) OBJ File: 'tram_trailer.blend' +# www.blender.org +o Plane +v -1.000000 0.250000 2.500000 +v 1.000000 0.250000 2.500000 +v -1.000000 0.250000 -2.500000 +v 1.000000 0.250000 -2.500000 +v -1.000000 0.750000 -2.500000 +v -1.000000 0.750000 2.500000 +v 1.000000 0.750000 2.500000 +v 1.000000 0.750000 -2.500000 +v 0.562500 0.375000 2.562500 +v 0.562500 0.875000 2.562500 +v 0.562500 0.375000 2.062500 +v 0.562500 0.875000 2.062500 +v 1.062500 0.375000 2.562500 +v 1.062500 0.875000 2.562500 +v 1.062500 0.375000 2.062500 +v 1.062500 0.875000 2.062500 +v -1.062500 0.375000 2.562500 +v -1.062500 0.875000 2.562500 +v -1.062500 0.375000 2.062500 +v -1.062500 0.875000 2.062500 +v -0.562500 0.375000 2.562500 +v -0.562500 0.875000 2.562500 +v -0.562500 0.375000 2.062500 +v -0.562500 0.875000 2.062500 +v 0.562500 0.375000 -1.812500 +v 0.562500 0.875000 -1.812500 +v 0.562500 0.375000 -2.562500 +v 0.562500 0.875000 -2.562500 +v 1.062500 0.375000 -1.812500 +v 1.062500 0.875000 -1.812500 +v 1.062500 0.375000 -2.562500 +v 1.062500 0.875000 -2.562500 +v -1.062500 0.375000 -1.812500 +v -1.062500 0.875000 -1.812500 +v -1.062500 0.375000 -2.562500 +v -1.062500 0.875000 -2.562500 +v -0.562500 0.375000 -1.812500 +v -0.562500 0.875000 -1.812500 +v -0.562500 0.375000 -2.562500 +v -0.562500 0.875000 -2.562500 +v 0.875000 0.250000 -1.625000 +v 0.750000 0.250000 1.750000 +v 0.750000 0.073223 -1.676777 +v 0.875000 0.250000 -1.250000 +v 0.875000 0.250000 1.750000 +v 0.750000 0.073223 1.323223 +v 0.750000 0.000000 1.500000 +v 0.750000 0.073223 1.676777 +v 0.750000 0.250000 -1.250000 +v 0.750000 0.250000 1.250000 +v 0.875000 0.250000 -1.375000 +v 0.875000 0.073223 -1.323223 +v 0.875000 0.250000 1.250000 +v 0.875000 0.073223 1.323223 +v 0.875000 0.000000 1.500000 +v 0.875000 0.073223 1.676777 +v 0.875000 0.250000 1.625000 +v 0.875000 0.000000 -1.500000 +v 0.875000 0.073223 -1.676777 +v 0.875000 0.250000 -1.750000 +v 0.875000 0.250000 1.375000 +v 0.875000 0.161612 1.411612 +v 0.875000 0.125000 1.500000 +v 0.875000 0.161612 1.588388 +v 0.937500 0.250000 1.625000 +v 0.750000 0.250000 -1.750000 +v 0.750000 0.073223 -1.323223 +v 0.750000 0.000000 -1.500000 +v 0.937500 0.250000 1.375000 +v 0.937500 0.161612 1.411612 +v 0.937500 0.125000 1.500000 +v 0.937500 0.161612 1.588388 +v 0.875000 0.161612 -1.588388 +v 0.875000 0.125000 -1.500000 +v 0.875000 0.161612 -1.411612 +v 0.937500 0.250000 -1.375000 +v 0.937500 0.250000 -1.625000 +v 0.937500 0.161612 -1.588388 +v 0.937500 0.125000 -1.500000 +v 0.937500 0.161612 -1.411612 +v -0.750000 0.250000 2.000000 +v 0.750000 0.250000 2.000000 +v -0.750000 0.250000 -2.000000 +v 0.750000 0.250000 -2.000000 +v -0.750000 0.125000 -1.875000 +v -0.750000 0.125000 1.875000 +v 0.750000 0.125000 1.875000 +v 0.750000 0.125000 -1.875000 +v -0.875000 0.250000 1.625000 +v -0.750000 0.250000 -1.750000 +v -0.750000 0.073223 1.676777 +v -0.875000 0.250000 1.250000 +v -0.875000 0.250000 -1.750000 +v -0.750000 0.073223 -1.323223 +v -0.750000 0.000000 -1.500000 +v -0.750000 0.073223 -1.676777 +v -0.750000 0.250000 1.250000 +v -0.750000 0.250000 -1.250000 +v -0.875000 0.250000 1.375000 +v -0.875000 0.073223 1.323223 +v -0.875000 0.250000 -1.250000 +v -0.875000 0.073223 -1.323223 +v -0.875000 0.000000 -1.500000 +v -0.875000 0.073223 -1.676777 +v -0.875000 0.250000 -1.625000 +v -0.875000 0.000000 1.500000 +v -0.875000 0.073223 1.676777 +v -0.875000 0.250000 1.750000 +v -0.875000 0.250000 -1.375000 +v -0.875000 0.161612 -1.411611 +v -0.875000 0.125000 -1.500000 +v -0.875000 0.161612 -1.588388 +v -0.937500 0.250000 -1.625000 +v -0.750000 0.250000 1.750000 +v -0.750000 0.073223 1.323223 +v -0.750000 0.000000 1.500000 +v -0.937500 0.250000 -1.375000 +v -0.937500 0.161612 -1.411611 +v -0.937500 0.125000 -1.500000 +v -0.937500 0.161612 -1.588388 +v -0.875000 0.161612 1.588389 +v -0.875000 0.125000 1.500000 +v -0.875000 0.161612 1.411612 +v -0.937500 0.250000 1.375000 +v -0.937500 0.250000 1.625000 +v -0.937500 0.161612 1.588389 +v -0.937500 0.125000 1.500000 +v -0.937500 0.161612 1.411612 +vt 0.543210 0.090909 +vt 0.049383 0.454545 +vt 0.049383 0.090909 +vt 0.049383 0.090909 +vt 0.543210 0.454545 +vt 0.049383 0.454545 +vt 0.543210 0.000000 +vt 0.049383 0.000000 +vt 0.049383 0.545455 +vt 0.543210 0.545455 +vt 0.592593 0.454545 +vt 0.543210 0.090909 +vt 0.592593 0.090909 +vt -0.000000 0.090909 +vt -0.000000 0.454545 +vt 0.049383 0.727273 +vt -0.000000 0.636364 +vt 0.049383 0.636364 +vt 0.049383 0.818182 +vt 0.098765 0.909091 +vt 0.049383 0.909091 +vt 0.148148 0.727273 +vt 0.098765 0.636364 +vt 0.148148 0.636364 +vt 0.098765 0.727273 +vt 0.098765 0.545455 +vt 0.049383 0.545455 +vt 0.098765 0.818182 +vt 0.049383 0.727273 +vt -0.000000 0.636364 +vt 0.049383 0.636364 +vt 0.049383 0.818182 +vt 0.098765 0.909091 +vt 0.049383 0.909091 +vt 0.148148 0.727273 +vt 0.098765 0.636364 +vt 0.148148 0.636364 +vt 0.098765 0.727273 +vt 0.098765 0.545455 +vt 0.049383 0.545455 +vt 0.098765 0.818182 +vt 0.345679 0.772727 +vt 0.271605 0.681818 +vt 0.345679 0.681818 +vt 0.271605 0.772727 +vt 0.222222 0.681818 +vt 0.222222 0.772727 +vt 0.148148 0.681818 +vt 0.222222 0.909091 +vt 0.271605 1.000000 +vt 0.222222 1.000000 +vt 0.271605 0.545455 +vt 0.345679 0.772727 +vt 0.271605 0.681818 +vt 0.345679 0.681818 +vt 0.271605 0.772727 +vt 0.222222 0.681818 +vt 0.222222 0.772727 +vt 0.148148 0.681818 +vt 0.222222 0.909091 +vt 0.271605 1.000000 +vt 0.222222 1.000000 +vt 0.271605 0.545455 +vt 0.456790 0.568182 +vt 0.438272 0.590909 +vt 0.438272 0.568182 +vt 0.456790 0.568182 +vt 0.438272 0.590909 +vt 0.438272 0.568182 +vt 0.419210 0.590495 +vt 0.377874 0.558974 +vt 0.394996 0.545918 +vt 0.493827 0.568182 +vt 0.475309 0.590909 +vt 0.475309 0.568182 +vt 0.349457 0.574879 +vt 0.358021 0.568349 +vt 0.366584 0.574879 +vt 0.469136 0.590909 +vt 0.456790 0.590909 +vt 0.419753 0.568182 +vt 0.432099 0.590909 +vt 0.419753 0.590909 +vt 0.469136 0.590909 +vt 0.456790 0.590909 +vt 0.419753 0.568182 +vt 0.432099 0.590909 +vt 0.419753 0.590909 +vt 0.493827 0.568182 +vt 0.475309 0.590909 +vt 0.475309 0.568182 +vt 0.349457 0.574879 +vt 0.358021 0.568349 +vt 0.366584 0.574879 +vt 0.377874 0.558974 +vt 0.394996 0.545918 +vt 0.412118 0.558974 +vt 0.975309 0.022727 +vt 0.604938 0.295455 +vt 0.604938 0.022727 +vt 0.987654 0.295455 +vt 0.987654 0.022727 +vt 0.592593 0.022727 +vt 0.592593 0.295455 +vt 0.592593 0.318182 +vt 0.975309 0.295455 +vt 0.987654 0.318182 +vt 0.987654 0.000000 +vt 0.592593 0.000000 +vt 0.456790 0.568182 +vt 0.438272 0.590909 +vt 0.438272 0.568182 +vt 0.456790 0.568182 +vt 0.438272 0.590909 +vt 0.438272 0.568182 +vt 0.419210 0.590495 +vt 0.377874 0.558974 +vt 0.394996 0.545918 +vt 0.493827 0.568182 +vt 0.475309 0.590909 +vt 0.475309 0.568182 +vt 0.358021 0.568349 +vt 0.366584 0.574879 +vt 0.370132 0.590644 +vt 0.475309 0.568182 +vt 0.456790 0.590909 +vt 0.419753 0.590909 +vt 0.419753 0.568182 +vt 0.456790 0.590909 +vt 0.419753 0.590909 +vt 0.419753 0.568182 +vt 0.493827 0.568182 +vt 0.475309 0.590909 +vt 0.358021 0.568349 +vt 0.366584 0.574879 +vt 0.370132 0.590644 +vt 0.377874 0.558974 +vt 0.394996 0.545918 +vt 0.412118 0.558974 +vt 0.543210 0.454545 +vt -0.000000 0.727273 +vt -0.000000 0.727273 +vt 0.148148 0.772727 +vt 0.271605 0.909091 +vt 0.222222 0.545455 +vt 0.148148 0.772727 +vt 0.271605 0.909091 +vt 0.222222 0.545455 +vt 0.450617 0.590909 +vt 0.450617 0.590909 +vt 0.412118 0.558974 +vt 0.370781 0.590495 +vt 0.487654 0.590909 +vt 0.370132 0.590644 +vt 0.345910 0.590644 +vt 0.487654 0.590909 +vt 0.370132 0.590644 +vt 0.345910 0.590644 +vt 0.419210 0.590495 +vt 0.370781 0.590495 +vt 0.450617 0.590909 +vt 0.450617 0.590909 +vt 0.412118 0.558974 +vt 0.370781 0.590495 +vt 0.487654 0.590909 +vt 0.345910 0.590644 +vt 0.349457 0.574879 +vt 0.469136 0.590909 +vt 0.432099 0.590909 +vt 0.469136 0.590909 +vt 0.432099 0.590909 +vt 0.487654 0.590909 +vt 0.345910 0.590644 +vt 0.349457 0.574879 +vt 0.419210 0.590495 +vt 0.370781 0.590495 +vt 0.475309 0.545455 +vt 0.456790 0.545455 +vt 0.456790 0.602273 +vt 0.438272 0.545455 +vt 0.493827 0.545455 +vt 0.419753 0.602273 +vt 0.475309 0.602273 +vt 0.419753 0.545455 +vt 0.438272 0.602273 +vt 0.438272 0.545455 +vt 0.419753 0.545455 +vt 0.438272 0.602273 +vt 0.475309 0.602273 +vt 0.493827 0.545455 +vt 0.475309 0.545455 +vt 0.456790 0.545455 +vt 0.419753 0.602273 +vt 0.456790 0.602273 +vt 0.475309 0.545455 +vt 0.456790 0.545455 +vt 0.456790 0.602273 +vt 0.438272 0.545455 +vt 0.493827 0.545455 +vt 0.419753 0.602273 +vt 0.475309 0.602273 +vt 0.419753 0.545455 +vt 0.438272 0.602273 +vt 0.438272 0.545455 +vt 0.419753 0.545455 +vt 0.438272 0.602273 +vt 0.475309 0.602273 +vt 0.475309 0.545455 +vt 0.456790 0.545455 +vt 0.419753 0.602273 +vt 0.456790 0.602273 +vt 0.469136 0.602273 +vt 0.432099 0.602273 +vt 0.487654 0.602273 +vt 0.450617 0.602273 +vt 0.450617 0.602273 +vt 0.487654 0.602273 +vt 0.432099 0.602273 +vt 0.469136 0.602273 +vt 0.469136 0.602273 +vt 0.432099 0.602273 +vt 0.487654 0.602273 +vt 0.450617 0.602273 +vt 0.450617 0.602273 +vt 0.487654 0.602273 +vt 0.493827 0.545455 +vt 0.432099 0.602273 +vt 0.469136 0.602273 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 -0.3827 0.9239 +s off +f 3/1/1 2/2/1 1/3/1 +f 7/4/2 5/5/2 6/6/2 +f 4/7/3 7/4/3 2/8/3 +f 1/9/4 5/5/4 3/10/4 +f 3/11/5 8/12/5 4/13/5 +f 2/14/6 6/6/6 1/15/6 +f 10/16/4 11/17/4 9/18/4 +f 12/19/5 15/20/5 11/21/5 +f 16/22/3 13/23/3 15/24/3 +f 14/25/6 9/18/6 13/23/6 +f 15/26/1 9/18/1 11/27/1 +f 12/19/2 14/25/2 16/28/2 +f 18/29/4 19/30/4 17/31/4 +f 20/32/5 23/33/5 19/34/5 +f 24/35/3 21/36/3 23/37/3 +f 22/38/6 17/31/6 21/36/6 +f 23/39/1 17/31/1 19/40/1 +f 20/32/2 22/38/2 24/41/2 +f 26/42/4 27/43/4 25/44/4 +f 28/45/5 31/46/5 27/43/5 +f 32/47/3 29/48/3 31/46/3 +f 30/49/6 25/50/6 29/51/6 +f 31/46/1 25/52/1 27/43/1 +f 28/45/2 30/49/2 32/47/2 +f 34/53/4 35/54/4 33/55/4 +f 36/56/5 39/57/5 35/54/5 +f 40/58/3 37/59/3 39/57/3 +f 38/60/6 33/61/6 37/62/6 +f 39/57/1 33/63/1 35/54/1 +f 36/56/2 38/60/2 40/58/2 +f 58/64/3 75/65/3 52/66/3 +f 55/67/3 64/68/3 56/69/3 +f 49/70/4 43/71/4 68/72/4 +f 53/73/3 62/74/3 54/75/3 +f 80/76/3 79/77/3 78/78/3 +f 58/64/3 73/79/3 74/80/3 +f 45/81/3 64/82/3 57/83/3 +f 55/67/3 62/84/3 63/85/3 +f 44/86/3 75/87/3 51/88/3 +f 60/89/3 73/90/3 59/91/3 +f 72/92/3 71/93/3 70/94/3 +f 46/95/4 47/96/4 48/97/4 +f 85/98/1 87/99/1 86/100/1 +f 84/101/7 85/98/7 83/102/7 +f 81/103/8 87/99/8 82/104/8 +f 82/105/3 88/106/3 84/107/3 +f 83/108/4 86/100/4 81/109/4 +f 106/110/4 123/111/4 100/112/4 +f 103/113/4 112/114/4 104/115/4 +f 97/116/3 91/117/3 116/118/3 +f 101/119/4 110/120/4 102/121/4 +f 127/122/4 126/123/4 125/124/4 +f 107/125/4 122/126/4 106/110/4 +f 104/115/4 105/127/4 93/128/4 +f 102/121/4 111/129/4 103/113/4 +f 100/112/4 99/130/4 92/131/4 +f 108/132/4 121/133/4 107/125/4 +f 119/134/4 118/135/4 117/136/4 +f 94/137/3 95/138/3 96/139/3 +f 3/1/1 4/140/1 2/2/1 +f 7/4/2 8/12/2 5/5/2 +f 4/7/3 8/12/3 7/4/3 +f 1/9/4 6/6/4 5/5/4 +f 3/11/5 5/5/5 8/12/5 +f 2/14/6 7/4/6 6/6/6 +f 10/16/4 12/141/4 11/17/4 +f 12/19/5 16/28/5 15/20/5 +f 16/22/3 14/25/3 13/23/3 +f 14/25/6 10/16/6 9/18/6 +f 15/26/1 13/23/1 9/18/1 +f 12/19/2 10/16/2 14/25/2 +f 18/29/4 20/142/4 19/30/4 +f 20/32/5 24/41/5 23/33/5 +f 24/35/3 22/38/3 21/36/3 +f 22/38/6 18/29/6 17/31/6 +f 23/39/1 21/36/1 17/31/1 +f 20/32/2 18/29/2 22/38/2 +f 26/42/4 28/45/4 27/43/4 +f 28/45/5 32/47/5 31/46/5 +f 32/47/3 30/143/3 29/48/3 +f 30/49/6 26/144/6 25/50/6 +f 31/46/1 29/145/1 25/52/1 +f 28/45/2 26/144/2 30/49/2 +f 34/53/4 36/56/4 35/54/4 +f 36/56/5 40/58/5 39/57/5 +f 40/58/3 38/146/3 37/59/3 +f 38/60/6 34/147/6 33/61/6 +f 39/57/1 37/148/1 33/63/1 +f 36/56/2 34/147/2 38/60/2 +f 58/64/3 74/149/3 75/65/3 +f 55/67/3 63/150/3 64/68/3 +f 68/72/4 67/151/4 49/70/4 +f 49/70/4 66/152/4 43/71/4 +f 53/73/3 61/153/3 62/74/3 +f 77/154/3 76/155/3 78/78/3 +f 76/155/3 80/76/3 78/78/3 +f 58/64/3 59/91/3 73/79/3 +f 45/81/3 56/69/3 64/82/3 +f 55/67/3 54/75/3 62/84/3 +f 44/86/3 52/66/3 75/87/3 +f 60/89/3 41/156/3 73/90/3 +f 69/157/3 65/158/3 70/94/3 +f 65/158/3 72/92/3 70/94/3 +f 42/159/4 50/160/4 48/97/4 +f 50/160/4 46/95/4 48/97/4 +f 85/98/1 88/106/1 87/99/1 +f 84/101/7 88/106/7 85/98/7 +f 81/103/8 86/100/8 87/99/8 +f 82/105/3 87/99/3 88/106/3 +f 83/108/4 85/98/4 86/100/4 +f 106/110/4 122/161/4 123/111/4 +f 103/113/4 111/162/4 112/114/4 +f 116/118/3 115/163/3 97/116/3 +f 97/116/3 114/164/3 91/117/3 +f 101/119/4 109/165/4 110/120/4 +f 125/124/4 124/166/4 128/167/4 +f 128/167/4 127/122/4 125/124/4 +f 107/125/4 121/168/4 122/126/4 +f 104/115/4 112/169/4 105/127/4 +f 102/121/4 110/170/4 111/129/4 +f 100/112/4 123/171/4 99/130/4 +f 108/132/4 89/172/4 121/133/4 +f 117/136/4 113/173/4 120/174/4 +f 120/174/4 119/134/4 117/136/4 +f 90/175/3 98/176/3 96/139/3 +f 98/176/3 94/137/3 96/139/3 +s 1 +f 46/177/7 55/67/1 47/178/1 +f 73/79/7 79/179/1 74/80/1 +f 47/178/1 56/69/8 48/180/8 +f 50/181/9 54/75/7 46/177/7 +f 75/87/8 76/182/10 51/88/10 +f 41/156/9 78/183/7 73/90/7 +f 48/180/8 45/81/10 42/184/10 +f 74/149/1 80/185/8 75/65/8 +f 67/186/8 44/86/10 49/187/10 +f 63/150/1 72/188/8 64/68/8 +f 61/153/9 70/189/7 62/74/7 +f 66/190/9 59/91/7 43/191/7 +f 68/192/1 52/66/8 67/186/8 +f 64/82/8 65/193/10 57/83/10 +f 62/84/7 71/194/1 63/85/1 +f 43/191/7 58/64/1 68/192/1 +f 94/195/8 103/113/1 95/196/1 +f 121/168/8 127/197/1 122/126/1 +f 95/196/1 104/115/7 96/198/7 +f 98/199/10 102/121/8 94/195/8 +f 123/171/7 124/200/9 99/130/9 +f 89/172/10 126/201/8 121/133/8 +f 90/202/9 104/115/7 93/128/9 +f 122/161/1 128/203/7 123/111/7 +f 115/204/7 92/131/9 97/205/9 +f 111/162/1 120/206/7 112/114/7 +f 109/165/10 118/207/8 110/120/8 +f 91/208/8 108/132/10 107/125/8 +f 116/209/1 100/112/7 115/204/7 +f 112/169/7 113/210/9 105/127/9 +f 110/170/8 119/211/1 111/129/1 +f 91/208/8 106/110/1 116/209/1 +f 46/177/7 54/75/7 55/67/1 +f 73/79/7 78/212/7 79/179/1 +f 47/178/1 55/67/1 56/69/8 +f 50/181/9 53/73/9 54/75/7 +f 75/87/8 80/213/8 76/182/10 +f 41/156/9 77/214/9 78/183/7 +f 48/180/8 56/69/8 45/81/10 +f 74/149/1 79/215/1 80/185/8 +f 67/186/8 52/66/8 44/86/10 +f 63/150/1 71/216/1 72/188/8 +f 61/153/9 69/217/9 70/189/7 +f 66/190/9 60/89/9 59/91/7 +f 68/192/1 58/64/1 52/66/8 +f 64/82/8 72/218/8 65/193/10 +f 62/84/7 70/219/7 71/194/1 +f 43/191/7 59/91/7 58/64/1 +f 94/195/8 102/121/8 103/113/1 +f 121/168/8 126/220/8 127/197/1 +f 95/196/1 103/113/1 104/115/7 +f 98/199/10 101/119/10 102/121/8 +f 123/171/7 128/221/7 124/200/9 +f 89/172/10 125/222/10 126/201/8 +f 90/202/9 96/198/7 104/115/7 +f 122/161/1 127/223/1 128/203/7 +f 115/204/7 100/112/7 92/131/9 +f 111/162/1 119/224/1 120/206/7 +f 109/165/10 117/225/10 118/207/8 +f 91/208/8 114/226/10 108/132/10 +f 116/209/1 106/110/1 100/112/7 +f 112/169/7 120/227/7 113/210/9 +f 110/170/8 118/228/8 119/211/1 +f 91/208/8 107/125/8 106/110/1 diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/nitroglycerin.png b/src/main/resources/assets/hbm/textures/gui/fluids/nitroglycerin.png new file mode 100644 index 0000000000000000000000000000000000000000..7ce1380945b234ae9af1f9acb4a81298cd95d063 GIT binary patch literal 717 zcmV;;0y6!HP)4c`%e2l`x4vit89}d zRhqX)&T5BF3A2G&|BnhJHI-GN? zRx7mD>~=enBq2!>q?9P726uH`vtF+O=(>&&0#Q{}gM&DZ5km0!`AJa}G);pLf+&gr zXqsk-m!>HIkq`o<6kXS`-EJ9=$K2iBQI;jwc*Yon5C9lsI2;aWt*NRCF_}!zS~HnU zhGXD=F|sV9ZCjL5IOj;y6k`lpYlIMjzVA^=vDs`0At0rsX&Rh!%;$525R_$!b8dL< zRYg%0#Bn@Srj#O0Qx=N_Wm)p_^1^<<$9vE5c*J{;a}FWIFSXY4@$o^^G_-At_a194 zbzPI^IYJ2D-rhK$&rGLNk|aTE4Zw1_Bs!f=NGWm7adUHna}Mu4Ns@3notRFi)OF3% z(-Viof$#5coO4JiIh{_(-~Rah&kzE$*^JR>L=;8L=X2V&C4|6uJSI(3&gV0;*^Kdc zjFgfniun2YL5xNtmdho5-(!s7_VyNludgriJO{v9JM8xR{m{U4IwiWlzb8o&oO2uw z2e#WS>-Czh>)7pfWLY*qV~nBeI=uH(RrRZdrfKlrbBz&25zo)hR8>WmWms#GQX-|K z>pF^}Kq*C*WkgX#6vr`b+oH9mZCe(L1=d<7lL^+^fdQoyMNtf>XIVxF0TDvLT8q}2 z5CQ;so>SNLl{5e@mkY12ue`s%18_VZ5kl}E(CR*J=~&V!00000NkvXXu0mjfFx|?tEx|@A24sW_!&ieBS=&U42)Fq~Pc4zbBsCf0OZ*k345khgbm68U{~S KKbLh*2~7YrGdzm` literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/tank/tank_NITROGLYCERIN.png b/src/main/resources/assets/hbm/textures/models/tank/tank_NITROGLYCERIN.png new file mode 100644 index 0000000000000000000000000000000000000000..afc63209a6ca3629de1519efb4050906a259f768 GIT binary patch literal 1270 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 qEUm`HGQHo-@|rip Date: Thu, 25 May 2023 16:01:00 +0200 Subject: [PATCH 011/109] preparation for train coupling --- .../hbm/entity/train/EntityRailCarBase.java | 62 +++++++++++++++---- .../entity/train/EntityRailCarRidable.java | 22 +++---- .../entity/item/RenderTrainCargoTram.java | 13 ++++ 3 files changed, 73 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index 008ed2e78..f816f07bd 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -20,6 +20,7 @@ public abstract class EntityRailCarBase extends Entity { public boolean isOnRail = true; private int turnProgress; + /* Clientside position that should be approached with smooth interpolation */ private double trainX; private double trainY; private double trainZ; @@ -29,6 +30,16 @@ public abstract class EntityRailCarBase extends Entity { @SideOnly(Side.CLIENT) private double velocityX; @SideOnly(Side.CLIENT) private double velocityY; @SideOnly(Side.CLIENT) private double velocityZ; + /* "Actual" position with offset directly between the front and back pos, won't match the standard position on curves */ + public double lastRenderX; + public double lastRenderY; + public double lastRenderZ; + public double renderX; + public double renderY; + public double renderZ; + + public EntityRailCarBase coupledFront; + public EntityRailCarBase coupledBack; public boolean initDummies = false; public BoundingBoxDummyEntity[] dummies = new BoundingBoxDummyEntity[0]; @@ -40,21 +51,15 @@ public abstract class EntityRailCarBase extends Entity { @Override protected void entityInit() { } @Override protected void readEntityFromNBT(NBTTagCompound nbt) { } @Override protected void writeEntityToNBT(NBTTagCompound nbt) { } - - /*@Override - public boolean canBePushed() { - return true; - } - - @Override - public boolean canBeCollidedWith() { - return !this.isDead; - }*/ @Override public void onUpdate() { if(this.worldObj.isRemote) { + + this.prevPosX = this.posX; + this.prevPosY = this.posY; + this.prevPosZ = this.posZ; if(this.turnProgress > 0) { this.prevRotationYaw = this.rotationYaw; @@ -71,6 +76,21 @@ public abstract class EntityRailCarBase extends Entity { this.setPosition(this.posX, this.posY, this.posZ); this.setRotation(this.rotationYaw, this.rotationPitch); } + + BlockPos anchor = this.getCurentAnchorPos(); + Vec3 frontPos = getRelPosAlongRail(anchor, this.getLengthSpan()); + Vec3 backPos = getRelPosAlongRail(anchor, -this.getLengthSpan()); + + this.lastRenderX = this.renderX; + this.lastRenderY = this.renderY; + this.lastRenderZ = this.renderZ; + + if(frontPos != null && backPos != null) { + this.renderX = (frontPos.xCoord + backPos.xCoord) / 2D; + this.renderY = (frontPos.yCoord + backPos.yCoord) / 2D; + this.renderZ = (frontPos.zCoord + backPos.zCoord) / 2D; + } + } else { DummyConfig[] definitions = this.getDummies(); @@ -109,6 +129,9 @@ public abstract class EntityRailCarBase extends Entity { this.derail(); return; } else { + this.renderX = (frontPos.xCoord + backPos.xCoord) / 2D; + this.renderY = (frontPos.yCoord + backPos.yCoord) / 2D; + this.renderZ = (frontPos.zCoord + backPos.zCoord) / 2D; this.prevRotationYaw = this.rotationYaw; this.rotationYaw = this.movementYaw = generateYaw(frontPos, backPos); this.motionX = this.rotationYaw / 360D; // hijacking this crap for easy syncing @@ -121,9 +144,9 @@ public abstract class EntityRailCarBase extends Entity { BoundingBoxDummyEntity dummy = dummies[i]; Vec3 rot = Vec3.createVectorHelper(def.offset.xCoord, def.offset.yCoord, def.offset.zCoord); rot.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); - double x = posX + rot.xCoord; - double y = posY + rot.yCoord; - double z = posZ + rot.zCoord; + double x = renderX + rot.xCoord; + double y = renderY + rot.yCoord; + double z = renderZ + rot.zCoord; dummy.setSize(def.width, def.height); // TEMP dummy.setPosition(x, y, z); } @@ -319,4 +342,17 @@ public abstract class EntityRailCarBase extends Entity { this.offset = offset; } } + + public static enum TrainCoupling { + FRONT, + BACK + } + + public Vec3 getCouplingPos(TrainCoupling coupling) { + return null; + } + + public EntityRailCarBase getCoupledTo(TrainCoupling coupling) { + return coupling == TrainCoupling.FRONT ? this.coupledFront : coupling == TrainCoupling.BACK ? this.coupledBack : null; + } } diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java index f49a95c45..272fa431b 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java @@ -90,8 +90,8 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { if(passengerSeats[i] != null) continue; seat.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); - double x = posX + seat.xCoord; - double z = posZ + seat.zCoord; + double x = renderX + seat.xCoord; + double z = renderZ + seat.zCoord; double deltaX = player.posX - x; double deltaZ = player.posZ - z; @@ -108,8 +108,8 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { if(this.riddenByEntity == null) { Vec3 seat = getRiderSeatPosition(); seat.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); - double x = posX + seat.xCoord; - double z = posZ + seat.zCoord; + double x = renderX + seat.xCoord; + double z = renderZ + seat.zCoord; double deltaX = player.posX - x; double deltaZ = player.posZ - z; @@ -131,9 +131,9 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { SeatDummyEntity dummySeat = new SeatDummyEntity(worldObj, this); Vec3 passengerSeat = this.getPassengerSeats()[nearestSeat]; passengerSeat.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); - double x = posX + passengerSeat.xCoord; - double y = posY + passengerSeat.yCoord; - double z = posZ + passengerSeat.zCoord; + double x = renderX + passengerSeat.xCoord; + double y = renderY + passengerSeat.yCoord; + double z = renderZ + passengerSeat.zCoord; dummySeat.setPosition(x, y - 1, z); passengerSeats[nearestSeat] = dummySeat; worldObj.spawnEntityInWorld(dummySeat); @@ -160,9 +160,9 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { } else { Vec3 rot = seats[i]; rot.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); - double x = posX + rot.xCoord; - double y = posY + rot.yCoord; - double z = posZ + rot.zCoord; + double x = renderX + rot.xCoord; + double y = renderY + rot.yCoord; + double z = renderZ + rot.zCoord; seat.setPosition(x, y - 1, z); } } @@ -177,7 +177,7 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { offset.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); if(this.riddenByEntity != null) { - this.riddenByEntity.setPosition(this.posX + offset.xCoord, this.posY + offset.yCoord, this.posZ + offset.zCoord); + this.riddenByEntity.setPosition(this.renderX + offset.xCoord, this.renderY + offset.yCoord, this.renderZ + offset.zCoord); } } diff --git a/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java b/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java index 8e097ac2b..7f50e2bef 100644 --- a/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java +++ b/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java @@ -2,6 +2,7 @@ package com.hbm.render.entity.item; import org.lwjgl.opengl.GL11; +import com.hbm.entity.train.EntityRailCarBase; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.entity.Render; @@ -13,6 +14,18 @@ public class RenderTrainCargoTram extends Render { @Override public void doRender(Entity entity, double x, double y, double z, float swing, float interp) { GL11.glPushMatrix(); + + EntityRailCarBase train = (EntityRailCarBase) entity; + double iX = train.prevPosX + (train.posX - train.prevPosX) * interp; + double iY = train.prevPosY + (train.posY - train.prevPosY) * interp; + double iZ = train.prevPosZ + (train.posZ - train.prevPosZ) * interp; + double rX = train.lastRenderX + (train.renderX - train.lastRenderX) * interp; + double rY = train.lastRenderY + (train.renderY - train.lastRenderY) * interp; + double rZ = train.lastRenderZ + (train.renderZ - train.lastRenderZ) * interp; + x -= iX - rX; + y -= iY - rY; + z -= iZ - rZ; + GL11.glTranslated(x, y, z); float yaw = entity.rotationYaw; From 2512ed91511485ad56fec156daf7b543410a284d Mon Sep 17 00:00:00 2001 From: burningwater202 Date: Thu, 25 May 2023 21:37:41 -0400 Subject: [PATCH 012/109] Laminate Glass (real) At long last. Adds: Laminate Glass Recipe is 250mb BTX + 250mb Phosgene + 4 Tungsten Bolts + 1 Reinforced Glass Will add later: -Laminate Panes -3 to 4 cracked laminate types (meta) --- src/main/java/com/hbm/blocks/ModBlocks.java | 5 +- .../inventory/recipes/ChemplantRecipes.java | 10 + src/main/resources/assets/hbm/lang/en_US.lang | 316 +++++++++--------- .../blocks/glass/reinforced_glass.png | Bin 0 -> 206 bytes .../blocks/glass/reinforced_glass_ct.png | Bin 0 -> 192 bytes .../textures/blocks/reinforced_laminate.png | Bin 0 -> 206 bytes .../blocks/reinforced_laminate_ct.png | Bin 0 -> 192 bytes .../hbm/textures/items/chem_icon_LAMINATE.png | Bin 0 -> 367 bytes 8 files changed, 173 insertions(+), 158 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/blocks/glass/reinforced_glass.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/glass/reinforced_glass_ct.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/reinforced_laminate.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/reinforced_laminate_ct.png create mode 100644 src/main/resources/assets/hbm/textures/items/chem_icon_LAMINATE.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 0397a6f6e..3b3611da3 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -315,6 +315,7 @@ public class ModBlocks { public static Block reinforced_sand; public static Block reinforced_lamp_off; public static Block reinforced_lamp_on; + public static Block reinforced_laminate; public static Block lamp_tritium_green_off; public static Block lamp_tritium_green_on; @@ -1492,7 +1493,8 @@ public class ModBlocks { reinforced_sand = new BlockGeneric(Material.rock).setBlockName("reinforced_sand").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(400.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_sand"); reinforced_lamp_off = new ReinforcedLamp(Material.rock, false).setBlockName("reinforced_lamp_off").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_lamp_off"); reinforced_lamp_on = new ReinforcedLamp(Material.rock, true).setBlockName("reinforced_lamp_on").setHardness(15.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_lamp_on"); - + reinforced_laminate = new BlockNTMGlassCT(1, RefStrings.MODID + ":reinforced_laminate", Material.rock).setBlockName("reinforced_laminate").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(15.0F).setResistance(1000.0F); + lamp_tritium_green_off = new ReinforcedLamp(Material.redstoneLight, false).setBlockName("lamp_tritium_green_off").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_green_off"); lamp_tritium_green_on = new ReinforcedLamp(Material.redstoneLight, true).setBlockName("lamp_tritium_green_on").setStepSound(Block.soundTypeGlass).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_green_on"); lamp_tritium_blue_off = new ReinforcedLamp(Material.redstoneLight, false).setBlockName("lamp_tritium_blue_off").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_blue_off"); @@ -2629,6 +2631,7 @@ public class ModBlocks { GameRegistry.registerBlock(reinforced_sand, ItemBlockBlastInfo.class, reinforced_sand.getUnlocalizedName()); GameRegistry.registerBlock(reinforced_lamp_off, ItemBlockBlastInfo.class, reinforced_lamp_off.getUnlocalizedName()); GameRegistry.registerBlock(reinforced_lamp_on, ItemBlockBlastInfo.class, reinforced_lamp_on.getUnlocalizedName()); + GameRegistry.registerBlock(reinforced_laminate, ItemBlockBlastInfo.class, reinforced_laminate.getUnlocalizedName()); //Bricks GameRegistry.registerBlock(reinforced_stone, ItemBlockBlastInfo.class, reinforced_stone.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java index 57bad806d..a84dc1bf6 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java @@ -114,6 +114,16 @@ public class ChemplantRecipes extends SerializableRecipe { new FluidStack(Fluids.XYLENE, 500), new FluidStack(Fluids.OXYGEN, 100)) .outputItems(new ItemStack(ModItems.ingot_pet)));*/ + + //Laminate Glass going here + recipes.add(new ChemRecipe(97, "LAMINATE", 100) + .inputFluids( + new FluidStack(Fluids.XYLENE, 250), + new FluidStack(Fluids.PHOSGENE, 250)) + .inputItems( + new ComparableStack(com.hbm.blocks.ModBlocks.reinforced_glass), + new ComparableStack(com.hbm.items.ModItems.bolt_tungsten, 4)) + .outputItems(new ItemStack(com.hbm.blocks.ModBlocks.reinforced_laminate))); recipes.add(new ChemRecipe(94, "PC", 100) .inputFluids( new FluidStack(Fluids.XYLENE, 500), diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index e2b518d48..96fc869ad 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -120,7 +120,7 @@ achievement.technetium.desc=It's medicinal, it's medicinal! achievement.technetium=Big Man, Pig Man achievement.watzBoom.desc=Drain your septic tank next time. achievement.watzBoom=Disgusting -achievement.watz.desc=Fólkvangr fields possibly included. +achievement.watz.desc=Fólkvangr fields possibly included. achievement.watz=The Power of Element-126 achievement.witchtaunter.desc=Those wacky creatures got nothing on you! achievement.witchtaunter=Witch Taunter @@ -194,129 +194,129 @@ book.test.page1=Test Page 1 book.error.cover=Hadron Collider:$Troubleshooting book.error.title1=Error 0x01 [NC] -book.error.page1=§lName:§r "ERROR_NO_CHARGE" §lDescription:§r The particle has reached a segment with insufficient charge. §lPotential fix:§r Either replace one of the plugs that the particle successfully passes with higher-tier ones or add another plug slightly before the segment where the particle expires. +book.error.page1=§lName:§r "ERROR_NO_CHARGE" §lDescription:§r The particle has reached a segment with insufficient charge. §lPotential fix:§r Either replace one of the plugs that the particle successfully passes with higher-tier ones or add another plug slightly before the segment where the particle expires. book.error.title2=Error 0x02 [NA] -book.error.page2=§lName:§r "ERROR_NO_ANALYSIS" §lDescription:§r The particle has reached the core, despite not passing an analysis chamber. §lPotential fix:§r Make sure that your accelerator has an analysis chamber and double-check the operating mode (linear/circular). +book.error.page2=§lName:§r "ERROR_NO_ANALYSIS" §lDescription:§r The particle has reached the core, despite not passing an analysis chamber. §lPotential fix:§r Make sure that your accelerator has an analysis chamber and double-check the operating mode (linear/circular). book.error.title3=Error 0x03 [OC] -book.error.page3=§lName:§r "ERROR_OBSTRUCTED_CHANNEL" §lDescription:§r The particle has collided with a block inside the collider's channel. §lPotential fix:§r Make sure that the inside of your particle collider is free of any obstructions, except for particle diodes and core blocks. +book.error.page3=§lName:§r "ERROR_OBSTRUCTED_CHANNEL" §lDescription:§r The particle has collided with a block inside the collider's channel. §lPotential fix:§r Make sure that the inside of your particle collider is free of any obstructions, except for particle diodes and core blocks. book.error.title4=Error 0x04 [EC] -book.error.page4=§lName:§r "ERROR_EXPECTED_COIL" §lDescription:§r The particle has passed a segment that lacks one or multiple coils. §lPotential fix:§r Remove the plating of the collider in the offending area and check if all the coils are there. This error will also happen at T-crossings that are built without diodes. +book.error.page4=§lName:§r "ERROR_EXPECTED_COIL" §lDescription:§r The particle has passed a segment that lacks one or multiple coils. §lPotential fix:§r Remove the plating of the collider in the offending area and check if all the coils are there. This error will also happen at T-crossings that are built without diodes. book.error.title5=Error 0x05 [MS] -book.error.page5=§lName:§r "ERROR_MALFORMED_SEGMENT" §lDescription:§r The particle has passed a segment that was built incorrectly (but neither obstructed nor missing coils). §lPotential fix:§r Make sure that the offending segment has platings in all the required spaces, leaving no coils exposed. +book.error.page5=§lName:§r "ERROR_MALFORMED_SEGMENT" §lDescription:§r The particle has passed a segment that was built incorrectly (but neither obstructed nor missing coils). §lPotential fix:§r Make sure that the offending segment has platings in all the required spaces, leaving no coils exposed. book.error.title6=Error 0x06 [ATL] -book.error.page6=§lName:§r "ERROR_ANALYSIS_TOO_LONG" §lDescription:§r The particle has passed more than the three required valid analysis chamber segments. §lPotential fix:§r Make sure that the analysis chamber is exactly 3 blocks long for circular accelerator and at least 2 blocks long for linear ones. Also check if the particle doesn't pass multiple analysis chambers in a branching and/or looped accelerator. +book.error.page6=§lName:§r "ERROR_ANALYSIS_TOO_LONG" §lDescription:§r The particle has passed more than the three required valid analysis chamber segments. §lPotential fix:§r Make sure that the analysis chamber is exactly 3 blocks long for circular accelerator and at least 2 blocks long for linear ones. Also check if the particle doesn't pass multiple analysis chambers in a branching and/or looped accelerator. book.error.title7=Error 0x07 [ATS] -book.error.page7=§lName:§r "ERROR_ANALYSIS_TOO_SHORT" §lDescription:§r The particle has left the analysis chamber, despite not meeting the length requirement. §lPotential fix:§r Make sure that the analysis chamber on your circular accelerator is exactly 3 blocks long. Valid analysis segments have no coils and the plating is entirely composed of analysis chamber walls/windows. Analysis chambers with coils in them count as regular segments. +book.error.page7=§lName:§r "ERROR_ANALYSIS_TOO_SHORT" §lDescription:§r The particle has left the analysis chamber, despite not meeting the length requirement. §lPotential fix:§r Make sure that the analysis chamber on your circular accelerator is exactly 3 blocks long. Valid analysis segments have no coils and the plating is entirely composed of analysis chamber walls/windows. Analysis chambers with coils in them count as regular segments. book.error.title8=Error 0x08 [DC] -book.error.page8=§lName:§r "ERROR_DIODE_COLLISION" §lDescription:§r The particle collided with a non-input side of a schottky particle diode. §lPotential fix:§r Check if your diodes are configured correctly. Particles can only enter the diode from sides with green inward-pointing arrows. +book.error.page8=§lName:§r "ERROR_DIODE_COLLISION" §lDescription:§r The particle collided with a non-input side of a schottky particle diode. §lPotential fix:§r Check if your diodes are configured correctly. Particles can only enter the diode from sides with green inward-pointing arrows. book.error.title9=Error 0x09 [BT] -book.error.page9=§lName:§r "ERROR_BRANCHING_TURN" §lDescription:§r The particle has reached a turn with multiple exits. §lPotential fix:§r If your turn is a normal one, check if all the required coils are present (i.e. no holes in the coil layer). If the turn is intended to be branched, it requires a schottky particle diode that is correctly configured. +book.error.page9=§lName:§r "ERROR_BRANCHING_TURN" §lDescription:§r The particle has reached a turn with multiple exits. §lPotential fix:§r If your turn is a normal one, check if all the required coils are present (i.e. no holes in the coil layer). If the turn is intended to be branched, it requires a schottky particle diode that is correctly configured. book.rbmk.cover=My first RBMK:$Basics of$building a$reactor book.rbmk.title1=Introduction -book.rbmk.page1=§lRBMK§r is fully modular nuclear reactor. Unlike most other reactors, there is no "core" and no size restrictions, rather behavior and efficiency of reactor depends on how it is built and how various parts interact with each other. +book.rbmk.page1=§lRBMK§r is fully modular nuclear reactor. Unlike most other reactors, there is no "core" and no size restrictions, rather behavior and efficiency of reactor depends on how it is built and how various parts interact with each other. book.rbmk.title2=Heat -book.rbmk.page2=As reactor runs, it will generate §lheat§r. Heat will spread between parts, slowly decreasing in the process. The goal is to generate as much heat as possible without melting the reactor, and to transfer heat into steam passages that cool reactor and produce steam. +book.rbmk.page2=As reactor runs, it will generate §lheat§r. Heat will spread between parts, slowly decreasing in the process. The goal is to generate as much heat as possible without melting the reactor, and to transfer heat into steam passages that cool reactor and produce steam. book.rbmk.title3=Fuel Rod -book.rbmk.page3=The §lfuel rod§r will capture neutron flux, causing fuel inside the rod to react, releasing neutrons in the process. Neutrons are released in all four main directions with a maximum range of 5 blocks. The amount of released neutrons depends on fuel used. +book.rbmk.page3=The §lfuel rod§r will capture neutron flux, causing fuel inside the rod to react, releasing neutrons in the process. Neutrons are released in all four main directions with a maximum range of 5 blocks. The amount of released neutrons depends on fuel used. book.rbmk.title4=Regulating Rod -book.rbmk.page4=The §lcontrol rod§r will reduce number of neutrons passing through. Fully inserted, it will block all neutrons; when inserted halfway, it will only block half. Control rods are used to regulate activity of the reactor and shut it down. +book.rbmk.page4=The §lcontrol rod§r will reduce number of neutrons passing through. Fully inserted, it will block all neutrons; when inserted halfway, it will only block half. Control rods are used to regulate activity of the reactor and shut it down. book.rbmk.title5=Regulating Rods - Usage book.rbmk.title5.scale=0.9 -book.rbmk.page5=The current bar insertion will be displayed in the center of GUI. The colored buttons on left will add the control bar to the color group, which is useful for quickly selecting grouped bars on §lRBMK§r console. The buttons on right allow you to manually insert in 25%% increments. +book.rbmk.page5=The current bar insertion will be displayed in the center of GUI. The colored buttons on left will add the control bar to the color group, which is useful for quickly selecting grouped bars on §lRBMK§r console. The buttons on right allow you to manually insert in 25%% increments. book.rbmk.title6=Automatic Control Rods -book.rbmk.page6=§LAutomatic control rods§r are almost identical to regular control rods, but they cannot be manually adjusted, instead they will adjust position of the rod based on current temperature. Which function to use and how deep to insert and at what temperature must be determined first. +book.rbmk.page6=§LAutomatic control rods§r are almost identical to regular control rods, but they cannot be manually adjusted, instead they will adjust position of the rod based on current temperature. Which function to use and how deep to insert and at what temperature must be determined first. book.rbmk.title7=Steam Channel -book.rbmk.page7=The §lsteam channel§r is only part that will actively reduce reactor heat level. If a component is above the boiling point of a given type of steam, it will try to consume as much water and produce as much steam as needed to cool below boiling point. +book.rbmk.page7=The §lsteam channel§r is only part that will actively reduce reactor heat level. If a component is above the boiling point of a given type of steam, it will try to consume as much water and produce as much steam as needed to cool below boiling point. book.rbmk.title8=Neutron Reflector -book.rbmk.page8=The §lneutron reflector§r will block passage of neutrons, instead neutrons will be reflected back onto the fuel rod they came from. This is useful for using neutrons that would otherwise be wasted simply by leaving reactor. +book.rbmk.page8=The §lneutron reflector§r will block passage of neutrons, instead neutrons will be reflected back onto the fuel rod they came from. This is useful for using neutrons that would otherwise be wasted simply by leaving reactor. book.rbmk.title9=Neutron Absorber -book.rbmk.page9=§lNeutron absorber§r simply blocks neutrons. The absorbed neutrons will not generate heat and will be effectively destroyed. This is useful for preventing fuel rods from reacting that would otherwise be within reach. +book.rbmk.page9=§lNeutron absorber§r simply blocks neutrons. The absorbed neutrons will not generate heat and will be effectively destroyed. This is useful for preventing fuel rods from reacting that would otherwise be within reach. book.rbmk.title10=Graphite Retarder -book.rbmk.page10=§lGraphite moderator§r converts fast neutrons passing through it into slow neutrons. Most fuels are split into fast neutrons, while slow neutrons are required for fission, so use of moderators is highly recommended. +book.rbmk.page10=§lGraphite moderator§r converts fast neutrons passing through it into slow neutrons. Most fuels are split into fast neutrons, while slow neutrons are required for fission, so use of moderators is highly recommended. book.rbmk.title11=Structural Column -book.rbmk.page11=§lStructural column§r does not affect neutrons in any way and has no special application. It is recommended to fill the reactor with structured pillars where there are no other parts, since the structured pillars are capable of transferring heat. +book.rbmk.page11=§lStructural column§r does not affect neutrons in any way and has no special application. It is recommended to fill the reactor with structured pillars where there are no other parts, since the structured pillars are capable of transferring heat. book.rbmk.title12=Console -book.rbmk.page12=§lRBMK console§r allows you to control the reactor from afar. Using the §ldevice to connect the console RBMK§r on the RBMK part and then on the console will connect the reactor and the console. The console can only control 15x15 parts, for large reactors you can use multiple consoles. +book.rbmk.page12=§lRBMK console§r allows you to control the reactor from afar. Using the §ldevice to connect the console RBMK§r on the RBMK part and then on the console will connect the reactor and the console. The console can only control 15x15 parts, for large reactors you can use multiple consoles. book.rbmk.title13=Using the console book.rbmk.page13=Clicking on parts will select and deselect them. With the colored buttons, you can quickly select all the control rods in that color group. Button "A" will select all control rods, "X" will deselect all. book.rbmk.page14=Entering a number between 0 and 100 in green box and then pressing button next to it will set all selected control rods to that position. Button "AZ-5" will lead to full insertion of all control rods. book.rbmk.title15=Fuel -book.rbmk.page15=The §lfuel§r response depends on many factors. The main ones are §lfortification§r, §lxenon poisoning§r and number of incoming §lneutrons§r. Xenon builds up when fuel is low in neutrons and burns out during normal operation. The efficiency of neutrons depends on the type, most fuels §lare best split by§r §lslow neutrons§r. +book.rbmk.page15=The §lfuel§r response depends on many factors. The main ones are §lfortification§r, §lxenon poisoning§r and number of incoming §lneutrons§r. Xenon builds up when fuel is low in neutrons and burns out during normal operation. The efficiency of neutrons depends on the type, most fuels §lare best split by§r §lslow neutrons§r. book.rbmk.title16=Melting -book.rbmk.page16=§4§lAVOID. +book.rbmk.page16=§4§lAVOID. book.starter.cover=An Industrialist's$Guide to Rebuilding$Society book.starter.title1=Introduction book.starter.page1=If you're reading this, it's highly likely that society, in one way or another, has collapsed entirely. Governments, countries, and authority are a concept of the past - along with all of the amenities of civilized life. As such, this guide will inform you how to change that by recreating the industry and technology of the past for the improvement of your own life. book.starter.title2=Coal & Mustard Gas -book.starter.page2=Whilst it is impossible to predict the actual state of the world in a post-apocalyptic time, it's not unlikely that war and industry in its current form may not have ended. To protect your own lungs, an effective and cheap way is to urinate on some §lcloth§r to make a §ltrench mask§r, to protect you from coal dust or mustard gas, if you ever encounter either. +book.starter.page2=Whilst it is impossible to predict the actual state of the world in a post-apocalyptic time, it's not unlikely that war and industry in its current form may not have ended. To protect your own lungs, an effective and cheap way is to urinate on some §lcloth§r to make a §ltrench mask§r, to protect you from coal dust or mustard gas, if you ever encounter either. book.starter.title3=Anvils & Presses -book.starter.page3=The quintessentials to beginning your industrial revitalization is an §lanvil§r and a §lburner press§r. The anvil will allow you to manually craft together early machinery such as the Assembler, whilst the burner press will let you make plates, wires, and circuits that you cannot hammer together with an anvil. +book.starter.page3=The quintessentials to beginning your industrial revitalization is an §lanvil§r and a §lburner press§r. The anvil will allow you to manually craft together early machinery such as the Assembler, whilst the burner press will let you make plates, wires, and circuits that you cannot hammer together with an anvil. book.starter.title4=Templates -book.starter.page4=In order to stamp metal into useful shapes, assemble machinery, and perform chemical reactions, you will need to create a §lMachine Template Folder§r to create the various stamps and templates shown to the right. +book.starter.page4=In order to stamp metal into useful shapes, assemble machinery, and perform chemical reactions, you will need to create a §lMachine Template Folder§r to create the various stamps and templates shown to the right. book.starter.title5=Scavenging book.starter.page5=Depending on how bad the initial apocalyptic event was to the preexisting structures of the world, there's a likely chance that many useful materials and machines can be salvaged from them directly. Metallic alloys like steel, parts like circuitry, and even fissile material from a nuclear power plant might be awaiting you. Beware certain ruins, however, as there may be an excess of danger lurking there like a snake in the grass; waiting to strike you down with radiation, traps, or indescribable horrors... book.starter.title6=Early Machinery -book.starter.page6a=Two of the first machines you should assemble are the §lBlast Furnace§r and the §lAssembly Machine§r. The former will allow you to create alloys such as §lsteel§r, §lminecraft-grade copper§r, and §ladvanced alloy§r; you will need to use these metals for the bodies of machines, the wiring of circuits, advanced electromagnets, and more. -book.starter.page6b=The assembler will be used to create practically every other machine described in this guide. You will need a power source, such as a §lCombustion§r §lGenerator§r or §lSolar Boiler§r. -book.starter.page7a=The §lShredder§r, along with a pair of shredder blades, will be very useful for doubling the output of most ores, via shredding into smeltable powders. These powders are also crucial to begin making circuitry for various machines, such as §lEnhanced§r and §lOverclocked§r circuits. -book.starter.page7b=Using your new machinery, you can create the §lChemical Plant§r, used for the synthesis of better circuits, concrete, the processing of petrochemicals, and more. +book.starter.page6a=Two of the first machines you should assemble are the §lBlast Furnace§r and the §lAssembly Machine§r. The former will allow you to create alloys such as §lsteel§r, §lminecraft-grade copper§r, and §ladvanced alloy§r; you will need to use these metals for the bodies of machines, the wiring of circuits, advanced electromagnets, and more. +book.starter.page6b=The assembler will be used to create practically every other machine described in this guide. You will need a power source, such as a §lCombustion§r §lGenerator§r or §lSolar Boiler§r. +book.starter.page7a=The §lShredder§r, along with a pair of shredder blades, will be very useful for doubling the output of most ores, via shredding into smeltable powders. These powders are also crucial to begin making circuitry for various machines, such as §lEnhanced§r and §lOverclocked§r circuits. +book.starter.page7b=Using your new machinery, you can create the §lChemical Plant§r, used for the synthesis of better circuits, concrete, the processing of petrochemicals, and more. book.starter.title8=Black Gold -book.starter.page8a=Using an §lOil §lReservoir§r §lDetector§r, you can find underground oil deposits to place a §lPumpjack§r or §lDerrick§r over via surveying an area. Remember that oil deposits will run out over time. -book.starter.page8b=Before the oil can be refined and separated into its constituent parts in an §lOil Refinery§r, you must heat the oil to 300°C in a §lBoiler§r. +book.starter.page8a=Using an §lOil §lReservoir§r §lDetector§r, you can find underground oil deposits to place a §lPumpjack§r or §lDerrick§r over via surveying an area. Remember that oil deposits will run out over time. +book.starter.page8b=Before the oil can be refined and separated into its constituent parts in an §lOil Refinery§r, you must heat the oil to 300°C in a §lBoiler§r. book.starter.title9=Petrochemicals -book.starter.page9=Using §lChemical Plants§r, §lFractioning§r §lTowers§r, and §lCatalytic Cracking§r §lTowers§r, you can transform the separated oil into a variety of useful products. For example: §lPolymer§r or §lBakelite§r, durable and flexible plastics; §lDesh§r, an extremely durable and heat-resistant rare earth metal alloy; §lSolid Fuel§r, which can be burnt for energy; or even §lLiquid Fuels§r, such as §lGasoline§r, §lDiesel§r, §lKerosene§r, and more. +book.starter.page9=Using §lChemical Plants§r, §lFractioning§r §lTowers§r, and §lCatalytic Cracking§r §lTowers§r, you can transform the separated oil into a variety of useful products. For example: §lPolymer§r or §lBakelite§r, durable and flexible plastics; §lDesh§r, an extremely durable and heat-resistant rare earth metal alloy; §lSolid Fuel§r, which can be burnt for energy; or even §lLiquid Fuels§r, such as §lGasoline§r, §lDiesel§r, §lKerosene§r, and more. book.starter.title10=Advanced Machinery -book.starter.page10=With oil processing under your belt, you can create the §lCentrifuge§r, which will triple ore outputs; the §lOre §lAcidizer§r, which will crystallize ores, increasing the yield; and the §lSILEX + §lFEL§r, two marvels of modern engineering which can separate the isotopes of materials with ease. You will require significantly more energy to power these; which can be obtained with sources such as a §lDiesel Generator§r, an §lIndustrial Generator§r, or even a nuclear reactor. +book.starter.page10=With oil processing under your belt, you can create the §lCentrifuge§r, which will triple ore outputs; the §lOre §lAcidizer§r, which will crystallize ores, increasing the yield; and the §lSILEX + §lFEL§r, two marvels of modern engineering which can separate the isotopes of materials with ease. You will require significantly more energy to power these; which can be obtained with sources such as a §lDiesel Generator§r, an §lIndustrial Generator§r, or even a nuclear reactor. book.starter.title11=Strata -book.starter.page11=Underneath the ground you walk, there is several naturally-occurring §lStrata§r, or special mineral layers and formations. §lSchist Strata§r are blue, lithium-containing layers filled with uranium, iron, copper, asbestos, and other ores for your own use. §lDepth Rock§r contains large quantities of rarer minerals, such as §lZirconium§r and §lBoron§r, but requires explosives to properly harvest. +book.starter.page11=Underneath the ground you walk, there is several naturally-occurring §lStrata§r, or special mineral layers and formations. §lSchist Strata§r are blue, lithium-containing layers filled with uranium, iron, copper, asbestos, and other ores for your own use. §lDepth Rock§r contains large quantities of rarer minerals, such as §lZirconium§r and §lBoron§r, but requires explosives to properly harvest. book.starter.title12=Radiation -book.starter.page12a=§oThe rest of this book will deal with matters that involve §oradiation. For the safety of you and others, I will give §oadvice on how to mitigate and deal with exposure to it. -book.starter.page12b=Enough exposure to radiation can and will cause bodily harm. The first step is prevention; be sure to limit your exposure, and wear protective gear, such as a §lHazmat Suit§r, or apply §lCladding§r to your clothing or armor; you can also take §lRad-X§r to limit your intake. Thanks to modern medicine, the second step can be removal if necessary; for example, a §lPlayer §lDecontaminator§r will slowly reduce the radiation absorbed by your body. §lRad-Away§r can also be used as a post-exposure prophylaxis, quickly and effectively reversing damage caused to your body by ionizing radiation. +book.starter.page12a=§oThe rest of this book will deal with matters that involve §oradiation. For the safety of you and others, I will give §oadvice on how to mitigate and deal with exposure to it. +book.starter.page12b=Enough exposure to radiation can and will cause bodily harm. The first step is prevention; be sure to limit your exposure, and wear protective gear, such as a §lHazmat Suit§r, or apply §lCladding§r to your clothing or armor; you can also take §lRad-X§r to limit your intake. Thanks to modern medicine, the second step can be removal if necessary; for example, a §lPlayer §lDecontaminator§r will slowly reduce the radiation absorbed by your body. §lRad-Away§r can also be used as a post-exposure prophylaxis, quickly and effectively reversing damage caused to your body by ionizing radiation. book.starter.title13=Uranium Enrichment -book.starter.page13=There are a few, easy options for fuels to use for a nuclear reactor; for instance, §lNatural Uranium§r or §lThorium Fuel§r. However, if you're looking for something more powerful, you can set up an enrichment cascade of two §lGas Centrifuges§r to produce §lUranium Fuel§r with leftover §lUranium-238§r. You will have to transmute the natural uranium into §lYellowcake§r, then §lUranium §lHexafluoride§r to do so. +book.starter.page13=There are a few, easy options for fuels to use for a nuclear reactor; for instance, §lNatural Uranium§r or §lThorium Fuel§r. However, if you're looking for something more powerful, you can set up an enrichment cascade of two §lGas Centrifuges§r to produce §lUranium Fuel§r with leftover §lUranium-238§r. You will have to transmute the natural uranium into §lYellowcake§r, then §lUranium §lHexafluoride§r to do so. book.starter.title14=The Chicago Pile -book.starter.page14=Alternatively, you can breed §lReactor-Grade Plutonium§r, a more powerful fuel, from Natural Uranium using the §lChicago Pile§r. By stacking graphite blocks and drilling into them, you can insert fuel rods to breed into plutonium and neutron source rods, such as §lRadium-Beryllium§r, to begin the reaction. Make sure to test your designs; spacing out or limiting the amount of blocks may be necessary to prevent overheating. +book.starter.page14=Alternatively, you can breed §lReactor-Grade Plutonium§r, a more powerful fuel, from Natural Uranium using the §lChicago Pile§r. By stacking graphite blocks and drilling into them, you can insert fuel rods to breed into plutonium and neutron source rods, such as §lRadium-Beryllium§r, to begin the reaction. Make sure to test your designs; spacing out or limiting the amount of blocks may be necessary to prevent overheating. book.starter.title15=ZIRNOX GCR -book.starter.page15=Finally, you can create your first §oreal§r source of energy: the §lZIRNOX§r Nuclear Reactor. Nuclear reactors require more setup then other power sources; first, you will want to have a good source of water, such as the §lHeavy §lInfinite Water Tank§r. To remove heat from the reactor core and boil the water into steam, you will need a sufficient amount of §lCarbon Dioxide§r. You want just enough pressure, but not §otoo§r much. You will also need three steam turbines to utilize the created steam to make energy; the §lSteam §lTurbine§r or §lIndustrial Steam §lTurbine§r will be optimal. Finally, a §lCondensor§r or §lAuxilary Cooling Tower§r is needed to condense the leftover steam into water, where it can be voided or recycled in a cooling loop. +book.starter.page15=Finally, you can create your first §oreal§r source of energy: the §lZIRNOX§r Nuclear Reactor. Nuclear reactors require more setup then other power sources; first, you will want to have a good source of water, such as the §lHeavy §lInfinite Water Tank§r. To remove heat from the reactor core and boil the water into steam, you will need a sufficient amount of §lCarbon Dioxide§r. You want just enough pressure, but not §otoo§r much. You will also need three steam turbines to utilize the created steam to make energy; the §lSteam §lTurbine§r or §lIndustrial Steam §lTurbine§r will be optimal. Finally, a §lCondensor§r or §lAuxilary Cooling Tower§r is needed to condense the leftover steam into water, where it can be voided or recycled in a cooling loop. book.starter.title16=Conclusion -book.starter.page16=If you've reached this far, you're on track to helping rebuild civilization. You've successfully recreated the advanced machinery of the pre-apocalypse - with nuclear power, petrochemicals, and more. I cannot know §ohow§r you will use these new-found advantages, but it's my personal hope you use them for the good of yourself and others - or at the very least, in self-defense. Au revoir! +book.starter.page16=If you've reached this far, you're on track to helping rebuild civilization. You've successfully recreated the advanced machinery of the pre-apocalypse - with nuclear power, petrochemicals, and more. I cannot know §ohow§r you will use these new-found advantages, but it's my personal hope you use them for the good of yourself and others - or at the very least, in self-defense. Au revoir! book.starter.title18=About the Author -book.starter.page18=vær is just a guy who has been trapped in the grey void featured in the Talking Head's §oOnce In A Lifetime§r for too long. He once found a studio door, but to his dismay found out it was a cardboard cut-out. +book.starter.page18=vær is just a guy who has been trapped in the grey void featured in the Talking Head's §oOnce In A Lifetime§r for too long. He once found a studio door, but to his dismay found out it was a cardboard cut-out. #book.rbmk.cover=HOW 2 RBMK:$The Basics$of Reactor$Construction #book.rbmk.title1=Introduction -#book.rbmk.page1=The §lRBMK§r is a fully modular nuclear reactor. Unlike most other reactors, there is no "core", and no size limitations, rather, the behavior and efficiency of the reactor comes from how it is built and how the different pieces interact with each other. +#book.rbmk.page1=The §lRBMK§r is a fully modular nuclear reactor. Unlike most other reactors, there is no "core", and no size limitations, rather, the behavior and efficiency of the reactor comes from how it is built and how the different pieces interact with each other. #book.rbmk.title2=Heat -#book.rbmk.page2=As the reactor operates, it will generate §lheat§r. Heat will spread between parts, slowly decreasing in the process. The goal is to produce as much heat as possible without melting the reactor, and to move that heat to a §lsteam channel§r which cools the reactor and produces steam. +#book.rbmk.page2=As the reactor operates, it will generate §lheat§r. Heat will spread between parts, slowly decreasing in the process. The goal is to produce as much heat as possible without melting the reactor, and to move that heat to a §lsteam channel§r which cools the reactor and produces steam. #book.rbmk.title3=Fuel Rod -#book.rbmk.page3=The §lfuel rod§r will capture neutron flux, causing the fuel inside the fuel rod to react, giving off neutrons in the process. Neutrons are released in all four cardinal directions with a maximum range of 5 blocks. The amount of neutrons released depends on the §lfuel§r used. +#book.rbmk.page3=The §lfuel rod§r will capture neutron flux, causing the fuel inside the fuel rod to react, giving off neutrons in the process. Neutrons are released in all four cardinal directions with a maximum range of 5 blocks. The amount of neutrons released depends on the §lfuel§r used. #book.rbmk.title4=Control Rod -#book.rbmk.page4=The §lcontrol rod§r will decrease the amount of neutrons passing though it. Fully inserted, it will block all neutrons, at half insertion, it will only block half. Control rods are used to regulate the reactor's activity and to turn it off. +#book.rbmk.page4=The §lcontrol rod§r will decrease the amount of neutrons passing though it. Fully inserted, it will block all neutrons, at half insertion, it will only block half. Control rods are used to regulate the reactor's activity and to turn it off. #book.rbmk.title5=Control Rod - Usage -#book.rbmk.page5=The center of the GUI will display the current rod insertion. The colored buttons on the left will add a control rod to a color group, which is useful to quickly select grouped rods from the §lRBMK console§r. The buttons on the right allow for manual insertion in increments of 25%%. +#book.rbmk.page5=The center of the GUI will display the current rod insertion. The colored buttons on the left will add a control rod to a color group, which is useful to quickly select grouped rods from the §lRBMK console§r. The buttons on the right allow for manual insertion in increments of 25%%. #book.rbmk.title6=Automatic Control Rod -#book.rbmk.page6=§lAutomatic control rods§r function nearly identical to regular control rods, but they cannot be configured manually, instead they will adjust the rod position based on the current temperature. What function to use and how deep to insert at what temperature has to be defined first. +#book.rbmk.page6=§lAutomatic control rods§r function nearly identical to regular control rods, but they cannot be configured manually, instead they will adjust the rod position based on the current temperature. What function to use and how deep to insert at what temperature has to be defined first. #book.rbmk.title7=Steam Channel -#book.rbmk.page7=The §lsteam channel§r is the only part that will actively reduce the reactor's heat level. If the component's temperature exceeds the boiling point of the set steam type, it will try to consume as much water and produce as much steam as needed to cool back below the boiling point. +#book.rbmk.page7=The §lsteam channel§r is the only part that will actively reduce the reactor's heat level. If the component's temperature exceeds the boiling point of the set steam type, it will try to consume as much water and produce as much steam as needed to cool back below the boiling point. #book.rbmk.title8=Neutron Reflector -#book.rbmk.page8=The §lneutron reflector§r will block neutrons from passing it, instead the neutrons will be reflected back at the fuel rod they came from. This is useful for utilizing neutrons that would otherwise be wasted by simply exiting the reactor. +#book.rbmk.page8=The §lneutron reflector§r will block neutrons from passing it, instead the neutrons will be reflected back at the fuel rod they came from. This is useful for utilizing neutrons that would otherwise be wasted by simply exiting the reactor. #book.rbmk.title9=Neutron Absorber -#book.rbmk.page9=The §lneutron absorber§r will simply block neutrons. Neutrons absorbed will not generate heat and be effectively voided. This is useful to prevent fuel rods from reacting that would otherwise be in range. +#book.rbmk.page9=The §lneutron absorber§r will simply block neutrons. Neutrons absorbed will not generate heat and be effectively voided. This is useful to prevent fuel rods from reacting that would otherwise be in range. #book.rbmk.title10=Graphite Moderator -#book.rbmk.page10=The §lgraphite moderator§r will convert fast neutrons passing through it into slow neutrons. Most fuels fission into fast neutrons while needing slow neutrons to split, so using moderators is strongly recommended. +#book.rbmk.page10=The §lgraphite moderator§r will convert fast neutrons passing through it into slow neutrons. Most fuels fission into fast neutrons while needing slow neutrons to split, so using moderators is strongly recommended. #book.rbmk.title11=Structural Column -#book.rbmk.page11=The §lstructural column§r will not interfere with neutrons, nor does it have special uses. It is recommended to fill the reactor with structural columns where no other parts will be, because structural columns are capable of transporting heat. +#book.rbmk.page11=The §lstructural column§r will not interfere with neutrons, nor does it have special uses. It is recommended to fill the reactor with structural columns where no other parts will be, because structural columns are capable of transporting heat. #book.rbmk.title12=Console -#book.rbmk.page12=The §lRBMK console§r lets you control the reactor from afar. Using the §lRBMK§r §lconsole linking device§r on an RBMK part and then the console will link the reactor to the console. The console can only manage 15x15 parts, for larger reactors you might want to use multiple consoles. +#book.rbmk.page12=The §lRBMK console§r lets you control the reactor from afar. Using the §lRBMK§r §lconsole linking device§r on an RBMK part and then the console will link the reactor to the console. The console can only manage 15x15 parts, for larger reactors you might want to use multiple consoles. #book.rbmk.title13=Console Usage #book.rbmk.page13=Clicking on the parts will select and deselect them. Using the colored buttons, you can quickly select all control rods of that color group. Button 'A' will select all control rods, 'X' will deselect all. #book.rbmk.page14=Entering a number 0-100 in the green box and then hitting the button next to it will set all selected control rods to this position. Button 'AZ-5' will cause all control rods to fully insert. #book.rbmk.title15=Fuel -#book.rbmk.page15=The §lfuel§r's reactivity is based on multiple factors. The main ones are the §lenrichment§r, §lxenon poison§r and the amount of incoming §lneutrons§r. Xenon builds up when the fuel receives few neutrons and burns away during normal operation. The effectivity of neutrons depends on the type, most fuels §lsplit best with slow neutrons§r. +#book.rbmk.page15=The §lfuel§r's reactivity is based on multiple factors. The main ones are the §lenrichment§r, §lxenon poison§r and the amount of incoming §lneutrons§r. Xenon builds up when the fuel receives few neutrons and burns away during normal operation. The effectivity of neutrons depends on the type, most fuels §lsplit best with slow neutrons§r. #book.rbmk.title16=Meltdown -#book.rbmk.page16=§4§lAvoid. +#book.rbmk.page16=§4§lAvoid. book_lore.author=By %s book_lore.test.name=Test @@ -399,10 +399,10 @@ cannery.crucible.0=The crucible is used to smelt ores, ingots or other metallic cannery.crucible.1=It requires an external heat source connected to the bottom, like a firebox. cannery.crucible.2=Once heated up, the crucible can be used in two ways, with or without a recipe template. cannery.crucible.3=The crucible has two storage buffers for material: -cannery.crucible.4=The buffer to the left is for §abyproducts§r, all material smelted without a recipe template will land here. +cannery.crucible.4=The buffer to the left is for §abyproducts§r, all material smelted without a recipe template will land here. cannery.crucible.5=If a recipe is installed, materials that do not match the recipe will also be stored here. cannery.crucible.6=Materials in this buffer will not react with each other, they can only be output from the green outlet for casting. -cannery.crucible.7=The buffer to the right is for §crecipes§r, if a recipe is installed and that particular material is relevant to that recipe, it will land here. +cannery.crucible.7=The buffer to the right is for §crecipes§r, if a recipe is installed and that particular material is relevant to that recipe, it will land here. cannery.crucible.8=The materials will slowly combine into the output material which is automatically output from the red outlet. cannery.crucible.9=Note that only this buffer handles recipes. If a template is installed retroactively, materials in the byproduct buffer will not combine, nor transfer to the recipe buffer. cannery.crucible.10=The outlet will output material automatically, if the target is valid, for example a foundry channel or a mold. @@ -553,6 +553,7 @@ chem.VIT_LIQUID=Liquid Nuclear Waste Vitrification chem.XENON=Linde Xenon Cycle chem.XENON_OXY=Boosted Linde Xenon Cycle chem.YELLOWCAKE=Yellowcake Production +chem.LAMINATE=Reinforced Glass Lamination container.amsBase=AMS Base (Deco) container.amsEmitter=AMS Emitter (Deco) @@ -648,7 +649,7 @@ container.nukeFurnace=Nuclear Powered Furnace container.nukeGadget=The Gadget container.nukeMan=Fat Man container.nukeMike=Ivy Mike -container.nukeN2=N² Mine +container.nukeN2=N² Mine container.nukeN45=N45 Naval Mine container.nukePrototype=The Prototype container.nukeSolinium=The Blue Rinse @@ -779,35 +780,35 @@ death.attack.tau=%1$s was riddeled by %2$s using negatively charged tauons. death.attack.tauBlast=%1$s charged the XVL1456 for too long and was blown into pieces. death.attack.teleporter=%1$s was teleported into nothingness. -desc.gui.assembler.warning=§cError:§r This machine requires an assembly template! -desc.gui.chemplant.warning=§cError:§r This machine requires an chemistry template! -desc.gui.gasCent.enrichment=§2Enrichment§r$Uranium enrichment requires cascades.$Two-centrifuge cascades will give$uranium fuel, four-centrifuge cascades$will give total separation. -desc.gui.gasCent.output=§6Fluid Transfer§r$Fluid can be transferred to another centrifuge$via the output port for further processing. -desc.gui.nukeBoy.desc=§1Requires:§r$ * Neutron Shielding$ * U235 Projectile$ * Subcritical U235 Target$ * Propellant$ * Bomb Igniter -desc.gui.nukeGadget.desc=§1Requires:§r$ * 4 Arrays of First-Generation$ High-Explosive Lenses$ * Heavy Plutonium Core$ * Wiring -desc.gui.nukeMan.desc=§1Requires:§r$ * 4 Arrays of First-Generation$ High-Explosive Lenses$ * Plutonium Core$ * Bomb Firing Unit -desc.gui.nukeMike.desc=§1Requires:§r$ * 4 Arrays of High-Explosive Lenses$ * Plutonium Core$ * Deuterium Cooling Unit$ * Uranium Coated Deuterium Tank$ * Deuterium Tank -desc.gui.nukeTsar.desc=§1Requires:§r$ * 4 Arrays of High-Explosive Lenses$ * Plutonium Core$§9Optional:§r$ * Tsar Bomba Core -desc.gui.radiolysis.desc=§9Description§r$This RTG is more efficient then others, and$comes equipped with a radiolysis chamber for$cracking and sterilization. +desc.gui.assembler.warning=§cError:§r This machine requires an assembly template! +desc.gui.chemplant.warning=§cError:§r This machine requires an chemistry template! +desc.gui.gasCent.enrichment=§2Enrichment§r$Uranium enrichment requires cascades.$Two-centrifuge cascades will give$uranium fuel, four-centrifuge cascades$will give total separation. +desc.gui.gasCent.output=§6Fluid Transfer§r$Fluid can be transferred to another centrifuge$via the output port for further processing. +desc.gui.nukeBoy.desc=§1Requires:§r$ * Neutron Shielding$ * U235 Projectile$ * Subcritical U235 Target$ * Propellant$ * Bomb Igniter +desc.gui.nukeGadget.desc=§1Requires:§r$ * 4 Arrays of First-Generation$ High-Explosive Lenses$ * Heavy Plutonium Core$ * Wiring +desc.gui.nukeMan.desc=§1Requires:§r$ * 4 Arrays of First-Generation$ High-Explosive Lenses$ * Plutonium Core$ * Bomb Firing Unit +desc.gui.nukeMike.desc=§1Requires:§r$ * 4 Arrays of High-Explosive Lenses$ * Plutonium Core$ * Deuterium Cooling Unit$ * Uranium Coated Deuterium Tank$ * Deuterium Tank +desc.gui.nukeTsar.desc=§1Requires:§r$ * 4 Arrays of High-Explosive Lenses$ * Plutonium Core$§9Optional:§r$ * Tsar Bomba Core +desc.gui.radiolysis.desc=§9Description§r$This RTG is more efficient then others, and$comes equipped with a radiolysis chamber for$cracking and sterilization. desc.gui.rtgBFurnace.desc=Requires at least 15 heat to process$The more heat on top of that, the faster it runs$Heat going over maximum speed will have no effect$Short-lived pellets may decay -desc.gui.rtg.heat=§eCurrent heat level: %s +desc.gui.rtg.heat=§eCurrent heat level: %s desc.gui.rtg.pellets=Accepted Pellets: desc.gui.rtg.pelletHeat=%s (%s heat) desc.gui.rtg.pelletPower=%s (%s HE/tick) -desc.gui.template=§9Templates§r$Templates can be made by$using the Machine Template Folder. -desc.gui.turbinegas.automode=§2Automatic Turbine Throttling Mode§r$By clicking the "AUTO" button, the turbine$will automatically adjust the power production$based on the power required from the network -desc.gui.turbinegas.fuels=§6Accepted fuels:§r -desc.gui.turbinegas.warning=§cFuel or lubricant level low!§r -desc.gui.upgrade=§lAcceptable Upgrades:§r -desc.gui.upgrade.afterburner= * §dAfterburner§r: Stacks to level 3 -desc.gui.upgrade.effectiveness= * §aEffectiveness§r: Stacks to level 3 -desc.gui.upgrade.overdrive= * §7Overdrive§r: Stacks to level 3 -desc.gui.upgrade.power= * §1Power-Saving§r: Stacks to level 3 -desc.gui.upgrade.speed= * §4Speed§r: Stacks to level 3 -desc.gui.zirnox.coolant=§3Coolant§r$CO2 transfers heat from the core to the water.$This will boil it into super dense steam.$The efficiency of cooling and steam production$is based on pressure. -desc.gui.zirnox.pressure=§6Pressure§r$Pressure can be reduced by venting CO2.$However, too low a pressure, and cooling$efficiency and steam production will be reduced.$Look out for meltdowns! -desc.gui.zirnox.warning1=§cError:§r Water is required for$the reactor to function properly! -desc.gui.zirnox.warning2=§cError:§r CO2 is required for$the reactor to function properly! +desc.gui.template=§9Templates§r$Templates can be made by$using the Machine Template Folder. +desc.gui.turbinegas.automode=§2Automatic Turbine Throttling Mode§r$By clicking the "AUTO" button, the turbine$will automatically adjust the power production$based on the power required from the network +desc.gui.turbinegas.fuels=§6Accepted fuels:§r +desc.gui.turbinegas.warning=§cFuel or lubricant level low!§r +desc.gui.upgrade=§lAcceptable Upgrades:§r +desc.gui.upgrade.afterburner= * §dAfterburner§r: Stacks to level 3 +desc.gui.upgrade.effectiveness= * §aEffectiveness§r: Stacks to level 3 +desc.gui.upgrade.overdrive= * §7Overdrive§r: Stacks to level 3 +desc.gui.upgrade.power= * §1Power-Saving§r: Stacks to level 3 +desc.gui.upgrade.speed= * §4Speed§r: Stacks to level 3 +desc.gui.zirnox.coolant=§3Coolant§r$CO2 transfers heat from the core to the water.$This will boil it into super dense steam.$The efficiency of cooling and steam production$is based on pressure. +desc.gui.zirnox.pressure=§6Pressure§r$Pressure can be reduced by venting CO2.$However, too low a pressure, and cooling$efficiency and steam production will be reduced.$Look out for meltdowns! +desc.gui.zirnox.warning1=§cError:§r Water is required for$the reactor to function properly! +desc.gui.zirnox.warning2=§cError:§r CO2 is required for$the reactor to function properly! desc.item.ammo.con_accuracy2=- Highly decreased accuracy desc.item.ammo.con_damage=- Highly decreased damage desc.item.ammo.con_heavy_wear=- Highly increased wear @@ -915,7 +916,7 @@ desc.item.kitArmor=Armor will be displaced by new set. desc.item.kitHaz=Armor will be displaced by hazmat suit. desc.item.kitPack=What a bargain! desc.item.kitPool=Please empty inventory before opening! -desc.item.pileRod=§eUse on drilled graphite to insert$§eUse screwdriver to extract$ +desc.item.pileRod=§eUse on drilled graphite to insert$§eUse screwdriver to extract$ desc.item.rtgDecay=Decays to: %s desc.item.rtgHeat=Power Level: %s desc.item.storage.capacity=Capacity %s%%s @@ -923,19 +924,19 @@ desc.item.storage.proscons=to view pros cons list desc.misc.357=.357 Magnum desc.misc.556=.223 Remington desc.misc.762=.308 Winchester -desc.misc.func=§n-- Function -- +desc.misc.func=§n-- Function -- desc.misc.lanthanum="Lanthanum" -desc.misc.lctrl=§8Hold <§e§oLCTRL§8§o> %s -desc.misc.lore=§n-- Lore -- -desc.misc.lshift=§8Hold <§e§oLSHIFT§8§o> %s -desc.misc.luna=§o20x155mm Lunatic -desc.misc.meltPoint=Melting point: §c%s +desc.misc.lctrl=§8Hold <§e§oLCTRL§8§o> %s +desc.misc.lore=§n-- Lore -- +desc.misc.lshift=§8Hold <§e§oLSHIFT§8§o> %s +desc.misc.luna=§o20x155mm Lunatic +desc.misc.meltPoint=Melting point: §c%s desc.misc.noPos=No position set! desc.misc.pos=Set pos to: %s, %s, %s desc.misc.posSet=Position set! desc.item.wasteCooling=Cool in a Spent Fuel Pool Drum -desc.item.zirnoxBreedingRod=§2[ZIRNOX Breeding Rod]$§ePlace next to fuel rods to breed$§eLasts %d ticks -desc.item.zirnoxRod=§a[ZIRNOX Fuel Rod]$§eGenerates %1$d heat per tick$§eLasts %2$d ticks +desc.item.zirnoxBreedingRod=§2[ZIRNOX Breeding Rod]$§ePlace next to fuel rods to breed$§eLasts %d ticks +desc.item.zirnoxRod=§a[ZIRNOX Fuel Rod]$§eGenerates %1$d heat per tick$§eLasts %2$d ticks digamma.playerDigamma=Digamma exposure: digamma.playerHealth=Digamma influence: @@ -1059,15 +1060,15 @@ gun.name.ifPit=IF-18 Horseshoe Bottomless Pit gun.name.ifScope=IF-18 Horseshoe Scoped gun.name.ifStorm=IF-18 Horseshoe Silver Storm gun.name.ifVanity=IF-18 Horseshoe Vanity -gun.name.karl=M1 Karl-Gerät +gun.name.karl=M1 Karl-Gerät gun.name.ks23=KS-23 gun.name.lacunae=Auntie Lacunae gun.name.lasetDet=Hopeville Laser Detonator gun.name.lunaAR=1986 Bishamonten type Assault Rifle -gun.name.lunaGun=1978 Rāhula type Standard Issue Sidearm (Revision 2) +gun.name.lunaGun=1978 RÄ�hula type Standard Issue Sidearm (Revision 2) gun.name.lunaHLR=1944 Chang'e type Light Machine Gun gun.name.lunaShotty=1978 Guan Yu type Scattergun (Revision 1) -gun.name.lunaSMG=1956 Ānanda type Submachine Gun +gun.name.lunaSMG=1956 Ä€nanda type Submachine Gun gun.name.lunaSniper=1915 Hou Yi type Anti-Material Rifle gun.name.lunaTWR=Time Warp Rifle gun.name.m2=Browning machine gun, cal. .50, M2, HB @@ -1080,7 +1081,7 @@ gun.name.mg3=Universal-Maschinengewehr Modell 3 gun.name.mp40=Maschinenpistole 40 gun.name.nerf=NERF blaster of unknown design gun.name.osipr=Overwatch Standard Issue Pulse Rifle -gun.name.panz=Raketenpanzerbüchse 54 +gun.name.panz=Raketenpanzerbüchse 54 gun.name.quadro=OpenQuadro Guided Man-Portable Missile Launcher gun.name.remington870=Remington 870 gun.name.revolverCursed=Britannia Standard Issue Motorized Handgun @@ -1123,11 +1124,11 @@ hadron.error_analysis_too_long=Error 0x06 [ATL] hadron.error_analysis_too_short=Error 0x07 [ATS] hadron.error_diode_collision=Error 0x08 [DC] hadron.error_branching_turn=Error 0x09 [BT] -hadron.hopper0=§eNormal Mode:$All items will be used. -hadron.hopper1=§eHopper Mode:$One item will always remain. +hadron.hopper0=§eNormal Mode:$All items will be used. +hadron.hopper1=§eHopper Mode:$One item will always remain. hadron.idle=Idle -hadron.modeCircular=§eCircular Accelerator Mode:$Magnets must loop back into core.$Unlocks more recipes. -hadron.modeLine=§eLinear Accelerator Mode:$Accelerator ends with analysis chamber.$Fewer Recipes. +hadron.modeCircular=§eCircular Accelerator Mode:$Magnets must loop back into core.$Unlocks more recipes. +hadron.modeLine=§eLinear Accelerator Mode:$Accelerator ends with analysis chamber.$Fewer Recipes. hadron.noresult=No Result. hadron.noresult_too_slow=Insuff. momentum! hadron.noresult_wrong_ingredient=Invalid recipe! @@ -1227,7 +1228,7 @@ hbmfluid.mustardgas=Mustard Gas hbmfluid.naphtha=Naphtha hbmfluid.naphtha_coker=Coker Naphtha hbmfluid.naphtha_crack=Cracked Naphtha -hbmfluid.nitan=NITAN© 100 Octane Super Fuel +hbmfluid.nitan=NITAN© 100 Octane Super Fuel hbmfluid.nitric_acid=Nitric Acid hbmfluid.none=None hbmfluid.oil=Crude Oil @@ -1545,7 +1546,7 @@ item.ammo_grenade_finned.name=40mm Grenade (Finned) item.ammo_grenade_he.name=40mm Grenade (HE) item.ammo_grenade_incendiary.name=40mm Grenade (Incendiary) item.ammo_grenade_kampf.name=40mm Rocket -item.ammo_grenade_nuclear.name=40mm Grenade (Привет) +item.ammo_grenade_nuclear.name=40mm Grenade (Привет) item.ammo_grenade_phosphorus.name=40mm Grenade (WP) item.ammo_grenade_sleek.name=40mm Grenade (IF-R&D) item.ammo_grenade_toxic.name=40mm Grenade (Chemical) @@ -1579,7 +1580,7 @@ item.ammo_rocket_emp.name=84mm Rocket (Pulse) item.ammo_rocket_glare.name=84mm Rocket (Red Glare) item.ammo_rocket_he.name=84mm Rocket (HE) item.ammo_rocket_incendiary.name=84mm Rocket (Incendiary) -item.ammo_rocket_nuclear.name=84mm Rocket (Привет) +item.ammo_rocket_nuclear.name=84mm Rocket (Привет) item.ammo_rocket_phosphorus.name=84mm Rocket (WP) item.ammo_rocket_rpc.name=84mm Rocket Propelled Chainsaw item.ammo_rocket_shrapnel.name=84mm Rocket (Shrapnel) @@ -1593,7 +1594,7 @@ item.ammo_shell_w9.name=240mm W9 Nuclear Shell item.ammo_stinger_rocket.name=Stinger Rocket item.ammo_stinger_rocket_he.name=Stinger Rocket (HE) item.ammo_stinger_rocket_incendiary.name=Stinger Rocket (Incendiary) -item.ammo_stinger_rocket_nuclear.name=Stinger Rocket (Привет) +item.ammo_stinger_rocket_nuclear.name=Stinger Rocket (Привет) item.ammo_stinger_rocket_bones.name=Stinger Rocket (Bone-Seeking) item.ams_catalyst_aluminium.name=Aluminium Reaction Catalyst item.ams_catalyst_beryllium.name=Beryllium Reaction Catalyst @@ -1632,7 +1633,7 @@ item.apple_schrabidium.name=Schrabidium Apple item.arc_electrode.name=Graphite Electrode item.arc_electrode_burnt.name=Molten Electrode item.arc_electrode_desh.name=Desh Electrode -item.armor_polish.name=ShiningArmor™ Armor Polish +item.armor_polish.name=ShiningArmorâ„¢ Armor Polish item.asbestos_boots.name=Fire Proximity Boots item.asbestos_cloth.name=Fire Proximity Cloth item.asbestos_helmet.name=Fire Proximity Helmet @@ -1853,7 +1854,7 @@ item.can_mug.name=MUG Root Beer item.can_overcharge.name=Overcharge Delirium XT item.can_redbomb.name='Red Bomb' Energy Drink item.can_smart.name='Smart' Energy Drink -item.canister_NITAN.name=NITAN© 100 Octane Super Fuel (LEGACY) +item.canister_NITAN.name=NITAN© 100 Octane Super Fuel (LEGACY) item.canister_biofuel.name=Biofuel Canister (LEGACY) item.canister_bitumen.name=Bitumen Canister (LEGACY) item.canister_canola.name=Engine Lubricant (LEGACY) @@ -1897,7 +1898,7 @@ item.canned_fried.name=Canned Fried Chicken item.canned_fried.desc=Even the can is deep fried! item.canned_hotdogs.name=Canned Hotdogs item.canned_hotdogs.desc=Not to be confused with cool cats. -item.canned_jizz.name=FlimFlam Industries Canned Stallion Milk™ +item.canned_jizz.name=FlimFlam Industries Canned Stallion Milkâ„¢ item.canned_jizz.desc=Wait wh- item.canned_kerosene.name=Canned Kerosene item.canned_kerosene.desc=Just imagine a witty line here. @@ -1911,14 +1912,14 @@ item.canned_napalm.name=Canned Napalm item.canned_napalm.desc=I love the smell of old memes in the morning! item.canned_oil.name=Canned Engine Oil item.canned_oil.desc=It makes motors go, so why not humans? -item.canned_pashtet.name=Паштет -item.canned_pashtet.desc=услуги перевода недоступны! +item.canned_pashtet.name=Паштет +item.canned_pashtet.desc=уÑ�луги перевода недоÑ�тупны! item.canned_pizza.name=Canned Pepperoni Pizza item.canned_pizza.desc=A crime against humanity. item.canned_recursion.name=Canned Recursion item.canned_recursion.desc=Canned Recursion item.canned_spam.name=Canned Spam -item.canned_spam.desc=The three-and-a-half-minute sketch is set in the fictional Green Midget Cafe in Bromley.$An argument develops between the waitress, who recites a menu in which nearly$every dish contains Spam, and Mrs. Bun, who does not like Spam. She asks for a$dish without Spam, much to the amazement of her Spam-loving husband. The waitress$responds to this request with disgust. Mr. Bun offers to take her Spam instead,$and asks for a dish containing a lot of Spam and baked beans. The waitress says$no since they are out of baked beans; when Mr. Bun asks for a substitution of Spam,$the waitress again responds with disgust. At several points, a group of Vikings in$the restaurant interrupts conversation by loudly singing about Spam.$The irate waitress orders them to shut up, but they resume singing more loudly.$A Hungarian tourist comes to the counter, trying to order by using a wholly$inaccurate Hungarian/English phrasebook (a reference to a previous sketch).$He is rapidly escorted away by a police constable. The sketch abruptly cuts to a$historian in a television studio talking about the origin of the Vikings in the café.$As he goes on, he begins to increasingly insert the word \"Spam\" into every$sentence, and the backdrop is raised to reveal the restaurant set behind.$The historian joins the Vikings in their song, and Mr. and Mrs. Bun are lifted by$wires out of the scene while the singing continues. In the original televised performance,$the closing credits begin to scroll with the singing still audible in the background. +item.canned_spam.desc=The three-and-a-half-minute sketch is set in the fictional Green Midget Cafe in Bromley.$An argument develops between the waitress, who recites a menu in which nearly$every dish contains Spam, and Mrs. Bun, who does not like Spam. She asks for a$dish without Spam, much to the amazement of her Spam-loving husband. The waitress$responds to this request with disgust. Mr. Bun offers to take her Spam instead,$and asks for a dish containing a lot of Spam and baked beans. The waitress says$no since they are out of baked beans; when Mr. Bun asks for a substitution of Spam,$the waitress again responds with disgust. At several points, a group of Vikings in$the restaurant interrupts conversation by loudly singing about Spam.$The irate waitress orders them to shut up, but they resume singing more loudly.$A Hungarian tourist comes to the counter, trying to order by using a wholly$inaccurate Hungarian/English phrasebook (a reference to a previous sketch).$He is rapidly escorted away by a police constable. The sketch abruptly cuts to a$historian in a television studio talking about the origin of the Vikings in the café.$As he goes on, he begins to increasingly insert the word \"Spam\" into every$sentence, and the backdrop is raised to reveal the restaurant set behind.$The historian joins the Vikings in their song, and Mr. and Mrs. Bun are lifted by$wires out of the scene while the singing continues. In the original televised performance,$the closing credits begin to scroll with the singing still audible in the background. item.canned_stew.name=Canned "Mushroom Stew" item.canned_stew.desc=... item.canned_tomato.name=Canned Tomato Soup @@ -2455,9 +2456,9 @@ item.grenade_tau.name=Tau Grenade item.grenade_zomg.name=Negative Energy Pair Annihilation Grenade item.gun_ar15.name=Josh item.gun_avenger.name=CZ57 Avenger Minigun -item.gun_b92.name=§9B92 Energy Pistol§r -item.gun_b92_ammo.name=§9B92 Energy Cell§r -item.gun_b93.name=§cB93 Energy Mod§r +item.gun_b92.name=§9B92 Energy Pistol§r +item.gun_b92_ammo.name=§9B92 Energy Cell§r +item.gun_b93.name=§cB93 Energy Mod§r item.gun_bf.name=BEL item.gun_bf_ammo.name=Balefire Shell item.gun_bio_revolver.name=Atlas @@ -2507,7 +2508,7 @@ item.gun_lever_action.name=Mare's Leg (Original) item.gun_lever_action_ammo.name=12x74 Buckshot (LEGACY) item.gun_lever_action_dark.name=Mare's Leg (Dark) item.gun_lever_action_sonata.name=Flipped Mare's Leg -item.gun_lever_action_sonata_2.name=§cSonata's Microphone§r +item.gun_lever_action_sonata_2.name=§cSonata's Microphone§r item.gun_lunatic_marksman.name=Lunatic Sniper Rifle item.gun_m2.name=Ma Deuce item.gun_minigun.name=CZ53 Personal Minigun @@ -2525,7 +2526,7 @@ item.gun_osipr_ammo2.name=Combine Ball item.gun_panzerschreck.name=Panzerschreck item.gun_proto.name=M42 Nuclear Catapult "Proto MIRV" item.gun_quadro.name=Quattro Formaggi -item.gun_remington.name=バイデン ブラスト [BIDEN BLAST] +item.gun_remington.name=ãƒ�イデン ブラスト [BIDEN BLAST] item.gun_revolver.name=Enhanced Revolver item.gun_revolver_ammo.name=Lead Bullet item.gun_revolver_blackjack.name=Blackjack Five-Shooter @@ -2637,7 +2638,7 @@ item.ingot_am242.name=Americium-242 Ingot item.ingot_americium_fuel.name=Ingot of Americium Fuel item.ingot_arsenic.name=Arsenic Ingot item.ingot_asbestos.name=Asbestos Sheet -item.ingot_asbestos.desc=§o"Filled with life, self-doubt and asbestos. That comes with the air."§r +item.ingot_asbestos.desc=§o"Filled with life, self-doubt and asbestos. That comes with the air."§r item.ingot_au198.name=Gold-198 Ingot item.ingot_australium.name=Australium Ingot item.ingot_bakelite.name=Bakelite Bar @@ -2713,7 +2714,7 @@ item.ingot_semtex.name=Bar of Semtex item.ingot_smore.name=S'more Ingot item.ingot_solinium.name=Solinium Ingot item.ingot_sr90.name=Strontium-90 Ingot -item.ingot_starmetal.name=§9Starmetal Ingot§r +item.ingot_starmetal.name=§9Starmetal Ingot§r item.ingot_steel.name=Steel Ingot item.ingot_steel_dusted.name=Dusted Steel Ingot item.ingot_tantalium.name=Tantalium Ingot @@ -2737,7 +2738,7 @@ item.ingot_weidanium.name=Weidanium Ingot item.ingot_zirconium.name=Zirconium Cube item.injector_5htp.name=5-HTP Autoinjector item.injector_knife.name=8 Inch Blade Autoinjector -item.ink.name=林 Ink +item.ink.name=æž— Ink item.insert_doxium.name=Astolfium-Doped Doxium Insert item.insert_du.name=DU Insert item.insert_era.name=Explosive Reactive Armor Insert @@ -2768,7 +2769,7 @@ item.key_fake.name=Counterfeit Key item.key_kit.name=Key Imitation Kit item.key_red.name=Red Key item.key_red.desc=Explore the other side. -item.key_red.desc.P11=§4e§r +item.key_red.desc.P11=§4e§r item.kit_toolbox.name=Toolbox item.kit_toolbox_empty.name=Empty Toolbox item.laser_crystal_bismuth.desc=Bismuth-Samarium-Uranium-Thorium crystal matrix @@ -2794,7 +2795,7 @@ item.liquidator_plate.name=Liquidator Suit Chestplate item.lithium.name=Lithium Cube item.lodestone.name=Lodestone item.loop_stew.name=IT Breakfast -item.loops.name=Lööps +item.loops.name=Lööps item.loot_10.name=Size 10 Missile Loot Crate item.loot_15.name=Size 15 Missile Loot Crate item.loot_misc.name=General Missile Loot Crate @@ -2825,7 +2826,7 @@ item.med_ptsd.name=PTSD Medication item.med_schiziphrenia.name=Schizophrenia Medication item.medal_liquidator.name=Liquidator Medal item.meltdown_tool.name=Dyatlov Instant Meltdown Applicator -item.memespoon.name=§eMarket Gardener +item.memespoon.name=§eMarket Gardener item.memory.name=item.null.name item.mese_gavel.name=Mese Gavel item.mese_pickaxe.name=Mese Pickaxe @@ -2892,7 +2893,7 @@ item.missile_skin_orange_insulation.desc=Not an orange juice bottle;$do not atte item.missile_skin_sleek.name=Missile Skin: IF-R&D item.missile_skin_sleek.desc=Chevrons are cool! item.missile_skin_soviet_glory.name=Missile Skin: Soviet Glory -item.missile_skin_soviet_glory.desc=услуга перевода недоступна +item.missile_skin_soviet_glory.desc=уÑ�луга перевода недоÑ�тупна item.missile_skin_soviet_stank.name=Missile Skin: Soviet Stank item.missile_skin_soviet_stank.desc=This one's got the real 60's stank to it. item.missile_soyuz.name=Soyuz-FG @@ -3023,7 +3024,7 @@ item.mp_warhead_15_balefire.name=Size 15 BF Warhead item.mp_warhead_15_boxcar.name=Size 15 Boxcar? item.mp_warhead_15_he.name=Size 15 HE Warhead item.mp_warhead_15_incendiary.name=Size 15 Incendiary Warhead -item.mp_warhead_15_n2.name=Size 15 N² Mine +item.mp_warhead_15_n2.name=Size 15 N² Mine item.mp_warhead_15_nuclear.name=Size 15 Nuclear Warhead item.mp_warhead_15_nuclear_mimi.name=Size 15 Mimi-chan's Head item.mp_warhead_15_nuclear_shark.name=Size 15 Nuclear Warhead @@ -3089,7 +3090,7 @@ item.nugget_les.name=Low Enriched Schrabidium Fuel Nugget item.nugget_mercury_tiny.name=Tiny Drop of Mercury item.nugget_mercury.name=Drop of Mercury item.nugget_mox_fuel.name=Nugget of MOX Fuel -item.nugget_mox_fuel.desc=Moxie says: §lTAX EVASION.§r +item.nugget_mox_fuel.desc=Moxie says: §lTAX EVASION.§r item.nugget_neptunium.name=Neptunium Nugget item.nugget_neptunium_fuel.name=Neptunium Fuel Nugget item.nugget_osmiridium.name=Osmiridium Nugget @@ -3197,7 +3198,7 @@ item.particle_aproton.name=Antiproton Capsule item.particle_aschrab.name=Antischrabidium Capsule item.particle_copper.name=Copper Ion Capsule item.particle_dark.name=Dark Matter Capsule -item.particle_digamma.name=§cThe Digamma Particle§r +item.particle_digamma.name=§cThe Digamma Particle§r item.particle_empty.name=Empty Particle Capsule item.particle_higgs.name=Higgs Boson Capsule item.particle_hydrogen.name=Hydrogen Ion Capsule @@ -3263,19 +3264,19 @@ item.pellet_rtg_weak.desc=Cheaper and weaker pellet, now with more U238! item.pellet_schrabidium.name=Pure Schrabidium Watz Pellet item.photo_panel.name=Photovoltaic Panel item.pile_rod_boron.name=Chicago Pile Control Rod -item.pile_rod_boron.desc=§9[Neutron Absorber]$§eClick to toggle +item.pile_rod_boron.desc=§9[Neutron Absorber]$§eClick to toggle item.pile_rod_detector.name=Chicago Pile Control & Detector Rod -item.pile_rod_detector.desc=§9[Neutron Detector/Absorber]$§eUse defuser to increase/decrease neutron limit$§eUse screwdriver w/o sneaking to inspect flux +item.pile_rod_detector.desc=§9[Neutron Detector/Absorber]$§eUse defuser to increase/decrease neutron limit$§eUse screwdriver w/o sneaking to inspect flux item.pile_rod_lithium.name=Chicago Pile Lithium Cell -item.pile_rod_lithium.desc=§a[Breedable Fuel]$§eUse hand drill to inspect core +item.pile_rod_lithium.desc=§a[Breedable Fuel]$§eUse hand drill to inspect core item.pile_rod_plutonium.name=Chicago Pile Plutonium Rod -item.pile_rod_plutonium.desc=§d[Neutron Source] +item.pile_rod_plutonium.desc=§d[Neutron Source] item.pile_rod_pu239.name=Chicago Pile Bred Uranium Rod -item.pile_rod_pu239.desc=§a[Reactive Fuel]$§eRich in Plutonium-239. +item.pile_rod_pu239.desc=§a[Reactive Fuel]$§eRich in Plutonium-239. item.pile_rod_source.name=Chicago Pile Ra226Be Neutron Source -item.pile_rod_source.desc=§d[Neutron Source] +item.pile_rod_source.desc=§d[Neutron Source] item.pile_rod_uranium.name=Chicago Pile Uranium Rod -item.pile_rod_uranium.desc=§a[Reactive Fuel]$§eUse hand drill to take core sample +item.pile_rod_uranium.desc=§a[Reactive Fuel]$§eUse hand drill to take core sample item.pill_iodine.name=Iodine Pill item.pill_iodine.desc=Removes negative effects item.pill_herbal.name=Herbal Paste @@ -3336,7 +3337,7 @@ item.powder_actinium_tiny.name=Tiny Pile of Actinium Powder item.powder_advanced_alloy.name=Advanced Alloy Powder item.powder_aluminium.name=Aluminium Powder item.powder_asbestos.name=Asbestos Powder -item.powder_asbestos.desc=§o\"Sniffffffff- MHHHHHHMHHHHHHHHH\"§r +item.powder_asbestos.desc=§o\"Sniffffffff- MHHHHHHMHHHHHHHHH\"§r item.powder_astatine.name=Astatine Powder item.powder_at209.name=Astatine-209 Powder item.powder_au198.name=Gold-198 Powder @@ -3370,7 +3371,7 @@ item.powder_cs137_tiny.name=Tiny Pile of Caesium-137 Powder item.powder_daffergon.name=Daffergon Powder item.powder_desh.name=Desh Powder item.powder_desh_mix.name=Desh Blend -item.powder_desh_ready.name=DeshReady™ Blend +item.powder_desh_ready.name=DeshReadyâ„¢ Blend item.powder_diamond.name=Diamond Powder item.powder_dineutronium.name=Dineutronium Powder item.powder_dura_steel.name=High-Speed Steel Powder @@ -3465,7 +3466,7 @@ item.rag_damp.name=Damp Cloth item.rag_piss.name=Piss-Soaked Rag item.rbmk_fuel_balefire.name=Balefire RBMK Fuel Rod item.rbmk_fuel_balefire_gold.name=Flashgold RBMK Fuel Rod -item.rbmk_fuel_drx.name=§cDigamma RBMK Fuel Rod§r +item.rbmk_fuel_drx.name=§cDigamma RBMK Fuel Rod§r item.rbmk_fuel_empty.name=Empty RBMK Fuel Rod item.rbmk_fuel_flashlead.name=Flashlead RBMK Fuel Rod item.rbmk_fuel_hea241.name=HEA-241 RBMK Fuel Rod @@ -3499,7 +3500,7 @@ item.rbmk_lid.name=RBMK Cover Panel item.rbmk_lid_glass.name=RBMK Glass Cover Panel item.rbmk_pellet_balefire.name=Balefire Fuel Pellet item.rbmk_pellet_balefire_gold.name=Flashgold Fuel Pellet -item.rbmk_pellet_drx.name=§cDigamma Fuel Pellet§r +item.rbmk_pellet_drx.name=§cDigamma Fuel Pellet§r item.rbmk_pellet_flashlead.name=Flashlead Fuel Pellet item.rbmk_pellet_hea241.name=HEA-241 Fuel Pellet item.rbmk_pellet_hea242.name=HEA-242 Fuel Pellet @@ -3545,7 +3546,7 @@ item.redstone_sword.name=Redstone Sword item.reer_graar.name=The Reer Graar item.remote.name=Broken Remote item.ring_pull.name=Ring Pull -item.ring_starmetal.name=§9Starmetal Ring§r +item.ring_starmetal.name=§9Starmetal Ring§r item.robes_boots.name=Field Boots item.robes_helmet.name=Casual Hoodie item.robes_legs.name=Casual Pants @@ -4063,12 +4064,12 @@ item.watz_pellet_depleted.nqr.name=Naquadria Watz Pellet (Depleted) item.watz_pellet_depleted.hen.name=HEN Watz Pellet (Depleted) item.watz_pellet_depleted.schrabidium.name=Schrabidium Watz Pellet (Depleted) item.weapon_bat.name=Richard's Default -item.weapon_bat_nail.name=The Cliché +item.weapon_bat_nail.name=The Cliché item.weapon_golf_club.name=Russian Mobster's Club item.weapon_pipe_lead.name=The Manual Override item.weapon_pipe_rusty.name=The Attitude Adjuster item.weapon_saw.name=Doctor Assisted Homicide -item.weaponized_starblaster_cell.name=§cRigged Star Blaster Energy Cell§r +item.weaponized_starblaster_cell.name=§cRigged Star Blaster Energy Cell§r item.wd40.name=VT-40 item.wild_p.name=Wild Pegasus Dry Whiskey item.wings_limp.name=Limp Wings @@ -4131,11 +4132,11 @@ rbmk.console.fuel_depletion=Monitor average fuel depletion rbmk.console.fuel_poison=Monitor average xenon poisoning rbmk.console.fuel_temp=Monitor average fuel temperature rbmk.control.level=%s -rbmk.control.red=§cRed Group -rbmk.control.yellow=§eYellow Group -rbmk.control.green=§aGreen Group -rbmk.control.blue=§1Blue Group -rbmk.control.purple=§5Purple Group +rbmk.control.red=§cRed Group +rbmk.control.yellow=§eYellow Group +rbmk.control.green=§aGreen Group +rbmk.control.blue=§1Blue Group +rbmk.control.purple=§5Purple Group rbmk.moderated=Moderated rbmk.rod.depletion=Depletion: %s rbmk.rod.xenon=Xenon poison: %s @@ -4198,7 +4199,7 @@ tile.barbed_wire_wither.name=Withered Barbed Wire tile.barrel_antimatter.name=Magnetic Antimatter Container tile.barrel_corroded.name=Corroded Barrel tile.barrel_iron.name=Iron Barrel -tile.barrel_plastic.name=Safe Barrel™ +tile.barrel_plastic.name=Safe Barrelâ„¢ tile.barrel_steel.name=Steel Barrel tile.barrel_tcalloy.name=Technetium Steel Barrel tile.barricade.name=Sand Bags @@ -4297,7 +4298,7 @@ tile.block_semtex.name=Block of Semtex tile.block_slag.name=Block of Slag tile.block_smore.name=Block of S'more tile.block_solinium.name=Block of Solinium -tile.block_starmetal.name=§9Block of Starmetal§r +tile.block_starmetal.name=§9Block of Starmetal§r tile.block_steel.name=Block of Steel tile.block_sulfur.name=Block of Sulfur tile.block_tantalium.name=Block of Tantalium @@ -4425,7 +4426,7 @@ tile.concrete_slab.ducrete_smooth.name=Ducrete Slab tile.concrete_smooth.name=Concrete tile.concrete_smooth_stairs.name=Concrete Stairs tile.concrete_stairs.name=Concrete Tile Stairs -tile.concrete_super.name=Über Concrete +tile.concrete_super.name=Über Concrete tile.concrete_super_broken.name=Moldy Debris tile.conveyor.name=Conveyor Belt tile.conveyor_chute.name=Conveyor Chute @@ -4565,11 +4566,11 @@ tile.frozen_grass.name=Frozen Grass tile.frozen_log.name=Frozen Log tile.frozen_planks.name=Frozen Planks tile.furnace_combination.name=Combination Oven -tile.furnace_combination.desc=A large furnace that can produce charcoal and coal coke.$Produces fluid byproducts.$Heat transfer rate: ΔT*0.25 TU/t +tile.furnace_combination.desc=A large furnace that can produce charcoal and coal coke.$Produces fluid byproducts.$Heat transfer rate: ΔT*0.25 TU/t tile.furnace_iron.name=Iron Furnace tile.furnace_iron.desc=Larger and more efficient furnace,$does not waste fuel when idle. tile.furnace_steel.name=Steel Furnace -tile.furnace_steel.desc=Very large furnace that can provide bonus items$when smelting ores. Requires external heat source.$Heat transfer rate: ΔT*0.05 TU/t$(Δ means difference and T means temperature) +tile.furnace_steel.desc=Very large furnace that can provide bonus items$when smelting ores. Requires external heat source.$Heat transfer rate: ΔT*0.05 TU/t$(Δ means difference and T means temperature) tile.fusion_center.name=Central Magnet Piece tile.fusion_conductor.name=Superconducting Magnet tile.fusion_core.name=Fusion Reactor Control @@ -4679,7 +4680,7 @@ tile.machine_bat9000.name=Big-Ass Tank 9000 tile.machine_battery.name=Energy Storage Block tile.machine_battery_potato.name=Potato Battery Block tile.machine_boiler.name=Boiler -tile.machine_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ΔT*0.01 TU/t +tile.machine_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ΔT*0.01 TU/t tile.machine_boiler_electric_off.name=Electric Oil Heater tile.machine_boiler_electric_on.name=Electric Oil Heater tile.machine_boiler_off.name=Oil Heater @@ -4694,7 +4695,7 @@ tile.machine_chungus.desc=Efficiency: 85%% tile.machine_coal_off.name=Combustion Generator tile.machine_coal_on.name=Combustion Generator tile.machine_coker.name=Coker Unit -tile.machine_coker.desc=Cokes oil, creating fluid byproducts.$Requires external heat source.$Heat transfer rate: ΔT*0.025 TU/t +tile.machine_coker.desc=Cokes oil, creating fluid byproducts.$Requires external heat source.$Heat transfer rate: ΔT*0.025 TU/t tile.machine_combine_factory.name=CMB Steel Furnace tile.machine_combustion_engine.name=Industrial Combustion Engine tile.machine_condenser.name=Steam Condenser @@ -4830,7 +4831,7 @@ tile.nuke_fstbmb.name=Balefire Bomb tile.nuke_gadget.name=The Gadget tile.nuke_man.name=Fat Man tile.nuke_mike.name=Ivy Mike -tile.nuke_n2.name=N² Mine +tile.nuke_n2.name=N² Mine tile.nuke_n45.name=N45 Naval Mine tile.nuke_prototype.name=The Prototype tile.nuke_solinium.name=The Blue Rinse @@ -4987,6 +4988,7 @@ tile.reinforced_brick.name=Reinforced Stone tile.reinforced_brick_stairs.name=Reinforced Stone Stairs tile.reinforced_ducrete.name=Reinforced Ducrete tile.reinforced_glass.name=Reinforced Glass +tile.reinforced_laminate.name=Laminate Glass tile.reinforced_lamp_off.name=Reinforced Lamp tile.reinforced_lamp_on.name=Reinforced Lamp tile.reinforced_light.name=Reinforced Glowstone @@ -5195,9 +5197,9 @@ tool.ability.silktouch=Silk Touch tool.ability.smelter=Auto-Smelter turret.animals=Target Passive: %s -turret.arty.artillery=§eArtillery Mode$Grace: 250m$Range: 3,000m -turret.arty.cannon=§eCannon Mode$Grace: 32m$Range: 250m -turret.arty.manual=§eManual Mode$Range: 3,000m +turret.arty.artillery=§eArtillery Mode$Grace: 250m$Range: 3,000m +turret.arty.cannon=§eCannon Mode$Grace: 32m$Range: 250m +turret.arty.manual=§eManual Mode$Range: 3,000m turret.machines=Target Machines: %s turret.mobs=Target Mobs: %s turret.none=None diff --git a/src/main/resources/assets/hbm/textures/blocks/glass/reinforced_glass.png b/src/main/resources/assets/hbm/textures/blocks/glass/reinforced_glass.png new file mode 100644 index 0000000000000000000000000000000000000000..d003abb6cb903b9698ecda6dd5605b8183fa8da7 GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc!DLSt#}Etu9pEh}C`hmmdKI;Vst0A*c2!vFvP literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/glass/reinforced_glass_ct.png b/src/main/resources/assets/hbm/textures/blocks/glass/reinforced_glass_ct.png new file mode 100644 index 0000000000000000000000000000000000000000..2105d94d494a4afb95240fa981c83a4f9d800413 GIT binary patch literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DjSL74G){)!Z!V5p~yV@QO1@|U}t&E_^5C2${USM-_Gs4G0h zFd^Xz<6=IE(gQ1)-DC}3H3YIZ++y}#kW<9CGndg|fm?HnlEExCs8o*?P&M9pEh}C`hmmdKI;Vst0A*c2!vFvP literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/reinforced_laminate_ct.png b/src/main/resources/assets/hbm/textures/blocks/reinforced_laminate_ct.png new file mode 100644 index 0000000000000000000000000000000000000000..2105d94d494a4afb95240fa981c83a4f9d800413 GIT binary patch literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DjSL74G){)!Z!V5p~yV@QO1@|U}t&E_^5C2${USM-_Gs4G0h zFd^Xz<6=IE(gQ1)-DC}3H3YIZ++y}#kW<9CGndg|fm?HnlEExCs8o*?P&M#gAj`g}MR_>}C35&hQqSGH67cP0Q6grgmbv z)B~v+jinEm*k(`o!@K@mIole+;{8nbB@?9YfB$`9r*w+)5$T+`YWtPa=QDwU#Ng@b K=d#Wzp$Py=Zi=@6 literal 0 HcmV?d00001 From 3085b3c7dcf82d2362094e31259c3b29388e7b63 Mon Sep 17 00:00:00 2001 From: burningwater202 Date: Thu, 25 May 2023 21:38:49 -0400 Subject: [PATCH 013/109] Fork me in the glass I have no idea what I'm doing --- .../com/example/examplemod/ExampleMod.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 src/main/java/com/example/examplemod/ExampleMod.java diff --git a/src/main/java/com/example/examplemod/ExampleMod.java b/src/main/java/com/example/examplemod/ExampleMod.java new file mode 100644 index 000000000..4245c7e92 --- /dev/null +++ b/src/main/java/com/example/examplemod/ExampleMod.java @@ -0,0 +1,20 @@ +package com.example.examplemod; + +import net.minecraft.init.Blocks; +import cpw.mods.fml.common.Mod; +import cpw.mods.fml.common.Mod.EventHandler; +import cpw.mods.fml.common.event.FMLInitializationEvent; + +@Mod(modid = ExampleMod.MODID, version = ExampleMod.VERSION) +public class ExampleMod +{ + public static final String MODID = "examplemod"; + public static final String VERSION = "1.0"; + + @EventHandler + public void init(FMLInitializationEvent event) + { + // some example code + System.out.println("DIRT BLOCK >> "+Blocks.dirt.getUnlocalizedName()); + } +} From 85ce4008a14255a2c26506ba675cc74d6e453cce Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 26 May 2023 14:54:57 +0200 Subject: [PATCH 014/109] train coupling (physics pending) --- .../java/com/hbm/crafting/WeaponRecipes.java | 10 +-- .../hbm/entity/train/EntityRailCarBase.java | 80 +++++++++++++++++- .../entity/train/EntityRailCarRidable.java | 1 + .../com/hbm/entity/train/TrainCargoTram.java | 2 + src/main/java/com/hbm/items/ModItems.java | 3 + .../com/hbm/items/tool/ItemCouplingTool.java | 5 ++ .../java/com/hbm/main/CraftingManager.java | 2 +- .../hbm/textures/items/coupling_tool.png | Bin 0 -> 183 bytes 8 files changed, 96 insertions(+), 7 deletions(-) create mode 100644 src/main/java/com/hbm/items/tool/ItemCouplingTool.java create mode 100644 src/main/resources/assets/hbm/textures/items/coupling_tool.png diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index 87da12304..a85f8ca36 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -188,11 +188,11 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_12gauge, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', ModItems.plate_polymer }); CraftingManager.addRecipeAuto(ModItems.ammo_12gauge.stackFromEnum(12, Ammo12Gauge.PERCUSSION), new Object[] { "G", "C", "P", 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_4gauge, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.SLUG), new Object[] { " I ", "GCL", " P ", 'I', PB.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.FLECHETTE), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_flechette, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.EXPLOSIVE), new Object[] { " I ", "GCL", " P ", 'I', ModBlocks.tnt, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(6, Ammo4Gauge.EXPLOSIVE), new Object[] { " I ", "GCL", " P ", 'I', ANY_PLASTICEXPLOSIVE.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.MINING), new Object[] { " I ", "GCL", " P ", 'I', ModBlocks.det_miner, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.SLUG), new Object[] { " I ", "GCL", " P ", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.FLECHETTE), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_flechette, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.EXPLOSIVE), new Object[] { " I ", "GCL", " P ", 'I', ModBlocks.tnt, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(6, Ammo4Gauge.EXPLOSIVE), new Object[] { " I ", "GCL", " P ", 'I', ANY_PLASTICEXPLOSIVE.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.MINING), new Object[] { " I ", "GCL", " P ", 'I', ModBlocks.det_miner, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); CraftingManager.addShapelessAuto(ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.QUACK), new Object[] { ModItems.ammo_4gauge, ModItems.nugget_bismuth, ModItems.nugget_tantalium, ModItems.ball_dynamite }); CraftingManager.addRecipeAuto(ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.STOCK), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', CU.plate() }); CraftingManager.addRecipeAuto(ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.SLUG), new Object[] { " I ", "GCL", " P ", 'I', PB.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', CU.plate() }); diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index f816f07bd..c63fca7cf 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -1,8 +1,11 @@ package com.hbm.entity.train; +import java.util.List; + import com.hbm.blocks.rail.IRailNTM; import com.hbm.blocks.rail.IRailNTM.RailContext; import com.hbm.blocks.rail.IRailNTM.TrackGauge; +import com.hbm.items.ModItems; import com.hbm.util.fauxpointtwelve.BlockPos; import cpw.mods.fml.relauncher.Side; @@ -11,6 +14,7 @@ import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.DamageSource; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; @@ -51,6 +55,51 @@ public abstract class EntityRailCarBase extends Entity { @Override protected void entityInit() { } @Override protected void readEntityFromNBT(NBTTagCompound nbt) { } @Override protected void writeEntityToNBT(NBTTagCompound nbt) { } + + @Override + public boolean interactFirst(EntityPlayer player) { + + if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.coupling_tool) { + + List intersecting = worldObj.getEntitiesWithinAABB(EntityRailCarBase.class, this.boundingBox.expand(2D, 0D, 2D)); + + for(EntityRailCarBase neighbor : intersecting) { + if(neighbor == this) continue; + if(neighbor.getGauge() != this.getGauge()) continue; + + TrainCoupling closestOwnCoupling = null; + TrainCoupling closestNeighborCoupling = null; + double closestDist = Double.POSITIVE_INFINITY; + + for(TrainCoupling ownCoupling : TrainCoupling.values()) { + for(TrainCoupling neighborCoupling : TrainCoupling.values()) { + Vec3 ownPos = this.getCouplingPos(ownCoupling); + Vec3 neighborPos = neighbor.getCouplingPos(neighborCoupling); + if(ownPos != null && neighborPos != null) { + Vec3 delta = Vec3.createVectorHelper(ownPos.xCoord - neighborPos.xCoord, ownPos.yCoord - neighborPos.yCoord, ownPos.zCoord - neighborPos.zCoord); + double length = delta.lengthVector(); + + if(length < 1 && length < closestDist) { + closestDist = length; + closestOwnCoupling = ownCoupling; + closestNeighborCoupling = neighborCoupling; + } + } + } + } + + if(closestOwnCoupling != null && closestNeighborCoupling != null) { + if(this.getCoupledTo(closestOwnCoupling) != null) continue; + if(neighbor.getCoupledTo(closestNeighborCoupling) != null) continue; + this.couple(closestOwnCoupling, neighbor); + neighbor.couple(closestNeighborCoupling, this); + return true; + } + } + } + + return false; + } @Override public void onUpdate() { @@ -77,6 +126,13 @@ public abstract class EntityRailCarBase extends Entity { this.setRotation(this.rotationYaw, this.rotationPitch); } + /* + * TODO: move movement into the world tick event handler. + * step 1: detect linked trains, move linked units (LTUs) as one later + * step 2: move LTUs together using coupling rules (important to happen first, consistency has to be achieved before major movement) + * step 3: move LTUs based on their engine and gravity speed + * step 4: move LTUs based on collisions between LTUs (important to happen last, collision is most important) + */ BlockPos anchor = this.getCurentAnchorPos(); Vec3 frontPos = getRelPosAlongRail(anchor, this.getLengthSpan()); Vec3 backPos = getRelPosAlongRail(anchor, -this.getLengthSpan()); @@ -226,6 +282,10 @@ public abstract class EntityRailCarBase extends Entity { public abstract TrackGauge getGauge(); /** Returns the length between the core and one of the bogies */ public abstract double getLengthSpan(); + /* Returns a collision box, usually smaller than the entity's AABB for rendering, which is used for colliding trains */ + public AxisAlignedBB getCollisionBox() { + return this.boundingBox; + } /** Returns the "true" position of the train, i.e. the block it wants to snap to */ public BlockPos getCurentAnchorPos() { @@ -348,11 +408,29 @@ public abstract class EntityRailCarBase extends Entity { BACK } + public double getCouplingDist(TrainCoupling coupling) { + return 0D; + } + public Vec3 getCouplingPos(TrainCoupling coupling) { - return null; + double dist = this.getCouplingDist(coupling); + + if(dist <= 0) return null; + + Vec3 rot = Vec3.createVectorHelper(0, 0, dist); + rot.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180D)); + rot.xCoord += this.renderX; + rot.yCoord += this.renderY; + rot.zCoord += this.renderZ; + return rot; } public EntityRailCarBase getCoupledTo(TrainCoupling coupling) { return coupling == TrainCoupling.FRONT ? this.coupledFront : coupling == TrainCoupling.BACK ? this.coupledBack : null; } + + public void couple(TrainCoupling coupling, EntityRailCarBase to) { + if(coupling == TrainCoupling.FRONT) this.coupledFront = to; + if(coupling == TrainCoupling.BACK) this.coupledBack = to; + } } diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java index 272fa431b..7cd217354 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java @@ -77,6 +77,7 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { @Override public boolean interactFirst(EntityPlayer player) { + if(super.interactFirst(player)) return true; if(worldObj.isRemote) return true; double nearestDist = Double.POSITIVE_INFINITY; diff --git a/src/main/java/com/hbm/entity/train/TrainCargoTram.java b/src/main/java/com/hbm/entity/train/TrainCargoTram.java index e0d1aaa2a..602efd8cc 100644 --- a/src/main/java/com/hbm/entity/train/TrainCargoTram.java +++ b/src/main/java/com/hbm/entity/train/TrainCargoTram.java @@ -18,6 +18,7 @@ import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.DamageSource; import net.minecraft.util.ResourceLocation; import net.minecraft.util.Vec3; @@ -54,6 +55,7 @@ public class TrainCargoTram extends EntityRailCarElectric implements IGUIProvide @Override public boolean shouldRiderSit() { return false; } @Override public int getSizeInventory() { return 29; } @Override public String getInventoryName() { return this.hasCustomInventoryName() ? this.getEntityName() : "container.trainTram"; } + @Override public AxisAlignedBB getCollisionBox() { return AxisAlignedBB.getBoundingBox(renderX, renderY, renderZ, renderX, renderY + 1, renderZ).expand(4, 0, 4); } @Override public int getMaxPower() { return this.getPowerConsumption() * 100; } @Override public int getPowerConsumption() { return 10; } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 68ae2a5a4..c87bb3a60 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1252,6 +1252,7 @@ public class ModItems { public static Item rbmk_tool; public static Item coltan_tool; public static Item power_net_tool; + public static Item coupling_tool; public static Item template_folder; public static Item journal_pip; @@ -4580,6 +4581,7 @@ public class ModItems { rbmk_tool = new ItemRBMKTool().setUnlocalizedName("rbmk_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":rbmk_tool"); coltan_tool = new ItemColtanCompass().setUnlocalizedName("coltan_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coltass"); power_net_tool = new ItemPowerNetTool().setUnlocalizedName("power_net_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":power_net_tool"); + coupling_tool = new ItemCouplingTool().setUnlocalizedName("coupling_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coupling_tool"); key = new ItemKey().setUnlocalizedName("key").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":key"); key_red = new ItemCustomLore().setUnlocalizedName("key_red").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":key_red"); @@ -6722,6 +6724,7 @@ public class ModItems { GameRegistry.registerItem(rbmk_tool, rbmk_tool.getUnlocalizedName()); GameRegistry.registerItem(coltan_tool, coltan_tool.getUnlocalizedName()); GameRegistry.registerItem(power_net_tool, power_net_tool.getUnlocalizedName()); + GameRegistry.registerItem(coupling_tool, coupling_tool.getUnlocalizedName()); GameRegistry.registerItem(dosimeter, dosimeter.getUnlocalizedName()); GameRegistry.registerItem(geiger_counter, geiger_counter.getUnlocalizedName()); GameRegistry.registerItem(digamma_diagnostic, digamma_diagnostic.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/tool/ItemCouplingTool.java b/src/main/java/com/hbm/items/tool/ItemCouplingTool.java new file mode 100644 index 000000000..c6295697d --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemCouplingTool.java @@ -0,0 +1,5 @@ +package com.hbm.items.tool; + +import net.minecraft.item.Item; + +public class ItemCouplingTool extends Item { } diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 7fda63959..0b25b3eb3 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -909,7 +909,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(Items.lead, 4), new Object[] { "RSR", 'R', DictFrame.fromOne(ModItems.plant_item, EnumPlantType.ROPE), 'S', KEY_SLIME }); addRecipeAuto(new ItemStack(ModItems.rag, 4), new Object[] { "SW", "WS", 'S', Items.string, 'W', Blocks.wool }); - addShapelessAuto(new ItemStack(ModItems.solid_fuel, 2), new Object[] { Fluids.HEATINGOIL.getDict(1000), KEY_TOOL_CHEMISTRYSET }); + addShapelessAuto(new ItemStack(ModItems.solid_fuel, 3), new Object[] { Fluids.HEATINGOIL.getDict(16000), KEY_TOOL_CHEMISTRYSET }); addShapelessAuto(new ItemStack(ModItems.canister_full, 2, Fluids.LUBRICANT.getID()), new Object[] { Fluids.HEATINGOIL.getDict(1000), Fluids.UNSATURATEDS.getDict(1000), ModItems.canister_empty, ModItems.canister_empty, KEY_TOOL_CHEMISTRYSET }); addRecipeAuto(new ItemStack(ModBlocks.machine_condenser), new Object[] { "SIS", "ICI", "SIS", 'S', STEEL.ingot(), 'I', IRON.plate(), 'C', ModItems.board_copper }); diff --git a/src/main/resources/assets/hbm/textures/items/coupling_tool.png b/src/main/resources/assets/hbm/textures/items/coupling_tool.png new file mode 100644 index 0000000000000000000000000000000000000000..e09856ebcd4ec617b96bfe0b59822f598d444e14 GIT binary patch literal 183 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfug4{y~o d<8Q<(sS7^0tNXpyaSqUC22WQ%mvv4FO#qb{KmGs! literal 0 HcmV?d00001 From 68354bd6f3d5500dd953d20682763c789cba9db6 Mon Sep 17 00:00:00 2001 From: Toshayo Date: Fri, 26 May 2023 18:15:13 +0200 Subject: [PATCH 015/109] Added CurseForge task configuration --- .gitignore | 6 ++++++ build.gradle | 38 +++++++++++++++++++++++++++++++++++ changelog | 0 curseforge.properties.example | 5 +++++ 4 files changed, 49 insertions(+) create mode 100644 changelog create mode 100644 curseforge.properties.example diff --git a/.gitignore b/.gitignore index 231f1afed..2b15b7112 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,9 @@ build # other run + +# CurseForge configuration +/curseforge.properties + +# Changelog backup +/changelog.bak \ No newline at end of file diff --git a/build.gradle b/build.gradle index 2817f3c3c..9a1ea516d 100644 --- a/build.gradle +++ b/build.gradle @@ -1,3 +1,6 @@ +import java.nio.file.Files +import java.nio.file.Paths + buildscript { repositories { maven { url = 'https://maven.minecraftforge.net/' } @@ -10,6 +13,14 @@ buildscript { } apply plugin: 'forge' +apply plugin: 'curseforge' + + +if(Files.exists(Paths.get("curseforge.properties"))) { + // Load CurseForge configuration + ext.cfprops = parseConfig(file("curseforge.properties")) +} + def version_name = version = mod_version if(!mod_build_number.isEmpty()) { version_name = mod_version + "_X" + mod_build_number @@ -114,3 +125,30 @@ task version { println project.version } } + +if(Files.exists(Paths.get("curseforge.properties"))) { + curse { + apiKey = cfprops.api_key + projectId = cfprops.project_id + releaseType = "release" + + if (Files.exists(Paths.get("changelog"))) { + changelog = String.join("\r\n", Files.readAllLines(Paths.get("changelog"))) + + // Perform a backup of the changelog and create a new file for next changes + doLast { + Files.move(Paths.get("changelog"), Paths.get("changelog.bak")) + Files.createFile(Paths.get("changelog")) + } + } + } +} + +// Properties file parsing helper +static def parseConfig(File config) { + config.withReader { + def prop = new Properties() + prop.load(it) + return (new ConfigSlurper().parse(prop)) + } +} diff --git a/changelog b/changelog new file mode 100644 index 000000000..e69de29bb diff --git a/curseforge.properties.example b/curseforge.properties.example new file mode 100644 index 000000000..002b2b4f5 --- /dev/null +++ b/curseforge.properties.example @@ -0,0 +1,5 @@ +# CurseForge API token (obtainable from https://legacy.curseforge.com/account/api-tokens) +api_key= + +# CurseForge project ID +project_id= From e20c4f16118a0b48f0e68bef3e4bbf72d89f0c54 Mon Sep 17 00:00:00 2001 From: Toshayo <67237514+Toshayo@users.noreply.github.com> Date: Fri, 26 May 2023 18:26:43 +0200 Subject: [PATCH 016/109] Update .gitignore Newlines are good --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 2b15b7112..22222fc39 100644 --- a/.gitignore +++ b/.gitignore @@ -25,4 +25,4 @@ run /curseforge.properties # Changelog backup -/changelog.bak \ No newline at end of file +/changelog.bak From e12065440381d6a4cd05bd52d96c6c6a69297368 Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 27 May 2023 23:38:15 +0200 Subject: [PATCH 017/109] more train coupling stuff --- .../hbm/entity/train/EntityRailCarBase.java | 17 +++++++++- .../entity/train/EntityRailCarRidable.java | 34 ++++++++++++++++--- .../com/hbm/entity/train/TrainCargoTram.java | 3 +- .../entity/train/TrainCargoTramTrailer.java | 3 ++ .../java/com/hbm/items/special/ItemTrain.java | 8 +++++ 5 files changed, 58 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index c63fca7cf..e33f02380 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -1,5 +1,6 @@ package com.hbm.entity.train; +import java.util.ArrayList; import java.util.List; import com.hbm.blocks.rail.IRailNTM; @@ -93,6 +94,7 @@ public abstract class EntityRailCarBase extends Entity { if(neighbor.getCoupledTo(closestNeighborCoupling) != null) continue; this.couple(closestOwnCoupling, neighbor); neighbor.couple(closestNeighborCoupling, this); + player.swingItem(); return true; } } @@ -282,10 +284,14 @@ public abstract class EntityRailCarBase extends Entity { public abstract TrackGauge getGauge(); /** Returns the length between the core and one of the bogies */ public abstract double getLengthSpan(); - /* Returns a collision box, usually smaller than the entity's AABB for rendering, which is used for colliding trains */ + /** Returns a collision box, usually smaller than the entity's AABB for rendering, which is used for colliding trains */ public AxisAlignedBB getCollisionBox() { return this.boundingBox; } + /** Returns a collision box used for block collisions when derailed */ + @Override public AxisAlignedBB getBoundingBox() { + return this.boundingBox; + } /** Returns the "true" position of the train, i.e. the block it wants to snap to */ public BlockPos getCurentAnchorPos() { @@ -417,6 +423,8 @@ public abstract class EntityRailCarBase extends Entity { if(dist <= 0) return null; + if(coupling == TrainCoupling.BACK) dist *= -1; + Vec3 rot = Vec3.createVectorHelper(0, 0, dist); rot.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180D)); rot.xCoord += this.renderX; @@ -433,4 +441,11 @@ public abstract class EntityRailCarBase extends Entity { if(coupling == TrainCoupling.FRONT) this.coupledFront = to; if(coupling == TrainCoupling.BACK) this.coupledBack = to; } + + public static class LogicalTrainUnit { + + List trains = new ArrayList(); + + //TBI + } } diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java index 7cd217354..42aaa0248 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java @@ -129,7 +129,7 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { if(nearestSeat == -1) { player.mountEntity(this); } else { - SeatDummyEntity dummySeat = new SeatDummyEntity(worldObj, this); + SeatDummyEntity dummySeat = new SeatDummyEntity(worldObj, this, nearestSeat); Vec3 passengerSeat = this.getPassengerSeats()[nearestSeat]; passengerSeat.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); double x = renderX + passengerSeat.xCoord; @@ -194,16 +194,17 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { private double trainX; private double trainY; private double trainZ; - public EntityRailCarBase train; + public EntityRailCarRidable train; public SeatDummyEntity(World world) { super(world); this.setSize(0.5F, 0.1F);} - public SeatDummyEntity(World world, EntityRailCarBase train) { + public SeatDummyEntity(World world, EntityRailCarRidable train, int index) { this(world); this.train = train; if(train != null) this.dataWatcher.updateObject(3, train.getEntityId()); + this.dataWatcher.updateObject(4, index); } - @Override protected void entityInit() { this.dataWatcher.addObject(3, new Integer(0)); } + @Override protected void entityInit() { this.dataWatcher.addObject(3, new Integer(0)); this.dataWatcher.addObject(4, new Integer(0)); } @Override protected void writeEntityToNBT(NBTTagCompound nbt) { } @Override public boolean writeToNBTOptional(NBTTagCompound nbt) { return false; } @Override public void readEntityFromNBT(NBTTagCompound nbt) { this.setDead(); } @@ -238,7 +239,30 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { @Override public void updateRiderPosition() { if(this.riddenByEntity != null) { - this.riddenByEntity.setPosition(this.posX, this.posY + 1, this.posZ); + + if(train == null) { + int eid = this.dataWatcher.getWatchableObjectInt(3); + Entity entity = worldObj.getEntityByID(eid); + if(entity instanceof EntityRailCarRidable) { + train = (EntityRailCarRidable) entity; + } + } + + //fallback for when train is null + if(train == null) { + this.riddenByEntity.setPosition(posX, posY + 1, posZ); + return; + } + + //doing it like this instead of with the position directly removes any discrepancies caused by entity tick order + //mmhmhmhm silky smooth + int index = this.dataWatcher.getWatchableObjectInt(4); + Vec3 rot = this.train.getPassengerSeats()[index]; + rot.rotateAroundY((float) (-train.rotationYaw * Math.PI / 180)); + double x = train.renderX + rot.xCoord; + double y = train.renderY + rot.yCoord; + double z = train.renderZ + rot.zCoord; + this.riddenByEntity.setPosition(x, y, z); } } } diff --git a/src/main/java/com/hbm/entity/train/TrainCargoTram.java b/src/main/java/com/hbm/entity/train/TrainCargoTram.java index 602efd8cc..abb278066 100644 --- a/src/main/java/com/hbm/entity/train/TrainCargoTram.java +++ b/src/main/java/com/hbm/entity/train/TrainCargoTram.java @@ -51,11 +51,12 @@ public class TrainCargoTram extends EntityRailCarElectric implements IGUIProvide @Override public TrackGauge getGauge() { return TrackGauge.STANDARD; } @Override public double getLengthSpan() { return 1.5; } - @Override public Vec3 getRiderSeatPosition() { return Vec3.createVectorHelper(0.375, 2.25, 0.5); } + @Override public Vec3 getRiderSeatPosition() { return Vec3.createVectorHelper(0.375, 2.375, 0.5); } @Override public boolean shouldRiderSit() { return false; } @Override public int getSizeInventory() { return 29; } @Override public String getInventoryName() { return this.hasCustomInventoryName() ? this.getEntityName() : "container.trainTram"; } @Override public AxisAlignedBB getCollisionBox() { return AxisAlignedBB.getBoundingBox(renderX, renderY, renderZ, renderX, renderY + 1, renderZ).expand(4, 0, 4); } + @Override public double getCouplingDist(TrainCoupling coupling) { return coupling != null ? 2.75 : 0; } @Override public int getMaxPower() { return this.getPowerConsumption() * 100; } @Override public int getPowerConsumption() { return 10; } diff --git a/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java b/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java index 8ff36ead4..6e771e40a 100644 --- a/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java +++ b/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java @@ -2,6 +2,7 @@ package com.hbm.entity.train; import com.hbm.blocks.rail.IRailNTM.TrackGauge; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.DamageSource; import net.minecraft.util.Vec3; import net.minecraft.world.World; @@ -28,6 +29,8 @@ public class TrainCargoTramTrailer extends EntityRailCarCargo { @Override public double getLengthSpan() { return 1.5; } @Override public int getSizeInventory() { return 29; } @Override public String getInventoryName() { return this.hasCustomInventoryName() ? this.getEntityName() : "container.trainTramTrailer"; } + @Override public AxisAlignedBB getCollisionBox() { return AxisAlignedBB.getBoundingBox(renderX, renderY, renderZ, renderX, renderY + 1, renderZ).expand(4, 0, 4); } + @Override public double getCouplingDist(TrainCoupling coupling) { return coupling != null ? 2.75 : 0; } @Override public double getCurrentSpeed() { diff --git a/src/main/java/com/hbm/items/special/ItemTrain.java b/src/main/java/com/hbm/items/special/ItemTrain.java index 05f55231d..d8353bcd2 100644 --- a/src/main/java/com/hbm/items/special/ItemTrain.java +++ b/src/main/java/com/hbm/items/special/ItemTrain.java @@ -8,12 +8,14 @@ import com.hbm.entity.train.TrainCargoTram; import com.hbm.entity.train.TrainCargoTramTrailer; import com.hbm.items.ItemEnumMulti; import com.hbm.util.EnumUtil; +import com.hbm.util.fauxpointtwelve.BlockPos; import net.minecraft.block.Block; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.Vec3; import net.minecraft.world.World; public class ItemTrain extends ItemEnumMulti { @@ -74,7 +76,13 @@ public class ItemTrain extends ItemEnumMulti { if(train != null && train.getGauge() == ((IRailNTM) b).getGauge(world, x, y, z)) { if(!world.isRemote) { train.setPosition(x + fx, y + fy, z + fz); + BlockPos anchor = train.getCurentAnchorPos(); train.rotationYaw = entity.rotationYaw; + Vec3 corePos = train.getRelPosAlongRail(anchor, 0); + train.setPosition(corePos.xCoord, corePos.yCoord, corePos.zCoord); + Vec3 frontPos = train.getRelPosAlongRail(anchor, train.getLengthSpan()); + Vec3 backPos = train.getRelPosAlongRail(anchor, -train.getLengthSpan()); + train.rotationYaw = train.generateYaw(frontPos, backPos); world.spawnEntityInWorld(train); } From 727a158ed1094571946922aa668db4908caa0274 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 28 May 2023 21:53:58 +0200 Subject: [PATCH 018/109] bauxite, achievement stuff, fixes --- gradle.properties | 2 +- src/main/java/com/hbm/blocks/BlockEnums.java | 3 +- src/main/java/com/hbm/config/WorldConfig.java | 42 +++++++---- .../java/com/hbm/crafting/MineralRecipes.java | 4 ++ .../hbm/handler/guncfg/Gun20GaugeFactory.java | 4 ++ .../com/hbm/inventory/SlotCraftingOutput.java | 36 +--------- .../java/com/hbm/inventory/fluid/Fluids.java | 6 +- .../hbm/inventory/recipes/CokerRecipes.java | 1 + .../inventory/recipes/CombinationRecipes.java | 3 + .../recipes/SolidificationRecipes.java | 1 + src/main/java/com/hbm/items/ItemEnums.java | 12 ++++ src/main/java/com/hbm/items/ModItems.java | 19 +---- .../com/hbm/items/special/ItemBedrockOre.java | 4 +- .../com/hbm/items/special/ItemByproduct.java | 6 +- .../java/com/hbm/items/tool/ItemBoltgun.java | 4 ++ .../com/hbm/items/tool/ItemToolAbility.java | 17 ++--- src/main/java/com/hbm/lib/HbmWorldGen.java | 22 +++--- src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/java/com/hbm/main/MainRegistry.java | 30 +++++--- .../java/com/hbm/main/ModEventHandler.java | 24 +------ src/main/java/com/hbm/main/ServerProxy.java | 5 +- .../java/com/hbm/packet/AnvilCraftPacket.java | 16 +---- .../weapon/ItemRenderWeaponFFMaresLeg.java | 3 + .../machine/TileEntityMachineTurbineGas.java | 6 +- .../storage/TileEntityMachineFENSU.java | 39 +++++++++- .../java/com/hbm/util/AchievementHandler.java | 67 ++++++++++++++++++ src/main/java/com/hbm/util/ChatBuilder.java | 23 ++++++ .../com/hbm/util/WeightedRandomGeneric.java | 17 +++++ .../com/hbm/world/feature/BedrockOre.java | 63 ++++++++++++++++ .../java/com/hbm/world/feature/OilSpot.java | 2 +- .../com/hbm/world/feature/OreLayer3D.java | 24 +++++-- .../hbm/world/generator/DungeonToolbox.java | 26 ------- src/main/resources/assets/hbm/lang/de_DE.lang | 28 +++++--- src/main/resources/assets/hbm/lang/en_US.lang | 26 ++++--- .../blocks/stone_resource.bauxite.png | Bin 0 -> 811 bytes .../assets/hbm/textures/gui/fluids/redmud.png | Bin 0 -> 624 bytes .../textures/items/achievement_icon.acid.png | Bin 0 -> 29485 bytes .../textures/items/achievement_icon.balls.png | Bin 0 -> 31217 bytes ...l.png => achievement_icon.digammafeel.png} | Bin .../achievement_icon.digammaforourright.png | Bin 0 -> 208 bytes ... => achievement_icon.digammakauaimoho.png} | Bin ...w.png => achievement_icon.digammaknow.png} | Bin ...ee.png => achievement_icon.digammasee.png} | Bin ....png => achievement_icon.digammaunity.png} | Bin ...ng => achievement_icon.digammaupontop.png} | Bin .../items/achievement_icon.gofish.png | Bin 0 -> 174 bytes .../hbm/textures/items/digamma_128kbps.png | Bin 200 -> 0 bytes .../textures/items/digamma_event_horizon.png | Bin 169 -> 0 bytes 48 files changed, 398 insertions(+), 189 deletions(-) create mode 100644 src/main/java/com/hbm/util/AchievementHandler.java create mode 100644 src/main/java/com/hbm/util/WeightedRandomGeneric.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/stone_resource.bauxite.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/redmud.png create mode 100644 src/main/resources/assets/hbm/textures/items/achievement_icon.acid.png create mode 100644 src/main/resources/assets/hbm/textures/items/achievement_icon.balls.png rename src/main/resources/assets/hbm/textures/items/{digamma_feel.png => achievement_icon.digammafeel.png} (100%) create mode 100644 src/main/resources/assets/hbm/textures/items/achievement_icon.digammaforourright.png rename src/main/resources/assets/hbm/textures/items/{digamma_kauai_moho.png => achievement_icon.digammakauaimoho.png} (100%) rename src/main/resources/assets/hbm/textures/items/{digamma_know.png => achievement_icon.digammaknow.png} (100%) rename src/main/resources/assets/hbm/textures/items/{digamma_see.png => achievement_icon.digammasee.png} (100%) rename src/main/resources/assets/hbm/textures/items/{digamma_unity.png => achievement_icon.digammaunity.png} (100%) rename src/main/resources/assets/hbm/textures/items/{digamma_up_on_top.png => achievement_icon.digammaupontop.png} (100%) create mode 100644 src/main/resources/assets/hbm/textures/items/achievement_icon.gofish.png delete mode 100644 src/main/resources/assets/hbm/textures/items/digamma_128kbps.png delete mode 100644 src/main/resources/assets/hbm/textures/items/digamma_event_horizon.png diff --git a/gradle.properties b/gradle.properties index b9eb6b50b..17db097d2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4607 +mod_build_number=4613 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models, porting),\ diff --git a/src/main/java/com/hbm/blocks/BlockEnums.java b/src/main/java/com/hbm/blocks/BlockEnums.java index 5a8e89122..717ac2639 100644 --- a/src/main/java/com/hbm/blocks/BlockEnums.java +++ b/src/main/java/com/hbm/blocks/BlockEnums.java @@ -7,7 +7,8 @@ public class BlockEnums { ASBESTOS, HEMATITE, MALACHITE, - LIMESTONE + LIMESTONE, + BAUXITE } public static enum EnumBiomeType { diff --git a/src/main/java/com/hbm/config/WorldConfig.java b/src/main/java/com/hbm/config/WorldConfig.java index 9f560b536..62d951918 100644 --- a/src/main/java/com/hbm/config/WorldConfig.java +++ b/src/main/java/com/hbm/config/WorldConfig.java @@ -33,14 +33,20 @@ public class WorldConfig { public static int bedrockOilSpawn = 200; public static int meteoriteSpawn = 500; - public static int bedrockIronSpawn = 200; + public static int bedrockIronSpawn = 100; public static int bedrockCopperSpawn = 200; - public static int bedrockBoraxSpawn = 300; - public static int bedrockAsbestosSpawn = 300; - public static int bedrockNiobiumSpawn = 300; - public static int bedrockTitaniumSpawn = 400; - public static int bedrockTungstenSpawn = 300; - public static int bedrockGoldSpawn = 500; + public static int bedrockBoraxSpawn = 50; + public static int bedrockAsbestosSpawn = 50; + public static int bedrockNiobiumSpawn = 50; + public static int bedrockTitaniumSpawn = 100; + public static int bedrockTungstenSpawn = 100; + public static int bedrockGoldSpawn = 50; + public static int bedrockUraniumSpawn = 35; + public static int bedrockThoriumSpawn = 50; + public static int bedrockCoalSpawn = 200; + public static int bedrockNiterSpawn = 50; + public static int bedrockFluoriteSpawn = 50; + public static int bedrockRedstoneSpawn = 50; public static int ironClusterSpawn = 4; public static int titaniumClusterSpawn = 2; @@ -133,14 +139,20 @@ public class WorldConfig { bedrockOilSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.22_bedrockOilSpawnRate", "Spawns a bedrock oil node every nTH chunk", 200); meteoriteSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.23_meteoriteSpawnRate", "Spawns a fallen meteorite every nTH chunk", 200); - bedrockIronSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B00_bedrockIronSpawn", "Spawns a bedrock iron deposit every nTH chunk", 200); - bedrockCopperSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B01_bedrockCopperSpawn", "Spawns a bedrock copper deposit every nTH chunk", 200); - bedrockBoraxSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B02_bedrockBoraxSpawn", "Spawns a bedrock borax deposit every nTH chunk", 300); - bedrockAsbestosSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B03_bedrockAsbestosSpawn", "Spawns a bedrock asbestos deposit every nTH chunk", 300); - bedrockNiobiumSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B04_bedrockNiobiumSpawn", "Spawns a bedrock niobium deposit every nTH chunk", 300); - bedrockTitaniumSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B05_bedrockTitaniumSpawn", "Spawns a bedrock titanium deposit every nTH chunk", 500); - bedrockTungstenSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B06_bedrockTungstenSpawn", "Spawns a bedrock tungsten deposit every nTH chunk", 300); - bedrockGoldSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B07_bedrockGoldSpawn", "Spawns a bedrock gold deposit every nTH chunk", 500); + bedrockIronSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B00_bedrockIronWeight", "Spawn weight for iron bedrock ore", 100); + bedrockCopperSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B01_bedrockCopperWeight", "Spawn weight for copper bedrock ore", 200); + bedrockBoraxSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B02_bedrockBoraxWeight", "Spawn weight for borax bedrock ore", 50); + bedrockAsbestosSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B03_bedrockAsbestosWeight", "Spawn weight for asbestos bedrock ore", 50); + bedrockNiobiumSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B04_bedrockNiobiumWeight", "Spawn weight for niobium bedrock ore", 50); + bedrockTitaniumSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B05_bedrockTitaniumWeight", "Spawn weight for titanium bedrock ore", 100); + bedrockTungstenSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B06_bedrockTungstenWeight", "Spawn weight for tungsten bedrock ore", 100); + bedrockGoldSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B07_bedrockGoldWeight", "Spawn weight for gold bedrock ore", 50); + bedrockUraniumSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B08_bedrockUraniumWeight", "Spawn weight for uranium bedrock ore", 35); + bedrockThoriumSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B09_bedrockThoriumWeight", "Spawn weight for thorium bedrock ore", 50); + bedrockCoalSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B10_bedrockCoalWeight", "Spawn weight for coal bedrock ore", 200); + bedrockNiterSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B11_bedrockNiterWeight", "Spawn weight for niter bedrock ore", 50); + bedrockFluoriteSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B12_bedrockFluoriteWeight", "Spawn weight for fluorite bedrock ore", 50); + bedrockRedstoneSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B13_bedrockRedstoneWeight", "Spawn weight for redstone bedrock ore", 50); ironClusterSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.C00_ironClusterSpawn", "Amount of iron cluster veins per chunk", 4); titaniumClusterSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.C01_titaniumClusterSpawn", "Amount of titanium cluster veins per chunk", 2); diff --git a/src/main/java/com/hbm/crafting/MineralRecipes.java b/src/main/java/com/hbm/crafting/MineralRecipes.java index 0f440dbe3..039775e82 100644 --- a/src/main/java/com/hbm/crafting/MineralRecipes.java +++ b/src/main/java/com/hbm/crafting/MineralRecipes.java @@ -454,6 +454,10 @@ public class MineralRecipes { add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_SULFUR), new ItemStack(ModItems.sulfur)); add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_CALCIUM), new ItemStack(ModItems.powder_calcium)); add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_BISMUTH), new ItemStack(ModItems.powder_bismuth)); + add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_RADIUM), new ItemStack(ModItems.powder_ra226)); + add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_TECHNETIUM), new ItemStack(ModItems.billet_technetium)); + add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_POLONIUM), new ItemStack(ModItems.billet_polonium)); + add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_URANIUM), new ItemStack(ModItems.powder_uranium)); } //Bundled 1/9 recipes diff --git a/src/main/java/com/hbm/handler/guncfg/Gun20GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun20GaugeFactory.java index b99da2c21..80f96b057 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun20GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun20GaugeFactory.java @@ -78,6 +78,8 @@ public class Gun20GaugeFactory { config.reloadSound = GunConfiguration.RSOUND_SHOTGUN; config.firingSound = "hbm:weapon.revolverShootAlt"; config.firingPitch = 0.75F; + config.hasSights = true; + config.zoomFOV = 0.75F; config.name = "win1887"; config.manufacturer = EnumGunManufacturer.WINCHESTER; @@ -95,6 +97,8 @@ public class Gun20GaugeFactory { config.reloadSound = GunConfiguration.RSOUND_SHOTGUN; config.firingSound = "hbm:weapon.revolverShootAlt"; config.firingPitch = 0.75F; + config.hasSights = true; + config.zoomFOV = 0.75F; config.name = "win1887Inox"; config.manufacturer = EnumGunManufacturer.WINCHESTER; diff --git a/src/main/java/com/hbm/inventory/SlotCraftingOutput.java b/src/main/java/com/hbm/inventory/SlotCraftingOutput.java index 7b8a1c86a..5095f2b7e 100644 --- a/src/main/java/com/hbm/inventory/SlotCraftingOutput.java +++ b/src/main/java/com/hbm/inventory/SlotCraftingOutput.java @@ -3,6 +3,7 @@ package com.hbm.inventory; import com.hbm.blocks.ModBlocks; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; +import com.hbm.util.AchievementHandler; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; @@ -27,40 +28,7 @@ public class SlotCraftingOutput extends Slot { //ugly but nothing to be done public static void checkAchievements(EntityPlayer player, ItemStack stack) { - Item item = stack.getItem(); - - if(item == Item.getItemFromBlock(ModBlocks.machine_chemplant)) - player.triggerAchievement(MainRegistry.achChemplant); - if(item == Item.getItemFromBlock(ModBlocks.concrete_smooth) || item == Item.getItemFromBlock(ModBlocks.concrete_asbestos)) - player.triggerAchievement(MainRegistry.achConcrete); - if(item == ModItems.ingot_polymer) - player.triggerAchievement(MainRegistry.achPolymer); - if(item == ModItems.ingot_desh) - player.triggerAchievement(MainRegistry.achDesh); - if(item == ModItems.gem_tantalium) - player.triggerAchievement(MainRegistry.achTantalum); - if(item == Item.getItemFromBlock(ModBlocks.machine_gascent)) - player.triggerAchievement(MainRegistry.achGasCent); - if(item == Item.getItemFromBlock(ModBlocks.machine_centrifuge)) - player.triggerAchievement(MainRegistry.achCentrifuge); - if(item == ModItems.ingot_schrabidium || item == ModItems.nugget_schrabidium) - player.triggerAchievement(MainRegistry.achSchrab); - if(item == Item.getItemFromBlock(ModBlocks.machine_crystallizer)) - player.triggerAchievement(MainRegistry.achAcidizer); - if(item == Item.getItemFromBlock(ModBlocks.machine_silex)) - player.triggerAchievement(MainRegistry.achSILEX); - if(item == ModItems.nugget_technetium) - player.triggerAchievement(MainRegistry.achTechnetium); - if(item == Item.getItemFromBlock(ModBlocks.watz_core)) - player.triggerAchievement(MainRegistry.achWatz); - if(item == ModItems.nugget_bismuth) - player.triggerAchievement(MainRegistry.achBismuth); - if(item == ModItems.nugget_am241 || item == ModItems.nugget_am242) - player.triggerAchievement(MainRegistry.achBreeding); - if(item == ModItems.missile_nuclear || item == ModItems.missile_nuclear_cluster || item == ModItems.missile_doomsday || item == ModItems.mp_warhead_10_nuclear || item == ModItems.mp_warhead_10_nuclear_large || item == ModItems.mp_warhead_15_nuclear || item == ModItems.mp_warhead_15_nuclear_shark || item == ModItems.mp_warhead_15_boxcar) - player.triggerAchievement(MainRegistry.achRedBalloons); - if(item == Item.getItemFromBlock(ModBlocks.struct_iter_core)) - player.triggerAchievement(MainRegistry.achFusion); + AchievementHandler.fire(player, stack); } @Override diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index b39ac64ad..b1b4a9ad4 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -133,6 +133,7 @@ public class Fluids { public static FluidType FISHOIL; public static FluidType SUNFLOWEROIL; public static FluidType NITROGLYCERIN; + public static FluidType REDMUD; private static final HashMap idMapping = new HashMap(); private static final HashMap nameMapping = new HashMap(); @@ -276,7 +277,8 @@ public class Fluids { ESTRADIOL = new FluidType("ESTRADIOL", 0xCDD5D8, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); FISHOIL = new FluidType("FISHOIL", 0x4B4A45, 0, 1, 0, EnumSymbol.NONE).addTraits(LIQUID); SUNFLOWEROIL = new FluidType("SUNFLOWEROIL", 0xCBAD45, 0, 1, 0, EnumSymbol.NONE).addTraits(LIQUID); - NITROGLYCERIN = new FluidType(112, "NITROGLYCERIN", 0x92ACA6, 0, 4, 0, EnumSymbol.NONE).addTraits(LIQUID); + NITROGLYCERIN = new FluidType("NITROGLYCERIN", 0x92ACA6, 0, 4, 0, EnumSymbol.NONE).addTraits(LIQUID); + REDMUD = new FluidType(113, "REDMUD", 0xD85638, 3, 0, 4, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, LEADCON, new FT_Corrosive(60), new FT_Flammable(1_000)); // ^ ^ ^ ^ ^ ^ ^ ^ //ADD NEW FLUIDS HERE @@ -384,6 +386,7 @@ public class Fluids { metaOrder.add(PAIN); metaOrder.add(DEATH); metaOrder.add(WATZ); + metaOrder.add(REDMUD); metaOrder.add(EGG); metaOrder.add(CHOLESTEROL); //solutions and working fluids @@ -415,6 +418,7 @@ public class Fluids { MUSTARDGAS.addTraits(new FT_Toxin().addEntry(new ToxinDirectDamage(ModDamageSource.cloud, 4F, 10, HazardClass.GAS_CORROSIVE, false)) .addEntry(new ToxinEffects(HazardClass.GAS_CORROSIVE, true).add(new PotionEffect(Potion.wither.id, 100, 1), new PotionEffect(Potion.confusion.id, 100, 0)))); ESTRADIOL.addTraits(new FT_Toxin().addEntry(new ToxinEffects(HazardClass.PARTICLE_FINE, false).add(new PotionEffect(HbmPotion.death.id, 60 * 60 * 20, 0)))); + REDMUD.addTraits(new FT_Toxin().addEntry(new ToxinEffects(HazardClass.GAS_CORROSIVE, false).add(new PotionEffect(Potion.wither.id, 30 * 20, 2)))); double eff_steam_boil = 1.0D; double eff_steam_heatex = 0.25D; diff --git a/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java b/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java index 01dfe8dd6..7dad7530d 100644 --- a/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java @@ -56,6 +56,7 @@ public class CokerRecipes extends SerializableRecipe { registerSFAuto(WOODOIL, 340_000L, new ItemStack(Items.coal, 1, 1), GAS_COKER); registerRecipe(WATZ, 4_000, new ItemStack(ModItems.ingot_mud, 4), null); + registerRecipe(REDMUD, 1_000, new ItemStack(Items.iron_ingot, 2), new FluidStack(MERCURY, 50)); registerRecipe(BITUMEN, 16_000, DictFrame.fromOne(ModItems.coke, EnumCokeType.PETROLEUM), new FluidStack(OIL_COKER, 1_600)); registerRecipe(LUBRICANT, 12_000, DictFrame.fromOne(ModItems.coke, EnumCokeType.PETROLEUM), new FluidStack(OIL_COKER, 1_200)); } diff --git a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java index fa3b7ffaa..022068894 100644 --- a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java @@ -9,6 +9,8 @@ import static com.hbm.inventory.OreDictManager.*; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; +import com.hbm.blocks.BlockEnums.EnumStoneType; +import com.hbm.blocks.ModBlocks; import com.hbm.inventory.FluidStack; import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.inventory.RecipesCommon.AStack; @@ -43,6 +45,7 @@ public class CombinationRecipes extends SerializableRecipe { recipes.put(CINNABAR.crystal(), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.MERCURY, 100))); recipes.put(new ComparableStack(Items.glowstone_dust), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.CHLORINE, 50))); + recipes.put(new ComparableStack(DictFrame.fromOne(ModBlocks.stone_resource, EnumStoneType.BAUXITE)), new Pair(new ItemStack(ModItems.ingot_aluminium, 2), new FluidStack(Fluids.REDMUD, 250))); recipes.put(KEY_LOG, new Pair(new ItemStack(Items.coal, 1 ,1), new FluidStack(Fluids.WOODOIL, 250))); recipes.put(KEY_SAPLING, new Pair(null, new FluidStack(Fluids.WOODOIL, 50))); diff --git a/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java b/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java index 38f618aea..2612ba3c3 100644 --- a/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java @@ -67,6 +67,7 @@ public class SolidificationRecipes extends SerializableRecipe { registerRecipe(SALIENT, 1280, new ItemStack(ModItems.bio_wafer, 8)); //4 (food val) * 2 (sat mod) * 2 (constant) * 10 (quanta) * 8 (batch size) registerRecipe(ENDERJUICE, 100, Items.ender_pearl); registerRecipe(WATZ, 1000, ModItems.ingot_mud); + registerRecipe(REDMUD, 1000, Items.iron_ingot); registerRecipe(OIL, SF_OIL, DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE)); registerRecipe(CRACKOIL, SF_CRACK, DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRACK)); diff --git a/src/main/java/com/hbm/items/ItemEnums.java b/src/main/java/com/hbm/items/ItemEnums.java index a15664ddb..c1424f43f 100644 --- a/src/main/java/com/hbm/items/ItemEnums.java +++ b/src/main/java/com/hbm/items/ItemEnums.java @@ -40,4 +40,16 @@ public class ItemEnums { ROPE, MUSTARDWILLOW } + + public static enum EnumAchievementType { + GOFISH, + ACID, + BALLS, + DIGAMMASEE, + DIGAMMAFEEL, + DIGAMMAKNOW, + DIGAMMAKAUAIMOHO, + DIGAMMAUPONTOP, + DIGAMMAFOROURRIGHT + } } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index c87bb3a60..791bcf915 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -2436,18 +2436,13 @@ public class ModItems { public static Item nothing; public static Item void_anim; + public static Item achievement_icon; public static Item bob_metalworks; public static Item bob_assembly; public static Item bob_chemistry; public static Item bob_oil; public static Item bob_nuclear; - public static Item digamma_see; - public static Item digamma_feel; - public static Item digamma_know; - public static Item digamma_kauai_moho; - public static Item digamma_up_on_top; - public static Item mysteryshovel; public static Item memory; @@ -5452,16 +5447,12 @@ public class ModItems { void_anim = new Item().setUnlocalizedName("void_anim").setTextureName(RefStrings.MODID + ":void_anim"); + achievement_icon = new ItemEnumMulti(ItemEnums.EnumAchievementType.class, true, true).setUnlocalizedName("achievement_icon"); bob_metalworks = new Item().setUnlocalizedName("bob_metalworks").setTextureName(RefStrings.MODID + ":bob_metalworks"); bob_assembly = new Item().setUnlocalizedName("bob_assembly").setTextureName(RefStrings.MODID + ":bob_assembly"); bob_chemistry = new Item().setUnlocalizedName("bob_chemistry").setTextureName(RefStrings.MODID + ":bob_chemistry"); bob_oil = new Item().setUnlocalizedName("bob_oil").setTextureName(RefStrings.MODID + ":bob_oil"); bob_nuclear = new Item().setUnlocalizedName("bob_nuclear").setTextureName(RefStrings.MODID + ":bob_nuclear"); - digamma_see = new Item().setUnlocalizedName("digamma_see").setTextureName(RefStrings.MODID + ":digamma_see"); - digamma_feel = new Item().setUnlocalizedName("digamma_feel").setTextureName(RefStrings.MODID + ":digamma_feel"); - digamma_know = new Item().setUnlocalizedName("digamma_know").setTextureName(RefStrings.MODID + ":digamma_know"); - digamma_kauai_moho = new Item().setUnlocalizedName("digamma_kauai_moho").setTextureName(RefStrings.MODID + ":digamma_kauai_moho"); - digamma_up_on_top = new Item().setUnlocalizedName("digamma_up_on_top").setTextureName(RefStrings.MODID + ":digamma_up_on_top"); mysteryshovel = new ItemMS().setUnlocalizedName("mysteryshovel").setFull3D().setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cursed_shovel"); memory = new ItemBattery(Long.MAX_VALUE / 100L, 100000000000000L, 100000000000000L).setUnlocalizedName("memory").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":mo8_anim"); @@ -8055,16 +8046,12 @@ public class ModItems { GameRegistry.registerItem(ln2_10, ln2_10.getUnlocalizedName()); GameRegistry.registerItem(nothing, nothing.getUnlocalizedName()); GameRegistry.registerItem(void_anim, void_anim.getUnlocalizedName()); + GameRegistry.registerItem(achievement_icon, achievement_icon.getUnlocalizedName()); GameRegistry.registerItem(bob_metalworks, bob_metalworks.getUnlocalizedName()); GameRegistry.registerItem(bob_assembly, bob_assembly.getUnlocalizedName()); GameRegistry.registerItem(bob_chemistry, bob_chemistry.getUnlocalizedName()); GameRegistry.registerItem(bob_oil, bob_oil.getUnlocalizedName()); GameRegistry.registerItem(bob_nuclear, bob_nuclear.getUnlocalizedName()); - GameRegistry.registerItem(digamma_see, digamma_see.getUnlocalizedName()); - GameRegistry.registerItem(digamma_feel, digamma_feel.getUnlocalizedName()); - GameRegistry.registerItem(digamma_know, digamma_know.getUnlocalizedName()); - GameRegistry.registerItem(digamma_kauai_moho, digamma_kauai_moho.getUnlocalizedName()); - GameRegistry.registerItem(digamma_up_on_top, digamma_up_on_top.getUnlocalizedName()); GameRegistry.registerItem(mysteryshovel, mysteryshovel.getUnlocalizedName()); GameRegistry.registerItem(memory, memory.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/special/ItemBedrockOre.java b/src/main/java/com/hbm/items/special/ItemBedrockOre.java index 55539aa79..6dc73e9fc 100644 --- a/src/main/java/com/hbm/items/special/ItemBedrockOre.java +++ b/src/main/java/com/hbm/items/special/ItemBedrockOre.java @@ -92,7 +92,9 @@ public class ItemBedrockOre extends ItemEnumMulti { NIOBIUM("Niobium", 0xAF58D8, B_IRON, B_IRON, B_IRON), //iron in columbite, often found along tantalite TITANIUM("Titanium", 0xF2EFE2, B_SILICON, B_CALCIUM, B_ALUMINIUM), //titanite is titanium + calcium + silicon with traces of iron and aluminium TUNGSTEN("Tungsten", 0x2C293C, B_LEAD, B_IRON, B_BISMUTH), //ferberite has iron, raspite has lead, russelite is bismuth tungsten - GOLD("Gold", 0xF9D738, B_LEAD, B_COPPER, B_BISMUTH); //occurs with copper, lead and rare bismuthide + GOLD("Gold", 0xF9D738, B_LEAD, B_COPPER, B_BISMUTH), //occurs with copper, lead and rare bismuthide + URANIUM("Uranium", 0x868D82, B_LEAD, B_RADIUM, B_POLONIUM), //uranium and its decay products + THORIUM("Thorium", 0x7D401D, B_SILICON, B_URANIUM, B_TECHNETIUM); //thorium occours with uraninite and decay products public String oreName; public int color; diff --git a/src/main/java/com/hbm/items/special/ItemByproduct.java b/src/main/java/com/hbm/items/special/ItemByproduct.java index 049c8f20e..6b513884f 100644 --- a/src/main/java/com/hbm/items/special/ItemByproduct.java +++ b/src/main/java/com/hbm/items/special/ItemByproduct.java @@ -31,7 +31,11 @@ public class ItemByproduct extends ItemEnumMulti { B_ALUMINIUM(0xE8F2F9), B_SULFUR(0xEAD377), B_CALCIUM(0xCFCFA6), - B_BISMUTH(0x8D8577); + B_BISMUTH(0x8D8577), + B_RADIUM(0xE9FAF6), + B_TECHNETIUM(0xCADFDF), + B_POLONIUM(0xCADFDF), + B_URANIUM(0x868D82); public int color; diff --git a/src/main/java/com/hbm/items/tool/ItemBoltgun.java b/src/main/java/com/hbm/items/tool/ItemBoltgun.java index a4ef287f3..34440b70a 100644 --- a/src/main/java/com/hbm/items/tool/ItemBoltgun.java +++ b/src/main/java/com/hbm/items/tool/ItemBoltgun.java @@ -63,6 +63,10 @@ public class ItemBoltgun extends Item implements IAnimatedItem { player.inventory.decrStackSize(i, 1); player.inventoryContainer.detectAndSendChanges(); EntityDamageUtil.attackEntityFromIgnoreIFrame(entity, DamageSource.causePlayerDamage(player).setDamageBypassesArmor(), 10F); + + if(!entity.isEntityAlive() && entity instanceof EntityPlayer) { + ((EntityPlayer) entity).triggerAchievement(MainRegistry.achGoFish); + } NBTTagCompound data = new NBTTagCompound(); data.setString("type", "vanillaExt"); diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbility.java b/src/main/java/com/hbm/items/tool/ItemToolAbility.java index 85e0694d0..f0c4496ad 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbility.java @@ -11,6 +11,10 @@ import com.google.common.collect.Multimap; import com.google.common.collect.Sets; import com.hbm.handler.ToolAbility; import com.hbm.handler.ToolAbility.*; +import com.hbm.main.MainRegistry; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.PlayerInformPacket; +import com.hbm.util.ChatBuilder; import com.hbm.handler.WeaponAbility; import api.hbm.item.IDepthRockTool; @@ -22,14 +26,12 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.attributes.AttributeModifier; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.init.Blocks; import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemTool; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.ChatComponentTranslation; -import net.minecraft.util.ChatStyle; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; @@ -239,18 +241,17 @@ public class ItemToolAbility extends ItemTool implements IItemAbility, IDepthRoc while(getCurrentAbility(stack) != null && !getCurrentAbility(stack).isAllowed()) { - player.addChatComponentMessage(new ChatComponentText("[Ability ").appendSibling(new ChatComponentTranslation(getCurrentAbility(stack).getName(), new Object[0])) - .appendSibling(new ChatComponentText(getCurrentAbility(stack).getExtension() + " is blacklisted!]")).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED))); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("[Ability ").nextTranslation(getCurrentAbility(stack).getName()).next(getCurrentAbility(stack).getExtension() + " is blacklisted!]").colorAll(EnumChatFormatting.RED).flush(), MainRegistry.proxy.ID_TOOLABILITY), (EntityPlayerMP) player); + i++; setAbility(stack, i % this.breakAbility.size()); } if(getCurrentAbility(stack) != null) { - player.addChatComponentMessage(new ChatComponentText("[Enabled ").appendSibling(new ChatComponentTranslation(getCurrentAbility(stack).getName(), new Object[0])) - .appendSibling(new ChatComponentText(getCurrentAbility(stack).getExtension() + "]")).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW))); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("[Enabled ").nextTranslation(getCurrentAbility(stack).getName()).next(getCurrentAbility(stack).getExtension() + "]").colorAll(EnumChatFormatting.YELLOW).flush(), MainRegistry.proxy.ID_TOOLABILITY), (EntityPlayerMP) player); } else { - player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GOLD + "[Tool ability deactivated]")); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("[Tool ability deactivated]").color(EnumChatFormatting.GOLD).flush(), MainRegistry.proxy.ID_TOOLABILITY), (EntityPlayerMP) player); } world.playSoundAtEntity(player, "random.orb", 0.25F, getCurrentAbility(stack) == null ? 0.75F : 1.25F); diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index 58f772881..dac6fed84 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -8,14 +8,12 @@ import com.hbm.blocks.generic.BlockMotherOfAllOres; import com.hbm.blocks.generic.BlockNTMFlower.EnumFlowerType; import com.hbm.config.GeneralConfig; import com.hbm.config.WorldConfig; -import com.hbm.inventory.FluidStack; -import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; -import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre; import com.hbm.main.MainRegistry; import com.hbm.saveddata.TomSaveData; import com.hbm.tileentity.machine.storage.TileEntitySafe; import com.hbm.tileentity.machine.storage.TileEntitySoyuzCapsule; +import com.hbm.util.WeightedRandomGeneric; import com.hbm.world.dungeon.AncientTomb; import com.hbm.world.dungeon.Antenna; import com.hbm.world.dungeon.ArcticVault; @@ -32,6 +30,7 @@ import com.hbm.world.dungeon.Silo; import com.hbm.world.dungeon.Spaceship; import com.hbm.world.dungeon.Vertibird; import com.hbm.world.feature.BedrockOre; +import com.hbm.world.feature.BedrockOre.BedrockOreDefinition; import com.hbm.world.feature.DepthDeposit; import com.hbm.world.feature.Dud; import com.hbm.world.feature.Geyser; @@ -49,6 +48,7 @@ import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntityChest; import net.minecraft.tileentity.TileEntitySkull; +import net.minecraft.util.WeightedRandom; import net.minecraft.util.WeightedRandomChestContent; import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; @@ -154,18 +154,16 @@ public class HbmWorldGen implements IWorldGenerator { DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.aluminiumClusterSpawn, 6, 15, 35, ModBlocks.cluster_aluminium); DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.copperClusterSpawn, 6, 15, 20, ModBlocks.cluster_copper); - //DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.hematiteSpawn, 10, 4, 80, ModBlocks.stone_resource, EnumStoneType.HEMATITE.ordinal()); DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.malachiteSpawn, 10, 6, 40, ModBlocks.stone_resource, EnumStoneType.MALACHITE.ordinal()); DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.limestoneSpawn, 12, 25, 30, ModBlocks.stone_resource, EnumStoneType.LIMESTONE.ordinal()); - DungeonToolbox.generateBedrockOreWithChance(world, rand, i, j, EnumBedrockOre.IRON, 1, WorldConfig.bedrockIronSpawn); - DungeonToolbox.generateBedrockOreWithChance(world, rand, i, j, EnumBedrockOre.COPPER, 1, WorldConfig.bedrockCopperSpawn); - DungeonToolbox.generateBedrockOreWithChance(world, rand, i, j, EnumBedrockOre.BORAX, new FluidStack(Fluids.SULFURIC_ACID, 500), 3, WorldConfig.bedrockBoraxSpawn); - DungeonToolbox.generateBedrockOreWithChance(world, rand, i, j, EnumBedrockOre.ASBESTOS, 2, WorldConfig.bedrockAsbestosSpawn); - DungeonToolbox.generateBedrockOreWithChance(world, rand, i, j, EnumBedrockOre.NIOBIUM, new FluidStack(Fluids.ACID, 1_000), 2, WorldConfig.bedrockNiobiumSpawn); - DungeonToolbox.generateBedrockOreWithChance(world, rand, i, j, EnumBedrockOre.TITANIUM, new FluidStack(Fluids.SULFURIC_ACID, 500), 2, WorldConfig.bedrockTitaniumSpawn); - DungeonToolbox.generateBedrockOreWithChance(world, rand, i, j, EnumBedrockOre.TUNGSTEN, new FluidStack(Fluids.ACID, 1_000), 2, WorldConfig.bedrockTungstenSpawn); - DungeonToolbox.generateBedrockOreWithChance(world, rand, i, j, EnumBedrockOre.GOLD, 1, WorldConfig.bedrockGoldSpawn); + if(rand.nextInt(3) == 0) { + WeightedRandomGeneric item = (WeightedRandomGeneric) WeightedRandom.getRandomItem(rand, BedrockOre.weightedOres); + BedrockOreDefinition def = item.get(); + int randPosX = i + rand.nextInt(2) + 8; + int randPosZ = j + rand.nextInt(2) + 8; + BedrockOre.generate(world, randPosX, randPosZ, def.stack, def.acid, def.color, def.tier); + } for(int k = 0; k < WorldConfig.randomSpawn; k++) { BlockMotherOfAllOres.shuffleOverride(rand); diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index f3cc40fb2..5416fa4d3 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4607)"; + public static final String VERSION = "1.0.27 BETA (4613)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index e58761275..99df0747c 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -61,6 +61,7 @@ import com.hbm.handler.imc.*; import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.hazard.HazardRegistry; import com.hbm.inventory.*; +import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.recipes.*; import com.hbm.inventory.recipes.anvil.AnvilRecipes; @@ -69,6 +70,7 @@ import com.hbm.items.ModItems; import com.hbm.items.tool.ItemFertilizer; import com.hbm.items.weapon.ItemGenericGrenade; import com.hbm.items.ItemAmmoEnums.Ammo4Gauge; +import com.hbm.items.ItemEnums.EnumAchievementType; import com.hbm.lib.HbmWorld; import com.hbm.lib.Library; import com.hbm.lib.RefStrings; @@ -79,6 +81,7 @@ import com.hbm.tileentity.TileMappings; import com.hbm.tileentity.bomb.TileEntityNukeCustom; import com.hbm.tileentity.machine.*; import com.hbm.tileentity.machine.rbmk.RBMKDials; +import com.hbm.util.AchievementHandler; import com.hbm.util.ArmorUtil; import com.hbm.util.Compat; import com.hbm.util.StatHelper; @@ -187,6 +190,7 @@ public class MainRegistry { public static Achievement achSlimeball; public static Achievement achSulfuric; public static Achievement achWitchtaunter; + public static Achievement achGoFish; public static Achievement achNo9; public static Achievement achInferno; public static Achievement bobHidden; @@ -657,6 +661,7 @@ public class MainRegistry { achSacrifice = new Achievement("achievement.sacrifice", "sacrifice", -3, 1, ModItems.burnt_bark, null).initIndependentStat().setSpecial().registerStat(); achImpossible = new Achievement("achievement.impossible", "impossible", 18, 10, ModItems.nothing, null).initIndependentStat().setSpecial().registerStat(); achTOB = new Achievement("achievement.tasteofblood", "tasteofblood", 3, 10, new ItemStack(ModItems.fluid_icon, 1, Fluids.ASCHRAB.getID()), null).initIndependentStat().setSpecial().registerStat(); + achGoFish = new Achievement("achievement.goFish", "goFish", 5, 10, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.GOFISH), null).initIndependentStat().setSpecial().registerStat(); achFreytag = new Achievement("achievement.freytag", "freytag", 0, -4, ModItems.gun_mp40, null).initIndependentStat().setSpecial().registerStat(); achPotato = new Achievement("achievement.potato", "potato", -2, -2, ModItems.battery_potatos, null).initIndependentStat().setSpecial().registerStat(); achC44 = new Achievement("achievement.c44", "c44", 2, -4, ModItems.gun_revolver_pip, null).initIndependentStat().setSpecial().registerStat(); @@ -668,8 +673,8 @@ public class MainRegistry { achWitchtaunter = new Achievement("achievement.witchtaunter", "witchtaunter", -8, 7, ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.VAMPIRE), null).initIndependentStat().setSpecial().registerStat(); achNo9 = new Achievement("achievement.no9", "no9", -8, 12, ModItems.no9, null).initIndependentStat().registerStat(); - achSlimeball = new Achievement("achievement.slimeball", "slimeball", -10, 6, Items.slime_ball, null).initIndependentStat().registerStat(); - achSulfuric = new Achievement("achievement.sulfuric", "sulfuric", -10, 8, ModItems.bucket_sulfuric_acid, achSlimeball).initIndependentStat().setSpecial().registerStat(); + achSlimeball = new Achievement("achievement.slimeball", "slimeball", -10, 6, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.ACID), null).initIndependentStat().registerStat(); + achSulfuric = new Achievement("achievement.sulfuric", "sulfuric", -10, 8, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.BALLS), achSlimeball).initIndependentStat().setSpecial().registerStat(); achInferno = new Achievement("achievement.inferno", "inferno", -8, 10, ModItems.canister_napalm, null).initIndependentStat().setSpecial().registerStat(); bobHidden = new Achievement("achievement.hidden", "hidden", 15, -4, ModItems.gun_dampfmaschine, null).initIndependentStat().registerStat(); @@ -689,11 +694,11 @@ public class MainRegistry { achSomeWounds = new Achievement("achievement.someWounds", "someWounds", -2, 10, ModItems.injector_knife, null).initIndependentStat().registerStat(); - digammaSee = new Achievement("achievement.digammaSee", "digammaSee", -1, 8, ModItems.digamma_see, null).initIndependentStat().registerStat(); - digammaFeel = new Achievement("achievement.digammaFeel", "digammaFeel", 1, 8, ModItems.digamma_feel, digammaSee).initIndependentStat().registerStat(); - digammaKnow = new Achievement("achievement.digammaKnow", "digammaKnow", 3, 8, ModItems.digamma_know, digammaFeel).initIndependentStat().registerStat().setSpecial(); - digammaKauaiMoho = new Achievement("achievement.digammaKauaiMoho", "digammaKauaiMoho", 5, 8, ModItems.digamma_kauai_moho, digammaKnow).initIndependentStat().registerStat().setSpecial(); - digammaUpOnTop = new Achievement("achievement.digammaUpOnTop", "digammaUpOnTop", 7, 8, ModItems.digamma_up_on_top, digammaKauaiMoho).initIndependentStat().registerStat().setSpecial(); + digammaSee = new Achievement("achievement.digammaSee", "digammaSee", -1, 8, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.DIGAMMASEE), null).initIndependentStat().registerStat(); + digammaFeel = new Achievement("achievement.digammaFeel", "digammaFeel", 1, 8, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.DIGAMMAFEEL), digammaSee).initIndependentStat().registerStat(); + digammaKnow = new Achievement("achievement.digammaKnow", "digammaKnow", 3, 8, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.DIGAMMAKNOW), digammaFeel).initIndependentStat().registerStat().setSpecial(); + digammaKauaiMoho = new Achievement("achievement.digammaKauaiMoho", "digammaKauaiMoho", 5, 8, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.DIGAMMAKAUAIMOHO), digammaKnow).initIndependentStat().registerStat().setSpecial(); + digammaUpOnTop = new Achievement("achievement.digammaUpOnTop", "digammaUpOnTop", 7, 8, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.DIGAMMAUPONTOP), digammaKauaiMoho).initIndependentStat().registerStat().setSpecial(); //progression achieves achBurnerPress = new Achievement("achievement.burnerPress", "burnerPress", 0, 0, new ItemStack(ModBlocks.machine_press), null).initIndependentStat().registerStat(); @@ -732,6 +737,7 @@ public class MainRegistry { achSacrifice, achImpossible, achTOB, + achGoFish, achFreytag, achPotato, achC44, @@ -847,6 +853,7 @@ public class MainRegistry { FluidContainerRegistry.register(); TileEntityMachineReactorLarge.registerAll(); BlockToolConversion.registerRecipes(); + AchievementHandler.register(); proxy.registerMissileItems(); @@ -860,9 +867,11 @@ public class MainRegistry { new OreCave(ModBlocks.stone_resource, 0).setThreshold(1.5D).setRangeMult(20).setYLevel(30).setMaxRange(20).withFluid(ModBlocks.sulfuric_acid_block); //sulfur new OreCave(ModBlocks.stone_resource, 1).setThreshold(1.75D).setRangeMult(20).setYLevel(25).setMaxRange(20); //asbestos - new OreLayer3D(ModBlocks.stone_resource, EnumStoneType.HEMATITE.ordinal()); + new OreLayer3D(ModBlocks.stone_resource, EnumStoneType.HEMATITE.ordinal()).setScaleH(0.04D).setScaleV(0.25D).setThreshold(230); + new OreLayer3D(ModBlocks.stone_resource, EnumStoneType.BAUXITE.ordinal()).setScaleH(0.03D).setScaleV(0.15D).setThreshold(300); //new BiomeCave().setThreshold(1.5D).setRangeMult(20).setYLevel(40).setMaxRange(20); //new OreLayer(Blocks.coal_ore, 0.2F).setThreshold(4).setRangeMult(3).setYLevel(70); + BedrockOre.init(); Compat.handleRailcraftNonsense(); SuicideThreadDump.register(); @@ -1104,6 +1113,11 @@ public class MainRegistry { ignoreMappings.add("hbm:item.gun_revolver_lead_ammo"); ignoreMappings.add("hbm:item.gun_revolver_schrabidium_ammo"); ignoreMappings.add("hbm:item.tank_waste"); + ignoreMappings.add("hbm:item.digamma_see"); + ignoreMappings.add("hbm:item.digamma_feel"); + ignoreMappings.add("hbm:item.digamma_know"); + ignoreMappings.add("hbm:item.digamma_kauai_moho"); + ignoreMappings.add("hbm:item.digamma_up_on_top"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 949a92461..00d3a9f64 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -63,6 +63,7 @@ import com.hbm.packet.PlayerInformPacket; import com.hbm.potion.HbmPotion; import com.hbm.saveddata.AuxSavedData; import com.hbm.tileentity.network.RTTYSystem; +import com.hbm.util.AchievementHandler; import com.hbm.util.ArmorUtil; import com.hbm.util.ContaminationUtil; import com.hbm.util.EnchantmentUtil; @@ -1111,31 +1112,12 @@ public class ModEventHandler { @SubscribeEvent public void itemCrafted(PlayerEvent.ItemCraftedEvent e) { - - Item item = e.crafting.getItem(); - - if(item == ModItems.gun_mp40) { - e.player.addStat(MainRegistry.achFreytag, 1); - } - if(item == ModItems.piston_selenium || item == ModItems.gun_b92) { - e.player.addStat(MainRegistry.achSelenium, 1); - } - if(item == ModItems.battery_potatos) { - e.player.addStat(MainRegistry.achPotato, 1); - } - if(item == ModItems.gun_revolver_pip) { - e.player.addStat(MainRegistry.achC44, 1); - } - if(item == Item.getItemFromBlock(ModBlocks.machine_press)) { - e.player.triggerAchievement(MainRegistry.achBurnerPress); - } - if(item == ModItems.rbmk_fuel_empty) { - e.player.triggerAchievement(MainRegistry.achRBMK); - } + AchievementHandler.fire(e.player, e.crafting); } @SubscribeEvent public void itemSmelted(PlayerEvent.ItemSmeltedEvent e) { + AchievementHandler.fire(e.player, e.smelting); if(!e.player.worldObj.isRemote && e.smelting.getItem() == Items.iron_ingot && e.player.getRNG().nextInt(64) == 0) { diff --git a/src/main/java/com/hbm/main/ServerProxy.java b/src/main/java/com/hbm/main/ServerProxy.java index d296c9ab3..ac286d931 100644 --- a/src/main/java/com/hbm/main/ServerProxy.java +++ b/src/main/java/com/hbm/main/ServerProxy.java @@ -24,8 +24,9 @@ public class ServerProxy { public static final int ID_HUD = 5; public static final int ID_DETONATOR = 6; public static final int ID_FLUID_ID = 7; - public static final int ID_GUN_MODE = 8; - public static final int ID_GAS_HAZARD = 9; + public static final int ID_TOOLABILITY = 8; + public static final int ID_GUN_MODE = 9; + public static final int ID_GAS_HAZARD = 10; public void registerRenderInfo() { } public void registerTileEntitySpecialRenderer() { } diff --git a/src/main/java/com/hbm/packet/AnvilCraftPacket.java b/src/main/java/com/hbm/packet/AnvilCraftPacket.java index bc1719702..d8b1049a4 100644 --- a/src/main/java/com/hbm/packet/AnvilCraftPacket.java +++ b/src/main/java/com/hbm/packet/AnvilCraftPacket.java @@ -1,12 +1,9 @@ package com.hbm.packet; -import com.hbm.blocks.ModBlocks; import com.hbm.inventory.container.ContainerAnvil; import com.hbm.inventory.recipes.anvil.AnvilRecipes; import com.hbm.inventory.recipes.anvil.AnvilRecipes.AnvilConstructionRecipe; -import com.hbm.items.ItemAmmoEnums; -import com.hbm.items.ModItems; -import com.hbm.main.MainRegistry; +import com.hbm.util.AchievementHandler; import com.hbm.util.InventoryUtil; import cpw.mods.fml.common.network.simpleimpl.IMessage; @@ -14,7 +11,6 @@ import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; public class AnvilCraftPacket implements IMessage { @@ -65,15 +61,7 @@ public class AnvilCraftPacket implements IMessage { if(InventoryUtil.doesPlayerHaveAStacks(p, recipe.input, true)) { InventoryUtil.giveChanceStacksToPlayer(p, recipe.output); - - if(recipe.output.get(0).stack.getItem() == Item.getItemFromBlock(ModBlocks.machine_difurnace_off)) - p.triggerAchievement(MainRegistry.achBlastFurnace); - if(recipe.output.get(0).stack.getItem() == Item.getItemFromBlock(ModBlocks.machine_assembler)) - p.triggerAchievement(MainRegistry.achAssembly); - if(recipe.output.get(0).stack.getItem() == ModItems.billet_pu_mix) - p.triggerAchievement(MainRegistry.achChicagoPile); - if(recipe.output.get(0).stack.getItem() == ModItems.ammo_4gauge && recipe.output.get(0).stack.getItemDamage() == ItemAmmoEnums.Ammo4Gauge.VAMPIRE.ordinal()) - p.triggerAchievement(MainRegistry.achWitchtaunter); + AchievementHandler.fire(p, recipe.output.get(0).stack); } else { break; diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFMaresLeg.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFMaresLeg.java index b95260b35..f63f1d68e 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFMaresLeg.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFMaresLeg.java @@ -67,6 +67,9 @@ public class ItemRenderWeaponFFMaresLeg implements IItemRenderer { GL11.glTranslated(-0.71, 0.375, 0); GL11.glRotated(25, 1, 0, 0); GL11.glRotated(1, 0, 1, 0); + GL11.glRotated(-3, 0, 0, 1); + GL11.glRotated(0.2, 0, 1, 0); + GL11.glTranslated(-0.006, -0.005, 0.4); } double[] recoil = HbmAnimations.getRelevantTransformation("LEVER_RECOIL"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java index 419664383..f00709901 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java @@ -60,6 +60,7 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement fuelMaxCons.put(Fluids.GAS, 50D); // natgas doesn't burn well so it burns faster to compensate fuelMaxCons.put(Fluids.SYNGAS, 10D); // syngas just fucks fuelMaxCons.put(Fluids.OXYHYDROGEN, 100D); // oxyhydrogen is terrible so it needs to burn a ton for the bare minimum + fuelMaxCons.put(Fluids.REFORMGAS, 2.5D); // halved because it's too powerful // default to 5 if not in list } @@ -121,7 +122,7 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement ForgeDirection rot = dir.getRotation(ForgeDirection.UP); NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", this.power); //set first to get an unmodified view of how much power was generated before deductions from the net + data.setLong("power", Math.min(this.power, this.maxPower)); //set first to get an unmodified view of how much power was generated before deductions from the net //do net/battery deductions first... power = Library.chargeItemsFromTE(slots, 0, power, maxPower); @@ -141,9 +142,6 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement //steam this.sendFluid(tanks[3], worldObj, xCoord + dir.offsetZ * 6, yCoord + 1, zCoord - dir.offsetX * 6, rot.getOpposite()); - //if(audio != null) // audio shouldn't even exist serverside - // audio.updatePitch((float) (0.45 + 0.05 * rpm / 10)); - data.setInteger("rpm", this.rpm); data.setInteger("temp", this.temp); data.setInteger("state", this.state); diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java index 46770f2a6..b936d41b8 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java @@ -1,9 +1,12 @@ package com.hbm.tileentity.machine.storage; +import com.hbm.lib.Library; + import api.hbm.energy.IEnergyConductor; import api.hbm.energy.IEnergyConnector; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; @@ -17,7 +20,41 @@ public class TileEntityMachineFENSU extends TileEntityMachineBattery { @Override public void updateEntity() { - super.updateEntity(); + + if(!worldObj.isRemote) { + + long prevPower = this.power; + + power = Library.chargeItemsFromTE(slots, 1, power, getMaxPower()); + + ////////////////////////////////////////////////////////////////////// + this.transmitPowerFairly(); + ////////////////////////////////////////////////////////////////////// + + byte comp = this.getComparatorPower(); + if(comp != this.lastRedstone) + this.markDirty(); + this.lastRedstone = comp; + + power = Library.chargeTEFromItems(slots, 0, power, getMaxPower()); + + long avg = (power / 2 + prevPower / 2); + this.delta = avg - this.log[0]; + + for(int i = 1; i < this.log.length; i++) { + this.log[i - 1] = this.log[i]; + } + + this.log[19] = avg; + + NBTTagCompound nbt = new NBTTagCompound(); + nbt.setLong("power", avg); + nbt.setLong("delta", delta); + nbt.setShort("redLow", redLow); + nbt.setShort("redHigh", redHigh); + nbt.setByte("priority", (byte) this.priority.ordinal()); + this.networkPack(nbt, 20); + } if(worldObj.isRemote) { this.prevRotation = this.rotation; diff --git a/src/main/java/com/hbm/util/AchievementHandler.java b/src/main/java/com/hbm/util/AchievementHandler.java new file mode 100644 index 000000000..3d395a43e --- /dev/null +++ b/src/main/java/com/hbm/util/AchievementHandler.java @@ -0,0 +1,67 @@ +package com.hbm.util; + +import java.util.HashMap; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.items.ItemAmmoEnums; +import com.hbm.items.ModItems; +import com.hbm.main.MainRegistry; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.Achievement; + +public class AchievementHandler { + + public static HashMap craftingAchievements = new HashMap(); + + public static void register() { + craftingAchievements.put(new ComparableStack(ModItems.gun_mp40), MainRegistry.achFreytag); + craftingAchievements.put(new ComparableStack(ModItems.piston_selenium), MainRegistry.achSelenium); + craftingAchievements.put(new ComparableStack(ModItems.gun_b92), MainRegistry.achSelenium); + craftingAchievements.put(new ComparableStack(ModItems.battery_potatos), MainRegistry.achPotato); + craftingAchievements.put(new ComparableStack(ModItems.gun_revolver_pip), MainRegistry.achC44); + craftingAchievements.put(new ComparableStack(ModBlocks.machine_press), MainRegistry.achBurnerPress); + craftingAchievements.put(new ComparableStack(ModItems.rbmk_fuel_empty), MainRegistry.achRBMK); + craftingAchievements.put(new ComparableStack(ModBlocks.machine_chemplant), MainRegistry.achChemplant); + craftingAchievements.put(new ComparableStack(ModBlocks.concrete_smooth), MainRegistry.achConcrete); + craftingAchievements.put(new ComparableStack(ModBlocks.concrete_asbestos), MainRegistry.achConcrete); + craftingAchievements.put(new ComparableStack(ModItems.ingot_polymer), MainRegistry.achPolymer); + craftingAchievements.put(new ComparableStack(ModItems.ingot_desh), MainRegistry.achDesh); + craftingAchievements.put(new ComparableStack(ModItems.gem_tantalium), MainRegistry.achTantalum); + craftingAchievements.put(new ComparableStack(ModBlocks.machine_gascent), MainRegistry.achGasCent); + craftingAchievements.put(new ComparableStack(ModBlocks.machine_centrifuge), MainRegistry.achCentrifuge); + craftingAchievements.put(new ComparableStack(ModItems.ingot_schrabidium), MainRegistry.achSchrab); + craftingAchievements.put(new ComparableStack(ModItems.nugget_schrabidium), MainRegistry.achSchrab); + craftingAchievements.put(new ComparableStack(ModBlocks.machine_crystallizer), MainRegistry.achAcidizer); + craftingAchievements.put(new ComparableStack(ModBlocks.machine_silex), MainRegistry.achSILEX); + craftingAchievements.put(new ComparableStack(ModItems.nugget_technetium), MainRegistry.achTechnetium); + craftingAchievements.put(new ComparableStack(ModBlocks.struct_watz_core), MainRegistry.achWatz); + craftingAchievements.put(new ComparableStack(ModItems.nugget_bismuth), MainRegistry.achBismuth); + craftingAchievements.put(new ComparableStack(ModItems.nugget_am241), MainRegistry.achBreeding); + craftingAchievements.put(new ComparableStack(ModItems.nugget_am242), MainRegistry.achBreeding); + craftingAchievements.put(new ComparableStack(ModItems.missile_nuclear), MainRegistry.achRedBalloons); + craftingAchievements.put(new ComparableStack(ModItems.missile_nuclear_cluster), MainRegistry.achRedBalloons); + craftingAchievements.put(new ComparableStack(ModItems.missile_doomsday), MainRegistry.achRedBalloons); + craftingAchievements.put(new ComparableStack(ModItems.mp_warhead_10_nuclear), MainRegistry.achRedBalloons); + craftingAchievements.put(new ComparableStack(ModItems.mp_warhead_10_nuclear_large), MainRegistry.achRedBalloons); + craftingAchievements.put(new ComparableStack(ModItems.mp_warhead_15_nuclear), MainRegistry.achRedBalloons); + craftingAchievements.put(new ComparableStack(ModItems.mp_warhead_15_nuclear_shark), MainRegistry.achRedBalloons); + craftingAchievements.put(new ComparableStack(ModItems.mp_warhead_15_boxcar), MainRegistry.achRedBalloons); + craftingAchievements.put(new ComparableStack(ModBlocks.struct_iter_core), MainRegistry.achFusion); + craftingAchievements.put(new ComparableStack(ModBlocks.machine_difurnace_off), MainRegistry.achBlastFurnace); + craftingAchievements.put(new ComparableStack(ModBlocks.machine_assembler), MainRegistry.achAssembly); + craftingAchievements.put(new ComparableStack(ModItems.billet_pu_mix), MainRegistry.achChicagoPile); + craftingAchievements.put(new ComparableStack(ModItems.ammo_4gauge, 1, ItemAmmoEnums.Ammo4Gauge.VAMPIRE.ordinal()), MainRegistry.achWitchtaunter); + } + + public static void fire(EntityPlayer player, ItemStack stack) { + if(player.worldObj.isRemote) return; + ComparableStack comp = new ComparableStack(stack).makeSingular(); + Achievement achievement = craftingAchievements.get(comp); + if(achievement != null) { + player.triggerAchievement(achievement); + } + } +} diff --git a/src/main/java/com/hbm/util/ChatBuilder.java b/src/main/java/com/hbm/util/ChatBuilder.java index 0140af364..9fc0c6169 100644 --- a/src/main/java/com/hbm/util/ChatBuilder.java +++ b/src/main/java/com/hbm/util/ChatBuilder.java @@ -1,10 +1,15 @@ package com.hbm.util; +import java.util.ArrayList; +import java.util.List; +import java.util.ListIterator; + import net.minecraft.util.ChatComponentStyle; import net.minecraft.util.ChatComponentText; import net.minecraft.util.ChatComponentTranslation; import net.minecraft.util.ChatStyle; import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IChatComponent; public class ChatBuilder { @@ -46,6 +51,24 @@ public class ChatBuilder { return this; } + /** Will recursively go over all IChatComponents added to the root and then set the style */ + public ChatBuilder colorAll(EnumChatFormatting format) { + + List list = new ArrayList(); + list.add(text); + + ListIterator it = list.listIterator(); + + while(it.hasNext()) { + Object o = it.next(); + IChatComponent component = (IChatComponent) o; + component.getChatStyle().setColor(format); + for(Object s : component.getSiblings()) it.add(s); + } + + return this; + } + public ChatComponentText flush() { return this.text; } diff --git a/src/main/java/com/hbm/util/WeightedRandomGeneric.java b/src/main/java/com/hbm/util/WeightedRandomGeneric.java new file mode 100644 index 000000000..e72a7e6e8 --- /dev/null +++ b/src/main/java/com/hbm/util/WeightedRandomGeneric.java @@ -0,0 +1,17 @@ +package com.hbm.util; + +import net.minecraft.util.WeightedRandom; + +public class WeightedRandomGeneric extends WeightedRandom.Item { + + T item; + + public WeightedRandomGeneric(T o, int weight) { + super(weight); + item = o; + } + + public T get() { + return item; + } +} diff --git a/src/main/java/com/hbm/world/feature/BedrockOre.java b/src/main/java/com/hbm/world/feature/BedrockOre.java index 71cd87a12..6d054e206 100644 --- a/src/main/java/com/hbm/world/feature/BedrockOre.java +++ b/src/main/java/com/hbm/world/feature/BedrockOre.java @@ -1,15 +1,49 @@ package com.hbm.world.feature; +import java.util.ArrayList; +import java.util.List; + import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockBedrockOreTE.TileEntityBedrockOre; +import com.hbm.config.WorldConfig; import com.hbm.inventory.FluidStack; +import com.hbm.inventory.OreDictManager.DictFrame; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.items.ModItems; +import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre; +import com.hbm.util.WeightedRandomGeneric; import net.minecraft.block.Block; import net.minecraft.init.Blocks; +import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.world.World; public class BedrockOre { + + public static List> weightedOres = new ArrayList(); + + public static void init() { + registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.IRON, 1), WorldConfig.bedrockIronSpawn); + registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.COPPER, 1), WorldConfig.bedrockCopperSpawn); + registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.BORAX, 3, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockBoraxSpawn); + registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.ASBESTOS, 2), WorldConfig.bedrockAsbestosSpawn); + registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.NIOBIUM, 2, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockNiobiumSpawn); + registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.TITANIUM, 2, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockTitaniumSpawn); + registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.TUNGSTEN, 2, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockTungstenSpawn); + registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.GOLD, 1), WorldConfig.bedrockGoldSpawn); + registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.URANIUM, 4, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockUraniumSpawn); + registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.THORIUM, 4, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockThoriumSpawn); + registerBedrockOre(new BedrockOreDefinition(new ItemStack(Items.coal, 4), 1, 0x202020), WorldConfig.bedrockCoalSpawn); + registerBedrockOre(new BedrockOreDefinition(new ItemStack(ModItems.niter, 4), 2, 0x808080, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockNiterSpawn); + registerBedrockOre(new BedrockOreDefinition(new ItemStack(ModItems.fluorite, 4), 1, 0xd0d0d0), WorldConfig.bedrockFluoriteSpawn); + registerBedrockOre(new BedrockOreDefinition(new ItemStack(Items.redstone, 4), 1, 0xd01010), WorldConfig.bedrockRedstoneSpawn); + } + + public static void registerBedrockOre(BedrockOreDefinition def, int weight) { + WeightedRandomGeneric weighted = new WeightedRandomGeneric(def, weight); + weightedOres.add(weighted); + } public static void generate(World world, int x, int z, ItemStack stack, FluidStack acid, int color, int tier) { @@ -49,4 +83,33 @@ public class BedrockOre { } } } + + public static class BedrockOreDefinition { + public ItemStack stack; + public FluidStack acid; + public int tier; + public int color; + + public BedrockOreDefinition(ItemStack stack, int tier, int color) { + this(stack, tier, color, null); + } + + public BedrockOreDefinition(ItemStack stack, int tier, int color, FluidStack acid) { + this.stack = stack; + this.tier = tier; + this.color = color; + this.acid = acid; + } + + public BedrockOreDefinition(EnumBedrockOre type, int tier) { + this(type, tier, null); + } + + public BedrockOreDefinition(EnumBedrockOre type, int tier, FluidStack acid) { + this.stack = DictFrame.fromOne(ModItems.ore_bedrock, type); + this.color = type.color; + this.tier = tier; + this.acid = acid; + } + } } diff --git a/src/main/java/com/hbm/world/feature/OilSpot.java b/src/main/java/com/hbm/world/feature/OilSpot.java index bcd746638..7b02e5263 100644 --- a/src/main/java/com/hbm/world/feature/OilSpot.java +++ b/src/main/java/com/hbm/world/feature/OilSpot.java @@ -80,7 +80,7 @@ public class OilSpot { world.setBlock(rX, y, rZ, ModBlocks.stone_cracked); break; - } else if(ground.getMaterial() == Material.leaves) { + } else if(ground.getMaterial() == Material.leaves && (meta & 8) != 0 && (meta & 4) == 0) { world.setBlockToAir(rX, y, rZ); break; } diff --git a/src/main/java/com/hbm/world/feature/OreLayer3D.java b/src/main/java/com/hbm/world/feature/OreLayer3D.java index 67fecb388..aee3cf43d 100644 --- a/src/main/java/com/hbm/world/feature/OreLayer3D.java +++ b/src/main/java/com/hbm/world/feature/OreLayer3D.java @@ -16,6 +16,10 @@ public class OreLayer3D { NoiseGeneratorPerlin noiseY; NoiseGeneratorPerlin noiseZ; + double scaleH; + double scaleV; + double threshold; + Block block; int meta; int dim = 0; @@ -30,6 +34,21 @@ public class OreLayer3D { this.dim = dim; return this; } + + public OreLayer3D setScaleH(double scale) { + this.scaleH = scale; + return this; + } + + public OreLayer3D setScaleV(double scale) { + this.scaleV = scale; + return this; + } + + public OreLayer3D setThreshold(double threshold) { + this.threshold = threshold; + return this; + } @SubscribeEvent public void onDecorate(DecorateBiomeEvent.Pre event) { @@ -44,9 +63,6 @@ public class OreLayer3D { int cX = event.chunkX; int cZ = event.chunkZ; - - double scaleH = 0.04D; - double scaleV = 0.25D; for(int x = cX + 8; x < cX + 24; x++) { for(int z = cZ + 8; z < cZ + 24; z++) { @@ -55,7 +71,7 @@ public class OreLayer3D { double nY = this.noiseY.func_151601_a(x * scaleH, z * scaleH); double nZ = this.noiseZ.func_151601_a(x * scaleH, y * scaleV); - if(nX * nY * nZ > 220) { + if(nX * nY * nZ > threshold) { Block target = world.getBlock(x, y, z); if(target.isNormalCube() && target.getMaterial() == Material.rock) { diff --git a/src/main/java/com/hbm/world/generator/DungeonToolbox.java b/src/main/java/com/hbm/world/generator/DungeonToolbox.java index f8a739378..7e0a899f9 100644 --- a/src/main/java/com/hbm/world/generator/DungeonToolbox.java +++ b/src/main/java/com/hbm/world/generator/DungeonToolbox.java @@ -3,15 +3,10 @@ package com.hbm.world.generator; import java.util.List; import java.util.Random; -import com.hbm.inventory.FluidStack; import com.hbm.inventory.RecipesCommon.MetaBlock; -import com.hbm.items.ModItems; -import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre; -import com.hbm.world.feature.BedrockOre; import net.minecraft.block.Block; import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraft.world.gen.feature.WorldGenFlowers; @@ -25,11 +20,8 @@ public class DungeonToolbox { return; for(int i = x; i < x + sx; i++) { - for(int j = y; j < y + sy; j++) { - for(int k = z; k < z + sz; k++) { - MetaBlock b = getRandom(blocks, world.rand); world.setBlock(i, j, k, b.block, b.meta, 2); } @@ -93,24 +85,6 @@ public class DungeonToolbox { (new WorldGenMinable(ore, meta, amount, target)).generate(world, rand, x, y, z); } } - - public static void generateBedrockOreWithChance(World world, Random rand, int chunkX, int chunkZ, EnumBedrockOre ore, int tier, int chance) { - if(chance > 0 && rand.nextInt(chance) == 0) generateBedrockOre(world, rand, chunkX, chunkZ, ore, null, tier); - } - - public static void generateBedrockOreWithChance(World world, Random rand, int chunkX, int chunkZ, EnumBedrockOre ore, FluidStack stack, int tier, int chance) { - if(chance > 0 && rand.nextInt(chance) == 0) generateBedrockOre(world, rand, chunkX, chunkZ, ore, stack, tier); - } - - public static void generateBedrockOre(World world, Random rand, int chunkX, int chunkZ, EnumBedrockOre ore, int tier) { - generateBedrockOre(world, rand, chunkX, chunkZ, ore, null, tier); - } - - public static void generateBedrockOre(World world, Random rand, int chunkX, int chunkZ, EnumBedrockOre ore, FluidStack stack, int tier) { - int randPosX = chunkX + rand.nextInt(16) + 8; - int randPosZ = chunkZ + rand.nextInt(16) + 8; - BedrockOre.generate(world, randPosX, randPosZ, new ItemStack(ModItems.ore_bedrock, 1, ore.ordinal()), stack, ore.color, tier); - } private static WorldGenFlowers genFlowers = new WorldGenFlowers(null); public static void generateFlowers(World world, Random rand, int chunkX, int chunkZ, Block flower, int meta) { diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 4e2684089..f17622a7a 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -18,22 +18,24 @@ achievement.c44.desc=Galvanisch verzinkt! ...das macht in der Übersetzung sowas achievement.c44=Kapitel 44 achievement.chemistry.desc=Bobmazon Level 3 (Betonziegel) achievement.chemistry=Chemie -achievement.digammaFeel.desc=the hollow within. -achievement.digammaFeel=The Terror of Feeling +achievement.digammaFeel.desc=Meine Augen bluten +achievement.digammaFeel=SEWAGE-INFUSED GARBAGE WORLD achievement.digammaKauaiMoho.desc=Alles ist schrecklich, hier ist etwas heiße Schoki. -achievement.digammaKauaiMoho=Sing, sing mir das Lied der Kauai Moho +achievement.digammaKauaiMoho=SING, SING ME THE SONG OF THE KAUAI MOHO achievement.digammaKnow.desc=what this world is about. -achievement.digammaKnow=The Terror of Knowing -achievement.digammaSee.desc=into the abyss. -achievement.digammaSee=The Terror of Seeing -achievement.digammaUpOnTop.desc=Bewundere meinen Sohn, er ist mein Klon. -achievement.digammaUpOnTop=Bewundere mich, bewundere mein Heim +achievement.digammaKnow=THE TERROR OF KNOWING +achievement.digammaSee.desc=Es ist Dunkel, bring eine Taschenlampe. +achievement.digammaSee=ENTER THE ABYSS +achievement.digammaUpOnTop.desc=Admire my son, he's my clone. +achievement.digammaUpOnTop=ADMIRE ME, ADMIRE MY HOME achievement.fiend.desc=Sei gemein. achievement.fiend2.desc=Sei gemeiner. achievement.fiend2=Unhold 2: Noch unholdiger achievement.fiend=Unhold achievement.freytag.desc=Leibgarde Herold achievement.freytag=Freytag +achievement.goFish.desc=Kreuzigung auf See +achievement.goFish=Go Fish achievement.hidden.desc=Töte einen Enderman mit einem fallenden Güterwagon wärend du brennst und mehr als 250 RADs hast. achievement.hidden=Versteckter Katalog achievement.horizonsBonus.desc=junge was ist denn mit dir verkehrt @@ -679,6 +681,7 @@ hbmfluid.plasma_xm=Xenon-Quecksilber-Plasma hbmfluid.puf6=Plutoniumhexafluorid hbmfluid.radiosolvent=Hochleistungs-Lösungsmittel hbmfluid.reclaimed=Wiederaufbetreitetes Industrieöl +hbmfluid.redmud=Rotschlamm hbmfluid.reformate=Reformat hbmfluid.reformgas=Reformatgas hbmfluid.salient=Saftiges Grün @@ -2473,6 +2476,8 @@ item.ore.iron=Eisen item.ore.niobium=Niob item.ore.titanium=Titan item.ore.tungsten=Wolfram +item.ore.thorium=Thorium +item.ore.uranium=Uran item.ore_bedrock.name=Bedrock-%serz item.ore_byproduct.b_aluminium.name=Kristallines Aluminiumfragment item.ore_byproduct.b_bismuth.name=Kristallines Bismutfragment @@ -2481,9 +2486,13 @@ item.ore_byproduct.b_copper.name=Kristallines Kupferfragment item.ore_byproduct.b_iron.name=Kristallines Eisenfragment item.ore_byproduct.b_lead.name=Kristallines Bleifragment item.ore_byproduct.b_lithium.name=Kristallines Lithiumfragment +item.ore_byproduct.b_polonium.name=Kristallines Poloniumfragment +item.ore_byproduct.b_radium.name=Kristallines Radiumfragment item.ore_byproduct.b_silicon.name=Kristallines Siliziumfragment item.ore_byproduct.b_sulfur.name=Kristallines Schwefelfragment +item.ore_byproduct.b_technetium.name=Kristallines Technetiumfragment item.ore_byproduct.b_titanium.name=Kristallines Titanfragment +item.ore_byproduct.b_uranium.name=Kristallines Uranfragment item.ore_centrifuged.name=Zentrifugiertes %serz item.ore_cleaned.name=Gereinigtes %serz item.ore_deepcleaned.name=Tiefengereinigtes %serz @@ -2491,7 +2500,7 @@ item.ore_enriched.name=Reiches %serz item.ore_nitrated.name=Nitriertes %serz item.ore_nitrocrystalline.name=Nitrokristallines %serz item.ore_purified.name=Pures %serz -item.ore_radcleaaned.name=Strahlengereinigtes %serz +item.ore_radcleaned.name=Strahlengereinigtes %serz item.ore_seared.name=Geätztes %serz item.ore_separated.name=Separiertes %serz item.overfuse.name=Singularitätsschraubenzieher @@ -4242,6 +4251,7 @@ tile.stone_depth_nether.name=Nether-Tiefenfels tile.stone_gneiss.name=Graphitschiefer tile.stone_porous.name=Poröser Stein tile.stone_resource.asbestos.name=Chrysotil +tile.stone_resource.bauxite.name=Bauxit tile.stone_resource.hematite.name=Hämatit tile.stone_resource.limestone.name=Kalkstein tile.stone_resource.malachite.name=Malachit diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 3758781ef..5a20f09a4 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -36,16 +36,16 @@ achievement.concrete.desc=A Bolshevik's favorite. achievement.concrete=Old Reliable achievement.desh.desc="Come on then, you lot. Places to go!" achievement.desh=Le Verrier -achievement.digammaFeel.desc=the hollow within. -achievement.digammaFeel=The Terror of Feeling +achievement.digammaFeel.desc=My eyes are bleeding +achievement.digammaFeel=SEWAGE-INFUSED GARBAGE WORLD achievement.digammaKauaiMoho.desc=Everything is awful, here's some hot choccy. -achievement.digammaKauaiMoho=Sing, sing me the song of the Kauai Moho +achievement.digammaKauaiMoho=SING, SING ME THE SONG OF THE KAUAI MOHO achievement.digammaKnow.desc=what this world is about. -achievement.digammaKnow=The Terror of Knowing -achievement.digammaSee.desc=into the abyss. -achievement.digammaSee=The Terror of Seeing +achievement.digammaKnow=THE TERROR OF KNOWING +achievement.digammaSee.desc=It's a bit dark, bring a flashlight. +achievement.digammaSee=ENTER THE ABYSS achievement.digammaUpOnTop.desc=Admire my son, he's my clone. -achievement.digammaUpOnTop=Admire Me, Admire my Home +achievement.digammaUpOnTop=ADMIRE ME, ADMIRE MY HOME achievement.fiend.desc=Be mean. achievement.fiend2.desc=Be meaner. achievement.fiend2=Delinquent 2: Delinquent Harder @@ -56,6 +56,8 @@ achievement.fusion.desc=A dance of deuterons, tritons, and energy. achievement.fusion=Fusion achievement.gasCent.desc=Unenriched Uranium hates him! achievement.gasCent=The Zippe Style +achievement.goFish.desc=Nautical Crucifixion +achievement.goFish=Go Fish achievement.hidden.desc=Kill a tainted creeper with a falling boxcar. achievement.hidden=Hidden Catalog achievement.horizonsBonus.desc=honest to god what the hell is wrong with you @@ -1251,6 +1253,7 @@ hbmfluid.plasma_xm=Xenon-Mercury Plasma hbmfluid.puf6=Plutonium Hexafluoride hbmfluid.radiosolvent=High-Performance Solvent hbmfluid.reclaimed=Reclaimed Industrial Oil +hbmfluid.redmud=Red Mud hbmfluid.reformate=Reformate hbmfluid.reformgas=Reformate Gas hbmfluid.salient=Salient Green @@ -3152,6 +3155,8 @@ item.ore.iron=Iron item.ore.niobium=Niobium item.ore.titanium=Titanium item.ore.tungsten=Tungsten +item.ore.thorium=Thorium +item.ore.uranium=Uranium item.ore_bedrock.name=%s Bedrock Ore item.ore_byproduct.b_aluminium.name=Crystalline Aluminium Fragment item.ore_byproduct.b_bismuth.name=Crystalline Bismuth Fragment @@ -3160,9 +3165,13 @@ item.ore_byproduct.b_copper.name=Crystalline Copper Fragment item.ore_byproduct.b_iron.name=Crystalline Iron Fragment item.ore_byproduct.b_lead.name=Crystalline Lead Fragment item.ore_byproduct.b_lithium.name=Crystalline Lithium Fragment +item.ore_byproduct.b_polonium.name=Crystalline Polonium Fragment +item.ore_byproduct.b_radium.name=Crystalline Radium Fragment item.ore_byproduct.b_silicon.name=Crystalline Silicon Fragment item.ore_byproduct.b_sulfur.name=Crystalline Sulfur Fragment +item.ore_byproduct.b_technetium.name=Crystalline Technetium Fragment item.ore_byproduct.b_titanium.name=Crystalline Titanium Fragment +item.ore_byproduct.b_uranium.name=Crystalline Uranium Fragment item.ore_centrifuged.name=Centrifuged %s Ore item.ore_cleaned.name=Cleaned %s Ore item.ore_deepcleaned.name=Deep Cleaned %s Ore @@ -3170,7 +3179,7 @@ item.ore_enriched.name=Enriched %s Ore item.ore_nitrated.name=Nitrated %s Ore item.ore_nitrocrystalline.name=Nitrocrystalline %s Ore item.ore_purified.name=Purified %s Ore -item.ore_raadcleaned.name=Radiation-Cleaned %s Ore +item.ore_radcleaned.name=Radiation-Cleaned %s Ore item.ore_seared.name=Seared %s Ore item.ore_separated.name=Separated %s Ore item.overfuse.name=Singularity Screwdriver @@ -5062,6 +5071,7 @@ tile.stone_depth_nether.name=Nether Depth Rock tile.stone_gneiss.name=Graphitic Schist tile.stone_porous.name=Porous Stone tile.stone_resource.asbestos.name=Chrysotile +tile.stone_resource.bauxite.name=Bauxite tile.stone_resource.hematite.name=Hematite tile.stone_resource.limestone.name=Limestone tile.stone_resource.malachite.name=Malachite diff --git a/src/main/resources/assets/hbm/textures/blocks/stone_resource.bauxite.png b/src/main/resources/assets/hbm/textures/blocks/stone_resource.bauxite.png new file mode 100644 index 0000000000000000000000000000000000000000..d2b38295d37df0c3d1b261659d4d5d34904bfe07 GIT binary patch literal 811 zcmV+`1JwM9P)A8_g4 z;a}37OIPk(*@UEGnxbi}HJG*vNS!h*L0~?Z;r+UE?{)FU#It)AC(m=vc}{TtWz~zD z8i44)@E^ASOu4sE;OhGdBv2N}nWK_gnuYwF8yZ=WSmSZOjp)6x zWE1%AhXiGuXQiPCmvR~I)UvWFSsvvx#v#i&S+{2R`P(5{z`d5@c;Ha=sv^85A$G_Q zLS#!o;^;mcvao&y6o}?50_c7HI`=B`M2Y8g;n@op3zxw3jt#fqQ3o-m#d8XXCRn zY7l!aQ%kcZDAfdED5?Hq*|=LkE{0TW#P3Hb2ah6VLdjf3u(lxSU3iEcYVEd0OiM@{ z&z@(TT*TC?3LydpKVI;nn@2W3rC3|l2pw?p*93sA?HJWNu@naufc3itqPLPK`x$$$ z3}++9{FGqvjz-^a12pb-%+V6Ds=^|GU4WXR7!%~w}!=quW;j=stLjB=5nCuH{Z$B7*?yJ!zWP;?+CLF!gLS6^j4CJUpV? zcbJK%IVb53Es24Gf}#%40=k0<_czOkDap>G7-ioioc)nuw?>={9a=!@p;F4f?UUPz pB+D0s*CfqjfzScbf#Ji3tu+Ap@$m+&HPbY) zEDJG4)^#O>z}wp!ecv;VBiHMdrfIlbE-0l)DRI4CvCq%XG)=>Pzvp;7qLiYpYm6~` ze0(sDBhERjwKPpb+qTT}j8Y2kJ$6|ZthE5#+}zN09q02IV+;=u4^&l!bB^6^$Jf^v zcXxLT!vKIW2D`3n0asOph~T~F_VyNluIuRgp7Z&Ph_EaRbzRf8Ep=UE4~GMFUE{qc z=Zv+Mr>7^3F;rDWjFFr(IcJ7ppzAtB1OV?nI;HeO#ad#Fgb)fFW6Vz%Yw7#Gd@3R+ zrC62)t+hreMb4SJu4$SEYb{DC=6MDv%(kvuPDHT#{hkm)DKN$$BE{z|9%IB9Q$}6a zm6Q?|Kq-ZY5JDh?Kvh-6PJnGpr4%tnzQ4aq-fkVe_q1&bfO8HJA;$P0t4$N{J;2W* z0fqGrQf6VHk>V z8&E`wolVmaLMS?H+Gt}8#+d)CTGzE)X9%HO-*(n9Mx1jv=lBPrP*Hz^9#>=l0000< KMNUMnLSTZp`4Dda literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/achievement_icon.acid.png b/src/main/resources/assets/hbm/textures/items/achievement_icon.acid.png new file mode 100644 index 0000000000000000000000000000000000000000..e83e786e34c2210894a3abb121a747fc55ef8382 GIT binary patch literal 29485 zcmV*jKuo`hP)|VSI|wruE@UPl@_bi z604U;ku?A)Am@lPyZfH{!nU7?L;R4L+3j|m4hKRQF~(A2A*V!6xxTiLaw3)l6s#CBV1QH-NP!|4 zsv{!a8fZ3#53)9;B1XD!xRymyFzNFk*}DFtiv`^I4eft%|amg^N_ zgvJOGGyB7V@pvM{#27PEjD(m71r9M$^7l^Y>8%p@@!!_hARzLSubHp8%s1hOJ|}04 zwUm?)5w5RqxV^ol=~`^t;H*Wg!OrVizq1r@V)aG{f^(1Gpf8$Vn9o;}b7q<*VhEg$ zM~&Kgomq!=kFBlUfGUgTWVs0tJ!#TbkjO5w@6=lWgcaiK-d_oto-Rt(l!41zNT zWArsfz}uGPazW!8N=i6m5fPlTSZhEEDMcs+XD#Hy-tHNOfllCVwIWNwAlOt`_=dDv zGfoq`!;v8*#wl_dr)tERL}8fnN1LUf#%7+FKq>PTK3QCh{^HL#Wd7hEIEn~4=ko?V zosNXCre7{-y@yf|G3SNXwaHKf2l}QTGei-PA`}Wa7yXi)+3)ro_B(RP^}2uhB$jiYNCF4k+D z_ZWo6T13DaOQ9eXQV!&t>AIfQH=K?~zWVxWT4T8AJFw0^ zhLI^oPH|#?Jdjf$aHmU9gW=`Cos`8xAoDFpeYRIFVCQV|PyP zxH05X>b(%%93USpzI@LTMCyrW&el3j6FIAk4Y5E`>yx5hqm=ojrT$ZYkPBG-`q^6l zD9p^pQxE6Wr8m~nHI7Bo(6=qlSRiAoVJy0q)ndVVwbBcY32!ZwOiBso>g%l`rbyHF zSYw&`p2KFtX7d0cu)0_yVsI7>BO=5Y=^M{91%{Bgh)WLR$SF)%fn3xeLWsKfqMl5* z{GV9W`C8@Ab_U-&9(RvOT~zDXZnt!Ohx4Asdx{7~q@IqNrXaZUd3^69pZ>RG-Mt0Q zJK2b#RM$R*fXM|T7MbHreO)PPg^wG&AbCatK=m$XZ($5MB)oT6W9VAXqVHHOI{L=b z`35frQwnYCuoxO=Xq;ueSg`1OM1(X2a!NFfCnZDEdPE8$f{_l4C8k2twLH7J>uvAxw^zyM=6mag0~h6NX}Rst@lhR(|W`9P>|(<7!sp_Lk`5OA+QJ(W5{Q}|G%}m z|LQ~cStjR9m?mPFNTsE5UEOSY51x2{pZ>HQYiy_=}E z5pqsypVb%ykX#;j{S$9fM1OCMMNFb=EUUg_x$L=IFIaRfi>||zf;SdhiY~mdc&moe zI!7U5jX_$2HNJWygR>4}HI&TP6M$R_pS*a+x8MApIGjksiN(bw1&26wu2~Ez1dO%h zTxhJvkch$3HJ5aaVY@$YXbt<*kytXvkch>c!$9GWLF~WvQA)uWA!h})$SSZn@-0n{UvOpK9X8kwev!|BL4O~e#2MqR$f*Zc@J=9o_bGS;YT_r|F) zh@psjNil{(!2-Q+XqFwTu4U0TEc%Ak!n5oe`leyE=tN?#)?| zKSIu6t*y8uVr1R{1}B+};1E80amSlCZ)haZnnEfScBTv^(^*T%0gMoHqIHI@v0yyj zt^vrJM6n-F_@rSk&K}d)>gJzXLHRfL3%R-M3dI@_!8nJA&=_^&U1M2v zj@BENeaour=$vQWwK%|cEjA^r=&o`GtO#>DE6$ybtB7VJ&KgRQy7)j1ho)ruw&Ch> z&BOhB$Pw=hCKXall#&V4h!ulahjorIjN}mLTTj8z`y~d0701K=K+K6TB#aTPg_ypN z|Md_l7^C1Zm&dH@-{dF|!o)CGj>iLwU7?w>(>nwe1 zS#&MV7FNri)>@Wri#HZ;ET$x^wb&uI9#9`TMaPQ(~-*3vYM=G(<$Y>R|QNP=}9=Ubd>F*WBNV$B&i=F1!9aCXOW{2 z!i)hTx#a4~3#Pi%Tpn|IwSG%X6PAc|4r3I1dTY46Skg8Peb<2q-Z_?ShqprGEX%gR zSy=Q9t<_AxmVy&qKxc#^8ALSoG-?D;@Qo#W!K3Dcyz{QtnJKOXh#Qc8qr z;;`EjZYFZhh=8+}oD!~W+w(imtW$aXd*AmQ4hNidc<(suBhwV1y65V0Mc?%_P7!pAdPccFMHf#l9I-HV=SHXJiET;YT0sqdBJ+6Aa2q2 zG~Qt<2uv}Nb9($dBapMY-BKtiQ^YV+hcRc25kid0ZiRq#N)L-@M)7D2^W~f`s%8h} zqg!7Dmg|)of6kalb+*~8Y&^HWDbxfCh$8p)YwkQvPuDBmNRMQUiPG;z*}ckkZfo#XcIPS?p6oH6F3 zxDQZjQ7Fbp0gi_Q$K#0@0;Obft_u!$V?hcz$7-bsV=PW!z3f@_9iKeEW3}j5Em~S@ zwMZj|f~J>KO%r2K)D1vR6f{EsO>dO_6H-!6qHUVTlg@=qQTJW3hNvH`OI*#s=xWQH z-G~-bO45Q#Mt5A!g_I*PMcp7qu+EZlR$BG@Bubh2wSqIkqU%VxuJ(iG6-xlokr0wgFi|7@`iE-sh6{PYu?DRj=_jlp|I41sYtQDT6k zH#&w$MQWPXReChV1O}pHj2Hx?sQ(Pm)QD3ph0N_?1^F*PV{T~}@1RYpWfDl|6d z5*0;H69s767V8`~7bIon)Jwrxr$$0SGb&x>k`jxq<6^bqa5ylANEim97>aS^qBvwe zP5IuUK4FN#=x=9FHnXyi>nt@ie)I_+{e6D_Fr0Yz?hUKu66+mqE{i_3EbAPn(~0Bp z$YH;<9PO|QYzwp;G~%r#gb8PaoFk{x zkrX2_2E_r^GeaXmNGT!Ck}DZyjG_+t0dVwZ?W>~rL~4O*zFBsrwkyVP))T{lX`E=9 z25UVc7Limz;Y=uLR+6P6{ZccIQgBwdSS<~ zEEXNB)sn+*r}gQQYZ1Z_bH=qTB`1!D9ox<3?Dl86xTJ^}uVmAChi8h+RYfi6JOy|n zkAP3k1&<#;{s0d;*+}lFC1b5hQ8upHrr>hQ4cQ zo0hKWIfeuIywZPOD40F&Y%nq-&&TEc;cFCi&gaj`g+k_ZIJTRyyf$LVln(X^x~ zapFjv2DY2~T3bku_@e^SloD11$Q3kYjP;t+i~Y$3{MQ~IQ?uyeVmKU+dV`#!ZCgDL z6pNIa8I@A17{)29`4n8{f-{!nJl?hR?E-6#>RB?%$^UO(#!Ru#hy2mC=!R0SG-qct`d@kV?RVUN_(1pU1pvb^Fq{sI<5bPFPz&fER~xMoM`8@#IYcz>yGkpI ze0;G_JwPt`oCf~X!k;ss`mgCcb ze$g*E|en+As55y@`8W=AO9nN{nvlZs_!wt z{{EheWzXB!uldbye#5idJ6zi^9!5&h7#pThBe`fKF||O15d{IpF=r{ZmWts;h+<&;o%z16eFomh+orMqrRIdO+ikkizqhvzP%Evd} z^YX=We*WbbwANxu#*z8t#Vx=1*_TL8Y#u&PvhwNb)(g2Pn3@l34AyC=G1Vg(qiI_f zE!*Z&U1!aD^S^>6`>`YCq`Ji?rSAD2nBr6HP6mxRglJ79zU;S zC5>{T_l~~twT_|s$tT*OpFVy>G4d$Dkux5e3qLA}^E6F^W)RBNIOjQ?j+F?iZ!D#d zlirAN92ti}V_k->X_bx3Nl6zGymu`63x58yzvODYQYlwS#GJUgy5QgayI=73)pvY& z_l~!(U-8*zpV9h;P?0}H^Xu95OL=sIIcG`|-MLwwR3(j~?mQDt=IqkWwHBOzVCRy-Kuh_uD21R z+4~b?`mu$7v;h5{xeB^mEV;h9p*-3`tfoNbtfL0K{*G|L6o*B5{S%hTz=>3Af^ zRO<_o6q6Q%oI`B&M7faa;?EpI$p#^u0a?zPft;qX;sR55lP;!W2b5y|IEw1OOFnzl zS-`6AvxI3-uEUtBLN-j(NKVQ{#1JvYlVYx_WWB+&$2korjF}5m3J$HYv`yjq;sWm+ z@3$Ksc2po-1*LU0i_Dy&p4az{;QK{8-N0~tea)wzzU1oqhOY0i*5G}^@pL2~PlOP- zzPaK0`kI_Go6QFI$W2!eVl62~PNx&46ueUf&s^#~*RG1tG!1Rr5M!YA9%n4JZ!r|C z0dF*gf>P_!_iVOX=3<+wb*MM5URYJ{#FUh-m6_a|Q?HpdlS<20a6>Ig&$|$*eF*an zel&pD*GQ#Eff~M)V$LZs)uNZF^@p64Pk-F;^WW9jKzCt5u&8%SKoLU`tx6gL>(zp$ z@f?REebaC}jgT^>(%jX$KaK-Gxby3I*Y91g*L?o@=e&IR8C}0%mher}gdp^N$9B76 z7zSRvc)=H6e8D&0e1lWBt~qSUxe^`K#pXRpV%Sfd4@m~hr9#xRdM_L=(38B$WjYOPgQUBOQ& z@`TQ=IVCe$bY61Kx@}5z>s7c?9(9WfdUdBu%`A+y8sdu75SY&TLMXMcRgKkXYL-&0 z2A~F7YMSbu<>vB|F(!_ufgvO{D49hySyJfZLRpu3| zVXdngH@zD<7h*_=H!AZkrN-|0 zj+Bp#pa9Ogn#t(Tj68m3E~P4)sK`E7vP3Cqn+n!Cyl;sy0Ra(cyscS^IqMm7Ddd7+) z*0AXt525x{G>*&5OLn`RDuJBm`a0us)|hXqIAR!vvm2CJq)0_~Knj|KxvItLnugn( z8@je*90pd)B_&3j5mF2^*42DGGY&(gGwTj2LWvQ`v|U4(Cc3601T86g zM^({D+qM)6`@^7G24`8XRsb9hJ5q|Q*K2L8nc27$1LSg6&n4c@m{6s5OL+p0U9z>V zf-}gHKr%U3gRSjN>V9+0DxBW7qPzLLOKXakijpN~r7pS3s7t+>4dW0sTy$%>w>Z zmhr=f-psbsT$7s5g1T=3j>i-CAMTYpjfoHf%jH^8yb=1or|){&3M6xm3cN}o#1ZEl zIi~aXm7-NQBb?JTAyZ22IV`$^_2qL~X)xlHb(Hma51>EMBNsK#j8`O@aU7#d97GM-Ia~ z)g+_>*^nyml`|Ij@#9>ls1*2Ir|A2hlp>Ay4CBadzhQl`CdR}t4waxXf+1@EL(Xu4hnByGzujkTFFRh5xJ z97u+o5-}IVdtBF(bLJERZ{NS;yH~FnPNQC{wKPq4Rv~w7%WAb?wOF3Li4ic)(YGzW z%I?N-WQu{DHLPTTzIWW--17cm$7z@#1adKO#tR>db@G!CVJg5aMewe{*`|g}L5%7Y z+O`1^LI`ZPJ5oyA-aTit*)mQ6XT%^*)1k~GHTx$_PGgI;jN?dS9XTpTAX!C-@7}%V zco;Cou~;m)zPe()UemTcF{?)q5e_kOIv#M&vRp3kUcp_C5%2vO6O@vw7C=)nZSnS4 zXK~IwLF6AF#Tt^eINwqbB9YVa#5hfiA!3}P@eMg@E7cr!aGnq*Hk&Qqyn4;aAJ^{FPG)8I#)3kJ5R~6C?P1E8;=-Y;1eR_i4X+s%)32F;~aY9jJIGpvpWDd4Tc znVHWngfKCVQ)Rvyypj=&^;vM*whcEoH{9M{)77HIt5@Ih?)^J# zRq4**LBx`a)IK-CVJTS&ED_DcrN;l5VHzXb(|e{E+3kPa`_GBvOzg*#JSkgjMVoHe|1I`#i z2v}oPPL?x>w!CXr0Zg+Iu9}aA` zn=@zNW?kCcEgEC26!2sGO*t!Dl@l>&W5+CL@!s<&UDh;2#Nu7Uly%qL+}?40eaZFh zB~7=WZToW(2Q-bjxL9*@dqdkaY&Tntm1tX)VGdDMZf-T#ZM@zfLEPky0WCMa|+ZyWz+wPK0sd!@UYuy!V*;xiO85L22n6 z6UU?Ba8g&>ILE5*>AI#Cf!f-&WGGfMA5#Sy?ny{XMtgYx+g2#BA1r&oG=6w26>%VYA)RHVyX=_k>zs&$%## zP-AT+UuyYNMWCF4Xvs=eg*dT49vNcdGzIQATQ-M1!!$9*KuDR85+O!%rEQH7Y)%}< z0eN_Ux-h44WST}8D!)+0DIl1^s7p>6*{jlc*)K>}SA>#j8+Y!@_qK*DH`nD;o$3M3 z7@W0uuVNSH3^Nt?(}(_k98VnfdtwN*O-oD>q2L=&9<`He-l!KB7wWk};PUcPH6Esp zT1hdes+DtrS*cA?QH80sWe~<`WWV1tjw8+})thq0w+-WPVt+hxb$i1ve(?(~E-yF? zM~2}@h=IkT=X4tIwTFF*k?C;InnJ6HS>qVQq~+xl(>aBdQfcA2;ZEwphsg1$-*FrU zwuckD-CDR@32GU)3ml2Wm<`ELDTHMK{;A>h~O5yVAitEcOZl6D6zuU1p?8ySI?Vyyp^FWNnw>`(>!09yb?YG}D z45JQuYFolMGR8zs@htO7wG8~2_Bmo4>%giLr{j^36Pv?<-D%)BjD#GCxsVYOMSBP5 znMOrh*bG`zaNZNlNT@O7CoEYhLjV|c}?(ZxSWQOZ~yQI?myh)=Ct*i^yL++*mxNJDJ7qA!z`T= zMBC7;rST0hC32}m*K%>*DN>2DA~1$P-!Jga;heUOTVrUP=jQT?<95Sgvm=>+l+18A zVi95r^otg=1YC2Lxfir>^Met;K zPRFzu!;}(X8rj_6^YG!Ghx>az+<)MBI`XjHka8xKsNzdwSg%$r77L6BCTXK+YaC-9 z$uZ)b#?roqqA5kZZ)n?=V~l53P*d7!(N;amqV4o^&0HTaOv8zr>uWxJ`I3jt1FydO zj%C}cp?gotnrTo9&u;Jd{N+nZ%KZL!zhQg-z`M6^$tiKMTC->x3@8y}6pc?|!ic35 z_orc=z_Vx1Sg+QKvtoiA*ltfMiV>sPNDAD4c*DDQZ}{|+zo2cGjAK({zOp4%&P3}Q zoe@g9QJ$m+a2G%e#J1UFf}9{u8>pWIE-9hCCxNYHBvDN*LF4S zRPxGu&uX<|iUAuVi0H1)g(5<%GYkuL6kS2dtlFenN?{xZ8s}N`3j|m%SDe-twP{q- z(54og*6S6|u5a1jZ}{;3Js&>2XFRF&?e_ALo6BqE{6*+mukl)ROpbRt%C3ZjYb;*W z<0&`d@S;4&qHS0$mfT!jvp?*arhzcFoQ{T&bOa7Yxsct%mT$lPhRe$}U&@y(mP@*0 zqaM;|wKSnkwW&7L{>c$BwY04s;at#w5EE03j3H?*?mU;*H*{TlPC15Qz*vW~p4IAt zaU9qmcf5M_ir@YAx4inpAJ}d-oN5!sX0surgsr5D)ZG4lvm>U$)%t?2X-L-Kx`tF) z!KW?mi{*kbMvjxFL?IPgt3b|LAw(_62;hvxSgq&BstfSWu~@BX+m>pRtW76r4h zg3a+X;PPB>sh(i2E1#7xM%6l2v}Z7(F*26K@uW9ou~@QRuXQoHmK2jVl}yTb8DrUR zxBTv_-}Bqw|BkP}`Gybg-}C<6ThcTUra+7;{xsHUG9pzKmohO- z!x#gNcjS_3e1o8AqqCNa)dd(wzgRMcz;PHWnzv^Gs#FmPqM6VzO{x)yffTfl@wh+G zIIqekQBp-j$T2bH0aB)KJj=ePah9%WS#)hx24_+V+FC9(|4-WWoF!MGiXo2ESyrZ0 zwo34=aWvj>cYQ_cEu(>T-;u_iv0pF_k)dX8Mugpd$KiP3u-`LXbNmM8}{2hB0?C)I+I8zj%voE!z=s6 z0&gu{t7Tv*s;v;~6kJly+D6JF=VGlrd)KGTZkdg;E=tol4I9p|=-P^7GGQ3lZjN~8 zh&h53Vw~7K-1F?&9XS+shaIlff|@~F_`)>deZwTC8o-G5R1I9g zh>n7>u3?xW+ue@+;ZQqyRLt4+4afTv|NJli%zyjUulSdL{ujRa!?(P9`;Oyj(8)a| ztKcLns6;d$1|TJ+P0^;1B5Dj_nkdE+YH9c4;)3C{BZbH~4p_4w)md$VkYm&tKta(6++5cMt}$_juE2h-^K(qoMCx`qr@*Aylc|u}*PcE|-Y2#H8W)csN$z zYZz+NYuC0qEP7VYdhhXGRW7EA9YNDTu}T+K1)jRloCsm6?NxOKptbzV|N3YC?(hDN zU;gTsy#DSrAxv1?P)cpwtb&YOQ!*ua9%uK=HHX4a4z>Z9HL$45yP0%QTJRHXAt|k8C!Z3Op6`bY1r(4HUtMrR#bYiv`X* zjZZm~a;nDBk;8ayhA<**b{pQleXC{N#`91A^B?(}|MFk>)!+Y;-FC+;9|QFcxyI{~ zO>Humhc)DCbP39%7-Ci_jl-nl;t;yNr|UXS`z?q4p)!!lQ>419bfjCR@s1)|{LuEZ zT>BTRyi5va9{o~^7KqMDWR#LEmd<+?ZO494I=$_Cw)Y#3 zcSoAGBa9Qj{mpOr>Z`9f9QK5uy3bq<-_5Pr^KQ#o(-rS6-Z@UgKn#(_Yi&P=sg82d zy}8+J+3)s{GjCqM=5PP@Z}`>U|B~%ybM6UHPQg(`t7lW5aNgCEPyt6u^Jq7rWEDgz zI@bYA#a05!8kWl?i+;i8-5Z8+p!E%NqX6B(vqB94)g3LhRGc>Vefhr_W7 zO(SCLc?Ptz)}4n4=>@o2maM(_s^M0vb{^X+WDrjqbR zBbswg@j%fYybx5tIfjYT>4bIKa-3q#2t>PfoV8Fj|Iy4PTzPC#sRrqsrE3~WO+TH{ z!IiFN3R*3$!!nJkck8Tm3W^D4gTv_f8$=Ci)?MZj&*wBxWP6-Pq=b@lhQ)HhO@{rr z=X4qwVqzLb_S-${%S%$uXV7b{WwBhIOZuhcxjFPP4Y5{FV(!5MYB(rN<3x<1mR}=e z!MP=E+w$Svd;Z^l_%+-62TG-IF+z?izYamGY
VScbgJ`YgLIpgd+r$^nSZ#*eh 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 g=chg{<{9 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/digamma_feel.png b/src/main/resources/assets/hbm/textures/items/achievement_icon.digammafeel.png similarity index 100% rename from src/main/resources/assets/hbm/textures/items/digamma_feel.png rename to src/main/resources/assets/hbm/textures/items/achievement_icon.digammafeel.png diff --git a/src/main/resources/assets/hbm/textures/items/achievement_icon.digammaforourright.png b/src/main/resources/assets/hbm/textures/items/achievement_icon.digammaforourright.png new file mode 100644 index 0000000000000000000000000000000000000000..bccb7255a1ec255c5cde816dbe617aaba996c12e GIT binary patch literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf(WAr;|p$=_#7*cuF42y$$E0FTv6)Bryq>#IxjC<{o(^_mAduQV_NI*Gy4)z4*}Q$iB} DfK5wg literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/digamma_kauai_moho.png b/src/main/resources/assets/hbm/textures/items/achievement_icon.digammakauaimoho.png similarity index 100% rename from src/main/resources/assets/hbm/textures/items/digamma_kauai_moho.png rename to src/main/resources/assets/hbm/textures/items/achievement_icon.digammakauaimoho.png diff --git a/src/main/resources/assets/hbm/textures/items/digamma_know.png b/src/main/resources/assets/hbm/textures/items/achievement_icon.digammaknow.png similarity index 100% rename from src/main/resources/assets/hbm/textures/items/digamma_know.png rename to src/main/resources/assets/hbm/textures/items/achievement_icon.digammaknow.png diff --git a/src/main/resources/assets/hbm/textures/items/digamma_see.png b/src/main/resources/assets/hbm/textures/items/achievement_icon.digammasee.png similarity index 100% rename from src/main/resources/assets/hbm/textures/items/digamma_see.png rename to src/main/resources/assets/hbm/textures/items/achievement_icon.digammasee.png diff --git a/src/main/resources/assets/hbm/textures/items/digamma_unity.png b/src/main/resources/assets/hbm/textures/items/achievement_icon.digammaunity.png similarity index 100% rename from src/main/resources/assets/hbm/textures/items/digamma_unity.png rename to src/main/resources/assets/hbm/textures/items/achievement_icon.digammaunity.png diff --git a/src/main/resources/assets/hbm/textures/items/digamma_up_on_top.png b/src/main/resources/assets/hbm/textures/items/achievement_icon.digammaupontop.png similarity index 100% rename from src/main/resources/assets/hbm/textures/items/digamma_up_on_top.png rename to src/main/resources/assets/hbm/textures/items/achievement_icon.digammaupontop.png diff --git a/src/main/resources/assets/hbm/textures/items/achievement_icon.gofish.png b/src/main/resources/assets/hbm/textures/items/achievement_icon.gofish.png new file mode 100644 index 0000000000000000000000000000000000000000..f6622381a37c2ecd55082cf5e39a6b9db205040e GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VflSbB4w;YfOjn;>WldDMcQO6w z^*0Qf&t7g_qoKUvv&_^Doxe*QPq-GZ_}lx5x57AOmXOPhaL!e4CoQ<8$GPtX!{l78 VUsZkyd%?BKXO4CmzRQ4p7ZPafP(m~7boXDJ$Z}S>szv*q{t2y uIVbLkA^QKrxf}L|SUpo^I_;(}&mdR5-MW#zb(b5^DGZ*jelF{r5}E*HP(=p- diff --git a/src/main/resources/assets/hbm/textures/items/digamma_event_horizon.png b/src/main/resources/assets/hbm/textures/items/digamma_event_horizon.png deleted file mode 100644 index 11a7ae960ee5c735cc5b401373fff85021f8f8cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfb-;kbIr!#5n_cG7`?;bGoVOpk7jNhpyn^{aC%;VAgLm7DU6$-R$a~{N!GzK? zGml+aAe9sqc6itJ;%-~sfBXUSpL9OG`Mt%jd-b&|3zFC-#YXIjTc#(xFGOBi(N3!f PXcvR0tDnm{r-UW|70o=( From 7fa942dde36aafef4b3b69b7a0cb3ad042e622df Mon Sep 17 00:00:00 2001 From: Doctor17-git <60807716+Doctor17-git@users.noreply.github.com> Date: Sun, 28 May 2023 23:58:45 +0300 Subject: [PATCH 019/109] Updated ru_RU.lang updated russian localization --- src/main/resources/assets/hbm/lang/ru_RU.lang | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/main/resources/assets/hbm/lang/ru_RU.lang b/src/main/resources/assets/hbm/lang/ru_RU.lang index 23a244c37..31f1280a6 100644 --- a/src/main/resources/assets/hbm/lang/ru_RU.lang +++ b/src/main/resources/assets/hbm/lang/ru_RU.lang @@ -152,6 +152,8 @@ achievement.inferno.desc="Превратите его в пепел! Этого achievement.inferno=Операция "Каннибал" achievement.no9.desc="Я надеюсь, что свинец, который я добываю, будет использован в вашей краске" achievement.no9=Старый номер Девять +achievement.goFish.desc=Морское распятие +achievement.goFish=Иди порыбачь cannery.f1=[ Нажмите f1 для справки ] @@ -1178,6 +1180,10 @@ hbmfluid.oil_coker=Коксовая нефть hbmfluid.cholesterol=Раствор холестерина hbmfluid.egg=Растворенное яйцо hbmfluid.estradiol=Раствор эстрадиола +hbmfluid.fishoil=Рыбий жир +hbmfluid.sunfloweroil=Подсолнечное масло +hbmfluid.nitroglycerin=Нитроглицерин +hbmfluid.redmud=Красный шлам hbmmat.actinium227=Актиний-227 hbmmat.advancedalloy=Продвинутый сплав @@ -2553,6 +2559,7 @@ item.solid_fuel_presto_bf.name=Топливное полено (Жар-плам item.solid_fuel_presto_triplet.name=Сжатые топливные полена item.solid_fuel_presto_triplet_bf.name=Сжатые топливные полена (Жар-пламя) item.stick_dynamite.name=Динамитная шашка +item.stick_dynamite_fishing.name=Динамитная шашка для рыбалки item.stick_tnt.name=Шашка ТНТ item.stick_c4.name=Шашка C-4 item.stick_semtex.name=Шашка семтекса @@ -2914,6 +2921,8 @@ item.ore.iron=Железная item.ore.niobium=Ниобиевая item.ore.titanium=Титановая item.ore.tungsten=Вольфрамовая +item.ore.thorium=Ториевая +item.ore.uranium=Урановая item.ore_bedrock.name=%s бедроковая руда item.ore_centrifuged.name=Центрифугированная %s бедроковая руда item.ore_cleaned.name=Очищенная %s бедроковая руда @@ -2935,6 +2944,10 @@ item.ore_byproduct.b_titanium.name=Титановый побочный прод item.ore_byproduct.b_aluminium.name=Алюминиевый побочный продукт item.ore_byproduct.b_sulfur.name=Серный побочный продукт item.ore_byproduct.b_bismuth.name=Висмутовый побочный продукт +item.ore_byproduct.b_polonium.name=Полониевый побочный продукт +item.ore_byproduct.b_radium.name=Радиевый побочный продукт +item.ore_byproduct.b_technetium.name=Технециевый побочный продукт +item.ore_byproduct.b_uranium.name=Урановый побочный продукт item.ammonium_nitrate.name=Нитрат аммония tile.bobblehead.name=Болванчик @@ -3093,6 +3106,7 @@ tile.stalagmite.asbestos.name=Асбестовый сталагмит tile.stone_resource.asbestos.name=Хризотил tile.stone_resource.sulfur.name=Сернистый камень tile.stone_resource.hematite.name=Гематит +tile.stone_resource.bauxite.name=Боксит tile.stone_resource.malachite.name=Малахит tile.stone_resource.limestone.name=Известняк tile.gas_asbestos.name=Частицы асбеста в воздухе From 87a87738ba2fdcfd4bd8002155668c474608d8fb Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 29 May 2023 16:50:51 +0200 Subject: [PATCH 020/109] train coupling, pulling physics --- .../java/com/hbm/crafting/PowderRecipes.java | 6 +- .../hbm/entity/train/EntityRailCarBase.java | 248 ++++++++++++++---- .../com/hbm/entity/train/TrainCargoTram.java | 1 + .../entity/train/TrainCargoTramTrailer.java | 1 + .../inventory/recipes/AssemblerRecipes.java | 22 +- .../recipes/CrystallizerRecipes.java | 1 + .../java/com/hbm/main/CraftingManager.java | 16 +- .../java/com/hbm/main/ModEventHandler.java | 6 + .../items/battery_schrabidium_cell.png | Bin 182 -> 168 bytes .../items/battery_schrabidium_cell_2.png | Bin 213 -> 202 bytes .../items/battery_schrabidium_cell_4.png | Bin 288 -> 312 bytes .../items/battery_schrabidium_new.png | Bin 319 -> 287 bytes 12 files changed, 245 insertions(+), 56 deletions(-) diff --git a/src/main/java/com/hbm/crafting/PowderRecipes.java b/src/main/java/com/hbm/crafting/PowderRecipes.java index 6c6845ed9..22200d0ef 100644 --- a/src/main/java/com/hbm/crafting/PowderRecipes.java +++ b/src/main/java/com/hbm/crafting/PowderRecipes.java @@ -41,11 +41,11 @@ public class PowderRecipes { CraftingManager.addShapelessAuto(new ItemStack(Items.gunpowder, 3), new Object[] { S.dust(), KNO.dust(), new ItemStack(Items.coal, 1, 1) }); //Blends - CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_power, 5), new Object[] { REDSTONE.dust(), "dustGlowstone", DIAMOND.dust(), NP237.dust(), MAGTUNG.dust() }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_power, 3), new Object[] { "dustGlowstone", DIAMOND.dust(), MAGTUNG.dust() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_nitan_mix, 6), new Object[] { NP237.dust(), I.dust(), TH232.dust(), AT.dust(), ND.dust(), CS.dust() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_nitan_mix, 6), new Object[] { ST.dust(), CO.dust(), BR.dust(), TS.dust(), NB.dust(), CE.dust() }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_spark_mix, 5), new Object[] { DESH.dust(), EUPH.dust(), ModItems.powder_meteorite, ModItems.powder_power, ModItems.powder_nitan_mix }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_meteorite, 5), new Object[] { IRON.dust(), CU.dust(), LI.dust(), W.dust(), U.dust() }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_spark_mix, 3), new Object[] { DESH.dust(), EUPH.dust(), ModItems.powder_power }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_meteorite, 4), new Object[] { IRON.dust(), CU.dust(), LI.dust(), NETHERQUARTZ.dust() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_thermite, 4), new Object[] { IRON.dust(), IRON.dust(), IRON.dust(), AL.dust() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_desh_mix, 1), new Object[] { B.dustTiny(), B.dustTiny(), LA.dustTiny(), LA.dustTiny(), CE.dustTiny(), CO.dustTiny(), LI.dustTiny(), ND.dustTiny(), NB.dustTiny() }); diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index e33f02380..163adc596 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -1,14 +1,19 @@ package com.hbm.entity.train; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; import com.hbm.blocks.rail.IRailNTM; import com.hbm.blocks.rail.IRailNTM.RailContext; import com.hbm.blocks.rail.IRailNTM.TrackGauge; import com.hbm.items.ModItems; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; import com.hbm.util.fauxpointtwelve.BlockPos; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -23,6 +28,7 @@ import net.minecraft.world.World; public abstract class EntityRailCarBase extends Entity { + public LogicalTrainUnit ltu; public boolean isOnRail = true; private int turnProgress; /* Clientside position that should be approached with smooth interpolation */ @@ -94,12 +100,29 @@ public abstract class EntityRailCarBase extends Entity { if(neighbor.getCoupledTo(closestNeighborCoupling) != null) continue; this.couple(closestOwnCoupling, neighbor); neighbor.couple(closestNeighborCoupling, this); + if(this.ltu != null) this.ltu.dissolve(); + if(neighbor.ltu != null) neighbor.ltu.dissolve(); player.swingItem(); return true; } } } + if(this.ltu != null) { + + String id = Integer.toHexString(ltu.hashCode()); + + for(EntityRailCarBase train : ltu.trains) { + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "debug"); + data.setInteger("color", 0x0000ff); + data.setFloat("scale", 1.5F); + data.setString("text", id); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, train.posX, train.posY + 1, train.posZ), new TargetPoint(this.dimension, train.posX, train.posY + 1, train.posZ, 50)); + } + } + return false; } @@ -127,14 +150,7 @@ public abstract class EntityRailCarBase extends Entity { this.setPosition(this.posX, this.posY, this.posZ); this.setRotation(this.rotationYaw, this.rotationPitch); } - - /* - * TODO: move movement into the world tick event handler. - * step 1: detect linked trains, move linked units (LTUs) as one later - * step 2: move LTUs together using coupling rules (important to happen first, consistency has to be achieved before major movement) - * step 3: move LTUs based on their engine and gravity speed - * step 4: move LTUs based on collisions between LTUs (important to happen last, collision is most important) - */ + BlockPos anchor = this.getCurentAnchorPos(); Vec3 frontPos = getRelPosAlongRail(anchor, this.getLengthSpan()); Vec3 backPos = getRelPosAlongRail(anchor, -this.getLengthSpan()); @@ -150,6 +166,19 @@ public abstract class EntityRailCarBase extends Entity { } } else { + + if(this.coupledFront != null && this.coupledFront.isDead) { + this.coupledFront = null; + if(this.ltu != null) this.ltu.dissolve(); + } + if(this.coupledBack != null && this.coupledBack.isDead) { + this.coupledBack = null; + if(this.ltu != null) this.ltu.dissolve(); + } + + if(this.ltu == null && (this.coupledFront == null || this.coupledBack == null)) { + LogicalTrainUnit.generate(this); + } DummyConfig[] definitions = this.getDummies(); @@ -172,31 +201,6 @@ public abstract class EntityRailCarBase extends Entity { this.initDummies = true; } - BlockPos anchor = this.getCurentAnchorPos(); - Vec3 corePos = getRelPosAlongRail(anchor, this.getCurrentSpeed()); - - if(corePos == null) { - this.derail(); - } else { - this.setPosition(corePos.xCoord, corePos.yCoord, corePos.zCoord); - anchor = this.getCurentAnchorPos(); //reset origin to new position - Vec3 frontPos = getRelPosAlongRail(anchor, this.getLengthSpan()); - Vec3 backPos = getRelPosAlongRail(anchor, -this.getLengthSpan()); - - if(frontPos == null || backPos == null) { - this.derail(); - return; - } else { - this.renderX = (frontPos.xCoord + backPos.xCoord) / 2D; - this.renderY = (frontPos.yCoord + backPos.yCoord) / 2D; - this.renderZ = (frontPos.zCoord + backPos.zCoord) / 2D; - this.prevRotationYaw = this.rotationYaw; - this.rotationYaw = this.movementYaw = generateYaw(frontPos, backPos); - this.motionX = this.rotationYaw / 360D; // hijacking this crap for easy syncing - this.velocityChanged = true; - } - } - for(int i = 0; i < definitions.length; i++) { DummyConfig def = definitions[i]; BoundingBoxDummyEntity dummy = dummies[i]; @@ -212,15 +216,16 @@ public abstract class EntityRailCarBase extends Entity { } public Vec3 getRelPosAlongRail(BlockPos anchor, double distanceToCover) { - - float yaw = this.rotationYaw; + return getRelPosAlongRail(anchor, distanceToCover, this.getGauge(), this.worldObj, Vec3.createVectorHelper(posX, posY, posZ), this.rotationYaw); + } + + public static Vec3 getRelPosAlongRail(BlockPos anchor, double distanceToCover, TrackGauge gauge, World worldObj, Vec3 next, float yaw) { if(distanceToCover < 0) { distanceToCover *= -1; yaw += 180; } - Vec3 next = Vec3.createVectorHelper(posX, posY, posZ); int it = 0; do { @@ -228,8 +233,6 @@ public abstract class EntityRailCarBase extends Entity { it++; if(it > 30) { - worldObj.createExplosion(this, posX, posY, posZ, 5F, false); - this.derail(); return null; } @@ -250,7 +253,7 @@ public abstract class EntityRailCarBase extends Entity { boolean flip = distanceToCover < 0; - if(rail.getGauge(worldObj, x, y, z) == this.getGauge()) { + if(rail.getGauge(worldObj, x, y, z) == gauge) { RailContext info = new RailContext(); Vec3 prev = next; next = rail.getTravelLocation(worldObj, x, y, z, prev.xCoord, prev.yCoord, prev.zCoord, rot.xCoord, rot.yCoord, rot.zCoord, distanceToCover, info); @@ -271,15 +274,34 @@ public abstract class EntityRailCarBase extends Entity { return next; } - public float generateYaw(Vec3 front, Vec3 back) { + public static float generateYaw(Vec3 front, Vec3 back) { double deltaX = front.xCoord - back.xCoord; double deltaZ = front.zCoord - back.zCoord; double radians = -Math.atan2(deltaX, deltaZ); return (float) MathHelper.wrapAngleTo180_double(radians * 180D / Math.PI); } + + public static void updateMotion(World world) { + Set ltus = new HashSet(); + + /* gather all LTUs */ + for(Object o : world.loadedEntityList) { + if(o instanceof EntityRailCarBase) { + EntityRailCarBase train = (EntityRailCarBase) o; + if(train.ltu != null) ltus.add(train.ltu); + } + } + + /* Move carts together with links */ + for(LogicalTrainUnit ltu : ltus) ltu.combineLinks(); + + /* Move carts with unified speed */ + for(LogicalTrainUnit ltu : ltus) ltu.moveLinks(); + } /** Returns the amount of blocks that the train should move per tick */ public abstract double getCurrentSpeed(); + public abstract double getMaxRailSpeed(); /** Returns the gauge of this train */ public abstract TrackGauge getGauge(); /** Returns the length between the core and one of the bogies */ @@ -289,9 +311,9 @@ public abstract class EntityRailCarBase extends Entity { return this.boundingBox; } /** Returns a collision box used for block collisions when derailed */ - @Override public AxisAlignedBB getBoundingBox() { + /*@Override public AxisAlignedBB getBoundingBox() { return this.boundingBox; - } + }*/ /** Returns the "true" position of the train, i.e. the block it wants to snap to */ public BlockPos getCurentAnchorPos() { @@ -437,6 +459,10 @@ public abstract class EntityRailCarBase extends Entity { return coupling == TrainCoupling.FRONT ? this.coupledFront : coupling == TrainCoupling.BACK ? this.coupledBack : null; } + public TrainCoupling getCouplingFrom(EntityRailCarBase coupledTo) { + return coupledTo == this.coupledFront ? TrainCoupling.FRONT : coupledTo == this.coupledBack ? TrainCoupling.BACK : null; + } + public void couple(TrainCoupling coupling, EntityRailCarBase to) { if(coupling == TrainCoupling.FRONT) this.coupledFront = to; if(coupling == TrainCoupling.BACK) this.coupledBack = to; @@ -444,8 +470,142 @@ public abstract class EntityRailCarBase extends Entity { public static class LogicalTrainUnit { - List trains = new ArrayList(); + protected EntityRailCarBase trains[]; - //TBI + /** Assumes that the train is an endpoint, i.e. that only one coupling is in use */ + public static LogicalTrainUnit generate(EntityRailCarBase train) { + List links = new ArrayList(); + Set brake = new HashSet(); + links.add(train); + brake.add(train); + LogicalTrainUnit ltu = new LogicalTrainUnit(); + + if(train.coupledFront == null && train.coupledFront == null) { + ltu.trains = new EntityRailCarBase[] {train}; + train.ltu = ltu; + return ltu; + } + + EntityRailCarBase prevCar = train; + EntityRailCarBase nextCar = train.coupledBack == null ? train.coupledFront : train.coupledBack; + + while(nextCar != null) { + links.add(nextCar); + brake.add(nextCar); + + EntityRailCarBase currentCar = nextCar; + nextCar = nextCar.coupledBack == prevCar ? nextCar.coupledFront : nextCar.coupledBack; + prevCar = currentCar; + + if(brake.contains(nextCar)) { + break; + } + } + + ltu.trains = new EntityRailCarBase[links.size()]; + + for(int i = 0; i < ltu.trains.length; i++) { + ltu.trains[i] = links.get(i); + ltu.trains[i].ltu = ltu; + } + + return ltu; + } + + public void dissolve() { + for(EntityRailCarBase train : trains) { + train.ltu = null; + } + } + + public void combineLinks() { + + if(trains.length <= 1) return; + + boolean odd = trains.length % 2 == 1; + int centerIndex = odd ? trains.length / 2 : trains.length / 2 - 1; + EntityRailCarBase center = trains[centerIndex]; + EntityRailCarBase prev = center; + + for(int i = centerIndex - 1; i >= 0; i--) { + EntityRailCarBase next = trains[i]; + moveTo(prev, next); + prev = next; + } + + prev = center; + for(int i = centerIndex + 1; i < trains.length; i++) { + EntityRailCarBase next = trains[i]; + moveTo(prev, next); + prev = next; + } + } + + public static void moveTo(EntityRailCarBase prev, EntityRailCarBase next) { + TrainCoupling prevCouple = prev.getCouplingFrom(next); + TrainCoupling nextCouple = next.getCouplingFrom(prev); + Vec3 prevLoc = prev.getCouplingPos(prevCouple); + Vec3 nextLoc = next.getCouplingPos(nextCouple); + Vec3 delta = Vec3.createVectorHelper(prevLoc.xCoord - nextLoc.xCoord, 0, prevLoc.zCoord - nextLoc.zCoord); + double len = delta.lengthVector(); + len *= 0.25D; //suspension, causes movements to be less rigid + BlockPos anchor = new BlockPos(next.posX, next.posY, next.posZ); + Vec3 trainPos = Vec3.createVectorHelper(next.posX, next.posY, next.posZ); + float yaw = EntityRailCarBase.generateYaw(prevLoc, nextLoc); + Vec3 newPos = EntityRailCarBase.getRelPosAlongRail(anchor, len, next.getGauge(), next.worldObj, trainPos, yaw); + next.setPosition(newPos.xCoord, newPos.yCoord, newPos.zCoord); + } + + public void moveLinks() { + + EntityRailCarBase prev = trains[0]; + TrainCoupling dir = prev.getCouplingFrom(null); + double totalSpeed = 0; + double maxSpeed = Double.POSITIVE_INFINITY; + + for(EntityRailCarBase train : this.trains) { + boolean con = train.getCouplingFrom(prev) == dir; + double speed = train.getCurrentSpeed(); + if(!con) speed *= -1; + totalSpeed += speed; + maxSpeed = Math.min(maxSpeed, train.getMaxRailSpeed()); + prev = train; + } + + if(Math.abs(totalSpeed) > maxSpeed) { + totalSpeed = maxSpeed * Math.signum(totalSpeed); + } + + for(EntityRailCarBase train : this.trains) { + + BlockPos anchor = train.getCurentAnchorPos(); + Vec3 corePos = train.getRelPosAlongRail(anchor, totalSpeed); + + if(corePos == null) { + train.derail(); + this.dissolve(); + return; + } else { + train.setPosition(corePos.xCoord, corePos.yCoord, corePos.zCoord); + anchor = train.getCurentAnchorPos(); //reset origin to new position + Vec3 frontPos = train.getRelPosAlongRail(anchor, train.getLengthSpan()); + Vec3 backPos = train.getRelPosAlongRail(anchor, -train.getLengthSpan()); + + if(frontPos == null || backPos == null) { + train.derail(); + this.dissolve(); + return; + } else { + train.renderX = (frontPos.xCoord + backPos.xCoord) / 2D; + train.renderY = (frontPos.yCoord + backPos.yCoord) / 2D; + train.renderZ = (frontPos.zCoord + backPos.zCoord) / 2D; + train.prevRotationYaw = train.rotationYaw; + train.rotationYaw = train.movementYaw = generateYaw(frontPos, backPos); + train.motionX = train.rotationYaw / 360D; // hijacking this crap for easy syncing + train.velocityChanged = true; + } + } + } + } } } diff --git a/src/main/java/com/hbm/entity/train/TrainCargoTram.java b/src/main/java/com/hbm/entity/train/TrainCargoTram.java index abb278066..af8bbe587 100644 --- a/src/main/java/com/hbm/entity/train/TrainCargoTram.java +++ b/src/main/java/com/hbm/entity/train/TrainCargoTram.java @@ -48,6 +48,7 @@ public class TrainCargoTram extends EntityRailCarElectric implements IGUIProvide @Override public double getPassivBrake() { return 0.95; } @Override public boolean shouldUseEngineBrake(EntityPlayer player) { return Math.abs(this.engineSpeed) < 0.1; } @Override public double getMaxPoweredSpeed() { return 0.5; } + @Override public double getMaxRailSpeed() { return 1; } @Override public TrackGauge getGauge() { return TrackGauge.STANDARD; } @Override public double getLengthSpan() { return 1.5; } diff --git a/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java b/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java index 6e771e40a..e077a14da 100644 --- a/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java +++ b/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java @@ -25,6 +25,7 @@ public class TrainCargoTramTrailer extends EntityRailCarCargo { this.setSize(5F, 2F); } + @Override public double getMaxRailSpeed() { return 1; } @Override public TrackGauge getGauge() { return TrackGauge.STANDARD; } @Override public double getLengthSpan() { return 1.5; } @Override public int getSizeInventory() { return 29; } diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 5464b4581..f93ba08bc 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -529,6 +529,26 @@ public class AssemblerRecipes { new OreDictStack(DIAMOND.dust(), 32) }, 100); + makeRecipe(new ComparableStack(ModItems.drillbit, 1, EnumDrillType.TCALLOY.ordinal()), new AStack[] { + new OreDictStack(ANY_RESISTANTALLOY.ingot(), 20), + new OreDictStack(DESH.ingot(), 12), + new OreDictStack(RUBBER.ingot(), 8) + }, 200); + makeRecipe(new ComparableStack(ModItems.drillbit, 1, EnumDrillType.TCALLOY_DIAMOND.ordinal()), new AStack[] { + new ComparableStack(ModItems.drillbit, 1, EnumDrillType.TCALLOY.ordinal()), + new OreDictStack(DIAMOND.dust(), 48) + }, 100); + + makeRecipe(new ComparableStack(ModItems.drillbit, 1, EnumDrillType.FERRO.ordinal()), new AStack[] { + new OreDictStack(FERRO.ingot(), 24), + new OreDictStack(ANY_RESISTANTALLOY.ingot(), 12), + new OreDictStack(BI.ingot(), 4), + }, 200); + makeRecipe(new ComparableStack(ModItems.drillbit, 1, EnumDrillType.FERRO_DIAMOND.ordinal()), new AStack[] { + new ComparableStack(ModItems.drillbit, 1, EnumDrillType.FERRO.ordinal()), + new OreDictStack(DIAMOND.dust(), 56) + }, 100); + makeRecipe(new ComparableStack(ModBlocks.machine_large_turbine, 1), new AStack[] { new OreDictStack(STEEL.plate528(), 12), new OreDictStack(RUBBER.ingot(), 4), @@ -953,7 +973,7 @@ public class AssemblerRecipes { new ComparableStack(ModItems.sphere_steel, 1), new ComparableStack(ModItems.pipes_steel, 1), new ComparableStack(ModItems.motor_desh, 3), - new ComparableStack(ModItems.circuit_gold, 1) + new OreDictStack(KEY_CIRCUIT_BISMUTH, 1) }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_catalytic_reformer, 1), new AStack[] { new OreDictStack(STEEL.plateCast(), 12), diff --git a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java index b47ad8804..69c7652e1 100644 --- a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java @@ -139,6 +139,7 @@ public class CrystallizerRecipes extends SerializableRecipe { registerRecipe(new ComparableStack(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE)), new CrystallizerRecipe(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.WAX), 20), new FluidStack(Fluids.CHLORINE, 250)); registerRecipe(new ComparableStack(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRACK)), new CrystallizerRecipe(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.WAX), 20), new FluidStack(Fluids.CHLORINE, 100)); + registerRecipe(new ComparableStack(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.PARAFFIN)), new CrystallizerRecipe(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.WAX), 20), new FluidStack(Fluids.CHLORINE, 100)); registerRecipe(new ComparableStack(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.WAX)), new CrystallizerRecipe(new ItemStack(ModItems.pellet_charged), 200), new FluidStack(Fluids.IONGEL, 500)); registerRecipe(new ComparableStack(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.PARAFFIN)), new CrystallizerRecipe(new ItemStack(ModItems.pill_red), 200), new FluidStack(Fluids.ESTRADIOL, 250)); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 0b25b3eb3..1b8d0b48a 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -522,7 +522,7 @@ public class CraftingManager { addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_lithium), new Object[] { "A A", "PLP", "PSP", 'A', ModItems.wire_gold, 'P', TI.plate(), 'S', LI.dust(), 'L', CO.dust() }); addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_schrabidium), new Object[] { " A ", "PNP", "PSP", 'A', ModItems.wire_schrabidium, 'P', SA326.plate(), 'S', SA326.dust(), 'N', NP237.dust() }); addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_schrabidium), new Object[] { " A ", "PSP", "PNP", 'A', ModItems.wire_schrabidium, 'P', SA326.plate(), 'S', SA326.dust(), 'N', NP237.dust() }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark), new Object[] { " A ", "PSP", "PSP", 'A', ModItems.wire_magnetized_tungsten, 'P', ModItems.plate_dineutronium, 'S', ModItems.powder_spark_mix }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark), new Object[] { "P", "S", "S", 'P', ModItems.plate_dineutronium, 'S', ModItems.powder_spark_mix }); addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_trixite), new Object[] { " A ", "PSP", "PTP", 'A', ModItems.wire_aluminium, 'P', AL.plate(), 'S', ModItems.powder_power, 'T', ModItems.crystal_trixite }); addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_trixite), new Object[] { " A ", "PTP", "PSP", 'A', ModItems.wire_aluminium, 'P', AL.plate(), 'S', ModItems.powder_power, 'T', ModItems.crystal_trixite }); addRecipeAuto(ItemBattery.getFullBattery(ModItems.energy_core), new Object[] { "PCW", "TRD", "PCW", 'P', ALLOY.plate(), 'C', ModItems.coil_advanced_alloy, 'W', ModItems.wire_advanced_alloy, 'R', ModItems.cell_tritium, 'D', ModItems.cell_deuterium, 'T', W.ingot() }); @@ -544,13 +544,13 @@ public class CraftingManager { addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_advanced_cell_12), new Object[] { "WPW", "BBB", "WPW", 'W', ModItems.wire_red_copper, 'P', CU.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_advanced_cell_4) }); addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_lithium_cell_6), new Object[] { "WPW", "BWB", "WPW", 'W', ModItems.wire_gold, 'P', TI.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_lithium_cell_3) }); addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_schrabidium_cell_4), new Object[] { "WPW", "BWB", "WPW", 'W', ModItems.wire_schrabidium, 'P', SA326.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_schrabidium_cell_2) }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_6), new Object[] { "BBW", "BBP", "BBW", 'W', ModItems.wire_magnetized_tungsten, 'P', ModItems.plate_dineutronium, 'B', ItemBattery.getEmptyBattery(ModItems.battery_spark) }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_25), new Object[] { " WW", "PCC", "BCC", 'W', ModItems.wire_magnetized_tungsten, 'P', ModItems.plate_dineutronium, 'B', ItemBattery.getEmptyBattery(ModItems.battery_spark), 'C', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_6) }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_100), new Object[] { "W W", "BPB", "BPB", 'W', ModItems.wire_magnetized_tungsten, 'P', ModItems.plate_dineutronium, 'B', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_25) }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_1000), new Object[] { "CCC", "CSC", "CCC", 'S', ModItems.singularity_spark, 'C', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_100) }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_2500), new Object[] { "CVC", "PSP", "CVC", 'S', ModItems.singularity_spark, 'C', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_100), 'V', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_1000), 'P', ModItems.plate_dineutronium }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_10000), new Object[] { "PVP", "VSV", "PVP", 'S', ModItems.singularity_spark, 'V', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_2500), 'P', ModItems.plate_dineutronium }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_power), new Object[] { "CCC", "CSC", "CCC", 'S', ModItems.singularity_spark, 'C', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_10000) }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_6), new Object[] { "BW", "PW", "BW", 'W', ModItems.wire_magnetized_tungsten, 'P', ModItems.powder_spark_mix, 'B', ItemBattery.getEmptyBattery(ModItems.battery_spark) }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_25), new Object[] { "W W", "SCS", "PSP", 'W', ModItems.wire_magnetized_tungsten, 'P', ModItems.plate_dineutronium, 'S', ModItems.powder_spark_mix, 'C', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_6) }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_100), new Object[] { "W W", "BPB", "SSS", 'W', ModItems.wire_magnetized_tungsten, 'P', ModItems.plate_dineutronium, 'S', ModItems.powder_spark_mix, 'B', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_25) }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_1000), new Object[] { "PCP", "CSC", "PCP", 'S', ModItems.singularity_spark, 'P', ModItems.powder_spark_mix, 'C', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_100) }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_2500), new Object[] { "SCS", "CVC", "SCS", 'C', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_100), 'V', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_1000), 'S', ModItems.powder_spark_mix }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_10000), new Object[] { "OSO", "SVS", "OSO", 'S', ModItems.singularity_spark, 'V', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_2500), 'O', ModItems.ingot_osmiridium }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_power), new Object[] { "YSY", "SCS", "YSY", 'S', ModItems.singularity_spark, 'C', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_10000), 'Y', ModItems.billet_yharonite }); addRecipeAuto(ItemBattery.getFullBattery(ModItems.battery_su), new Object[] { "P", "R", "C", 'P', Items.paper, 'R', REDSTONE.dust(), 'C', COAL.dust() }); addRecipeAuto(ItemBattery.getFullBattery(ModItems.battery_su), new Object[] { "P", "C", "R", 'P', Items.paper, 'R', REDSTONE.dust(), 'C', COAL.dust() }); diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 00d3a9f64..c7554d48d 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -28,6 +28,7 @@ import com.hbm.entity.mob.EntityQuackos; import com.hbm.entity.mob.EntityCreeperTainted; import com.hbm.entity.projectile.EntityBulletBase; import com.hbm.entity.projectile.EntityBurningFOEQ; +import com.hbm.entity.train.EntityRailCarBase; import com.hbm.extprop.HbmLivingProps; import com.hbm.extprop.HbmPlayerProps; import com.hbm.handler.ArmorModHandler; @@ -692,6 +693,11 @@ public class ModEventHandler { */ } /// RADIATION STUFF END /// + + + if(event.phase == Phase.END) { + EntityRailCarBase.updateMotion(event.world); + } } if(event.phase == Phase.START) { diff --git a/src/main/resources/assets/hbm/textures/items/battery_schrabidium_cell.png b/src/main/resources/assets/hbm/textures/items/battery_schrabidium_cell.png index d9e92ed00771268b01586299c63e9a19addd6e41..96af24f72ea2ec62560df404deba642d855d6b94 100644 GIT binary patch delta 123 zcmV->0EGXx0jL3xG<07{L_t(Ijm?w64Ztu61Fdf08Q6dkG6$=Y5xSE5>Nknt6MvCU zwuFJ}Wo9ayNy;UWEJ7lLOd+BMASp9zBmjPMy@E^23eS%5&bhpA0X{|#aDRfOND7&) dKj>}YL?5-iDHZ!5UR?kH002ovPDHLkV1j>MGGqV% delta 138 zcmV;50CoSU0k#24S+BV1P{b0Opp;Who{IOlx*XSKtatePmh!Y zl7?$s*gn~k4ZmjxbvGwakd(S5X2M;V6$Mjkf)%)ctx&tv1m`1u$4o)0t}wS8N6yuJ sQxIYt6a0UIDhY)9z$G&H3vajqf}MzHRI34YT;%Cikqf~};4^`jUe zi4i|Kzky>}jyvG9n3-DMgruA#k}7%5SPDqqBgF`K4**KQ>GRyzz|1ZUa_`|7R>f}! zK~54vP|-7nTE-e<({BUZG&TKC4fe&=8WbTZEX(B%a_{2RFBd#v1I*-7$zID*6#xJL M07*qoM6N<$g1P=gzyJUM delta 169 zcmV;a09OCX0o4JJG=GdqL_t(Ijn$K}4TCTcMIRBPFo8#4j%!%KgQQGL!x}IG1vR_; zG(<7zuoKZFud$xx`#M>7@UuKXInNS7K~mg`j-FDv31*_}pzq&zFCT_ojT;a_4X^@t zsE(e#t-XMyaF#Jskc63BPq>|B%+r+hVnArytp8I7+sB=C;35)1jN@(+Q~!udyYLN9 XXgN&^&4nQd00000NkvXXu0mjf-DXPl diff --git a/src/main/resources/assets/hbm/textures/items/battery_schrabidium_cell_4.png b/src/main/resources/assets/hbm/textures/items/battery_schrabidium_cell_4.png index b35ac68822dc4421f01f6cfcdb2896a9c66d8bc3..fe84f7e26e8eb81ae6d33a4fa0254261d9b9d7f8 100644 GIT binary patch delta 269 zcmV+o0rLK!0=NQ@G=J|&L_t(Ijm49(Zo)7WMGvJLLwVUy2Snb+g4Fzhzl{D8QbyQW zio(P|GL|i7L1N-{XoG@dl}c6BJNekx*YC+T{DoB2zT>-_HP1~|Ez2?sIrKk<6Xkde zMS;{cPy0P}lHgk`Nn+mnUgPhF0dhRfpLaXno#QYZaz35V#ed?4*=}DOe=iIGOhf=k z)0C>Jt_uyfE9lBO(>%AYAOkwwws%@!GMW3q07fIG>ote6#9uBq+-~6^R)o%G0KBbM zQEn?5P!K`% TH$V{p0000|%0c?LS4)t%EM*C@1##J}AG;5GrD(Kf z3hYFf!V4EeX;P3Jge()PO31Pf+w~*YU=9)i5ikSJz}4Z6^=+>+!bvGiSz?~W20CnO z(wQNOR<|JF5{BHh=Fl|U+V+JpX8kq+K%6819P8T4w!8+7)&MM&^75d;e-oru7q_D? ufmb<50YX(t@mwsMKXU=x-S^$X*Lnb_Hh-EkmJ?0@0000prVdP zNOgU-K;D26(o!dH5+440~p5<0HTl})@D*ld3^PGo?)#GdX7>oB0|@7 zUM$*zT@CGs&MZq^_PKJTc%#5aCXe~bF=w}KVsw(c?qX(XzQ(pi~YqbCX002ov JPDHLkV1n11)~B!2;OQb$4nuFf3k00004XF*Lt006O%3;baP00009a7bBm000id z000id0mpBsWB>pF)Ja4^R5(w?lCcfKFc3wLER)g_5*si>ipU#;8JGY%Mo58c+H8=* zNk`a%364AKoIq>`1O-nz-M8fbeU=V>WhFge3xFaW&BEOPHh*JL-~kcWR9B^N9+s?D`(=)Z2Go@e^==t~1q!O0JDWC*arfJa^||7@(uqZ=^3& z^9eHPBTZF_n#`V7Yf%$H08@6IsENHXqF#vxFh??QP-(5J6v=>3`F}v1s&Z@0Tgcl8 q#vo`NUFGyv%^eMOy}W_n0q_7Rg=2W?_clTR0000 Date: Mon, 29 May 2023 20:37:34 -0700 Subject: [PATCH 021/109] Preliminary BunkerComponents --- .../java/com/hbm/items/tool/ItemWandD.java | 41 +- src/main/java/com/hbm/lib/HbmWorld.java | 18 +- .../{worldgen => gen}/MapGenNTMFeatures.java | 14 +- .../com/hbm/world/gen/NTMWorldGenerator.java | 126 ++++ .../world/gen/ProceduralStructureStart.java | 247 ++++++++ .../world/gen/component/BunkerComponents.java | 547 ++++++++++++++++++ .../component}/CivilianFeatures.java | 2 +- .../component}/Component.java | 76 ++- .../component}/OfficeFeatures.java | 28 +- .../component}/RuinFeatures.java | 2 +- .../hbm/world/worldgen/NTMWorldGenerator.java | 53 -- .../components/ProceduralComponents.java | 240 -------- 12 files changed, 1012 insertions(+), 382 deletions(-) rename src/main/java/com/hbm/world/{worldgen => gen}/MapGenNTMFeatures.java (93%) create mode 100644 src/main/java/com/hbm/world/gen/NTMWorldGenerator.java create mode 100644 src/main/java/com/hbm/world/gen/ProceduralStructureStart.java create mode 100644 src/main/java/com/hbm/world/gen/component/BunkerComponents.java rename src/main/java/com/hbm/world/{worldgen/components => gen/component}/CivilianFeatures.java (99%) rename src/main/java/com/hbm/world/{worldgen/components => gen/component}/Component.java (94%) rename src/main/java/com/hbm/world/{worldgen/components => gen/component}/OfficeFeatures.java (96%) rename src/main/java/com/hbm/world/{worldgen/components => gen/component}/RuinFeatures.java (99%) delete mode 100644 src/main/java/com/hbm/world/worldgen/NTMWorldGenerator.java delete mode 100644 src/main/java/com/hbm/world/worldgen/components/ProceduralComponents.java diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index 7ea8ad8b7..a9c9a49ae 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -2,34 +2,15 @@ package com.hbm.items.tool; import java.util.List; -import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.rail.IRailNTM; -import com.hbm.blocks.rail.IRailNTM.RailContext; -import com.hbm.explosion.vanillant.ExplosionVNT; -import com.hbm.explosion.vanillant.standard.BlockAllocatorBulkie; -import com.hbm.explosion.vanillant.standard.BlockMutatorBulkie; -import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; -import com.hbm.explosion.vanillant.standard.EntityProcessorStandard; -import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard; -import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; import com.hbm.lib.Library; -import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.PlayerInformPacket; -import com.hbm.util.ParticleUtil; -import com.hbm.util.fauxpointtwelve.BlockPos; -import com.hbm.world.feature.OilSpot; +import com.hbm.world.gen.component.BunkerComponents; -import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; import net.minecraft.world.World; +import net.minecraft.world.gen.structure.StructureBoundingBox; public class ItemWandD extends Item { @@ -43,13 +24,13 @@ public class ItemWandD extends Item { if(pos != null) { - ExplosionVNT vnt = new ExplosionVNT(world, pos.hitVec.xCoord, pos.hitVec.yCoord, pos.hitVec.zCoord, 7); + /*ExplosionVNT vnt = new ExplosionVNT(world, pos.hitVec.xCoord, pos.hitVec.yCoord, pos.hitVec.zCoord, 7); vnt.setBlockAllocator(new BlockAllocatorBulkie(60)); vnt.setBlockProcessor(new BlockProcessorStandard().withBlockEffect(new BlockMutatorBulkie(ModBlocks.block_slag)).setNoDrop()); vnt.setEntityProcessor(new EntityProcessorStandard()); vnt.setPlayerProcessor(new PlayerProcessorStandard()); vnt.setSFX(new ExplosionEffectStandard()); - vnt.explode(); + vnt.explode();*/ /*TimeAnalyzer.startCount("setBlock"); world.setBlock(pos.blockX, pos.blockY, pos.blockZ, Blocks.dirt); @@ -71,20 +52,12 @@ public class ItemWandD extends Item { tom.destructionRange = 600; world.spawnEntityInWorld(tom);*/ - /*ItemStack itemStack = new ItemStack(ModItems.book_lore); - BookLoreType.setTypeForStack(itemStack, BookLoreType.BOOK_IODINE); - - player.inventory.addItemStackToInventory(itemStack); - player.inventoryContainer.detectAndSendChanges();*/ - //use sparingly - /*int k = ((pos.blockX >> 4) << 4) + 8; + int k = ((pos.blockX >> 4) << 4) + 8; int l = ((pos.blockZ >> 4) << 4) + 8; - MapGenBunker.Start start = new MapGenBunker.Start(world, world.rand, pos.blockX >> 4, pos.blockZ >> 4); - start.generateStructure(world, world.rand, new StructureBoundingBox(k - 124, l - 124, k + 15 + 124, l + 15 + 124));*/ - //MapGenStronghold.Start startS = new MapGenStronghold.Start(world, world.rand, pos.blockX >> 4, pos.blockZ >> 4); - //startS.generateStructure(world, world.rand, new StructureBoundingBox(k - 124, l - 124, k + 15 + 124, l + 15 + 124)); + BunkerComponents.BunkerStart start = new BunkerComponents.BunkerStart(world, world.rand, pos.blockX >> 4, pos.blockZ >> 4); + start.generateStructure(world, world.rand, new StructureBoundingBox(k - 124, l - 124, k + 15 + 124, l + 15 + 124)); /*EntityNukeTorex torex = new EntityNukeTorex(world); torex.setPositionAndRotation(pos.blockX, pos.blockY + 1, pos.blockZ, 0, 0); diff --git a/src/main/java/com/hbm/lib/HbmWorld.java b/src/main/java/com/hbm/lib/HbmWorld.java index 44bea3667..c12dd3f6c 100644 --- a/src/main/java/com/hbm/lib/HbmWorld.java +++ b/src/main/java/com/hbm/lib/HbmWorld.java @@ -1,14 +1,16 @@ package com.hbm.lib; -import com.hbm.world.worldgen.MapGenNTMFeatures; -import com.hbm.world.worldgen.NTMWorldGenerator; -import com.hbm.world.worldgen.components.CivilianFeatures; -import com.hbm.world.worldgen.components.OfficeFeatures; -import com.hbm.world.worldgen.components.RuinFeatures; +import com.hbm.world.gen.MapGenNTMFeatures; +import com.hbm.world.gen.NTMWorldGenerator; +import com.hbm.world.gen.component.BunkerComponents; +import com.hbm.world.gen.component.CivilianFeatures; +import com.hbm.world.gen.component.OfficeFeatures; +import com.hbm.world.gen.component.RuinFeatures; import cpw.mods.fml.common.IWorldGenerator; import cpw.mods.fml.common.registry.GameRegistry; import net.minecraft.world.gen.structure.MapGenStructureIO; +import net.minecraftforge.common.MinecraftForge; public class HbmWorld { @@ -24,7 +26,10 @@ public class HbmWorld { registerNTMFeatures(); registerWorldGen(new HbmWorldGen(), 1); - registerWorldGen(new NTMWorldGenerator(), 1); //Ideally, move everything over from HbmWorldGen to NTMWorldGenerator + + NTMWorldGenerator worldGenerator = new NTMWorldGenerator(); + registerWorldGen(worldGenerator, 1); //Ideally, move everything over from HbmWorldGen to NTMWorldGenerator + MinecraftForge.EVENT_BUS.register(worldGenerator); //registerWorldGen(new WorldGenTest(), 1); } @@ -37,5 +42,6 @@ public class HbmWorld { CivilianFeatures.registerComponents(); OfficeFeatures.registerComponents(); RuinFeatures.registerComponents(); + BunkerComponents.registerComponents(); } } diff --git a/src/main/java/com/hbm/world/worldgen/MapGenNTMFeatures.java b/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java similarity index 93% rename from src/main/java/com/hbm/world/worldgen/MapGenNTMFeatures.java rename to src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java index 4bb3ea17b..9c1a55339 100644 --- a/src/main/java/com/hbm/world/worldgen/MapGenNTMFeatures.java +++ b/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java @@ -1,4 +1,4 @@ -package com.hbm.world.worldgen; +package com.hbm.world.gen; import java.util.Arrays; import java.util.Iterator; @@ -7,9 +7,9 @@ import java.util.Random; import com.hbm.config.GeneralConfig; import com.hbm.config.StructureConfig; -import com.hbm.world.worldgen.components.CivilianFeatures.*; -import com.hbm.world.worldgen.components.OfficeFeatures.*; -import com.hbm.world.worldgen.components.RuinFeatures.*; +import com.hbm.world.gen.component.CivilianFeatures.*; +import com.hbm.world.gen.component.OfficeFeatures.*; +import com.hbm.world.gen.component.RuinFeatures.*; import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; @@ -99,10 +99,8 @@ public class MapGenNTMFeatures extends MapGenStructure { public Start(World world, Random rand, int chunkX, int chunkZ) { super(chunkX, chunkZ); - BiomeGenBase biome = world.getBiomeGenForCoords(chunkX * 16 + 8, chunkZ * 16 + 8); - int posY = world.getHeightValue(chunkX * 16 + 8, chunkZ * 16 + 8); - if(posY == 0) - posY = world.getTopSolidOrLiquidBlock(chunkX * 16 + 8, chunkZ * 16 + 8); + BiomeGenBase biome = world.getBiomeGenForCoords(chunkX * 16 + 8, chunkZ * 16 + 8); //Only gets the biome in the corner of the chunk. + final int posY = 64; // Terrain *does not exist* at this stage - at least, for vanilla. Here it has to be called after, but better safe than sorry. /* * Probably want to use nextInt() to increase the structures of rarity here. As a fallback, you could have generic stone brick/useless block ruins that will always be chosen if the diff --git a/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java b/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java new file mode 100644 index 000000000..0337af69a --- /dev/null +++ b/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java @@ -0,0 +1,126 @@ +package com.hbm.world.gen; + +import java.util.Random; + +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.generic.BlockNTMFlower.EnumFlowerType; +import com.hbm.config.StructureConfig; + +import cpw.mods.fml.common.IWorldGenerator; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.chunk.IChunkProvider; +import static net.minecraftforge.common.BiomeDictionary.*; +import net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate; +import net.minecraftforge.event.terraingen.InitMapGenEvent.EventType; +import net.minecraftforge.event.terraingen.PopulateChunkEvent; +import static net.minecraftforge.event.terraingen.TerrainGen.*; +import net.minecraftforge.event.world.WorldEvent; + +public class NTMWorldGenerator implements IWorldGenerator { + + private MapGenNTMFeatures scatteredFeatureGenerator = new MapGenNTMFeatures(); + + private final Random rand = new Random(); //A central random, used to cleanly generate our stuff without affecting vanilla or modded seeds. + + /** Inits all MapGen upon the loading of a new world. Hopefully clears out structureMaps and structureData when a different world is loaded. */ + @SubscribeEvent + public void onLoad(WorldEvent.Load event) { + scatteredFeatureGenerator = (MapGenNTMFeatures) getModdedMapGen(new MapGenNTMFeatures(), EventType.CUSTOM); + hasPopulationEvent = false; + } + + /** Called upon the initial population of a chunk. Called in the pre-population event first; called again if pre-population didn't occur (flatland) */ + private void setRandomSeed(World world, int chunkX, int chunkZ) { + rand.setSeed(world.getSeed()); + final long i = rand.nextLong() / 2L * 2L + 1L; + final long j = rand.nextLong() / 2L * 2L + 1L; + rand.setSeed((long)chunkX * i + (long)chunkZ * j ^ world.getSeed()); + } + + /* + * Pre-population Events / Structure Generation + * Used to generate structures without unnecessary intrusion by biome decoration, like trees. + */ + + private boolean hasPopulationEvent = false; // Does the given chunkGenerator have a population event? If not (flatlands), default to using generate. + + @SubscribeEvent + public void generateStructures(PopulateChunkEvent.Pre event) { + setRandomSeed(event.world, event.chunkX, event.chunkZ); //Set random for population down the line. + hasPopulationEvent = true; + + if(!StructureConfig.enableStructures) return; + + switch (event.world.provider.dimensionId) { + case -1: + break; + case 0: + generateOverworldStructures(event.world, event.chunkProvider, event.chunkX, event.chunkZ); + break; + case 1: + break; + } + } + + protected void generateOverworldStructures(World world, IChunkProvider chunkProvider, int chunkX, int chunkZ) { + Block[] ablock = new Block[65536]; //ablock isn't actually used for anything in MapGenStructure + + this.scatteredFeatureGenerator.func_151539_a(chunkProvider, world, chunkX, chunkZ, ablock); + this.scatteredFeatureGenerator.generateStructuresInChunk(world, rand, chunkX, chunkZ); + } + + /* + * Post-Vanilla / Modded Generation + * Used to generate features that don't care about intrusions (ores, craters, caves, etc.) + */ + + @Override + public void generate(Random rand, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) { + + switch (world.provider.dimensionId) { + case -1: + generateNether(world, rand, chunkGenerator, chunkX, chunkZ); break; + case 0: + generateSurface(world, rand, chunkGenerator, chunkProvider, chunkX, chunkZ); break; + case 1: + generateEnd(world, rand, chunkGenerator, chunkX, chunkZ); break; + } + } + + private void generateNether(World world, Random rand, IChunkProvider chunkGenerator, int chunkX, int chunkZ) { } + + /* Overworld Generation */ + + private void generateSurface(World world, Random rand, IChunkProvider chunkGenerator, IChunkProvider chunkProvider, int chunkX, int chunkZ) { + if(!hasPopulationEvent) { //If we've failed to generate any structures (flatlands) + setRandomSeed(world, chunkX, chunkZ); //Reset the random seed to compensate + if(StructureConfig.enableStructures) generateOverworldStructures(world, chunkGenerator, chunkX, chunkZ); //Do it through the post-population generation directly + } + + final int posX = (chunkX << 4) + 8; + final int posZ = (chunkZ << 4) + 8; + BiomeGenBase biome = world.getBiomeGenForCoords(posX, posZ); + + /* biome dictionary my beloved <3 + * no check for tom here because the event handler already checks for decoration events, + this way they won't become permanently extinct. + */ + + /* Biome check, followed by chance, followed by event (for compat, both intra- and inter- (in the case of Tom). */ + + + } + + private void generateEnd(World world, Random rand, IChunkProvider chunkGenerator, int chunkX, int chunkZ) { } + + /** Utility method for biome checking multiple types exclusively. Not sure why it wasn't already present. */ + public static boolean isBiomeOfTypes(BiomeGenBase biome, Type... types) { //If new biomes are implemented, move this to any biome-related utility class. + for(Type type : types) { + if(!isBiomeOfType(biome, type)) return false; + } + + return true; + } +} \ No newline at end of file diff --git a/src/main/java/com/hbm/world/gen/ProceduralStructureStart.java b/src/main/java/com/hbm/world/gen/ProceduralStructureStart.java new file mode 100644 index 000000000..f5dcc1446 --- /dev/null +++ b/src/main/java/com/hbm/world/gen/ProceduralStructureStart.java @@ -0,0 +1,247 @@ +package com.hbm.world.gen; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Random; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; +import net.minecraft.world.gen.structure.StructureBoundingBox; +import net.minecraft.world.gen.structure.StructureComponent; +import net.minecraft.world.gen.structure.StructureStart; + +/** This makes so much more sense! OOP wasn't confusing sometimes, you were just retarded! */ +public class ProceduralStructureStart extends StructureStart { + /** List of queued components to call buildComponent on randomly. Iterated over until hard limits reached. */ + public List queuedComponents = new ArrayList(); + /** List of the component weights for this particular structure -- weights removed as components are 'used up.' */ + protected List componentWeightList; //Make sure to initialize the array list to the weight array size, since might as well + + public ProceduralStructureStart() { } + + public ProceduralStructureStart(int chunkX, int chunkZ) { + super(chunkX, chunkZ); + } + + /** 'starter' is just the starting component, so like a village well. meant to be nice and convenient and not needing a super necessarily. */ + public ProceduralStructureStart buildStart(World world, Random rand, StructureComponent starter, Weight...weights) { + prepareWeights(weights); + + components.add(starter); + queuedComponents.add(starter); + while(!queuedComponents.isEmpty()) { + final int i = rand.nextInt(queuedComponents.size()); + StructureComponent component = queuedComponents.remove(i); + if(component instanceof ProceduralComponent) + ((ProceduralComponent) component).buildComponent(this, rand); //additional components are added to the list; the 'last component' is the caller already. + } + + this.updateBoundingBox(); + return this; + } + + public void prepareWeights(Weight...weights) { + componentWeightList = new ArrayList(weights.length); + + for(int i = 0; i < weights.length; i++) { + weights[i].instancesSpawned = 0; + componentWeightList.add(weights[i]); + } + } + + /** Reads from NBT. */ + @Override + public void func_143017_b(NBTTagCompound nbt) { + + } + + /** Writes to NBT. */ + @Override + public void func_143022_a(NBTTagCompound nbt) { + + } + + protected int getTotalWeight() { + boolean flag = false; + int totalWeight = 0; + Weight weight; + + for(Iterator iterator = componentWeightList.iterator(); iterator.hasNext(); totalWeight += weight.weight) { //Iterates over the entire list to find the total weight + weight = (Weight) iterator.next(); + + if(weight.instanceLimit >= 0 && weight.instancesSpawned < weight.instanceLimit) //can more structure pieces be added, in general? + flag = true; + } + + return flag ? totalWeight : -1; + } + + protected StructureComponent getWeightedComponent(StructureComponent last, Random rand, int minX, int minY, int minZ, int coordMode, int componentType) { + int totalWeight = getTotalWeight(); + + if(totalWeight < 0) + return null; + + for(int i = 0; i < 5; i++) { + int value = rand.nextInt(totalWeight); //Pick a random value, based on how many parts there are already + Iterator iterator = componentWeightList.iterator(); + + while(iterator.hasNext()) { + Weight weight = (Weight)iterator.next(); + value -= weight.weight; //Iterate over the list until the value is less than 0 + + if(value < 0) { + if(!weight.canSpawnStructure(componentType, coordMode, last)) //Additional checks based on game state info preventing spawn? start from beginning + break; + + StructureComponent component = weight.lambda.findValidPlacement(components, rand, minX, minY, minZ, coordMode, componentType); //Construct the chosen component + + if(component != null) { //If it has been constructed, add it + weight.instancesSpawned++; + + if(!weight.canSpawnMoreStructures()) //Structure can no longer be spawned regardless of game state? remove as an option + componentWeightList.remove(weight); + + return component; + } + + } + } + } + + return null; + } + + //might remove these, add hard limits so subclasses can create their own implementations + protected int sizeLimit = 50; + protected int distanceLimit = 64; + + /** Gets the next valid component based on the structure start's members */ + protected StructureComponent getNextValidComponent(StructureComponent last, Random rand, int minX, int minY, int minZ, int coordMode, int componentType) { + + if(components.size() > sizeLimit) //Hard limit on amount of components + return null; + + if(Math.abs(minX - (func_143019_e() * 16 + 8)) <= distanceLimit && Math.abs(minZ - (func_143018_f() * 16 + 8)) <= distanceLimit) { //Hard limit on spread of structure + + StructureComponent structure = getWeightedComponent(last, rand, minX, minY, minZ, coordMode, componentType + 1); //Returns null if all checks fail + + if(structure != null) { + this.components.add(structure); //Adds component to structure start list + this.queuedComponents.add(structure); //Add it to the list of queued components waiting to be built + } + + return structure; + } + + return null; + } + + /** Useful utility method to automatically construct the appropriate structure bounding box; based on the getNextComponents below!
+ * posX, posY, posZ represent the original anchor point of the structurecomponent (minX, minY, minZ).
+ * offsetX, offsetY, offsetZ all add onto that point, meaning that offsets will always move that anchor towards +x, +y, +z (in terms of south).
+ * maxX, maxY, maxZ additionally are added to get the maximum x, y, z (obviously) in terms of south. An offset of 1 is subtracted, so these do not start at 0, and + * refer to the ACTUAL dimensions of the component.
+ * The initial anchor point is kind of arbitrary based on where it is in the door, so what really matters is keeping it consistent. + */ + public static StructureBoundingBox getComponentToAddBoundingBox(int posX, int posY, int posZ, int offsetX, int offsetY, int offsetZ, int maxX, int maxY, int maxZ, int coordMode) { + switch(coordMode) { + default: + case 0: return new StructureBoundingBox(posX + offsetX, posY + offsetY, posZ + offsetZ, posX + maxX - 1 + offsetX, posY + maxY - 1 + offsetY, posZ + maxZ - 1 + offsetZ); //South + case 1: return new StructureBoundingBox(posX - maxZ + 1 - offsetZ, posY + offsetY, posZ + offsetX, posX - offsetZ, posY + maxY - 1 + offsetY, posZ + maxX - 1 + offsetX); //West + case 2: return new StructureBoundingBox(posX - maxX + 1 - offsetX, posY + offsetY, posZ - maxZ + 1 - offsetZ, posX - offsetX, posY + maxY - 1 + offsetY, posZ + offsetZ); //North + case 3: return new StructureBoundingBox(posX + offsetZ, posY + offsetY, posZ - maxX + 1 - offsetX, posX + maxZ - 1 + offsetZ, posY + maxY - 1 + offsetY, posZ - offsetX); //East + } + } + + /** no class-based multiple inheritance? */ + public static interface ProceduralComponent { + + public default void buildComponent(ProceduralStructureStart start, Random rand) { } //no class-based multiple inheritance? + + /** Gets next component in the direction this component is facing.
'original' refers to the initial starting component (hard distance limits), 'components' refers to the StructureStart list.
+ * offset and offsetY are added to the anchor point of the new component
, referring to the minX and minY respectively (in terms of south).
+ * An offset of 1 is added to the minZ anchor point, relative to south. + */ + public default StructureComponent getNextComponentNormal(ProceduralStructureStart start, StructureComponent caller, int coordMode, Random rand, int offset, int offsetY) { + StructureBoundingBox box = caller.getBoundingBox(); + switch(coordMode) { + case 0: return start.getNextValidComponent(caller, rand, box.minX + offset, box.minY + offsetY, box.maxZ + 1, coordMode, caller.getComponentType()); //South + case 1: return start.getNextValidComponent(caller, rand, box.minX - 1, box.minY + offsetY, box.minZ + offset, coordMode, caller.getComponentType()); //West + case 2: return start.getNextValidComponent(caller, rand, box.maxX - offset, box.minY + offsetY, box.minZ - 1, coordMode, caller.getComponentType()); //North + case 3: return start.getNextValidComponent(caller, rand, box.maxX + 1, box.minY + offsetY, box.maxZ - offset, coordMode, caller.getComponentType()); //East + default: return null; + } + } + + /** Gets next component in the opposite direction this component is facing. */ + public default StructureComponent getNextComponentAntiNormal(ProceduralStructureStart start, StructureComponent caller, int coordMode, Random rand, int offset, int offsetY) { + StructureBoundingBox box = caller.getBoundingBox(); + switch(coordMode) { + case 0: return start.getNextValidComponent(caller, rand, box.maxX - offset, box.minY + offsetY, box.minZ - 1, 2, caller.getComponentType()); //South + case 1: return start.getNextValidComponent(caller, rand, box.maxX + 1, box.minY + offsetY, box.maxZ - offset, 3, caller.getComponentType()); //West + case 2: return start.getNextValidComponent(caller, rand, box.minX + offset, box.minY + offsetY, box.maxZ + 1, 0, caller.getComponentType()); //North + case 3: return start.getNextValidComponent(caller, rand, box.minX - 1, box.minY + offsetY, box.minZ + offset, 1, caller.getComponentType()); //East + default: return null; + } + } + + //Keep in mind for these methods: a given room would have its *actual entrance* opposite the side it is facing. + /** Gets next component, to the West (-X) relative to this component. */ + public default StructureComponent getNextComponentWest(ProceduralStructureStart start, StructureComponent caller, int coordMode, Random rand, int offset, int offsetY) { + StructureBoundingBox box = caller.getBoundingBox(); + switch(coordMode) { + case 0: return start.getNextValidComponent(caller, rand, box.minX - 1, box.minY + offsetY, box.minZ + offset, 1, caller.getComponentType()); //South + case 1: return start.getNextValidComponent(caller, rand, box.maxX - offset, box.minY + offsetY, box.minZ - 1, 2, caller.getComponentType()); //West + case 2: return start.getNextValidComponent(caller, rand, box.maxX + 1, box.minY + offsetY, box.maxZ - offset, 3, caller.getComponentType()); //North + case 3: return start.getNextValidComponent(caller, rand, box.minX + offset, box.minY + offsetY, box.maxZ + 1, 0, caller.getComponentType()); //East + default: return null; + } + } + + /** Gets next component, to the East (+X) relative to this component. */ + public default StructureComponent getNextComponentEast(ProceduralStructureStart start, StructureComponent caller, int coordMode, Random rand, int offset, int offsetY) { + StructureBoundingBox box = caller.getBoundingBox(); + switch(coordMode) { + case 0: return start.getNextValidComponent(caller, rand, box.maxX + 1, box.minY + offsetY, box.maxZ - offset, 3, caller.getComponentType()); //South + case 1: return start.getNextValidComponent(caller, rand, box.minX + offset, box.minY + offsetY, box.maxZ + 1, 0, caller.getComponentType()); //West + case 2: return start.getNextValidComponent(caller, rand, box.minX - 1, box.minY + offsetY, box.minZ + offset, 1, caller.getComponentType()); //North + case 3: return start.getNextValidComponent(caller, rand, box.maxX - offset, box.minY + offsetY, box.minZ - 1, 2, caller.getComponentType()); //East + default: return null; + } + } + } + + /** Returns a new instance of this structureComponent, or null if not able to be placed.
Based on bounding box checks. Please use a method reference in the component. */ + @FunctionalInterface + protected static interface instantiateStructure { + StructureComponent findValidPlacement(List components, Random rand, int minX, int minY, int minZ, int coordMode, int componentType); + } + + protected static class Weight { + + public final instantiateStructure lambda; //Read above + + public final int weight; //Weight of this component + public int instancesSpawned; //How many components spawned? + public int instanceLimit; //Limit on amount of components: -1 for no limit + + public Weight(int weight, int limit, instantiateStructure lambda) { + this.weight = weight; + this.instanceLimit = limit; + this.lambda = lambda; + } + + //Checks if another structure can be spawned based on input data + public boolean canSpawnStructure(int componentAmount, int coordMode, StructureComponent component) { + return this.instanceLimit < 0 || this.instancesSpawned < this.instanceLimit; + } + + //Checks if another structure can be spawned at all (used to flag for removal from the list) + public boolean canSpawnMoreStructures() { + return this.instanceLimit < 0 || this.instancesSpawned < this.instanceLimit; + } + + } +} \ No newline at end of file diff --git a/src/main/java/com/hbm/world/gen/component/BunkerComponents.java b/src/main/java/com/hbm/world/gen/component/BunkerComponents.java new file mode 100644 index 000000000..b132b862d --- /dev/null +++ b/src/main/java/com/hbm/world/gen/component/BunkerComponents.java @@ -0,0 +1,547 @@ +package com.hbm.world.gen.component; + +import java.util.List; +import java.util.Random; + +import com.hbm.blocks.ModBlocks; +import com.hbm.lib.HbmChestContents; +import com.hbm.world.gen.ProceduralStructureStart; +import com.hbm.world.gen.ProceduralStructureStart.ProceduralComponent; +import com.hbm.world.gen.component.Component.ConcreteBricks; + +import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; +import net.minecraft.world.gen.structure.MapGenStructureIO; +import net.minecraft.world.gen.structure.StructureBoundingBox; +import net.minecraft.world.gen.structure.StructureComponent; + +public class BunkerComponents { + + public static class BunkerStart extends ProceduralStructureStart { + + public BunkerStart(World world, Random rand, int chunkX, int chunkZ) { + super(chunkX, chunkZ); + + this.sizeLimit = 7 + rand.nextInt(6); + this.distanceLimit = 40; + + final int x = chunkX * 16 + 8; + final int z = chunkZ * 16 + 8; + + Weight[] weights = new Weight[] { + new Weight(6, 3, Corridor::findValidPlacement), + new Weight(7, 4, BedroomL::findValidPlacement), + new Weight(10, 3, FunJunction::findValidPlacement), + new Weight(5, 2, BathroomL::findValidPlacement), + }; + + StructureComponent starter = new StartingHub(rand, x, z); + + buildStart(world, rand, starter, weights); + + this.markAvailableHeight(world, rand, 20); + } + + } + + public static void registerComponents() { + MapGenStructureIO.func_143031_a(StartingHub.class, "NTMBStartingHub"); + MapGenStructureIO.func_143031_a(Corridor.class, "NTMBCorridor"); + MapGenStructureIO.func_143031_a(BedroomL.class, "NTMBBedroomL"); + MapGenStructureIO.func_143031_a(FunJunction.class, "NTMBFunJunction"); + MapGenStructureIO.func_143031_a(BathroomL.class, "NTMBBathroomL"); + //TODO more rooms for more variety + } + + //why are we still doing this? + private static ConcreteBricks ConcreteBricks = new ConcreteBricks(); + + public static class StartingHub extends Component implements ProceduralComponent { + + private boolean[] paths = new boolean[3]; + + public StartingHub() { } + + public StartingHub(Random rand, int x, int z) { + super(rand, x, 64, z, 7, 5, 7); + } + + public StartingHub(int componentType, StructureBoundingBox box, int coordMode) { + super(componentType); + this.boundingBox = box; + this.coordBaseMode = coordMode; + } + + /** write to nbt */ + @Override + protected void func_143012_a(NBTTagCompound nbt) { + super.func_143012_a(nbt); + for(int i = 0; i < paths.length; i++) + nbt.setBoolean("p" + i, paths[i]); + } + + /** read from nbt */ + @Override + protected void func_143011_b(NBTTagCompound nbt) { + super.func_143011_b(nbt); + for(int i = 0; i < paths.length; i++) + paths[i] = nbt.getBoolean("p" + i); + } + + @Override + public void buildComponent(ProceduralStructureStart start, Random rand) { + paths[0] = this.getNextComponentEast(start, this, coordBaseMode, rand, 5, 1) != null; + paths[1] = this.getNextComponentAntiNormal(start, this, coordBaseMode, rand, 4, 1) != null; + paths[2] = this.getNextComponentWest(start, this, coordBaseMode, rand, 3, 1) != null; + } + + @Override + public boolean addComponentParts(World world, Random rand, StructureBoundingBox box) { + + fillWithAir(world, box, 1, 1, 1, 6, 3, 6); + //floor + fillWithMetadataBlocks(world, box, 1, 0, 1, 6, 0, 6, ModBlocks.vinyl_tile, 1); + //ceiling + fillWithBlocks(world, box, 1, 4, 1, 6, 4, 6, ModBlocks.vinyl_tile); + //upper shield + fillWithBlocks(world, box, 1, 4, 4, 3, 4, 6, ModBlocks.reinforced_stone); + fillWithBlocks(world, box, 0, 5, 0, 7, 5, 7, ModBlocks.reinforced_stone); + //walls + fillWithRandomizedBlocks(world, box, 0, 0, 0, 0, 4, 7, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 1, 0, 7, 6, 4, 7, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 7, 0, 0, 7, 4, 7, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 1, 0, 0, 6, 4, 0, rand, ConcreteBricks); + //meh, fix the area later + final int hpos = Component.getAverageHeight(world, boundingBox, box, componentType - boundingBox.minY); + //top hatch + placeBlockAtCurrentPosition(world, ModBlocks.concrete_slab, 1, 0, hpos, 5, box); + fillWithMetadataBlocks(world, box, 1, hpos, 4, 1, hpos, 6, ModBlocks.concrete_smooth_stairs, getStairMeta(0)); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_slab, 1, 2, hpos, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, getStairMeta(2), 2, hpos, 4, box); + placeBlockAtCurrentPosition(world, Blocks.trapdoor, getDecoModelMeta(8) >> 2, 2, hpos, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, getStairMeta(3), 2, hpos, 6, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_slab, 1, 2, hpos, 7, box); + fillWithMetadataBlocks(world, box, 3, hpos, 4, 3, hpos, 6, ModBlocks.concrete_smooth_stairs, getStairMeta(1)); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_slab, 1, 4, hpos, 5, box); + //tunnel downwards + fillWithBlocks(world, box, 1, 6, 4, 1, hpos - 1, 6, ModBlocks.reinforced_stone); + fillWithBlocks(world, box, 2, 1, 6, 2, hpos - 1, 6, ModBlocks.reinforced_stone); + fillWithBlocks(world, box, 3, 6, 4, 3, hpos - 1, 6, ModBlocks.reinforced_stone); + fillWithBlocks(world, box, 2, 6, 4, 2, hpos - 1, 4, ModBlocks.reinforced_stone); + fillWithMetadataBlocks(world, box, 2, 1, 5, 2, hpos - 1, 5, ModBlocks.ladder_sturdy, getDecoMeta(2)); //double check meta + + /* DECO */ + //lamps + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, 2, 5, 2, box); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, 5, 5, 2, box); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, 5, 5, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, 2, 4, 2, box); + placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, 5, 4, 2, box); + placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, 5, 4, 5, box); + //machine + placeBlockAtCurrentPosition(world, ModBlocks.deco_tungsten, 0, 3, 1, 6, box); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(2), 4, 1, 6, HbmChestContents.antenna/*TODO change */, 5); + placeBlockAtCurrentPosition(world, ModBlocks.deco_tungsten, 0, 5, 1, 6, box); + fillWithMetadataBlocks(world, box, 3, 2, 6, 5, 2, 6, ModBlocks.concrete_smooth_stairs, getStairMeta(2) | 4); + fillWithMetadataBlocks(world, box, 3, 3, 6, 5, 3, 6, ModBlocks.tape_recorder, getDecoMeta(2)); + //desk + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, getStairMeta(1) | 4, 3, 1, 4, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, getStairMeta(3) | 4, 4, 1, 4, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, getStairMeta(0) | 4, 5, 1, 4, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(0), 4, 2, 4, box); + //clear out entryways based on path + if(paths[0]) fillWithAir(world, box, 7, 1, 2, 7, 2, 3); + if(paths[1]) fillWithAir(world, box, 3, 1, 0, 4, 2, 0); + if(paths[2]) fillWithAir(world, box, 0, 1, 2, 0, 2, 3); + + return true; + } + } + + public static class Corridor extends Component implements ProceduralComponent { + + private boolean path; + + public Corridor() { } + + public Corridor(int componentType, StructureBoundingBox box, int coordMode) { + super(componentType); + this.boundingBox = box; + this.coordBaseMode = coordMode; + } + + /** write to nbt */ + @Override + protected void func_143012_a(NBTTagCompound nbt) { + super.func_143012_a(nbt); + nbt.setBoolean("p", path); + } + + /** read from nbt */ + @Override + protected void func_143011_b(NBTTagCompound nbt) { + super.func_143011_b(nbt); + path = nbt.getBoolean("p"); + } + + @Override + public void buildComponent(ProceduralStructureStart start, Random rand) { + path = this.getNextComponentNormal(start, this, coordBaseMode, rand, 3, 1) != null; + } + + @Override + public boolean addComponentParts(World world, Random rand, StructureBoundingBox box) { + + fillWithAir(world, box, 1, 1, 1, 4, 3, 5); + //floor + fillWithMetadataBlocks(world, box, 1, 0, 1, 4, 0, 5, ModBlocks.vinyl_tile, 1); + //ceiling + fillWithBlocks(world, box, 1, 4, 1, 4, 4, 5, ModBlocks.vinyl_tile); + //upper shield + fillWithBlocks(world, box, 0, 5, 0, 5, 5, 6, ModBlocks.reinforced_stone); + //walls + fillWithRandomizedBlocks(world, box, 0, 0, 0, 0, 4, 6, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 1, 0, 6, 4, 4, 6, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 5, 0, 0, 5, 4, 6, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 1, 0, 0, 4, 4, 0, rand, ConcreteBricks); + + //TODO different deco types? maybe plants or vending machines? + //save it to nbt either way + /* DECO */ + //lamps + fillWithBlocks(world, box, 2, 5, 3, 3, 5, 3, ModBlocks.reinforced_lamp_off); + fillWithBlocks(world, box, 2, 4, 3, 3, 4, 3, ModBlocks.fan); + //table w/ chairs + final int stairMetaS = getStairMeta(3); + final int stairMetaN = getStairMeta(2); + + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaS, 1, 1, 2, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaN, 1, 1, 4, box); + placeBlockAtCurrentPosition(world, Blocks.fence, 0, 1, 1, 3, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_pressure_plate, 1, 1, 2, 3, box); + //desk w/ computer + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | 4, 4, 1, 2, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaN, 4, 1, 4, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(1), 4, 2, 2, box); + //doors + placeDoor(world, box, ModBlocks.door_bunker, 1, true, rand.nextBoolean(), 2, 1, 0); + placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 3, 1, 0); + if(path) fillWithAir(world, box, 2, 1, 6, 3, 2, 6); + + return true; + } + + public static StructureComponent findValidPlacement(List components, Random rand, int x, int y, int z, int coordMode, int type) { + StructureBoundingBox box = ProceduralStructureStart.getComponentToAddBoundingBox(x, y, z, -3, -1, 0, 6, 6, 7, coordMode); + return box.minY > 10 && StructureComponent.findIntersecting(components, box) == null ? new Corridor(type, box, coordMode) : null; + } + } + + public static class BedroomL extends Component implements ProceduralComponent { + + private boolean path; + + public BedroomL() { } + + public BedroomL(int componentType, StructureBoundingBox box, int coordMode) { + super(componentType); + this.boundingBox = box; + this.coordBaseMode = coordMode; + } + + /** write to nbt */ + @Override + protected void func_143012_a(NBTTagCompound nbt) { + super.func_143012_a(nbt); + nbt.setBoolean("p", path); + } + + /** read from nbt */ + @Override + protected void func_143011_b(NBTTagCompound nbt) { + super.func_143011_b(nbt); + path = nbt.getBoolean("p"); + } + + @Override + public void buildComponent(ProceduralStructureStart start, Random rand) { + path = this.getNextComponentWest(start, this, coordBaseMode, rand, 9, 1) != null; + } + + @Override + public boolean addComponentParts(World world, Random rand, StructureBoundingBox box) { + + fillWithAir(world, box, 4, 1, 1, 8, 3, 4); + fillWithAir(world, box, 1, 1, 5, 8, 3, 9); + //floor + fillWithMetadataBlocks(world, box, 4, 0, 1, 8, 0, 4, ModBlocks.vinyl_tile, 1); + fillWithMetadataBlocks(world, box, 1, 0, 5, 8, 0, 9, ModBlocks.vinyl_tile, 1); + //ceiling + fillWithBlocks(world, box, 4, 4, 1, 8, 4, 4, ModBlocks.vinyl_tile); + fillWithBlocks(world, box, 1, 4, 5, 8, 4, 9, ModBlocks.vinyl_tile); + //upper shield + fillWithBlocks(world, box, 3, 5, 0, 9, 5, 3, ModBlocks.reinforced_stone); + fillWithBlocks(world, box, 0, 5, 4, 9, 5, 10, ModBlocks.reinforced_stone); + //walls + fillWithRandomizedBlocks(world, box, 0, 0, 4, 0, 4, 10, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 1, 0, 10, 8, 4, 10, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 9, 0, 0, 9, 4, 10, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 4, 0, 0, 8, 4, 0, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 3, 0, 0, 3, 4, 4, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 1, 0, 4, 2, 4, 4, rand, ConcreteBricks); + + /* DECO */ + //lamps + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, 3, 5, 7, box); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, 6, 5, 7, box); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, 6, 5, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, 3, 4, 7, box); + placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, 6, 4, 7, box); + placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, 6, 4, 3, box); + //Beds w/ table + final int stairMetaW = getStairMeta(0); + final int stairMetaE = getStairMeta(1); + final int stairMetaN = getStairMeta(2); + final int stairMetaS = getStairMeta(3); + placeBed(world, box, 1, 5, 1, 1); + placeBed(world, box, 1, 5, 1, 3); + placeBed(world, box, 2, 3, 1, 6); + placeBed(world, box, 2, 1, 1, 6); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaE | 4, 4, 1, 2, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaE | 4, 4, 1, 4, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | 4, 4, 1, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | 4, 2, 1, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.radiorec, getDecoMeta(4), 4, 2, 4, box); + //table w/ microwave + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | 4, 8, 1, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaN | 4, 8, 1, 4, box); + placeBlockAtCurrentPosition(world, Blocks.noteblock, 0, 8, 1, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.machine_microwave, getDecoMeta(4), 8, 2, 4, box); + //desk w/ computer + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaW | 4, 6, 1, 9, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaN | 4, 5, 1, 9, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaE | 4, 4, 1, 9, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaS, 5, 1, 8, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(0), 5, 2, 9, box); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 3, 1, 9, HbmChestContents.antenna/*TODO change */, 5); + //lockers + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 1, 7, HbmChestContents.antenna/*TODO change */, 3); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 2, 7, HbmChestContents.antenna/*TODO change */, 3); + fillWithBlocks(world, box, 8, 1, 8, 8, 2, 8, ModBlocks.deco_tungsten); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 1, 9, HbmChestContents.antenna/*TODO change */, 3); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 2, 9, HbmChestContents.antenna/*TODO change */, 3); + fillWithMetadataBlocks(world, box, 8, 3, 7, 8, 3, 9, Blocks.trapdoor, getDecoModelMeta(2) >> 2); + //doors + placeDoor(world, box, ModBlocks.door_bunker, 1, true, rand.nextBoolean(), 7, 1, 0); + placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 8, 1, 0); + if(path) fillWithAir(world, box, 0, 1, 8, 0, 2, 9); + + return true; + } + + public static StructureComponent findValidPlacement(List components, Random rand, int x, int y, int z, int coordMode, int type) { + StructureBoundingBox box = ProceduralStructureStart.getComponentToAddBoundingBox(x, y, z, -8, -1, 0, 10, 6, 11, coordMode); + return box.minY > 10 && StructureComponent.findIntersecting(components, box) == null ? new BedroomL(type, box, coordMode) : null; + } + } + + public static class FunJunction extends Component implements ProceduralComponent { + + private boolean[] paths = new boolean[2]; + + public FunJunction() { } + + public FunJunction(int componentType, StructureBoundingBox box, int coordMode) { + super(componentType); + this.boundingBox = box; + this.coordBaseMode = coordMode; + } + + /** write to nbt */ + @Override + protected void func_143012_a(NBTTagCompound nbt) { + super.func_143012_a(nbt); + for(int i = 0; i < paths.length; i++) + nbt.setBoolean("p" + i, paths[i]); + } + + /** read from nbt */ + @Override + protected void func_143011_b(NBTTagCompound nbt) { + super.func_143011_b(nbt); + for(int i = 0; i < paths.length; i++) + paths[i] = nbt.getBoolean("p" + i); + } + + @Override + public void buildComponent(ProceduralStructureStart start, Random rand) { + paths[0] = this.getNextComponentEast(start, this, coordBaseMode, rand, 6, 1) != null; + paths[1] = this.getNextComponentNormal(start, this, coordBaseMode, rand, 5, 1) != null; + } + + @Override + public boolean addComponentParts(World world, Random rand, StructureBoundingBox box) { + + fillWithAir(world, box, 1, 1, 1, 6, 3, 10); + //floor + fillWithMetadataBlocks(world, box, 1, 0, 1, 6, 0, 10, ModBlocks.vinyl_tile, 1); + //ceiling + fillWithBlocks(world, box, 1, 4, 1, 6, 4, 10, ModBlocks.vinyl_tile); + //upper shield + fillWithBlocks(world, box, 0, 5, 0, 7, 5, 11, ModBlocks.reinforced_stone); + //walls + fillWithRandomizedBlocks(world, box, 0, 0, 0, 0, 4, 11, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 1, 0, 11, 6, 4, 11, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 7, 0, 0, 7, 4, 11, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 1, 0, 0, 6, 4, 0, rand, ConcreteBricks); + + /* DECO */ + //lamps + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, 2, 5, 3, box); + fillWithBlocks(world, box, 5, 5, 5, 5, 5, 6, ModBlocks.reinforced_lamp_off); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, 2, 5, 8, box); + placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, 2, 4, 3, box); + fillWithBlocks(world, box, 5, 4, 5, 5, 4, 6, ModBlocks.fan); + placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, 2, 4, 8, box); + //couches w/ tables + final int stairMetaW = getStairMeta(0); + final int stairMetaE = getStairMeta(1); + final int stairMetaN = getStairMeta(2); + final int stairMetaS = getStairMeta(3); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaE, 1, 1, 1, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaS, 2, 1, 1, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaW, 3, 1, 1, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaS, 1, 1, 4, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaE, 1, 1, 5, box); + fillWithMetadataBlocks(world, box, 1, 1, 6, 2, 1, 6, Blocks.oak_stairs, stairMetaN); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaW, 3, 1, 6, box); + placeBlockAtCurrentPosition(world, Blocks.fence, 0, 1, 1, 3, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_pressure_plate, 0, 1, 2, 3, box); + placeBlockAtCurrentPosition(world, Blocks.fence, 0, 3, 1, 4, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_pressure_plate, 0, 3, 2, 4, box); + //table & chest + placeBlockAtCurrentPosition(world, Blocks.fence, 0, 6, 1, 2, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_pressure_plate, 0, 6, 2, 2, box); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 6, 1, 3, HbmChestContents.antenna/*TODO change */, 7); + //desk w/ computer + bobblehead + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | 4, 1, 1, 8, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaE | 4, 1, 1, 9, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaN | 4, 1, 1, 10, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaS, 2, 1, 8, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(3), 1, 2, 9, box); + if(rand.nextBoolean()) placeRandomBobble(world, box, rand, 1, 2, 8); + //jukebox + fillWithBlocks(world, box, 6, 1, 8, 6, 2, 8, Blocks.noteblock); + placeBlockAtCurrentPosition(world, ModBlocks.deco_tungsten, 0, 6, 1, 9, box); + placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, getDecoMeta(4), 6, 2, 9, box); + fillWithBlocks(world, box, 6, 3, 8, 6, 3, 9, ModBlocks.concrete_slab); + placeBlockAtCurrentPosition(world, Blocks.lever, getDecoMeta(2), 5, 1, 9, box); //double-check meta + //doors + placeDoor(world, box, ModBlocks.door_bunker, 1, true, rand.nextBoolean(), 4, 1, 0); + placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 5, 1, 0); + if(paths[0]) fillWithAir(world, box, 7, 1, 5, 7, 2, 6); + if(paths[1]) fillWithAir(world, box, 4, 1, 11, 5, 2, 11); + + return true; + } + + public static StructureComponent findValidPlacement(List components, Random rand, int x, int y, int z, int coordMode, int type) { + StructureBoundingBox box = ProceduralStructureStart.getComponentToAddBoundingBox(x, y, z, -5, -1, 0, 8, 6, 12, coordMode); + return box.minY > 10 && StructureComponent.findIntersecting(components, box) == null ? new FunJunction(type, box, coordMode) : null; + } + } + + public static class BathroomL extends Component implements ProceduralComponent { + + private boolean path; + + public BathroomL() { } + + public BathroomL(int componentType, StructureBoundingBox box, int coordMode) { + super(componentType); + this.boundingBox = box; + this.coordBaseMode = coordMode; + } + + /** write to nbt */ + @Override + protected void func_143012_a(NBTTagCompound nbt) { + super.func_143012_a(nbt); + nbt.setBoolean("p", path); + } + + /** read from nbt */ + @Override + protected void func_143011_b(NBTTagCompound nbt) { + super.func_143011_b(nbt); + path = nbt.getBoolean("p"); + } + + @Override + public void buildComponent(ProceduralStructureStart start, Random rand) { + path = this.getNextComponentEast(start, this, coordBaseMode, rand, 3, 1) != null; + } + + @Override + public boolean addComponentParts(World world, Random rand, StructureBoundingBox box) { + + fillWithAir(world, box, 1, 1, 1, 7, 3, 9); + //floor + fillWithMetadataBlocks(world, box, 1, 0, 1, 7, 0, 9, ModBlocks.vinyl_tile, 1); + //ceiling + fillWithBlocks(world, box, 1, 4, 1, 7, 4, 9, ModBlocks.vinyl_tile); + //upper shield + fillWithBlocks(world, box, 0, 5, 0, 8, 5, 10, ModBlocks.reinforced_stone); + //walls + fillWithRandomizedBlocks(world, box, 0, 0, 0, 0, 4, 10, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 1, 0, 10, 7, 4, 10, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 8, 0, 0, 8, 4, 10, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 1, 0, 0, 7, 4, 0, rand, ConcreteBricks); + + /* DECO */ + //lamps + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, 2, 5, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, 2, 5, 7, box); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, 5, 5, 7, box); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, 5, 5, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, 2, 4, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, 2, 4, 7, box); + placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, 5, 4, 7, box); + placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, 5, 4, 3, box); + //sinks + for(int i = 2; i <= 8; i += 2) { + placeBlockAtCurrentPosition(world, Blocks.cauldron, rand.nextInt(4), 1, 1, i, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_slab, 8, 1, 1, i + 1, box); + placeBlockAtCurrentPosition(world, Blocks.tripwire_hook, getTripwireMeta(3), 1, 2, i, box); + } + //hand-dryers (industrial-strength) + placeBlockAtCurrentPosition(world, ModBlocks.steel_beam, 3, 4, 1, 9, box); + placeBlockAtCurrentPosition(world, ModBlocks.fan, getDecoMeta(2), 4, 2, 9, box); + placeBlockAtCurrentPosition(world, Blocks.stone_button, 2, 3, 2, 9, box); //TODO button meta + placeBlockAtCurrentPosition(world, ModBlocks.steel_beam, 3, 6, 1, 9, box); + placeBlockAtCurrentPosition(world, ModBlocks.fan, getDecoMeta(2), 6, 2, 9, box); + placeBlockAtCurrentPosition(world, Blocks.stone_button, 1, 7, 2, 9, box); + //stalls w/ toilets + for(int i = 1; i <= 5; i += 2) { + placeBlockAtCurrentPosition(world, ModBlocks.door_metal, 0, 5, 1, i, box); + placeDoor(world, box, ModBlocks.door_metal, 0, false, rand.nextBoolean(), 5, 1, i); + fillWithMetadataBlocks(world, box, 5, 1, i + 1, 5, 2, i + 1, ModBlocks.steel_corner, getDecoMeta(2)); + fillWithMetadataBlocks(world, box, 6, 1, i + 1, 7, 2, i + 1, ModBlocks.steel_wall, getDecoMeta(2)); + placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_rim, 0, 7, 1, i, box); + placeBlockAtCurrentPosition(world, Blocks.trapdoor, getDecoModelMeta(2) >> 2, 7, 2, i, box); + } + //doors + placeDoor(world, box, ModBlocks.door_bunker, 1, true, rand.nextBoolean(), 2, 1, 0); + placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 3, 1, 0); + if(path) fillWithAir(world, box, 8, 1, 7, 8, 2, 8); + + return true; + } + + public static StructureComponent findValidPlacement(List components, Random rand, int x, int y, int z, int coordMode, int type) { + StructureBoundingBox box = ProceduralStructureStart.getComponentToAddBoundingBox(x, y, z, -3, -1, 0, 9, 6, 11, coordMode); + return box.minY > 10 && StructureComponent.findIntersecting(components, box) == null ? new BathroomL(type, box, coordMode) : null; + } + } +} diff --git a/src/main/java/com/hbm/world/worldgen/components/CivilianFeatures.java b/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java similarity index 99% rename from src/main/java/com/hbm/world/worldgen/components/CivilianFeatures.java rename to src/main/java/com/hbm/world/gen/component/CivilianFeatures.java index 958313bd7..60190d1c0 100644 --- a/src/main/java/com/hbm/world/worldgen/components/CivilianFeatures.java +++ b/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java @@ -1,4 +1,4 @@ -package com.hbm.world.worldgen.components; +package com.hbm.world.gen.component; import java.util.Random; diff --git a/src/main/java/com/hbm/world/worldgen/components/Component.java b/src/main/java/com/hbm/world/gen/component/Component.java similarity index 94% rename from src/main/java/com/hbm/world/worldgen/components/Component.java rename to src/main/java/com/hbm/world/gen/component/Component.java index 9c6c8e527..effd0c592 100644 --- a/src/main/java/com/hbm/world/worldgen/components/Component.java +++ b/src/main/java/com/hbm/world/gen/component/Component.java @@ -1,4 +1,4 @@ -package com.hbm.world.worldgen.components; +package com.hbm.world.gen.component; import java.util.Random; @@ -108,6 +108,26 @@ abstract public class Component extends StructureComponent { return true; } + protected static int getAverageHeight(World world, StructureBoundingBox area, StructureBoundingBox box, int y) { + + int total = 0; + int iterations = 0; + + for(int z = area.minZ; z <= area.maxZ; z++) { + for(int x = area.minX; x <= area.maxX; x++) { + if(box.isVecInside(x, y, z)) { + total += Math.max(world.getTopSolidOrLiquidBlock(x, z), world.provider.getAverageGroundLevel()); + iterations++; + } + } + } + + if(iterations == 0) + return -1; + + return total / iterations; + } + public int getCoordMode() { return this.coordBaseMode; } @@ -224,35 +244,41 @@ abstract public class Component extends StructureComponent { return metadata; } - /* For Later: - * 0/S: S->S; W->W; N->N; E->E - * 1/W: S->W; W->N; N->E; E->S - * 2/N: S->N; W->E; N->S; E->W - * 3/E: S->E; W->S; N->W; E->N - * 0/b00/W, 1/b01/N, 2/b10/E, 3/b11/S - */ - /** - * Places door at specified location with orientation-adjusted meta - * 0 = West, 1 = North, 2 = East, 3 = South + /* + * Assuming door is on opposite side of block from direction: East: 0, South: 1, West: 2, North: 3
+ * Doors cleverly take advantage of the use of two blocks to get around the 16 value limit on metadata, with the top and bottom blocks essentially relying on eachother for everything.
+ *
  • The 4th bit (0b1000 or 8) indicates whether it is the top block: on for yes, off for no. + *
  • When the 4th bit is on, the 1st bit indicates whether the door opens to the right or not: on (0b1001) for yes, off (0b1000) for no. + *
  • The bits 1 & 2 (0b0011 or 3) indicate the direction the door is facing. + *
  • When the 4th bit is off, the 3rd bit (0b0100 or 4) indicates whether the door is open or not: on for yes, off for no. Used for doors' interactions with redstone power. + *
  • */ - protected void placeDoor(World world, StructureBoundingBox box, Block door, int meta, int featureX, int featureY, int featureZ) { - switch(this.coordBaseMode) { - default: - break; - case 1: - meta = (meta + 1) % 4; break; - case 2: - meta = meta ^ 2; break; //Flip second bit - case 3: - meta = (meta - 1) % 4; break; - } - + protected void placeDoor(World world, StructureBoundingBox box, Block door, int dirMeta, boolean opensRight, boolean isOpen, int featureX, int featureY, int featureZ) { //isOpen for randomly opened doors int posX = this.getXWithOffset(featureX, featureZ); int posY = this.getYWithOffset(featureY); int posZ = this.getZWithOffset(featureX, featureZ); - this.placeBlockAtCurrentPosition(world, door, meta, featureX, featureY, featureZ, box); - ItemDoor.placeDoorBlock(world, posX, posY, posZ, meta, door); + if(!box.isVecInside(posX, posY, posZ)) return; + + switch(this.coordBaseMode) { + default: + break; + case 1: + dirMeta = (dirMeta + 1) % 4; break; + case 2: + dirMeta ^= 2; break; //Flip second bit + case 3: + dirMeta = (dirMeta - 1) % 4; break; + } + + //hee hoo + int metaTop = opensRight ? 0b1001 : 0b1000; + int metaBottom = dirMeta | (isOpen ? 0b100 : 0); + + if(world.doesBlockHaveSolidTopSurface(world, posX, posY - 1, posZ)) { + world.setBlock(posX, posY, posZ, door, metaBottom, 2); + world.setBlock(posX, posY + 1, posZ, door, metaTop, 2); + } } /**N:0 W:1 S:2 E:3 */ diff --git a/src/main/java/com/hbm/world/worldgen/components/OfficeFeatures.java b/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java similarity index 96% rename from src/main/java/com/hbm/world/worldgen/components/OfficeFeatures.java rename to src/main/java/com/hbm/world/gen/component/OfficeFeatures.java index 22ad5fead..3a3549106 100644 --- a/src/main/java/com/hbm/world/worldgen/components/OfficeFeatures.java +++ b/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java @@ -1,4 +1,4 @@ -package com.hbm.world.worldgen.components; +package com.hbm.world.gen.component; import java.util.Random; @@ -200,9 +200,9 @@ public class OfficeFeatures { randomlyFillWithBlocks(world, box, rand, 0.25F, 6, 3, 1, sizeX - 1, 3, 6, Blocks.web); randomlyFillWithBlocks(world, box, rand, 0.25F, 10, 3, 7, sizeX - 1, 3, sizeZ - 1, Blocks.web); //Doors - placeDoor(world, box, ModBlocks.door_office, 3, 2, 1, 7); - placeDoor(world, box, ModBlocks.door_office, 3, 3, 1, 7); - placeDoor(world, box, ModBlocks.door_office, 0, 5, 1, 6); + placeDoor(world, box, ModBlocks.door_office, 3, false, rand.nextBoolean(), 2, 1, 7); + placeDoor(world, box, ModBlocks.door_office, 3, false, rand.nextBoolean(), 3, 1, 7); + placeDoor(world, box, ModBlocks.door_office, 0, false, rand.nextBoolean(), 5, 1, 6); //Woot if(!this.hasPlacedLoot[0]) @@ -427,16 +427,16 @@ public class OfficeFeatures { fillWithRandomizedBlocks(world, box, 2, 11, 10, 3, 11, 10, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 2, 9, 10, 2, 10, 10, rand, ConcreteBricks); //Doors - placeDoor(world, box, Blocks.wooden_door, 3, 1, 1, 14); - placeDoor(world, box, Blocks.wooden_door, 3, 2, 1, 14); - placeDoor(world, box, Blocks.wooden_door, 0, 0, 1, 12); - placeDoor(world, box, Blocks.wooden_door, 0, 0, 1, 13); - placeDoor(world, box, ModBlocks.door_office, 0, 6, 1, 3); - placeDoor(world, box, ModBlocks.door_office, 0, 5, 5, 3); - placeDoor(world, box, ModBlocks.door_office, 2, 4, 5, 11); - placeDoor(world, box, ModBlocks.door_office, 0, 10, 9, 3); - placeDoor(world, box, ModBlocks.door_office, 1, 3, 9, 10); - placeDoor(world, box, ModBlocks.door_metal, 0, 5, 13, 3); + placeDoor(world, box, Blocks.wooden_door, 3, false, rand.nextBoolean(), 1, 1, 14); + placeDoor(world, box, Blocks.wooden_door, 3, true, rand.nextBoolean(), 2, 1, 14); + placeDoor(world, box, Blocks.wooden_door, 0, false, rand.nextBoolean(), 0, 1, 12); + placeDoor(world, box, Blocks.wooden_door, 0, true, rand.nextBoolean(), 0, 1, 13); + placeDoor(world, box, ModBlocks.door_office, 0, false, rand.nextBoolean(), 6, 1, 3); + placeDoor(world, box, ModBlocks.door_office, 0, false, rand.nextBoolean(), 5, 5, 3); + placeDoor(world, box, ModBlocks.door_office, 2, false, rand.nextBoolean(), 4, 5, 11); + placeDoor(world, box, ModBlocks.door_office, 0, false, rand.nextBoolean(), 10, 9, 3); + placeDoor(world, box, ModBlocks.door_office, 1, false, rand.nextBoolean(), 3, 9, 10); + placeDoor(world, box, ModBlocks.door_metal, 0, false, rand.nextBoolean(), 5, 13, 3); //Furniture //Floor 1 int NorthStairMeta = getStairMeta(2); diff --git a/src/main/java/com/hbm/world/worldgen/components/RuinFeatures.java b/src/main/java/com/hbm/world/gen/component/RuinFeatures.java similarity index 99% rename from src/main/java/com/hbm/world/worldgen/components/RuinFeatures.java rename to src/main/java/com/hbm/world/gen/component/RuinFeatures.java index a04e2ca2c..b5f5d141d 100644 --- a/src/main/java/com/hbm/world/worldgen/components/RuinFeatures.java +++ b/src/main/java/com/hbm/world/gen/component/RuinFeatures.java @@ -1,4 +1,4 @@ -package com.hbm.world.worldgen.components; +package com.hbm.world.gen.component; import java.util.Random; diff --git a/src/main/java/com/hbm/world/worldgen/NTMWorldGenerator.java b/src/main/java/com/hbm/world/worldgen/NTMWorldGenerator.java deleted file mode 100644 index 01c7b7acc..000000000 --- a/src/main/java/com/hbm/world/worldgen/NTMWorldGenerator.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.hbm.world.worldgen; - -import java.util.Random; - -import com.hbm.config.StructureConfig; - -import cpw.mods.fml.common.IWorldGenerator; -import net.minecraft.block.Block; -import net.minecraft.world.World; -import net.minecraft.world.chunk.IChunkProvider; -import net.minecraftforge.event.terraingen.InitMapGenEvent.EventType; -import net.minecraftforge.event.terraingen.TerrainGen; - -public class NTMWorldGenerator implements IWorldGenerator { - - private MapGenNTMFeatures NTMFeatureGenerator = new MapGenNTMFeatures(); - - { - NTMFeatureGenerator = (MapGenNTMFeatures) TerrainGen.getModdedMapGen(NTMFeatureGenerator, EventType.CUSTOM); - } - - @Override - public void generate(Random rand, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) { - - switch (world.provider.dimensionId) { - case -1: - generateNether(world, rand, chunkGenerator, chunkX, chunkZ); break; - case 0: - generateSurface(world, rand, chunkGenerator, chunkX, chunkZ); break; - case 1: - generateEnd(world, rand, chunkGenerator, chunkX, chunkZ); break; - } - } - - private void generateNether(World world, Random rand, IChunkProvider chunkGenerator, int chunkX, int chunkZ) { } - - private void generateSurface(World world, Random rand, IChunkProvider chunkGenerator, int chunkX, int chunkZ) { - Block[] ablock = new Block[65536]; - - //WorldConfig.enableStructures - /** Spawns structure starts. Utilizes canSpawnStructureAtCoords() + if else checks in Start constructor */ - if(StructureConfig.enableStructures) { - this.NTMFeatureGenerator.func_151539_a(chunkGenerator, world, chunkX, chunkZ, ablock); - } - - /** Actually generates structures in a given chunk. */ - if(StructureConfig.enableStructures) { - this.NTMFeatureGenerator.generateStructuresInChunk(world, rand, chunkX, chunkZ); - } - } - - private void generateEnd(World world, Random rand, IChunkProvider chunkGenerator, int chunkX, int chunkZ) { } -} diff --git a/src/main/java/com/hbm/world/worldgen/components/ProceduralComponents.java b/src/main/java/com/hbm/world/worldgen/components/ProceduralComponents.java deleted file mode 100644 index 4bf1f4801..000000000 --- a/src/main/java/com/hbm/world/worldgen/components/ProceduralComponents.java +++ /dev/null @@ -1,240 +0,0 @@ -package com.hbm.world.worldgen.components; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Random; - -import net.minecraft.world.gen.structure.StructureBoundingBox; - -public abstract class ProceduralComponents { - - protected List componentWeightList; - - protected static Weight[] weightArray = new Weight[] { }; - - public void prepareComponents() { - componentWeightList = new ArrayList(); - - for(int i = 0; i < weightArray.length; i++) { - weightArray[i].instancesSpawned = 0; - componentWeightList.add(weightArray[i]); - } - } - - protected int getTotalWeight() { - boolean flag = false; - int totalWeight = 0; - Weight weight; - - for(Iterator iterator = componentWeightList.iterator(); iterator.hasNext(); totalWeight += weight.weight) { //Iterates over the entire list to find the total weight - weight = (Weight) iterator.next(); - - if(weight.instanceLimit >= 0 && weight.instancesSpawned < weight.instanceLimit) //can more structure pieces be added, in general? - flag = true; - } - - return flag ? totalWeight : -1; - } - - protected ProceduralComponent getWeightedComponent(ControlComponent original, List components, Random rand, int minX, int minY, int minZ, int coordMode, int componentType) { - int totalWeight = getTotalWeight(); - - if(totalWeight < 0) - return null; - - for(int i = 0; i < 5; i++) { - int value = rand.nextInt(totalWeight); //Pick a random value, based on how many parts there are already - Iterator iterator = componentWeightList.iterator(); - - while(iterator.hasNext()) { - Weight weight = (Weight)iterator.next(); - value -= weight.weight; //Iterate over the list until the value is less than 0 - - if(value < 0) { - if(!weight.canSpawnStructure(componentType, coordMode, original.lastComponent)) //Additional checks based on game state info preventing spawn? start from beginning - break; - - ProceduralComponent component = (ProceduralComponent) weight.lambda.findValidPlacement(components, rand, minX, minY, minZ, coordMode, componentType); //Construct the chosen component - - if(component != null) { //If it has been constructed, add it - weight.instancesSpawned++; - - if(!weight.canSpawnMoreStructures()) //Structure can no longer be spawned regardless of game state? remove as an option - componentWeightList.remove(weight); - - return component; - } - - } - } - } - - return null; - } - - protected int sizeLimit = 50; - protected int distanceLimit = 64; - - protected ProceduralComponent getNextValidComponent(ControlComponent original, List components, Random rand, int minX, int minY, int minZ, int coordMode, int componentType) { - - if(components.size() > sizeLimit) //Hard limit on amount of components - return null; - - if(Math.abs(minX - original.getBoundingBox().minX) <= distanceLimit && Math.abs(minZ - original.getBoundingBox().minZ) <= distanceLimit) { //Hard limit on spread of structure - - ProceduralComponent structure = getWeightedComponent(original, components, rand, minX, minY, minZ, coordMode, componentType + 1); //Returns null if all checks fail - - if(structure != null) { - components.add(structure); //Adds component to structure start list - original.queuedComponents.add(structure); //Add it to the list of queued components waiting to be built - } - - return structure; - } - - return null; - } - - public static StructureBoundingBox getComponentToAddBoundingBox(int posX, int posY, int posZ, int offsetX, int offsetY, int offsetZ, int maxX, int maxY, int maxZ, int coordMode) { - switch(coordMode) { - case 0: //South - return new StructureBoundingBox(posX + offsetX, posY + offsetY, posZ + offsetZ, posX + maxX - 1 + offsetX, posY + maxY - 1 + offsetY, posZ + maxZ - 1 + offsetZ); - case 1: //West - return new StructureBoundingBox(posX - maxZ + 1 - offsetZ, posY + offsetY, posZ + offsetX, posX - offsetZ, posY + maxY - 1 + offsetY, posZ + maxX - 1 + offsetX); - case 2: //North - return new StructureBoundingBox(posX - maxX + 1 - offsetX, posY + offsetY, posZ - maxZ + 1 - offsetZ, posX - offsetX, posY + maxY - 1 + offsetY, posZ + offsetZ); - case 3: //East - return new StructureBoundingBox(posX + offsetZ, posY + offsetY, posZ - maxX + 1 - offsetX, posX + maxZ - 1 + offsetZ, posY + maxY - 1 + offsetY, posZ - offsetX); - default: - return new StructureBoundingBox(posX + offsetX, posY + offsetY, posZ + offsetZ, posX + maxX - 1 + offsetX, posY + maxY - 1 + offsetY, posZ + maxZ - 1 + offsetZ); - } - } - - /** StructureComponent that supports procedural generation */ - public abstract static class ProceduralComponent extends Component { - - public ProceduralComponent() { } - - public ProceduralComponent(int componentType) { - super(componentType); //Important to carry over. - } - - public void buildComponent(ProceduralComponents instance, ControlComponent original, List components, Random rand) { } - - /** Gets next component in the direction this component is facing.
    'original' refers to the initial starting component (hard distance limits), 'components' refers to the StructureStart list. */ - protected ProceduralComponent getNextComponentNormal(ProceduralComponents instance, ControlComponent original, List components, Random rand, int offset, int offsetY) { - switch(this.coordBaseMode) { - case 0: //South - return instance.getNextValidComponent(original, components, rand, this.boundingBox.minX + offset, this.boundingBox.minY + offsetY, this.boundingBox.maxZ + 1, this.coordBaseMode, this.getComponentType()); - case 1: //West - return instance.getNextValidComponent(original, components, rand, this.boundingBox.minX - 1, this.boundingBox.minY + offsetY, this.boundingBox.minZ + offset, this.coordBaseMode, this.getComponentType()); - case 2: //North - return instance.getNextValidComponent(original, components, rand, this.boundingBox.maxX - offset, this.boundingBox.minY + offsetY, this.boundingBox.minZ - 1, this.coordBaseMode, this.getComponentType()); - case 3: //East - return instance.getNextValidComponent(original, components, rand, this.boundingBox.maxX + 1, this.boundingBox.minY + offsetY, this.boundingBox.maxZ - offset, this.coordBaseMode, this.getComponentType()); - default: - return null; - } - } - - /** Gets next component in the opposite direction this component is facing. */ - protected ProceduralComponent getNextComponentAntiNormal(ProceduralComponents instance, ControlComponent original, List components, Random rand, int offset, int offsetY) { - switch(this.coordBaseMode) { - case 0: //South - return instance.getNextValidComponent(original, components, rand, this.boundingBox.maxX - offset, this.boundingBox.minY + offsetY, this.boundingBox.minZ - 1, 2, this.getComponentType()); - case 1: //West - return instance.getNextValidComponent(original, components, rand, this.boundingBox.maxX + 1, this.boundingBox.minY + offsetY, this.boundingBox.maxZ - offset, 3, this.getComponentType()); - case 2: //North - return instance.getNextValidComponent(original, components, rand, this.boundingBox.minX + offset, this.boundingBox.minY + offsetY, this.boundingBox.maxZ + 1, 0, this.getComponentType()); - case 3: //East - return instance.getNextValidComponent(original, components, rand, this.boundingBox.minX - 1, this.boundingBox.minY + offsetY, this.boundingBox.minZ + offset, 1, this.getComponentType()); - default: - return null; - } - } - - //Keep in mind for these methods: a given room would have its *actual entrance* opposite the side it is facing. - /** Gets next component, to the West (-X) relative to this component. */ - protected ProceduralComponent getNextComponentNX(ProceduralComponents instance, ControlComponent original, List components, Random rand, int offset, int offsetY) { - switch(this.coordBaseMode) { - case 0: //South - return instance.getNextValidComponent(original, components, rand, this.boundingBox.minX - 1, this.boundingBox.minY + offsetY, this.boundingBox.minZ + offset, 1, this.getComponentType()); - case 1: //West - return instance.getNextValidComponent(original, components, rand, this.boundingBox.maxX - offset, this.boundingBox.minY + offsetY, this.boundingBox.minZ - 1, 2, this.getComponentType()); - case 2: //North - return instance.getNextValidComponent(original, components, rand, this.boundingBox.maxX + 1, this.boundingBox.minY + offsetY, this.boundingBox.maxZ - offset, 3, this.getComponentType()); - case 3: //East - return instance.getNextValidComponent(original, components, rand, this.boundingBox.minX + offset, this.boundingBox.minY + offsetY, this.boundingBox.maxZ + 1, 0, this.getComponentType()); - default: - return null; - } - } - - /** Gets next component, to the East (+X) relative to this component. */ - protected ProceduralComponent getNextComponentPX(ProceduralComponents instance, ControlComponent original, List components, Random rand, int offset, int offsetY) { - switch(this.coordBaseMode) { - case 0: //South - return instance.getNextValidComponent(original, components, rand, this.boundingBox.maxX + 1, this.boundingBox.minY + offsetY, this.boundingBox.maxZ - offset, 3, this.getComponentType() + 1); - case 1: //West - return instance.getNextValidComponent(original, components, rand, this.boundingBox.minX + offset, this.boundingBox.minY + offsetY, this.boundingBox.maxZ + 1, 0, this.getComponentType() + 1); - case 2: //North - return instance.getNextValidComponent(original, components, rand, this.boundingBox.minX - 1, this.boundingBox.minY + offsetY, this.boundingBox.minZ + offset, 1, this.getComponentType() + 1); - case 3: //East - return instance.getNextValidComponent(original, components, rand, this.boundingBox.maxX - offset, this.boundingBox.minY + offsetY, this.boundingBox.minZ - 1, 2, this.getComponentType() + 1); - default: - return null; - } - } - - /** Finds valid placement, using input information. Should be passed as a method reference to its respective Weight. */ - //Static so no override (cringe!) - //public static ProceduralComponent findValidPlacement(List components, Random rand, int minX, int minY, int minZ, int coordMode, int componentType) { return null; } - } - - /** ProceduralComponent that can serve as a master "control component" for procedural generation and building of components. */ - public abstract static class ControlComponent extends ProceduralComponent { - - public List queuedComponents = new ArrayList(); //List of all queued ProceduralComponents waiting to be built. Randomly iterated over until limits like component amt or dist are reached. - public ProceduralComponent lastComponent = this; //Last component to be built. Used as input for the random selection's checks for specific components. - - public ControlComponent() { } - - public ControlComponent(int componentType) { - super(componentType); - } - } - - /** Returns a new instance of this structureComponent, or null if not able to be placed.
    Based on bounding box checks. */ - @FunctionalInterface - interface instantiateStructure { - ProceduralComponent findValidPlacement(List components, Random rand, int minX, int minY, int minZ, int coordMode, int componentType); - } - - protected static class Weight { - - public final instantiateStructure lambda; //Read above - - public final int weight; //Weight of this component - public int instancesSpawned; //How many components spawned? - public int instanceLimit; //Limit on amount of components: -1 for no limit - - public Weight(int weight, int limit, instantiateStructure lambda) { - this.weight = weight; - this.instanceLimit = limit; - this.lambda = lambda; - } - - //Checks if another structure can be spawned based on input data - public boolean canSpawnStructure(int componentAmount, int coordMode, ProceduralComponent component) { - return this.instanceLimit < 0 || this.instancesSpawned < this.instanceLimit; - } - - //Checks if another structure can be spawned at all (used to flag for removal from the list) - public boolean canSpawnMoreStructures() { - return this.instanceLimit < 0 || this.instancesSpawned < this.instanceLimit; - } - - } - -} From 404aacc32befcd5d58511b03d050e42cd1cd682f Mon Sep 17 00:00:00 2001 From: HbmMods Date: Tue, 30 May 2023 14:39:24 +0200 Subject: [PATCH 022/109] Delete ExampleMod.java --- .../com/example/examplemod/ExampleMod.java | 20 ------------------- 1 file changed, 20 deletions(-) delete mode 100644 src/main/java/com/example/examplemod/ExampleMod.java diff --git a/src/main/java/com/example/examplemod/ExampleMod.java b/src/main/java/com/example/examplemod/ExampleMod.java deleted file mode 100644 index 4245c7e92..000000000 --- a/src/main/java/com/example/examplemod/ExampleMod.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.example.examplemod; - -import net.minecraft.init.Blocks; -import cpw.mods.fml.common.Mod; -import cpw.mods.fml.common.Mod.EventHandler; -import cpw.mods.fml.common.event.FMLInitializationEvent; - -@Mod(modid = ExampleMod.MODID, version = ExampleMod.VERSION) -public class ExampleMod -{ - public static final String MODID = "examplemod"; - public static final String VERSION = "1.0"; - - @EventHandler - public void init(FMLInitializationEvent event) - { - // some example code - System.out.println("DIRT BLOCK >> "+Blocks.dirt.getUnlocalizedName()); - } -} From d50506ce1380b1b7e30ffb042dea04eb417f2e5c Mon Sep 17 00:00:00 2001 From: HbmMods Date: Tue, 30 May 2023 14:40:48 +0200 Subject: [PATCH 023/109] Update en_US.lang --- src/main/resources/assets/hbm/lang/en_US.lang | 358 ++++++++++-------- 1 file changed, 190 insertions(+), 168 deletions(-) diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 96fc869ad..5091ddb4b 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -36,16 +36,16 @@ achievement.concrete.desc=A Bolshevik's favorite. achievement.concrete=Old Reliable achievement.desh.desc="Come on then, you lot. Places to go!" achievement.desh=Le Verrier -achievement.digammaFeel.desc=the hollow within. -achievement.digammaFeel=The Terror of Feeling +achievement.digammaFeel.desc=My eyes are bleeding +achievement.digammaFeel=SEWAGE-INFUSED GARBAGE WORLD achievement.digammaKauaiMoho.desc=Everything is awful, here's some hot choccy. -achievement.digammaKauaiMoho=Sing, sing me the song of the Kauai Moho +achievement.digammaKauaiMoho=SING, SING ME THE SONG OF THE KAUAI MOHO achievement.digammaKnow.desc=what this world is about. -achievement.digammaKnow=The Terror of Knowing -achievement.digammaSee.desc=into the abyss. -achievement.digammaSee=The Terror of Seeing +achievement.digammaKnow=THE TERROR OF KNOWING +achievement.digammaSee.desc=It's a bit dark, bring a flashlight. +achievement.digammaSee=ENTER THE ABYSS achievement.digammaUpOnTop.desc=Admire my son, he's my clone. -achievement.digammaUpOnTop=Admire Me, Admire my Home +achievement.digammaUpOnTop=ADMIRE ME, ADMIRE MY HOME achievement.fiend.desc=Be mean. achievement.fiend2.desc=Be meaner. achievement.fiend2=Delinquent 2: Delinquent Harder @@ -56,6 +56,8 @@ achievement.fusion.desc=A dance of deuterons, tritons, and energy. achievement.fusion=Fusion achievement.gasCent.desc=Unenriched Uranium hates him! achievement.gasCent=The Zippe Style +achievement.goFish.desc=Nautical Crucifixion +achievement.goFish=Go Fish achievement.hidden.desc=Kill a tainted creeper with a falling boxcar. achievement.hidden=Hidden Catalog achievement.horizonsBonus.desc=honest to god what the hell is wrong with you @@ -120,7 +122,7 @@ achievement.technetium.desc=It's medicinal, it's medicinal! achievement.technetium=Big Man, Pig Man achievement.watzBoom.desc=Drain your septic tank next time. achievement.watzBoom=Disgusting -achievement.watz.desc=Fólkvangr fields possibly included. +achievement.watz.desc=Fólkvangr fields possibly included. achievement.watz=The Power of Element-126 achievement.witchtaunter.desc=Those wacky creatures got nothing on you! achievement.witchtaunter=Witch Taunter @@ -194,129 +196,129 @@ book.test.page1=Test Page 1 book.error.cover=Hadron Collider:$Troubleshooting book.error.title1=Error 0x01 [NC] -book.error.page1=§lName:§r "ERROR_NO_CHARGE" §lDescription:§r The particle has reached a segment with insufficient charge. §lPotential fix:§r Either replace one of the plugs that the particle successfully passes with higher-tier ones or add another plug slightly before the segment where the particle expires. +book.error.page1=§lName:§r "ERROR_NO_CHARGE" §lDescription:§r The particle has reached a segment with insufficient charge. §lPotential fix:§r Either replace one of the plugs that the particle successfully passes with higher-tier ones or add another plug slightly before the segment where the particle expires. book.error.title2=Error 0x02 [NA] -book.error.page2=§lName:§r "ERROR_NO_ANALYSIS" §lDescription:§r The particle has reached the core, despite not passing an analysis chamber. §lPotential fix:§r Make sure that your accelerator has an analysis chamber and double-check the operating mode (linear/circular). +book.error.page2=§lName:§r "ERROR_NO_ANALYSIS" §lDescription:§r The particle has reached the core, despite not passing an analysis chamber. §lPotential fix:§r Make sure that your accelerator has an analysis chamber and double-check the operating mode (linear/circular). book.error.title3=Error 0x03 [OC] -book.error.page3=§lName:§r "ERROR_OBSTRUCTED_CHANNEL" §lDescription:§r The particle has collided with a block inside the collider's channel. §lPotential fix:§r Make sure that the inside of your particle collider is free of any obstructions, except for particle diodes and core blocks. +book.error.page3=§lName:§r "ERROR_OBSTRUCTED_CHANNEL" §lDescription:§r The particle has collided with a block inside the collider's channel. §lPotential fix:§r Make sure that the inside of your particle collider is free of any obstructions, except for particle diodes and core blocks. book.error.title4=Error 0x04 [EC] -book.error.page4=§lName:§r "ERROR_EXPECTED_COIL" §lDescription:§r The particle has passed a segment that lacks one or multiple coils. §lPotential fix:§r Remove the plating of the collider in the offending area and check if all the coils are there. This error will also happen at T-crossings that are built without diodes. +book.error.page4=§lName:§r "ERROR_EXPECTED_COIL" §lDescription:§r The particle has passed a segment that lacks one or multiple coils. §lPotential fix:§r Remove the plating of the collider in the offending area and check if all the coils are there. This error will also happen at T-crossings that are built without diodes. book.error.title5=Error 0x05 [MS] -book.error.page5=§lName:§r "ERROR_MALFORMED_SEGMENT" §lDescription:§r The particle has passed a segment that was built incorrectly (but neither obstructed nor missing coils). §lPotential fix:§r Make sure that the offending segment has platings in all the required spaces, leaving no coils exposed. +book.error.page5=§lName:§r "ERROR_MALFORMED_SEGMENT" §lDescription:§r The particle has passed a segment that was built incorrectly (but neither obstructed nor missing coils). §lPotential fix:§r Make sure that the offending segment has platings in all the required spaces, leaving no coils exposed. book.error.title6=Error 0x06 [ATL] -book.error.page6=§lName:§r "ERROR_ANALYSIS_TOO_LONG" §lDescription:§r The particle has passed more than the three required valid analysis chamber segments. §lPotential fix:§r Make sure that the analysis chamber is exactly 3 blocks long for circular accelerator and at least 2 blocks long for linear ones. Also check if the particle doesn't pass multiple analysis chambers in a branching and/or looped accelerator. +book.error.page6=§lName:§r "ERROR_ANALYSIS_TOO_LONG" §lDescription:§r The particle has passed more than the three required valid analysis chamber segments. §lPotential fix:§r Make sure that the analysis chamber is exactly 3 blocks long for circular accelerator and at least 2 blocks long for linear ones. Also check if the particle doesn't pass multiple analysis chambers in a branching and/or looped accelerator. book.error.title7=Error 0x07 [ATS] -book.error.page7=§lName:§r "ERROR_ANALYSIS_TOO_SHORT" §lDescription:§r The particle has left the analysis chamber, despite not meeting the length requirement. §lPotential fix:§r Make sure that the analysis chamber on your circular accelerator is exactly 3 blocks long. Valid analysis segments have no coils and the plating is entirely composed of analysis chamber walls/windows. Analysis chambers with coils in them count as regular segments. +book.error.page7=§lName:§r "ERROR_ANALYSIS_TOO_SHORT" §lDescription:§r The particle has left the analysis chamber, despite not meeting the length requirement. §lPotential fix:§r Make sure that the analysis chamber on your circular accelerator is exactly 3 blocks long. Valid analysis segments have no coils and the plating is entirely composed of analysis chamber walls/windows. Analysis chambers with coils in them count as regular segments. book.error.title8=Error 0x08 [DC] -book.error.page8=§lName:§r "ERROR_DIODE_COLLISION" §lDescription:§r The particle collided with a non-input side of a schottky particle diode. §lPotential fix:§r Check if your diodes are configured correctly. Particles can only enter the diode from sides with green inward-pointing arrows. +book.error.page8=§lName:§r "ERROR_DIODE_COLLISION" §lDescription:§r The particle collided with a non-input side of a schottky particle diode. §lPotential fix:§r Check if your diodes are configured correctly. Particles can only enter the diode from sides with green inward-pointing arrows. book.error.title9=Error 0x09 [BT] -book.error.page9=§lName:§r "ERROR_BRANCHING_TURN" §lDescription:§r The particle has reached a turn with multiple exits. §lPotential fix:§r If your turn is a normal one, check if all the required coils are present (i.e. no holes in the coil layer). If the turn is intended to be branched, it requires a schottky particle diode that is correctly configured. +book.error.page9=§lName:§r "ERROR_BRANCHING_TURN" §lDescription:§r The particle has reached a turn with multiple exits. §lPotential fix:§r If your turn is a normal one, check if all the required coils are present (i.e. no holes in the coil layer). If the turn is intended to be branched, it requires a schottky particle diode that is correctly configured. book.rbmk.cover=My first RBMK:$Basics of$building a$reactor book.rbmk.title1=Introduction -book.rbmk.page1=§lRBMK§r is fully modular nuclear reactor. Unlike most other reactors, there is no "core" and no size restrictions, rather behavior and efficiency of reactor depends on how it is built and how various parts interact with each other. +book.rbmk.page1=§lRBMK§r is fully modular nuclear reactor. Unlike most other reactors, there is no "core" and no size restrictions, rather behavior and efficiency of reactor depends on how it is built and how various parts interact with each other. book.rbmk.title2=Heat -book.rbmk.page2=As reactor runs, it will generate §lheat§r. Heat will spread between parts, slowly decreasing in the process. The goal is to generate as much heat as possible without melting the reactor, and to transfer heat into steam passages that cool reactor and produce steam. +book.rbmk.page2=As reactor runs, it will generate §lheat§r. Heat will spread between parts, slowly decreasing in the process. The goal is to generate as much heat as possible without melting the reactor, and to transfer heat into steam passages that cool reactor and produce steam. book.rbmk.title3=Fuel Rod -book.rbmk.page3=The §lfuel rod§r will capture neutron flux, causing fuel inside the rod to react, releasing neutrons in the process. Neutrons are released in all four main directions with a maximum range of 5 blocks. The amount of released neutrons depends on fuel used. +book.rbmk.page3=The §lfuel rod§r will capture neutron flux, causing fuel inside the rod to react, releasing neutrons in the process. Neutrons are released in all four main directions with a maximum range of 5 blocks. The amount of released neutrons depends on fuel used. book.rbmk.title4=Regulating Rod -book.rbmk.page4=The §lcontrol rod§r will reduce number of neutrons passing through. Fully inserted, it will block all neutrons; when inserted halfway, it will only block half. Control rods are used to regulate activity of the reactor and shut it down. +book.rbmk.page4=The §lcontrol rod§r will reduce number of neutrons passing through. Fully inserted, it will block all neutrons; when inserted halfway, it will only block half. Control rods are used to regulate activity of the reactor and shut it down. book.rbmk.title5=Regulating Rods - Usage book.rbmk.title5.scale=0.9 -book.rbmk.page5=The current bar insertion will be displayed in the center of GUI. The colored buttons on left will add the control bar to the color group, which is useful for quickly selecting grouped bars on §lRBMK§r console. The buttons on right allow you to manually insert in 25%% increments. +book.rbmk.page5=The current bar insertion will be displayed in the center of GUI. The colored buttons on left will add the control bar to the color group, which is useful for quickly selecting grouped bars on §lRBMK§r console. The buttons on right allow you to manually insert in 25%% increments. book.rbmk.title6=Automatic Control Rods -book.rbmk.page6=§LAutomatic control rods§r are almost identical to regular control rods, but they cannot be manually adjusted, instead they will adjust position of the rod based on current temperature. Which function to use and how deep to insert and at what temperature must be determined first. +book.rbmk.page6=§LAutomatic control rods§r are almost identical to regular control rods, but they cannot be manually adjusted, instead they will adjust position of the rod based on current temperature. Which function to use and how deep to insert and at what temperature must be determined first. book.rbmk.title7=Steam Channel -book.rbmk.page7=The §lsteam channel§r is only part that will actively reduce reactor heat level. If a component is above the boiling point of a given type of steam, it will try to consume as much water and produce as much steam as needed to cool below boiling point. +book.rbmk.page7=The §lsteam channel§r is only part that will actively reduce reactor heat level. If a component is above the boiling point of a given type of steam, it will try to consume as much water and produce as much steam as needed to cool below boiling point. book.rbmk.title8=Neutron Reflector -book.rbmk.page8=The §lneutron reflector§r will block passage of neutrons, instead neutrons will be reflected back onto the fuel rod they came from. This is useful for using neutrons that would otherwise be wasted simply by leaving reactor. +book.rbmk.page8=The §lneutron reflector§r will block passage of neutrons, instead neutrons will be reflected back onto the fuel rod they came from. This is useful for using neutrons that would otherwise be wasted simply by leaving reactor. book.rbmk.title9=Neutron Absorber -book.rbmk.page9=§lNeutron absorber§r simply blocks neutrons. The absorbed neutrons will not generate heat and will be effectively destroyed. This is useful for preventing fuel rods from reacting that would otherwise be within reach. +book.rbmk.page9=§lNeutron absorber§r simply blocks neutrons. The absorbed neutrons will not generate heat and will be effectively destroyed. This is useful for preventing fuel rods from reacting that would otherwise be within reach. book.rbmk.title10=Graphite Retarder -book.rbmk.page10=§lGraphite moderator§r converts fast neutrons passing through it into slow neutrons. Most fuels are split into fast neutrons, while slow neutrons are required for fission, so use of moderators is highly recommended. +book.rbmk.page10=§lGraphite moderator§r converts fast neutrons passing through it into slow neutrons. Most fuels are split into fast neutrons, while slow neutrons are required for fission, so use of moderators is highly recommended. book.rbmk.title11=Structural Column -book.rbmk.page11=§lStructural column§r does not affect neutrons in any way and has no special application. It is recommended to fill the reactor with structured pillars where there are no other parts, since the structured pillars are capable of transferring heat. +book.rbmk.page11=§lStructural column§r does not affect neutrons in any way and has no special application. It is recommended to fill the reactor with structured pillars where there are no other parts, since the structured pillars are capable of transferring heat. book.rbmk.title12=Console -book.rbmk.page12=§lRBMK console§r allows you to control the reactor from afar. Using the §ldevice to connect the console RBMK§r on the RBMK part and then on the console will connect the reactor and the console. The console can only control 15x15 parts, for large reactors you can use multiple consoles. +book.rbmk.page12=§lRBMK console§r allows you to control the reactor from afar. Using the §ldevice to connect the console RBMK§r on the RBMK part and then on the console will connect the reactor and the console. The console can only control 15x15 parts, for large reactors you can use multiple consoles. book.rbmk.title13=Using the console book.rbmk.page13=Clicking on parts will select and deselect them. With the colored buttons, you can quickly select all the control rods in that color group. Button "A" will select all control rods, "X" will deselect all. book.rbmk.page14=Entering a number between 0 and 100 in green box and then pressing button next to it will set all selected control rods to that position. Button "AZ-5" will lead to full insertion of all control rods. book.rbmk.title15=Fuel -book.rbmk.page15=The §lfuel§r response depends on many factors. The main ones are §lfortification§r, §lxenon poisoning§r and number of incoming §lneutrons§r. Xenon builds up when fuel is low in neutrons and burns out during normal operation. The efficiency of neutrons depends on the type, most fuels §lare best split by§r §lslow neutrons§r. +book.rbmk.page15=The §lfuel§r response depends on many factors. The main ones are §lfortification§r, §lxenon poisoning§r and number of incoming §lneutrons§r. Xenon builds up when fuel is low in neutrons and burns out during normal operation. The efficiency of neutrons depends on the type, most fuels §lare best split by§r §lslow neutrons§r. book.rbmk.title16=Melting -book.rbmk.page16=§4§lAVOID. +book.rbmk.page16=§4§lAVOID. book.starter.cover=An Industrialist's$Guide to Rebuilding$Society book.starter.title1=Introduction book.starter.page1=If you're reading this, it's highly likely that society, in one way or another, has collapsed entirely. Governments, countries, and authority are a concept of the past - along with all of the amenities of civilized life. As such, this guide will inform you how to change that by recreating the industry and technology of the past for the improvement of your own life. book.starter.title2=Coal & Mustard Gas -book.starter.page2=Whilst it is impossible to predict the actual state of the world in a post-apocalyptic time, it's not unlikely that war and industry in its current form may not have ended. To protect your own lungs, an effective and cheap way is to urinate on some §lcloth§r to make a §ltrench mask§r, to protect you from coal dust or mustard gas, if you ever encounter either. +book.starter.page2=Whilst it is impossible to predict the actual state of the world in a post-apocalyptic time, it's not unlikely that war and industry in its current form may not have ended. To protect your own lungs, an effective and cheap way is to urinate on some §lcloth§r to make a §ltrench mask§r, to protect you from coal dust or mustard gas, if you ever encounter either. book.starter.title3=Anvils & Presses -book.starter.page3=The quintessentials to beginning your industrial revitalization is an §lanvil§r and a §lburner press§r. The anvil will allow you to manually craft together early machinery such as the Assembler, whilst the burner press will let you make plates, wires, and circuits that you cannot hammer together with an anvil. +book.starter.page3=The quintessentials to beginning your industrial revitalization is an §lanvil§r and a §lburner press§r. The anvil will allow you to manually craft together early machinery such as the Assembler, whilst the burner press will let you make plates, wires, and circuits that you cannot hammer together with an anvil. book.starter.title4=Templates -book.starter.page4=In order to stamp metal into useful shapes, assemble machinery, and perform chemical reactions, you will need to create a §lMachine Template Folder§r to create the various stamps and templates shown to the right. +book.starter.page4=In order to stamp metal into useful shapes, assemble machinery, and perform chemical reactions, you will need to create a §lMachine Template Folder§r to create the various stamps and templates shown to the right. book.starter.title5=Scavenging book.starter.page5=Depending on how bad the initial apocalyptic event was to the preexisting structures of the world, there's a likely chance that many useful materials and machines can be salvaged from them directly. Metallic alloys like steel, parts like circuitry, and even fissile material from a nuclear power plant might be awaiting you. Beware certain ruins, however, as there may be an excess of danger lurking there like a snake in the grass; waiting to strike you down with radiation, traps, or indescribable horrors... book.starter.title6=Early Machinery -book.starter.page6a=Two of the first machines you should assemble are the §lBlast Furnace§r and the §lAssembly Machine§r. The former will allow you to create alloys such as §lsteel§r, §lminecraft-grade copper§r, and §ladvanced alloy§r; you will need to use these metals for the bodies of machines, the wiring of circuits, advanced electromagnets, and more. -book.starter.page6b=The assembler will be used to create practically every other machine described in this guide. You will need a power source, such as a §lCombustion§r §lGenerator§r or §lSolar Boiler§r. -book.starter.page7a=The §lShredder§r, along with a pair of shredder blades, will be very useful for doubling the output of most ores, via shredding into smeltable powders. These powders are also crucial to begin making circuitry for various machines, such as §lEnhanced§r and §lOverclocked§r circuits. -book.starter.page7b=Using your new machinery, you can create the §lChemical Plant§r, used for the synthesis of better circuits, concrete, the processing of petrochemicals, and more. +book.starter.page6a=Two of the first machines you should assemble are the §lBlast Furnace§r and the §lAssembly Machine§r. The former will allow you to create alloys such as §lsteel§r, §lminecraft-grade copper§r, and §ladvanced alloy§r; you will need to use these metals for the bodies of machines, the wiring of circuits, advanced electromagnets, and more. +book.starter.page6b=The assembler will be used to create practically every other machine described in this guide. You will need a power source, such as a §lCombustion§r §lGenerator§r or §lSolar Boiler§r. +book.starter.page7a=The §lShredder§r, along with a pair of shredder blades, will be very useful for doubling the output of most ores, via shredding into smeltable powders. These powders are also crucial to begin making circuitry for various machines, such as §lEnhanced§r and §lOverclocked§r circuits. +book.starter.page7b=Using your new machinery, you can create the §lChemical Plant§r, used for the synthesis of better circuits, concrete, the processing of petrochemicals, and more. book.starter.title8=Black Gold -book.starter.page8a=Using an §lOil §lReservoir§r §lDetector§r, you can find underground oil deposits to place a §lPumpjack§r or §lDerrick§r over via surveying an area. Remember that oil deposits will run out over time. -book.starter.page8b=Before the oil can be refined and separated into its constituent parts in an §lOil Refinery§r, you must heat the oil to 300°C in a §lBoiler§r. +book.starter.page8a=Using an §lOil §lReservoir§r §lDetector§r, you can find underground oil deposits to place a §lPumpjack§r or §lDerrick§r over via surveying an area. Remember that oil deposits will run out over time. +book.starter.page8b=Before the oil can be refined and separated into its constituent parts in an §lOil Refinery§r, you must heat the oil to 300°C in a §lBoiler§r. book.starter.title9=Petrochemicals -book.starter.page9=Using §lChemical Plants§r, §lFractioning§r §lTowers§r, and §lCatalytic Cracking§r §lTowers§r, you can transform the separated oil into a variety of useful products. For example: §lPolymer§r or §lBakelite§r, durable and flexible plastics; §lDesh§r, an extremely durable and heat-resistant rare earth metal alloy; §lSolid Fuel§r, which can be burnt for energy; or even §lLiquid Fuels§r, such as §lGasoline§r, §lDiesel§r, §lKerosene§r, and more. +book.starter.page9=Using §lChemical Plants§r, §lFractioning§r §lTowers§r, and §lCatalytic Cracking§r §lTowers§r, you can transform the separated oil into a variety of useful products. For example: §lPolymer§r or §lBakelite§r, durable and flexible plastics; §lDesh§r, an extremely durable and heat-resistant rare earth metal alloy; §lSolid Fuel§r, which can be burnt for energy; or even §lLiquid Fuels§r, such as §lGasoline§r, §lDiesel§r, §lKerosene§r, and more. book.starter.title10=Advanced Machinery -book.starter.page10=With oil processing under your belt, you can create the §lCentrifuge§r, which will triple ore outputs; the §lOre §lAcidizer§r, which will crystallize ores, increasing the yield; and the §lSILEX + §lFEL§r, two marvels of modern engineering which can separate the isotopes of materials with ease. You will require significantly more energy to power these; which can be obtained with sources such as a §lDiesel Generator§r, an §lIndustrial Generator§r, or even a nuclear reactor. +book.starter.page10=With oil processing under your belt, you can create the §lCentrifuge§r, which will triple ore outputs; the §lOre §lAcidizer§r, which will crystallize ores, increasing the yield; and the §lSILEX + §lFEL§r, two marvels of modern engineering which can separate the isotopes of materials with ease. You will require significantly more energy to power these; which can be obtained with sources such as a §lDiesel Generator§r, an §lIndustrial Generator§r, or even a nuclear reactor. book.starter.title11=Strata -book.starter.page11=Underneath the ground you walk, there is several naturally-occurring §lStrata§r, or special mineral layers and formations. §lSchist Strata§r are blue, lithium-containing layers filled with uranium, iron, copper, asbestos, and other ores for your own use. §lDepth Rock§r contains large quantities of rarer minerals, such as §lZirconium§r and §lBoron§r, but requires explosives to properly harvest. +book.starter.page11=Underneath the ground you walk, there is several naturally-occurring §lStrata§r, or special mineral layers and formations. §lSchist Strata§r are blue, lithium-containing layers filled with uranium, iron, copper, asbestos, and other ores for your own use. §lDepth Rock§r contains large quantities of rarer minerals, such as §lZirconium§r and §lBoron§r, but requires explosives to properly harvest. book.starter.title12=Radiation -book.starter.page12a=§oThe rest of this book will deal with matters that involve §oradiation. For the safety of you and others, I will give §oadvice on how to mitigate and deal with exposure to it. -book.starter.page12b=Enough exposure to radiation can and will cause bodily harm. The first step is prevention; be sure to limit your exposure, and wear protective gear, such as a §lHazmat Suit§r, or apply §lCladding§r to your clothing or armor; you can also take §lRad-X§r to limit your intake. Thanks to modern medicine, the second step can be removal if necessary; for example, a §lPlayer §lDecontaminator§r will slowly reduce the radiation absorbed by your body. §lRad-Away§r can also be used as a post-exposure prophylaxis, quickly and effectively reversing damage caused to your body by ionizing radiation. +book.starter.page12a=§oThe rest of this book will deal with matters that involve §oradiation. For the safety of you and others, I will give §oadvice on how to mitigate and deal with exposure to it. +book.starter.page12b=Enough exposure to radiation can and will cause bodily harm. The first step is prevention; be sure to limit your exposure, and wear protective gear, such as a §lHazmat Suit§r, or apply §lCladding§r to your clothing or armor; you can also take §lRad-X§r to limit your intake. Thanks to modern medicine, the second step can be removal if necessary; for example, a §lPlayer §lDecontaminator§r will slowly reduce the radiation absorbed by your body. §lRad-Away§r can also be used as a post-exposure prophylaxis, quickly and effectively reversing damage caused to your body by ionizing radiation. book.starter.title13=Uranium Enrichment -book.starter.page13=There are a few, easy options for fuels to use for a nuclear reactor; for instance, §lNatural Uranium§r or §lThorium Fuel§r. However, if you're looking for something more powerful, you can set up an enrichment cascade of two §lGas Centrifuges§r to produce §lUranium Fuel§r with leftover §lUranium-238§r. You will have to transmute the natural uranium into §lYellowcake§r, then §lUranium §lHexafluoride§r to do so. +book.starter.page13=There are a few, easy options for fuels to use for a nuclear reactor; for instance, §lNatural Uranium§r or §lThorium Fuel§r. However, if you're looking for something more powerful, you can set up an enrichment cascade of two §lGas Centrifuges§r to produce §lUranium Fuel§r with leftover §lUranium-238§r. You will have to transmute the natural uranium into §lYellowcake§r, then §lUranium §lHexafluoride§r to do so. book.starter.title14=The Chicago Pile -book.starter.page14=Alternatively, you can breed §lReactor-Grade Plutonium§r, a more powerful fuel, from Natural Uranium using the §lChicago Pile§r. By stacking graphite blocks and drilling into them, you can insert fuel rods to breed into plutonium and neutron source rods, such as §lRadium-Beryllium§r, to begin the reaction. Make sure to test your designs; spacing out or limiting the amount of blocks may be necessary to prevent overheating. +book.starter.page14=Alternatively, you can breed §lReactor-Grade Plutonium§r, a more powerful fuel, from Natural Uranium using the §lChicago Pile§r. By stacking graphite blocks and drilling into them, you can insert fuel rods to breed into plutonium and neutron source rods, such as §lRadium-Beryllium§r, to begin the reaction. Make sure to test your designs; spacing out or limiting the amount of blocks may be necessary to prevent overheating. book.starter.title15=ZIRNOX GCR -book.starter.page15=Finally, you can create your first §oreal§r source of energy: the §lZIRNOX§r Nuclear Reactor. Nuclear reactors require more setup then other power sources; first, you will want to have a good source of water, such as the §lHeavy §lInfinite Water Tank§r. To remove heat from the reactor core and boil the water into steam, you will need a sufficient amount of §lCarbon Dioxide§r. You want just enough pressure, but not §otoo§r much. You will also need three steam turbines to utilize the created steam to make energy; the §lSteam §lTurbine§r or §lIndustrial Steam §lTurbine§r will be optimal. Finally, a §lCondensor§r or §lAuxilary Cooling Tower§r is needed to condense the leftover steam into water, where it can be voided or recycled in a cooling loop. +book.starter.page15=Finally, you can create your first §oreal§r source of energy: the §lZIRNOX§r Nuclear Reactor. Nuclear reactors require more setup then other power sources; first, you will want to have a good source of water, such as the §lHeavy §lInfinite Water Tank§r. To remove heat from the reactor core and boil the water into steam, you will need a sufficient amount of §lCarbon Dioxide§r. You want just enough pressure, but not §otoo§r much. You will also need three steam turbines to utilize the created steam to make energy; the §lSteam §lTurbine§r or §lIndustrial Steam §lTurbine§r will be optimal. Finally, a §lCondensor§r or §lAuxilary Cooling Tower§r is needed to condense the leftover steam into water, where it can be voided or recycled in a cooling loop. book.starter.title16=Conclusion -book.starter.page16=If you've reached this far, you're on track to helping rebuild civilization. You've successfully recreated the advanced machinery of the pre-apocalypse - with nuclear power, petrochemicals, and more. I cannot know §ohow§r you will use these new-found advantages, but it's my personal hope you use them for the good of yourself and others - or at the very least, in self-defense. Au revoir! +book.starter.page16=If you've reached this far, you're on track to helping rebuild civilization. You've successfully recreated the advanced machinery of the pre-apocalypse - with nuclear power, petrochemicals, and more. I cannot know §ohow§r you will use these new-found advantages, but it's my personal hope you use them for the good of yourself and others - or at the very least, in self-defense. Au revoir! book.starter.title18=About the Author -book.starter.page18=vær is just a guy who has been trapped in the grey void featured in the Talking Head's §oOnce In A Lifetime§r for too long. He once found a studio door, but to his dismay found out it was a cardboard cut-out. +book.starter.page18=vær is just a guy who has been trapped in the grey void featured in the Talking Head's §oOnce In A Lifetime§r for too long. He once found a studio door, but to his dismay found out it was a cardboard cut-out. #book.rbmk.cover=HOW 2 RBMK:$The Basics$of Reactor$Construction #book.rbmk.title1=Introduction -#book.rbmk.page1=The §lRBMK§r is a fully modular nuclear reactor. Unlike most other reactors, there is no "core", and no size limitations, rather, the behavior and efficiency of the reactor comes from how it is built and how the different pieces interact with each other. +#book.rbmk.page1=The §lRBMK§r is a fully modular nuclear reactor. Unlike most other reactors, there is no "core", and no size limitations, rather, the behavior and efficiency of the reactor comes from how it is built and how the different pieces interact with each other. #book.rbmk.title2=Heat -#book.rbmk.page2=As the reactor operates, it will generate §lheat§r. Heat will spread between parts, slowly decreasing in the process. The goal is to produce as much heat as possible without melting the reactor, and to move that heat to a §lsteam channel§r which cools the reactor and produces steam. +#book.rbmk.page2=As the reactor operates, it will generate §lheat§r. Heat will spread between parts, slowly decreasing in the process. The goal is to produce as much heat as possible without melting the reactor, and to move that heat to a §lsteam channel§r which cools the reactor and produces steam. #book.rbmk.title3=Fuel Rod -#book.rbmk.page3=The §lfuel rod§r will capture neutron flux, causing the fuel inside the fuel rod to react, giving off neutrons in the process. Neutrons are released in all four cardinal directions with a maximum range of 5 blocks. The amount of neutrons released depends on the §lfuel§r used. +#book.rbmk.page3=The §lfuel rod§r will capture neutron flux, causing the fuel inside the fuel rod to react, giving off neutrons in the process. Neutrons are released in all four cardinal directions with a maximum range of 5 blocks. The amount of neutrons released depends on the §lfuel§r used. #book.rbmk.title4=Control Rod -#book.rbmk.page4=The §lcontrol rod§r will decrease the amount of neutrons passing though it. Fully inserted, it will block all neutrons, at half insertion, it will only block half. Control rods are used to regulate the reactor's activity and to turn it off. +#book.rbmk.page4=The §lcontrol rod§r will decrease the amount of neutrons passing though it. Fully inserted, it will block all neutrons, at half insertion, it will only block half. Control rods are used to regulate the reactor's activity and to turn it off. #book.rbmk.title5=Control Rod - Usage -#book.rbmk.page5=The center of the GUI will display the current rod insertion. The colored buttons on the left will add a control rod to a color group, which is useful to quickly select grouped rods from the §lRBMK console§r. The buttons on the right allow for manual insertion in increments of 25%%. +#book.rbmk.page5=The center of the GUI will display the current rod insertion. The colored buttons on the left will add a control rod to a color group, which is useful to quickly select grouped rods from the §lRBMK console§r. The buttons on the right allow for manual insertion in increments of 25%%. #book.rbmk.title6=Automatic Control Rod -#book.rbmk.page6=§lAutomatic control rods§r function nearly identical to regular control rods, but they cannot be configured manually, instead they will adjust the rod position based on the current temperature. What function to use and how deep to insert at what temperature has to be defined first. +#book.rbmk.page6=§lAutomatic control rods§r function nearly identical to regular control rods, but they cannot be configured manually, instead they will adjust the rod position based on the current temperature. What function to use and how deep to insert at what temperature has to be defined first. #book.rbmk.title7=Steam Channel -#book.rbmk.page7=The §lsteam channel§r is the only part that will actively reduce the reactor's heat level. If the component's temperature exceeds the boiling point of the set steam type, it will try to consume as much water and produce as much steam as needed to cool back below the boiling point. +#book.rbmk.page7=The §lsteam channel§r is the only part that will actively reduce the reactor's heat level. If the component's temperature exceeds the boiling point of the set steam type, it will try to consume as much water and produce as much steam as needed to cool back below the boiling point. #book.rbmk.title8=Neutron Reflector -#book.rbmk.page8=The §lneutron reflector§r will block neutrons from passing it, instead the neutrons will be reflected back at the fuel rod they came from. This is useful for utilizing neutrons that would otherwise be wasted by simply exiting the reactor. +#book.rbmk.page8=The §lneutron reflector§r will block neutrons from passing it, instead the neutrons will be reflected back at the fuel rod they came from. This is useful for utilizing neutrons that would otherwise be wasted by simply exiting the reactor. #book.rbmk.title9=Neutron Absorber -#book.rbmk.page9=The §lneutron absorber§r will simply block neutrons. Neutrons absorbed will not generate heat and be effectively voided. This is useful to prevent fuel rods from reacting that would otherwise be in range. +#book.rbmk.page9=The §lneutron absorber§r will simply block neutrons. Neutrons absorbed will not generate heat and be effectively voided. This is useful to prevent fuel rods from reacting that would otherwise be in range. #book.rbmk.title10=Graphite Moderator -#book.rbmk.page10=The §lgraphite moderator§r will convert fast neutrons passing through it into slow neutrons. Most fuels fission into fast neutrons while needing slow neutrons to split, so using moderators is strongly recommended. +#book.rbmk.page10=The §lgraphite moderator§r will convert fast neutrons passing through it into slow neutrons. Most fuels fission into fast neutrons while needing slow neutrons to split, so using moderators is strongly recommended. #book.rbmk.title11=Structural Column -#book.rbmk.page11=The §lstructural column§r will not interfere with neutrons, nor does it have special uses. It is recommended to fill the reactor with structural columns where no other parts will be, because structural columns are capable of transporting heat. +#book.rbmk.page11=The §lstructural column§r will not interfere with neutrons, nor does it have special uses. It is recommended to fill the reactor with structural columns where no other parts will be, because structural columns are capable of transporting heat. #book.rbmk.title12=Console -#book.rbmk.page12=The §lRBMK console§r lets you control the reactor from afar. Using the §lRBMK§r §lconsole linking device§r on an RBMK part and then the console will link the reactor to the console. The console can only manage 15x15 parts, for larger reactors you might want to use multiple consoles. +#book.rbmk.page12=The §lRBMK console§r lets you control the reactor from afar. Using the §lRBMK§r §lconsole linking device§r on an RBMK part and then the console will link the reactor to the console. The console can only manage 15x15 parts, for larger reactors you might want to use multiple consoles. #book.rbmk.title13=Console Usage #book.rbmk.page13=Clicking on the parts will select and deselect them. Using the colored buttons, you can quickly select all control rods of that color group. Button 'A' will select all control rods, 'X' will deselect all. #book.rbmk.page14=Entering a number 0-100 in the green box and then hitting the button next to it will set all selected control rods to this position. Button 'AZ-5' will cause all control rods to fully insert. #book.rbmk.title15=Fuel -#book.rbmk.page15=The §lfuel§r's reactivity is based on multiple factors. The main ones are the §lenrichment§r, §lxenon poison§r and the amount of incoming §lneutrons§r. Xenon builds up when the fuel receives few neutrons and burns away during normal operation. The effectivity of neutrons depends on the type, most fuels §lsplit best with slow neutrons§r. +#book.rbmk.page15=The §lfuel§r's reactivity is based on multiple factors. The main ones are the §lenrichment§r, §lxenon poison§r and the amount of incoming §lneutrons§r. Xenon builds up when the fuel receives few neutrons and burns away during normal operation. The effectivity of neutrons depends on the type, most fuels §lsplit best with slow neutrons§r. #book.rbmk.title16=Meltdown -#book.rbmk.page16=§4§lAvoid. +#book.rbmk.page16=§4§lAvoid. book_lore.author=By %s book_lore.test.name=Test @@ -399,10 +401,10 @@ cannery.crucible.0=The crucible is used to smelt ores, ingots or other metallic cannery.crucible.1=It requires an external heat source connected to the bottom, like a firebox. cannery.crucible.2=Once heated up, the crucible can be used in two ways, with or without a recipe template. cannery.crucible.3=The crucible has two storage buffers for material: -cannery.crucible.4=The buffer to the left is for §abyproducts§r, all material smelted without a recipe template will land here. +cannery.crucible.4=The buffer to the left is for §abyproducts§r, all material smelted without a recipe template will land here. cannery.crucible.5=If a recipe is installed, materials that do not match the recipe will also be stored here. cannery.crucible.6=Materials in this buffer will not react with each other, they can only be output from the green outlet for casting. -cannery.crucible.7=The buffer to the right is for §crecipes§r, if a recipe is installed and that particular material is relevant to that recipe, it will land here. +cannery.crucible.7=The buffer to the right is for §crecipes§r, if a recipe is installed and that particular material is relevant to that recipe, it will land here. cannery.crucible.8=The materials will slowly combine into the output material which is automatically output from the red outlet. cannery.crucible.9=Note that only this buffer handles recipes. If a template is installed retroactively, materials in the byproduct buffer will not combine, nor transfer to the recipe buffer. cannery.crucible.10=The outlet will output material automatically, if the target is valid, for example a foundry channel or a mold. @@ -553,7 +555,6 @@ chem.VIT_LIQUID=Liquid Nuclear Waste Vitrification chem.XENON=Linde Xenon Cycle chem.XENON_OXY=Boosted Linde Xenon Cycle chem.YELLOWCAKE=Yellowcake Production -chem.LAMINATE=Reinforced Glass Lamination container.amsBase=AMS Base (Deco) container.amsEmitter=AMS Emitter (Deco) @@ -649,7 +650,7 @@ container.nukeFurnace=Nuclear Powered Furnace container.nukeGadget=The Gadget container.nukeMan=Fat Man container.nukeMike=Ivy Mike -container.nukeN2=N² Mine +container.nukeN2=N² Mine container.nukeN45=N45 Naval Mine container.nukePrototype=The Prototype container.nukeSolinium=The Blue Rinse @@ -691,6 +692,7 @@ container.soyuzLauncher=Soyuz Launch Platform container.storageDrum=Nuclear Waste Disposal Drum container.teleLinker=TelLink Device container.teleporter=Teleporter +container.trainTram=Electric Flat Bed Tram container.turbinegas=Combined Cycle Gas Turbine container.turretArty=Greg container.turretChekhov=Chekhov's Gun @@ -780,35 +782,35 @@ death.attack.tau=%1$s was riddeled by %2$s using negatively charged tauons. death.attack.tauBlast=%1$s charged the XVL1456 for too long and was blown into pieces. death.attack.teleporter=%1$s was teleported into nothingness. -desc.gui.assembler.warning=§cError:§r This machine requires an assembly template! -desc.gui.chemplant.warning=§cError:§r This machine requires an chemistry template! -desc.gui.gasCent.enrichment=§2Enrichment§r$Uranium enrichment requires cascades.$Two-centrifuge cascades will give$uranium fuel, four-centrifuge cascades$will give total separation. -desc.gui.gasCent.output=§6Fluid Transfer§r$Fluid can be transferred to another centrifuge$via the output port for further processing. -desc.gui.nukeBoy.desc=§1Requires:§r$ * Neutron Shielding$ * U235 Projectile$ * Subcritical U235 Target$ * Propellant$ * Bomb Igniter -desc.gui.nukeGadget.desc=§1Requires:§r$ * 4 Arrays of First-Generation$ High-Explosive Lenses$ * Heavy Plutonium Core$ * Wiring -desc.gui.nukeMan.desc=§1Requires:§r$ * 4 Arrays of First-Generation$ High-Explosive Lenses$ * Plutonium Core$ * Bomb Firing Unit -desc.gui.nukeMike.desc=§1Requires:§r$ * 4 Arrays of High-Explosive Lenses$ * Plutonium Core$ * Deuterium Cooling Unit$ * Uranium Coated Deuterium Tank$ * Deuterium Tank -desc.gui.nukeTsar.desc=§1Requires:§r$ * 4 Arrays of High-Explosive Lenses$ * Plutonium Core$§9Optional:§r$ * Tsar Bomba Core -desc.gui.radiolysis.desc=§9Description§r$This RTG is more efficient then others, and$comes equipped with a radiolysis chamber for$cracking and sterilization. +desc.gui.assembler.warning=§cError:§r This machine requires an assembly template! +desc.gui.chemplant.warning=§cError:§r This machine requires an chemistry template! +desc.gui.gasCent.enrichment=§2Enrichment§r$Uranium enrichment requires cascades.$Two-centrifuge cascades will give$uranium fuel, four-centrifuge cascades$will give total separation. +desc.gui.gasCent.output=§6Fluid Transfer§r$Fluid can be transferred to another centrifuge$via the output port for further processing. +desc.gui.nukeBoy.desc=§1Requires:§r$ * Neutron Shielding$ * U235 Projectile$ * Subcritical U235 Target$ * Propellant$ * Bomb Igniter +desc.gui.nukeGadget.desc=§1Requires:§r$ * 4 Arrays of First-Generation$ High-Explosive Lenses$ * Heavy Plutonium Core$ * Wiring +desc.gui.nukeMan.desc=§1Requires:§r$ * 4 Arrays of First-Generation$ High-Explosive Lenses$ * Plutonium Core$ * Bomb Firing Unit +desc.gui.nukeMike.desc=§1Requires:§r$ * 4 Arrays of High-Explosive Lenses$ * Plutonium Core$ * Deuterium Cooling Unit$ * Uranium Coated Deuterium Tank$ * Deuterium Tank +desc.gui.nukeTsar.desc=§1Requires:§r$ * 4 Arrays of High-Explosive Lenses$ * Plutonium Core$§9Optional:§r$ * Tsar Bomba Core +desc.gui.radiolysis.desc=§9Description§r$This RTG is more efficient then others, and$comes equipped with a radiolysis chamber for$cracking and sterilization. desc.gui.rtgBFurnace.desc=Requires at least 15 heat to process$The more heat on top of that, the faster it runs$Heat going over maximum speed will have no effect$Short-lived pellets may decay -desc.gui.rtg.heat=§eCurrent heat level: %s +desc.gui.rtg.heat=§eCurrent heat level: %s desc.gui.rtg.pellets=Accepted Pellets: desc.gui.rtg.pelletHeat=%s (%s heat) desc.gui.rtg.pelletPower=%s (%s HE/tick) -desc.gui.template=§9Templates§r$Templates can be made by$using the Machine Template Folder. -desc.gui.turbinegas.automode=§2Automatic Turbine Throttling Mode§r$By clicking the "AUTO" button, the turbine$will automatically adjust the power production$based on the power required from the network -desc.gui.turbinegas.fuels=§6Accepted fuels:§r -desc.gui.turbinegas.warning=§cFuel or lubricant level low!§r -desc.gui.upgrade=§lAcceptable Upgrades:§r -desc.gui.upgrade.afterburner= * §dAfterburner§r: Stacks to level 3 -desc.gui.upgrade.effectiveness= * §aEffectiveness§r: Stacks to level 3 -desc.gui.upgrade.overdrive= * §7Overdrive§r: Stacks to level 3 -desc.gui.upgrade.power= * §1Power-Saving§r: Stacks to level 3 -desc.gui.upgrade.speed= * §4Speed§r: Stacks to level 3 -desc.gui.zirnox.coolant=§3Coolant§r$CO2 transfers heat from the core to the water.$This will boil it into super dense steam.$The efficiency of cooling and steam production$is based on pressure. -desc.gui.zirnox.pressure=§6Pressure§r$Pressure can be reduced by venting CO2.$However, too low a pressure, and cooling$efficiency and steam production will be reduced.$Look out for meltdowns! -desc.gui.zirnox.warning1=§cError:§r Water is required for$the reactor to function properly! -desc.gui.zirnox.warning2=§cError:§r CO2 is required for$the reactor to function properly! +desc.gui.template=§9Templates§r$Templates can be made by$using the Machine Template Folder. +desc.gui.turbinegas.automode=§2Automatic Turbine Throttling Mode§r$By clicking the "AUTO" button, the turbine$will automatically adjust the power production$based on the power required from the network +desc.gui.turbinegas.fuels=§6Accepted fuels:§r +desc.gui.turbinegas.warning=§cFuel or lubricant level low!§r +desc.gui.upgrade=§lAcceptable Upgrades:§r +desc.gui.upgrade.afterburner= * §dAfterburner§r: Stacks to level 3 +desc.gui.upgrade.effectiveness= * §aEffectiveness§r: Stacks to level 3 +desc.gui.upgrade.overdrive= * §7Overdrive§r: Stacks to level 3 +desc.gui.upgrade.power= * §1Power-Saving§r: Stacks to level 3 +desc.gui.upgrade.speed= * §4Speed§r: Stacks to level 3 +desc.gui.zirnox.coolant=§3Coolant§r$CO2 transfers heat from the core to the water.$This will boil it into super dense steam.$The efficiency of cooling and steam production$is based on pressure. +desc.gui.zirnox.pressure=§6Pressure§r$Pressure can be reduced by venting CO2.$However, too low a pressure, and cooling$efficiency and steam production will be reduced.$Look out for meltdowns! +desc.gui.zirnox.warning1=§cError:§r Water is required for$the reactor to function properly! +desc.gui.zirnox.warning2=§cError:§r CO2 is required for$the reactor to function properly! desc.item.ammo.con_accuracy2=- Highly decreased accuracy desc.item.ammo.con_damage=- Highly decreased damage desc.item.ammo.con_heavy_wear=- Highly increased wear @@ -916,7 +918,7 @@ desc.item.kitArmor=Armor will be displaced by new set. desc.item.kitHaz=Armor will be displaced by hazmat suit. desc.item.kitPack=What a bargain! desc.item.kitPool=Please empty inventory before opening! -desc.item.pileRod=§eUse on drilled graphite to insert$§eUse screwdriver to extract$ +desc.item.pileRod=§eUse on drilled graphite to insert$§eUse screwdriver to extract$ desc.item.rtgDecay=Decays to: %s desc.item.rtgHeat=Power Level: %s desc.item.storage.capacity=Capacity %s%%s @@ -924,19 +926,19 @@ desc.item.storage.proscons=to view pros cons list desc.misc.357=.357 Magnum desc.misc.556=.223 Remington desc.misc.762=.308 Winchester -desc.misc.func=§n-- Function -- +desc.misc.func=§n-- Function -- desc.misc.lanthanum="Lanthanum" -desc.misc.lctrl=§8Hold <§e§oLCTRL§8§o> %s -desc.misc.lore=§n-- Lore -- -desc.misc.lshift=§8Hold <§e§oLSHIFT§8§o> %s -desc.misc.luna=§o20x155mm Lunatic -desc.misc.meltPoint=Melting point: §c%s +desc.misc.lctrl=§8Hold <§e§oLCTRL§8§o> %s +desc.misc.lore=§n-- Lore -- +desc.misc.lshift=§8Hold <§e§oLSHIFT§8§o> %s +desc.misc.luna=§o20x155mm Lunatic +desc.misc.meltPoint=Melting point: §c%s desc.misc.noPos=No position set! desc.misc.pos=Set pos to: %s, %s, %s desc.misc.posSet=Position set! desc.item.wasteCooling=Cool in a Spent Fuel Pool Drum -desc.item.zirnoxBreedingRod=§2[ZIRNOX Breeding Rod]$§ePlace next to fuel rods to breed$§eLasts %d ticks -desc.item.zirnoxRod=§a[ZIRNOX Fuel Rod]$§eGenerates %1$d heat per tick$§eLasts %2$d ticks +desc.item.zirnoxBreedingRod=§2[ZIRNOX Breeding Rod]$§ePlace next to fuel rods to breed$§eLasts %d ticks +desc.item.zirnoxRod=§a[ZIRNOX Fuel Rod]$§eGenerates %1$d heat per tick$§eLasts %2$d ticks digamma.playerDigamma=Digamma exposure: digamma.playerHealth=Digamma influence: @@ -1060,15 +1062,15 @@ gun.name.ifPit=IF-18 Horseshoe Bottomless Pit gun.name.ifScope=IF-18 Horseshoe Scoped gun.name.ifStorm=IF-18 Horseshoe Silver Storm gun.name.ifVanity=IF-18 Horseshoe Vanity -gun.name.karl=M1 Karl-Gerät +gun.name.karl=M1 Karl-Gerät gun.name.ks23=KS-23 gun.name.lacunae=Auntie Lacunae gun.name.lasetDet=Hopeville Laser Detonator gun.name.lunaAR=1986 Bishamonten type Assault Rifle -gun.name.lunaGun=1978 RÄ�hula type Standard Issue Sidearm (Revision 2) +gun.name.lunaGun=1978 Rāhula type Standard Issue Sidearm (Revision 2) gun.name.lunaHLR=1944 Chang'e type Light Machine Gun gun.name.lunaShotty=1978 Guan Yu type Scattergun (Revision 1) -gun.name.lunaSMG=1956 Ä€nanda type Submachine Gun +gun.name.lunaSMG=1956 Ānanda type Submachine Gun gun.name.lunaSniper=1915 Hou Yi type Anti-Material Rifle gun.name.lunaTWR=Time Warp Rifle gun.name.m2=Browning machine gun, cal. .50, M2, HB @@ -1081,7 +1083,7 @@ gun.name.mg3=Universal-Maschinengewehr Modell 3 gun.name.mp40=Maschinenpistole 40 gun.name.nerf=NERF blaster of unknown design gun.name.osipr=Overwatch Standard Issue Pulse Rifle -gun.name.panz=Raketenpanzerbüchse 54 +gun.name.panz=Raketenpanzerbüchse 54 gun.name.quadro=OpenQuadro Guided Man-Portable Missile Launcher gun.name.remington870=Remington 870 gun.name.revolverCursed=Britannia Standard Issue Motorized Handgun @@ -1124,11 +1126,11 @@ hadron.error_analysis_too_long=Error 0x06 [ATL] hadron.error_analysis_too_short=Error 0x07 [ATS] hadron.error_diode_collision=Error 0x08 [DC] hadron.error_branching_turn=Error 0x09 [BT] -hadron.hopper0=§eNormal Mode:$All items will be used. -hadron.hopper1=§eHopper Mode:$One item will always remain. +hadron.hopper0=§eNormal Mode:$All items will be used. +hadron.hopper1=§eHopper Mode:$One item will always remain. hadron.idle=Idle -hadron.modeCircular=§eCircular Accelerator Mode:$Magnets must loop back into core.$Unlocks more recipes. -hadron.modeLine=§eLinear Accelerator Mode:$Accelerator ends with analysis chamber.$Fewer Recipes. +hadron.modeCircular=§eCircular Accelerator Mode:$Magnets must loop back into core.$Unlocks more recipes. +hadron.modeLine=§eLinear Accelerator Mode:$Accelerator ends with analysis chamber.$Fewer Recipes. hadron.noresult=No Result. hadron.noresult_too_slow=Insuff. momentum! hadron.noresult_wrong_ingredient=Invalid recipe! @@ -1197,6 +1199,7 @@ hbmfluid.egg=Dissolved Egg hbmfluid.estradiol=Estradiol Solution hbmfluid.ethanol=Ethanol hbmfluid.enderjuice=Ender Juice +hbmfluid.fishoil=Fish Oil hbmfluid.fracksol=Fracking Solution hbmfluid.gas=Natural Gas hbmfluid.gas_coker=Coker Gas @@ -1228,8 +1231,9 @@ hbmfluid.mustardgas=Mustard Gas hbmfluid.naphtha=Naphtha hbmfluid.naphtha_coker=Coker Naphtha hbmfluid.naphtha_crack=Cracked Naphtha -hbmfluid.nitan=NITAN© 100 Octane Super Fuel +hbmfluid.nitan=NITAN© 100 Octane Super Fuel hbmfluid.nitric_acid=Nitric Acid +hbmfluid.nitroglycerin=Nitroglycerin hbmfluid.none=None hbmfluid.oil=Crude Oil hbmfluid.oil_coker=Coker Oil @@ -1249,6 +1253,7 @@ hbmfluid.plasma_xm=Xenon-Mercury Plasma hbmfluid.puf6=Plutonium Hexafluoride hbmfluid.radiosolvent=High-Performance Solvent hbmfluid.reclaimed=Reclaimed Industrial Oil +hbmfluid.redmud=Red Mud hbmfluid.reformate=Reformate hbmfluid.reformgas=Reformate Gas hbmfluid.salient=Salient Green @@ -1261,6 +1266,7 @@ hbmfluid.sourgas=Sour Gas hbmfluid.spentsteam=Low-Pressure Steam hbmfluid.steam=Steam hbmfluid.sulfuric_acid=Sulfuric Acid +hbmfluid.sunfloweroil=Sunflower Seed Oil hbmfluid.superhotsteam=Super Dense Steam hbmfluid.syngas=Syngas hbmfluid.tritium=Tritium @@ -1546,7 +1552,7 @@ item.ammo_grenade_finned.name=40mm Grenade (Finned) item.ammo_grenade_he.name=40mm Grenade (HE) item.ammo_grenade_incendiary.name=40mm Grenade (Incendiary) item.ammo_grenade_kampf.name=40mm Rocket -item.ammo_grenade_nuclear.name=40mm Grenade (Привет) +item.ammo_grenade_nuclear.name=40mm Grenade (Привет) item.ammo_grenade_phosphorus.name=40mm Grenade (WP) item.ammo_grenade_sleek.name=40mm Grenade (IF-R&D) item.ammo_grenade_toxic.name=40mm Grenade (Chemical) @@ -1580,7 +1586,7 @@ item.ammo_rocket_emp.name=84mm Rocket (Pulse) item.ammo_rocket_glare.name=84mm Rocket (Red Glare) item.ammo_rocket_he.name=84mm Rocket (HE) item.ammo_rocket_incendiary.name=84mm Rocket (Incendiary) -item.ammo_rocket_nuclear.name=84mm Rocket (Привет) +item.ammo_rocket_nuclear.name=84mm Rocket (Привет) item.ammo_rocket_phosphorus.name=84mm Rocket (WP) item.ammo_rocket_rpc.name=84mm Rocket Propelled Chainsaw item.ammo_rocket_shrapnel.name=84mm Rocket (Shrapnel) @@ -1594,7 +1600,7 @@ item.ammo_shell_w9.name=240mm W9 Nuclear Shell item.ammo_stinger_rocket.name=Stinger Rocket item.ammo_stinger_rocket_he.name=Stinger Rocket (HE) item.ammo_stinger_rocket_incendiary.name=Stinger Rocket (Incendiary) -item.ammo_stinger_rocket_nuclear.name=Stinger Rocket (Привет) +item.ammo_stinger_rocket_nuclear.name=Stinger Rocket (Привет) item.ammo_stinger_rocket_bones.name=Stinger Rocket (Bone-Seeking) item.ams_catalyst_aluminium.name=Aluminium Reaction Catalyst item.ams_catalyst_beryllium.name=Beryllium Reaction Catalyst @@ -1633,7 +1639,7 @@ item.apple_schrabidium.name=Schrabidium Apple item.arc_electrode.name=Graphite Electrode item.arc_electrode_burnt.name=Molten Electrode item.arc_electrode_desh.name=Desh Electrode -item.armor_polish.name=ShiningArmorâ„¢ Armor Polish +item.armor_polish.name=ShiningArmor™ Armor Polish item.asbestos_boots.name=Fire Proximity Boots item.asbestos_cloth.name=Fire Proximity Cloth item.asbestos_helmet.name=Fire Proximity Helmet @@ -1854,7 +1860,7 @@ item.can_mug.name=MUG Root Beer item.can_overcharge.name=Overcharge Delirium XT item.can_redbomb.name='Red Bomb' Energy Drink item.can_smart.name='Smart' Energy Drink -item.canister_NITAN.name=NITAN© 100 Octane Super Fuel (LEGACY) +item.canister_NITAN.name=NITAN© 100 Octane Super Fuel (LEGACY) item.canister_biofuel.name=Biofuel Canister (LEGACY) item.canister_bitumen.name=Bitumen Canister (LEGACY) item.canister_canola.name=Engine Lubricant (LEGACY) @@ -1898,7 +1904,7 @@ item.canned_fried.name=Canned Fried Chicken item.canned_fried.desc=Even the can is deep fried! item.canned_hotdogs.name=Canned Hotdogs item.canned_hotdogs.desc=Not to be confused with cool cats. -item.canned_jizz.name=FlimFlam Industries Canned Stallion Milkâ„¢ +item.canned_jizz.name=FlimFlam Industries Canned Stallion Milk™ item.canned_jizz.desc=Wait wh- item.canned_kerosene.name=Canned Kerosene item.canned_kerosene.desc=Just imagine a witty line here. @@ -1912,14 +1918,14 @@ item.canned_napalm.name=Canned Napalm item.canned_napalm.desc=I love the smell of old memes in the morning! item.canned_oil.name=Canned Engine Oil item.canned_oil.desc=It makes motors go, so why not humans? -item.canned_pashtet.name=Паштет -item.canned_pashtet.desc=уÑ�луги перевода недоÑ�тупны! +item.canned_pashtet.name=Паштет +item.canned_pashtet.desc=услуги перевода недоступны! item.canned_pizza.name=Canned Pepperoni Pizza item.canned_pizza.desc=A crime against humanity. item.canned_recursion.name=Canned Recursion item.canned_recursion.desc=Canned Recursion item.canned_spam.name=Canned Spam -item.canned_spam.desc=The three-and-a-half-minute sketch is set in the fictional Green Midget Cafe in Bromley.$An argument develops between the waitress, who recites a menu in which nearly$every dish contains Spam, and Mrs. Bun, who does not like Spam. She asks for a$dish without Spam, much to the amazement of her Spam-loving husband. The waitress$responds to this request with disgust. Mr. Bun offers to take her Spam instead,$and asks for a dish containing a lot of Spam and baked beans. The waitress says$no since they are out of baked beans; when Mr. Bun asks for a substitution of Spam,$the waitress again responds with disgust. At several points, a group of Vikings in$the restaurant interrupts conversation by loudly singing about Spam.$The irate waitress orders them to shut up, but they resume singing more loudly.$A Hungarian tourist comes to the counter, trying to order by using a wholly$inaccurate Hungarian/English phrasebook (a reference to a previous sketch).$He is rapidly escorted away by a police constable. The sketch abruptly cuts to a$historian in a television studio talking about the origin of the Vikings in the café.$As he goes on, he begins to increasingly insert the word \"Spam\" into every$sentence, and the backdrop is raised to reveal the restaurant set behind.$The historian joins the Vikings in their song, and Mr. and Mrs. Bun are lifted by$wires out of the scene while the singing continues. In the original televised performance,$the closing credits begin to scroll with the singing still audible in the background. +item.canned_spam.desc=The three-and-a-half-minute sketch is set in the fictional Green Midget Cafe in Bromley.$An argument develops between the waitress, who recites a menu in which nearly$every dish contains Spam, and Mrs. Bun, who does not like Spam. She asks for a$dish without Spam, much to the amazement of her Spam-loving husband. The waitress$responds to this request with disgust. Mr. Bun offers to take her Spam instead,$and asks for a dish containing a lot of Spam and baked beans. The waitress says$no since they are out of baked beans; when Mr. Bun asks for a substitution of Spam,$the waitress again responds with disgust. At several points, a group of Vikings in$the restaurant interrupts conversation by loudly singing about Spam.$The irate waitress orders them to shut up, but they resume singing more loudly.$A Hungarian tourist comes to the counter, trying to order by using a wholly$inaccurate Hungarian/English phrasebook (a reference to a previous sketch).$He is rapidly escorted away by a police constable. The sketch abruptly cuts to a$historian in a television studio talking about the origin of the Vikings in the café.$As he goes on, he begins to increasingly insert the word \"Spam\" into every$sentence, and the backdrop is raised to reveal the restaurant set behind.$The historian joins the Vikings in their song, and Mr. and Mrs. Bun are lifted by$wires out of the scene while the singing continues. In the original televised performance,$the closing credits begin to scroll with the singing still audible in the background. item.canned_stew.name=Canned "Mushroom Stew" item.canned_stew.desc=... item.canned_tomato.name=Canned Tomato Soup @@ -2456,9 +2462,9 @@ item.grenade_tau.name=Tau Grenade item.grenade_zomg.name=Negative Energy Pair Annihilation Grenade item.gun_ar15.name=Josh item.gun_avenger.name=CZ57 Avenger Minigun -item.gun_b92.name=§9B92 Energy Pistol§r -item.gun_b92_ammo.name=§9B92 Energy Cell§r -item.gun_b93.name=§cB93 Energy Mod§r +item.gun_b92.name=§9B92 Energy Pistol§r +item.gun_b92_ammo.name=§9B92 Energy Cell§r +item.gun_b93.name=§cB93 Energy Mod§r item.gun_bf.name=BEL item.gun_bf_ammo.name=Balefire Shell item.gun_bio_revolver.name=Atlas @@ -2508,7 +2514,7 @@ item.gun_lever_action.name=Mare's Leg (Original) item.gun_lever_action_ammo.name=12x74 Buckshot (LEGACY) item.gun_lever_action_dark.name=Mare's Leg (Dark) item.gun_lever_action_sonata.name=Flipped Mare's Leg -item.gun_lever_action_sonata_2.name=§cSonata's Microphone§r +item.gun_lever_action_sonata_2.name=§cSonata's Microphone§r item.gun_lunatic_marksman.name=Lunatic Sniper Rifle item.gun_m2.name=Ma Deuce item.gun_minigun.name=CZ53 Personal Minigun @@ -2526,7 +2532,7 @@ item.gun_osipr_ammo2.name=Combine Ball item.gun_panzerschreck.name=Panzerschreck item.gun_proto.name=M42 Nuclear Catapult "Proto MIRV" item.gun_quadro.name=Quattro Formaggi -item.gun_remington.name=ãƒ�イデン ブラスト [BIDEN BLAST] +item.gun_remington.name=バイデン ブラスト [BIDEN BLAST] item.gun_revolver.name=Enhanced Revolver item.gun_revolver_ammo.name=Lead Bullet item.gun_revolver_blackjack.name=Blackjack Five-Shooter @@ -2638,7 +2644,7 @@ item.ingot_am242.name=Americium-242 Ingot item.ingot_americium_fuel.name=Ingot of Americium Fuel item.ingot_arsenic.name=Arsenic Ingot item.ingot_asbestos.name=Asbestos Sheet -item.ingot_asbestos.desc=§o"Filled with life, self-doubt and asbestos. That comes with the air."§r +item.ingot_asbestos.desc=§o"Filled with life, self-doubt and asbestos. That comes with the air."§r item.ingot_au198.name=Gold-198 Ingot item.ingot_australium.name=Australium Ingot item.ingot_bakelite.name=Bakelite Bar @@ -2714,7 +2720,7 @@ item.ingot_semtex.name=Bar of Semtex item.ingot_smore.name=S'more Ingot item.ingot_solinium.name=Solinium Ingot item.ingot_sr90.name=Strontium-90 Ingot -item.ingot_starmetal.name=§9Starmetal Ingot§r +item.ingot_starmetal.name=§9Starmetal Ingot§r item.ingot_steel.name=Steel Ingot item.ingot_steel_dusted.name=Dusted Steel Ingot item.ingot_tantalium.name=Tantalium Ingot @@ -2738,7 +2744,7 @@ item.ingot_weidanium.name=Weidanium Ingot item.ingot_zirconium.name=Zirconium Cube item.injector_5htp.name=5-HTP Autoinjector item.injector_knife.name=8 Inch Blade Autoinjector -item.ink.name=æž— Ink +item.ink.name=林 Ink item.insert_doxium.name=Astolfium-Doped Doxium Insert item.insert_du.name=DU Insert item.insert_era.name=Explosive Reactive Armor Insert @@ -2769,7 +2775,7 @@ item.key_fake.name=Counterfeit Key item.key_kit.name=Key Imitation Kit item.key_red.name=Red Key item.key_red.desc=Explore the other side. -item.key_red.desc.P11=§4e§r +item.key_red.desc.P11=§4e§r item.kit_toolbox.name=Toolbox item.kit_toolbox_empty.name=Empty Toolbox item.laser_crystal_bismuth.desc=Bismuth-Samarium-Uranium-Thorium crystal matrix @@ -2795,7 +2801,7 @@ item.liquidator_plate.name=Liquidator Suit Chestplate item.lithium.name=Lithium Cube item.lodestone.name=Lodestone item.loop_stew.name=IT Breakfast -item.loops.name=Lööps +item.loops.name=Lööps item.loot_10.name=Size 10 Missile Loot Crate item.loot_15.name=Size 15 Missile Loot Crate item.loot_misc.name=General Missile Loot Crate @@ -2826,7 +2832,7 @@ item.med_ptsd.name=PTSD Medication item.med_schiziphrenia.name=Schizophrenia Medication item.medal_liquidator.name=Liquidator Medal item.meltdown_tool.name=Dyatlov Instant Meltdown Applicator -item.memespoon.name=§eMarket Gardener +item.memespoon.name=§eMarket Gardener item.memory.name=item.null.name item.mese_gavel.name=Mese Gavel item.mese_pickaxe.name=Mese Pickaxe @@ -2893,7 +2899,7 @@ item.missile_skin_orange_insulation.desc=Not an orange juice bottle;$do not atte item.missile_skin_sleek.name=Missile Skin: IF-R&D item.missile_skin_sleek.desc=Chevrons are cool! item.missile_skin_soviet_glory.name=Missile Skin: Soviet Glory -item.missile_skin_soviet_glory.desc=уÑ�луга перевода недоÑ�тупна +item.missile_skin_soviet_glory.desc=услуга перевода недоступна item.missile_skin_soviet_stank.name=Missile Skin: Soviet Stank item.missile_skin_soviet_stank.desc=This one's got the real 60's stank to it. item.missile_soyuz.name=Soyuz-FG @@ -3024,7 +3030,7 @@ item.mp_warhead_15_balefire.name=Size 15 BF Warhead item.mp_warhead_15_boxcar.name=Size 15 Boxcar? item.mp_warhead_15_he.name=Size 15 HE Warhead item.mp_warhead_15_incendiary.name=Size 15 Incendiary Warhead -item.mp_warhead_15_n2.name=Size 15 N² Mine +item.mp_warhead_15_n2.name=Size 15 N² Mine item.mp_warhead_15_nuclear.name=Size 15 Nuclear Warhead item.mp_warhead_15_nuclear_mimi.name=Size 15 Mimi-chan's Head item.mp_warhead_15_nuclear_shark.name=Size 15 Nuclear Warhead @@ -3090,7 +3096,7 @@ item.nugget_les.name=Low Enriched Schrabidium Fuel Nugget item.nugget_mercury_tiny.name=Tiny Drop of Mercury item.nugget_mercury.name=Drop of Mercury item.nugget_mox_fuel.name=Nugget of MOX Fuel -item.nugget_mox_fuel.desc=Moxie says: §lTAX EVASION.§r +item.nugget_mox_fuel.desc=Moxie says: §lTAX EVASION.§r item.nugget_neptunium.name=Neptunium Nugget item.nugget_neptunium_fuel.name=Neptunium Fuel Nugget item.nugget_osmiridium.name=Osmiridium Nugget @@ -3149,6 +3155,8 @@ item.ore.iron=Iron item.ore.niobium=Niobium item.ore.titanium=Titanium item.ore.tungsten=Tungsten +item.ore.thorium=Thorium +item.ore.uranium=Uranium item.ore_bedrock.name=%s Bedrock Ore item.ore_byproduct.b_aluminium.name=Crystalline Aluminium Fragment item.ore_byproduct.b_bismuth.name=Crystalline Bismuth Fragment @@ -3157,9 +3165,13 @@ item.ore_byproduct.b_copper.name=Crystalline Copper Fragment item.ore_byproduct.b_iron.name=Crystalline Iron Fragment item.ore_byproduct.b_lead.name=Crystalline Lead Fragment item.ore_byproduct.b_lithium.name=Crystalline Lithium Fragment +item.ore_byproduct.b_polonium.name=Crystalline Polonium Fragment +item.ore_byproduct.b_radium.name=Crystalline Radium Fragment item.ore_byproduct.b_silicon.name=Crystalline Silicon Fragment item.ore_byproduct.b_sulfur.name=Crystalline Sulfur Fragment +item.ore_byproduct.b_technetium.name=Crystalline Technetium Fragment item.ore_byproduct.b_titanium.name=Crystalline Titanium Fragment +item.ore_byproduct.b_uranium.name=Crystalline Uranium Fragment item.ore_centrifuged.name=Centrifuged %s Ore item.ore_cleaned.name=Cleaned %s Ore item.ore_deepcleaned.name=Deep Cleaned %s Ore @@ -3167,7 +3179,7 @@ item.ore_enriched.name=Enriched %s Ore item.ore_nitrated.name=Nitrated %s Ore item.ore_nitrocrystalline.name=Nitrocrystalline %s Ore item.ore_purified.name=Purified %s Ore -item.ore_raadcleaned.name=Radiation-Cleaned %s Ore +item.ore_radcleaned.name=Radiation-Cleaned %s Ore item.ore_seared.name=Seared %s Ore item.ore_separated.name=Separated %s Ore item.overfuse.name=Singularity Screwdriver @@ -3198,7 +3210,7 @@ item.particle_aproton.name=Antiproton Capsule item.particle_aschrab.name=Antischrabidium Capsule item.particle_copper.name=Copper Ion Capsule item.particle_dark.name=Dark Matter Capsule -item.particle_digamma.name=§cThe Digamma Particle§r +item.particle_digamma.name=§cThe Digamma Particle§r item.particle_empty.name=Empty Particle Capsule item.particle_higgs.name=Higgs Boson Capsule item.particle_hydrogen.name=Hydrogen Ion Capsule @@ -3264,19 +3276,19 @@ item.pellet_rtg_weak.desc=Cheaper and weaker pellet, now with more U238! item.pellet_schrabidium.name=Pure Schrabidium Watz Pellet item.photo_panel.name=Photovoltaic Panel item.pile_rod_boron.name=Chicago Pile Control Rod -item.pile_rod_boron.desc=§9[Neutron Absorber]$§eClick to toggle +item.pile_rod_boron.desc=§9[Neutron Absorber]$§eClick to toggle item.pile_rod_detector.name=Chicago Pile Control & Detector Rod -item.pile_rod_detector.desc=§9[Neutron Detector/Absorber]$§eUse defuser to increase/decrease neutron limit$§eUse screwdriver w/o sneaking to inspect flux +item.pile_rod_detector.desc=§9[Neutron Detector/Absorber]$§eUse defuser to increase/decrease neutron limit$§eUse screwdriver w/o sneaking to inspect flux item.pile_rod_lithium.name=Chicago Pile Lithium Cell -item.pile_rod_lithium.desc=§a[Breedable Fuel]$§eUse hand drill to inspect core +item.pile_rod_lithium.desc=§a[Breedable Fuel]$§eUse hand drill to inspect core item.pile_rod_plutonium.name=Chicago Pile Plutonium Rod -item.pile_rod_plutonium.desc=§d[Neutron Source] +item.pile_rod_plutonium.desc=§d[Neutron Source] item.pile_rod_pu239.name=Chicago Pile Bred Uranium Rod -item.pile_rod_pu239.desc=§a[Reactive Fuel]$§eRich in Plutonium-239. +item.pile_rod_pu239.desc=§a[Reactive Fuel]$§eRich in Plutonium-239. item.pile_rod_source.name=Chicago Pile Ra226Be Neutron Source -item.pile_rod_source.desc=§d[Neutron Source] +item.pile_rod_source.desc=§d[Neutron Source] item.pile_rod_uranium.name=Chicago Pile Uranium Rod -item.pile_rod_uranium.desc=§a[Reactive Fuel]$§eUse hand drill to take core sample +item.pile_rod_uranium.desc=§a[Reactive Fuel]$§eUse hand drill to take core sample item.pill_iodine.name=Iodine Pill item.pill_iodine.desc=Removes negative effects item.pill_herbal.name=Herbal Paste @@ -3337,7 +3349,7 @@ item.powder_actinium_tiny.name=Tiny Pile of Actinium Powder item.powder_advanced_alloy.name=Advanced Alloy Powder item.powder_aluminium.name=Aluminium Powder item.powder_asbestos.name=Asbestos Powder -item.powder_asbestos.desc=§o\"Sniffffffff- MHHHHHHMHHHHHHHHH\"§r +item.powder_asbestos.desc=§o\"Sniffffffff- MHHHHHHMHHHHHHHHH\"§r item.powder_astatine.name=Astatine Powder item.powder_at209.name=Astatine-209 Powder item.powder_au198.name=Gold-198 Powder @@ -3371,7 +3383,7 @@ item.powder_cs137_tiny.name=Tiny Pile of Caesium-137 Powder item.powder_daffergon.name=Daffergon Powder item.powder_desh.name=Desh Powder item.powder_desh_mix.name=Desh Blend -item.powder_desh_ready.name=DeshReadyâ„¢ Blend +item.powder_desh_ready.name=DeshReady™ Blend item.powder_diamond.name=Diamond Powder item.powder_dineutronium.name=Dineutronium Powder item.powder_dura_steel.name=High-Speed Steel Powder @@ -3466,7 +3478,7 @@ item.rag_damp.name=Damp Cloth item.rag_piss.name=Piss-Soaked Rag item.rbmk_fuel_balefire.name=Balefire RBMK Fuel Rod item.rbmk_fuel_balefire_gold.name=Flashgold RBMK Fuel Rod -item.rbmk_fuel_drx.name=§cDigamma RBMK Fuel Rod§r +item.rbmk_fuel_drx.name=§cDigamma RBMK Fuel Rod§r item.rbmk_fuel_empty.name=Empty RBMK Fuel Rod item.rbmk_fuel_flashlead.name=Flashlead RBMK Fuel Rod item.rbmk_fuel_hea241.name=HEA-241 RBMK Fuel Rod @@ -3500,7 +3512,7 @@ item.rbmk_lid.name=RBMK Cover Panel item.rbmk_lid_glass.name=RBMK Glass Cover Panel item.rbmk_pellet_balefire.name=Balefire Fuel Pellet item.rbmk_pellet_balefire_gold.name=Flashgold Fuel Pellet -item.rbmk_pellet_drx.name=§cDigamma Fuel Pellet§r +item.rbmk_pellet_drx.name=§cDigamma Fuel Pellet§r item.rbmk_pellet_flashlead.name=Flashlead Fuel Pellet item.rbmk_pellet_hea241.name=HEA-241 Fuel Pellet item.rbmk_pellet_hea242.name=HEA-242 Fuel Pellet @@ -3546,7 +3558,7 @@ item.redstone_sword.name=Redstone Sword item.reer_graar.name=The Reer Graar item.remote.name=Broken Remote item.ring_pull.name=Ring Pull -item.ring_starmetal.name=§9Starmetal Ring§r +item.ring_starmetal.name=§9Starmetal Ring§r item.robes_boots.name=Field Boots item.robes_helmet.name=Casual Hoodie item.robes_legs.name=Casual Pants @@ -3880,6 +3892,7 @@ item.steel_shovel.name=Steel Shovel item.steel_sword.name=Steel Sword item.stick_c4.name=Stick of C-4 item.stick_dynamite.name=Stick of Dynamite +item.stick_dynamite_fishing.name=Stick of Fishing Dynamite item.stick_semtex.name=Stick of Semtex item.stick_tnt.name=Stick of TNT item.stopsign.name=Stop Sign Battle Axe @@ -3942,6 +3955,7 @@ item.titanium_plate.name=Titanium Chestplate item.titanium_shovel.name=Titanium Shovel item.titanium_sword.name=Titanium Sword item.toothpicks.name=Toothpicks +item.train.cargo_tram.name=Electric Flat Bed Tram item.trinitite.name=Trinitite item.tritium_deuterium_cake.name=Tritium-Deuterium-Cake item.tritium_deuterium_cake.desc=Not actual cake, but great$universal fusion fuel! @@ -4064,12 +4078,12 @@ item.watz_pellet_depleted.nqr.name=Naquadria Watz Pellet (Depleted) item.watz_pellet_depleted.hen.name=HEN Watz Pellet (Depleted) item.watz_pellet_depleted.schrabidium.name=Schrabidium Watz Pellet (Depleted) item.weapon_bat.name=Richard's Default -item.weapon_bat_nail.name=The Cliché +item.weapon_bat_nail.name=The Cliché item.weapon_golf_club.name=Russian Mobster's Club item.weapon_pipe_lead.name=The Manual Override item.weapon_pipe_rusty.name=The Attitude Adjuster item.weapon_saw.name=Doctor Assisted Homicide -item.weaponized_starblaster_cell.name=§cRigged Star Blaster Energy Cell§r +item.weaponized_starblaster_cell.name=§cRigged Star Blaster Energy Cell§r item.wd40.name=VT-40 item.wild_p.name=Wild Pegasus Dry Whiskey item.wings_limp.name=Limp Wings @@ -4132,11 +4146,11 @@ rbmk.console.fuel_depletion=Monitor average fuel depletion rbmk.console.fuel_poison=Monitor average xenon poisoning rbmk.console.fuel_temp=Monitor average fuel temperature rbmk.control.level=%s -rbmk.control.red=§cRed Group -rbmk.control.yellow=§eYellow Group -rbmk.control.green=§aGreen Group -rbmk.control.blue=§1Blue Group -rbmk.control.purple=§5Purple Group +rbmk.control.red=§cRed Group +rbmk.control.yellow=§eYellow Group +rbmk.control.green=§aGreen Group +rbmk.control.blue=§1Blue Group +rbmk.control.purple=§5Purple Group rbmk.moderated=Moderated rbmk.rod.depletion=Depletion: %s rbmk.rod.xenon=Xenon poison: %s @@ -4199,7 +4213,7 @@ tile.barbed_wire_wither.name=Withered Barbed Wire tile.barrel_antimatter.name=Magnetic Antimatter Container tile.barrel_corroded.name=Corroded Barrel tile.barrel_iron.name=Iron Barrel -tile.barrel_plastic.name=Safe Barrelâ„¢ +tile.barrel_plastic.name=Safe Barrel™ tile.barrel_steel.name=Steel Barrel tile.barrel_tcalloy.name=Technetium Steel Barrel tile.barricade.name=Sand Bags @@ -4298,7 +4312,7 @@ tile.block_semtex.name=Block of Semtex tile.block_slag.name=Block of Slag tile.block_smore.name=Block of S'more tile.block_solinium.name=Block of Solinium -tile.block_starmetal.name=§9Block of Starmetal§r +tile.block_starmetal.name=§9Block of Starmetal§r tile.block_steel.name=Block of Steel tile.block_sulfur.name=Block of Sulfur tile.block_tantalium.name=Block of Tantalium @@ -4417,6 +4431,12 @@ tile.concrete_colored.red.name=Red Concrete tile.concrete_colored.silver.name=Light Gray Concrete tile.concrete_colored.white.name=White Concrete tile.concrete_colored.yellow.name=Yellow Concrete +tile.concrete_colored_ext.hazard.name=Builder's Choice Concrete - Hazard Stripe +tile.concrete_colored_ext.indigo.name=Builder's Choice Concrete - Deep Indigo +tile.concrete_colored_ext.machine.name=Builder's Choice Concrete - Industrial Tinge +tile.concrete_colored_ext.machine_stripe.name=Builder's Choice Concrete - Industrial Stripe +tile.concrete_colored_ext.pink.name=Builder's Choice Concrete - Manly Pink +tile.concrete_colored_ext.purple.name=Builder's Choice Concrete - Mysterious Purple tile.concrete_pillar.name=Rebar Reinforced Concrete Pillar tile.concrete_slab.concrete.name=Concrete Tile Slab tile.concrete_slab.concrete_asbestos.name=Asbestos Concrete Slab @@ -4426,7 +4446,7 @@ tile.concrete_slab.ducrete_smooth.name=Ducrete Slab tile.concrete_smooth.name=Concrete tile.concrete_smooth_stairs.name=Concrete Stairs tile.concrete_stairs.name=Concrete Tile Stairs -tile.concrete_super.name=Über Concrete +tile.concrete_super.name=Über Concrete tile.concrete_super_broken.name=Moldy Debris tile.conveyor.name=Conveyor Belt tile.conveyor_chute.name=Conveyor Chute @@ -4463,6 +4483,7 @@ tile.deco_beryllium.name=Beryllium Deco Block tile.deco_computer.ibm_300pl.name=IBM Personal Computer 300PL tile.deco_emitter.name=Deco Light Emitter tile.part_emitter.name=Deco Particle Emitter +tile.piston_inserter.name=Inserter tile.deco_lead.name=Lead Deco Block tile.deco_rbmk.name=RBMK Deco Block tile.deco_rbmk_smooth.name=Smooth RBMK Deco Block @@ -4560,17 +4581,18 @@ tile.foundry_channel.name=Foundry Channel tile.foundry_tank.name=Foundry Storage Basin tile.foundry_mold.name=Shallow Foundry Basin tile.foundry_outlet.name=Foundry Outlet +tile.foundry_slagtap.name=Foundry Slag Outlet tile.fraction_spacer.name=Fractioning Tower Separator tile.frozen_dirt.name=Frozen Dirt tile.frozen_grass.name=Frozen Grass tile.frozen_log.name=Frozen Log tile.frozen_planks.name=Frozen Planks tile.furnace_combination.name=Combination Oven -tile.furnace_combination.desc=A large furnace that can produce charcoal and coal coke.$Produces fluid byproducts.$Heat transfer rate: ΔT*0.25 TU/t +tile.furnace_combination.desc=A large furnace that can produce charcoal and coal coke.$Produces fluid byproducts.$Heat transfer rate: ΔT*0.25 TU/t tile.furnace_iron.name=Iron Furnace tile.furnace_iron.desc=Larger and more efficient furnace,$does not waste fuel when idle. tile.furnace_steel.name=Steel Furnace -tile.furnace_steel.desc=Very large furnace that can provide bonus items$when smelting ores. Requires external heat source.$Heat transfer rate: ΔT*0.05 TU/t$(Δ means difference and T means temperature) +tile.furnace_steel.desc=Very large furnace that can provide bonus items$when smelting ores. Requires external heat source.$Heat transfer rate: ΔT*0.05 TU/t$(Δ means difference and T means temperature) tile.fusion_center.name=Central Magnet Piece tile.fusion_conductor.name=Superconducting Magnet tile.fusion_core.name=Fusion Reactor Control @@ -4680,7 +4702,7 @@ tile.machine_bat9000.name=Big-Ass Tank 9000 tile.machine_battery.name=Energy Storage Block tile.machine_battery_potato.name=Potato Battery Block tile.machine_boiler.name=Boiler -tile.machine_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ΔT*0.01 TU/t +tile.machine_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ΔT*0.01 TU/t tile.machine_boiler_electric_off.name=Electric Oil Heater tile.machine_boiler_electric_on.name=Electric Oil Heater tile.machine_boiler_off.name=Oil Heater @@ -4695,7 +4717,7 @@ tile.machine_chungus.desc=Efficiency: 85%% tile.machine_coal_off.name=Combustion Generator tile.machine_coal_on.name=Combustion Generator tile.machine_coker.name=Coker Unit -tile.machine_coker.desc=Cokes oil, creating fluid byproducts.$Requires external heat source.$Heat transfer rate: ΔT*0.025 TU/t +tile.machine_coker.desc=Cokes oil, creating fluid byproducts.$Requires external heat source.$Heat transfer rate: ΔT*0.025 TU/t tile.machine_combine_factory.name=CMB Steel Furnace tile.machine_combustion_engine.name=Industrial Combustion Engine tile.machine_condenser.name=Steam Condenser @@ -4831,7 +4853,7 @@ tile.nuke_fstbmb.name=Balefire Bomb tile.nuke_gadget.name=The Gadget tile.nuke_man.name=Fat Man tile.nuke_mike.name=Ivy Mike -tile.nuke_n2.name=N² Mine +tile.nuke_n2.name=N² Mine tile.nuke_n45.name=N45 Naval Mine tile.nuke_prototype.name=The Prototype tile.nuke_solinium.name=The Blue Rinse @@ -4988,7 +5010,6 @@ tile.reinforced_brick.name=Reinforced Stone tile.reinforced_brick_stairs.name=Reinforced Stone Stairs tile.reinforced_ducrete.name=Reinforced Ducrete tile.reinforced_glass.name=Reinforced Glass -tile.reinforced_laminate.name=Laminate Glass tile.reinforced_lamp_off.name=Reinforced Lamp tile.reinforced_lamp_on.name=Reinforced Lamp tile.reinforced_light.name=Reinforced Glowstone @@ -5050,6 +5071,7 @@ tile.stone_depth_nether.name=Nether Depth Rock tile.stone_gneiss.name=Graphitic Schist tile.stone_porous.name=Porous Stone tile.stone_resource.asbestos.name=Chrysotile +tile.stone_resource.bauxite.name=Bauxite tile.stone_resource.hematite.name=Hematite tile.stone_resource.limestone.name=Limestone tile.stone_resource.malachite.name=Malachite @@ -5197,9 +5219,9 @@ tool.ability.silktouch=Silk Touch tool.ability.smelter=Auto-Smelter turret.animals=Target Passive: %s -turret.arty.artillery=§eArtillery Mode$Grace: 250m$Range: 3,000m -turret.arty.cannon=§eCannon Mode$Grace: 32m$Range: 250m -turret.arty.manual=§eManual Mode$Range: 3,000m +turret.arty.artillery=§eArtillery Mode$Grace: 250m$Range: 3,000m +turret.arty.cannon=§eCannon Mode$Grace: 32m$Range: 250m +turret.arty.manual=§eManual Mode$Range: 3,000m turret.machines=Target Machines: %s turret.mobs=Target Mobs: %s turret.none=None @@ -5234,4 +5256,4 @@ weapon.elecGun.glass_cannon.ir=Infrared weapon.elecGun.glass_cannon.visible=Visible Light weapon.elecGun.glass_cannon.uv=Ultraviolet Light weapon.elecGun.glass_cannon.xray=X-rays -weapon.elecGun.glass_cannon.gamma=Gamma rays \ No newline at end of file +weapon.elecGun.glass_cannon.gamma=Gamma rays From a9af4fa277622dd3caef2132a9256cbef2294328 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 30 May 2023 14:56:10 +0200 Subject: [PATCH 024/109] changelog --- changelog | 14 ++++++++++++++ curseforge.properties.example | 5 ----- gradle.properties | 21 ++++++++++++--------- 3 files changed, 26 insertions(+), 14 deletions(-) delete mode 100644 curseforge.properties.example diff --git a/changelog b/changelog index e69de29bb..9e3e29f28 100644 --- a/changelog +++ b/changelog @@ -0,0 +1,14 @@ +## Added +* Laminate glass + * A new variant of refinroced glass with higher blast resistance + +## Changed +* Updated russian localization +* Rebalanced some powder recipes like meteorite powder, spark blend and energy powder +* Changed spark battery recipes, the total cost and crafting steps for higher tier batteries should no longer be as insane as before +* Technetium steel and ferrouranium drillbits are now craftable +* The vacuum refinery now requires a bismuth chipset +* Paraffin wax can now also be used to make chlorated petroleum wax +* Retextured schrabidium batteries, the cap is now black instead of red + +## Fixed \ No newline at end of file diff --git a/curseforge.properties.example b/curseforge.properties.example deleted file mode 100644 index 002b2b4f5..000000000 --- a/curseforge.properties.example +++ /dev/null @@ -1,5 +0,0 @@ -# CurseForge API token (obtainable from https://legacy.curseforge.com/account/api-tokens) -api_key= - -# CurseForge project ID -project_id= diff --git a/gradle.properties b/gradle.properties index 17db097d2..a7d9d6e1a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,12 +3,15 @@ mod_version=1.0.27 mod_build_number=4613 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ - \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models, porting),\ - \ UFFR (RTGs, guns, casings), Pu-238 (Tom impact effects), Bismarck (chinese localization),\ - \ Frooz (models), Minecreep (models), VT-6/24 (models, textures), Pheo (textures, various machines, models, weapons), Vr (gas centrifuges,\ - \ better worldgen, ZIRNOX, CP-1 parts, starter guide), Adam29 (liquid petroleum, ethanol, electric furnace),\ - \ Pashtet (russian localization), MartinTheDragon (calculator, chunk-based fallout), haru315 (spiral point algorithm),\ - \ Sten89 (models), Pixelguru26 (textures), TheBlueHat (textures), Alcater (GUI textures, porting), impbk2002 (project settings),\ - \ OvermindDL1 (project settings), TehTemmie (reacher radiation function), Toshayo (satellite loot system, project settings), Silly541 (config for safe ME drives),\ - \ Voxelstice (OpenComputers integration, turbine spinup), BallOfEnergy1 (OpenComputers integration), martemen (project settings),\ - \ Pvndols (thorium fuel recipe, gas turbine), JamesH2 (blood mechanics, nitric acid), sdddddf80 (recipe configs), SuperCraftAlex (tooltips) + \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ + \ porting), UFFR (RTGs, guns, casings), Pu-238 (Tom impact effects), Bismarck (chinese localization),\ + \ Frooz (models), Minecreep (models), VT-6/24 (models, textures), Pheo (textures, various machines,\ + \ models, weapons), Vr (gas centrifuges, better worldgen, ZIRNOX, CP-1 parts, starter guide), Adam29\ + \ (liquid petroleum, ethanol, electric furnace), Pashtet (russian localization), MartinTheDragon\ + \ (calculator, chunk-based fallout), haru315 (spiral point algorithm), Sten89 (models), Pixelguru26\ + \ (textures), TheBlueHat (textures), Alcater (GUI textures, porting), impbk2002 (project settings),\ + \ Burningwater202 (laminate glass), OvermindDL1 (project settings), TehTemmie (reacher radiation function),\ + \ Toshayo (satellite loot system, project settings, gradle curse task), Silly541 (config for safe ME drives),\ + \ Voxelstice (OpenComputers integration, turbine spinup), BallOfEnergy1 (OpenComputers integration), martemen\ + \ (project settings), Pvndols (thorium fuel recipe, gas turbine), JamesH2 (blood mechanics, nitric acid,\ + \ particle emitter), sdddddf80 (recipe configs, chinese localization), SuperCraftAlex (tooltips) From f4d67be51eef1b4e03748223d8ebe4e8ec133432 Mon Sep 17 00:00:00 2001 From: Vaern Date: Tue, 30 May 2023 20:04:55 -0700 Subject: [PATCH 025/109] deco --- .../world/gen/component/BunkerComponents.java | 73 +++++++++++++++---- 1 file changed, 59 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/hbm/world/gen/component/BunkerComponents.java b/src/main/java/com/hbm/world/gen/component/BunkerComponents.java index b132b862d..3efd261fd 100644 --- a/src/main/java/com/hbm/world/gen/component/BunkerComponents.java +++ b/src/main/java/com/hbm/world/gen/component/BunkerComponents.java @@ -141,7 +141,7 @@ public class BunkerComponents { placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, 5, 4, 5, box); //machine placeBlockAtCurrentPosition(world, ModBlocks.deco_tungsten, 0, 3, 1, 6, box); - generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(2), 4, 1, 6, HbmChestContents.antenna/*TODO change */, 5); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(3), 4, 1, 6, HbmChestContents.antenna/*TODO change */, 5); placeBlockAtCurrentPosition(world, ModBlocks.deco_tungsten, 0, 5, 1, 6, box); fillWithMetadataBlocks(world, box, 3, 2, 6, 5, 2, 6, ModBlocks.concrete_smooth_stairs, getStairMeta(2) | 4); fillWithMetadataBlocks(world, box, 3, 3, 6, 5, 3, 6, ModBlocks.tape_recorder, getDecoMeta(2)); @@ -149,7 +149,7 @@ public class BunkerComponents { placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, getStairMeta(1) | 4, 3, 1, 4, box); placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, getStairMeta(3) | 4, 4, 1, 4, box); placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, getStairMeta(0) | 4, 5, 1, 4, box); - placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(0), 4, 2, 4, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(1), 4, 2, 4, box); //clear out entryways based on path if(paths[0]) fillWithAir(world, box, 7, 1, 2, 7, 2, 3); if(paths[1]) fillWithAir(world, box, 3, 1, 0, 4, 2, 0); @@ -162,13 +162,17 @@ public class BunkerComponents { public static class Corridor extends Component implements ProceduralComponent { private boolean path; + private int[] decorations = new int[2]; public Corridor() { } - public Corridor(int componentType, StructureBoundingBox box, int coordMode) { + public Corridor(int componentType, StructureBoundingBox box, int coordMode, Random rand) { super(componentType); this.boundingBox = box; this.coordBaseMode = coordMode; + + decorations[0] = rand.nextInt(6); + decorations[1] = rand.nextInt(6); } /** write to nbt */ @@ -176,6 +180,7 @@ public class BunkerComponents { protected void func_143012_a(NBTTagCompound nbt) { super.func_143012_a(nbt); nbt.setBoolean("p", path); + nbt.setIntArray("d", decorations); } /** read from nbt */ @@ -183,6 +188,7 @@ public class BunkerComponents { protected void func_143011_b(NBTTagCompound nbt) { super.func_143011_b(nbt); path = nbt.getBoolean("p"); + decorations = nbt.getIntArray("d"); } @Override @@ -212,18 +218,57 @@ public class BunkerComponents { //lamps fillWithBlocks(world, box, 2, 5, 3, 3, 5, 3, ModBlocks.reinforced_lamp_off); fillWithBlocks(world, box, 2, 4, 3, 3, 4, 3, ModBlocks.fan); - //table w/ chairs - final int stairMetaS = getStairMeta(3); + //deco misc + final int stairMetaW = getStairMeta(0); + final int stairMetaE = getStairMeta(1); final int stairMetaN = getStairMeta(2); + final int stairMetaS = getStairMeta(3); + final int decoMetaE = getDecoMeta(4); + final int decoMetaW = getDecoMeta(5); - placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaS, 1, 1, 2, box); - placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaN, 1, 1, 4, box); - placeBlockAtCurrentPosition(world, Blocks.fence, 0, 1, 1, 3, box); - placeBlockAtCurrentPosition(world, Blocks.wooden_pressure_plate, 1, 1, 2, 3, box); - //desk w/ computer - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | 4, 4, 1, 2, box); - placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaN, 4, 1, 4, box); - placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(1), 4, 2, 2, box); + for(int i = 0; i <= 1; i++) { + final int x = 1 + i * 3; + switch (decorations[i]) { + default: //table w/ chairs + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaS, x, 1, 2, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaN, x, 1, 4, box); + placeBlockAtCurrentPosition(world, Blocks.fence, 0, x, 1, 3, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_pressure_plate, 1, x, 2, 3, box); + break; + case 1://desk w/ computer + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | 4, x, 1, 2, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaN, x, 1, 4, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(1), x, 2, 2, box); + break; + case 2: //couch + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaS, x, 1, 2, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, i < 1 ? stairMetaE : stairMetaW, x, 1, 3, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaN, x, 1, 4, box); + break; + case 3: + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | 4, x, 1, 2, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, (i < 1 ? stairMetaE : stairMetaW) | 4, x, 1, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaN | 4, x, 1, 4, box); + placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, x, 2, 2, box); + break; + case 4: + fillWithBlocks(world, box, x, 1, 1, x, 3, 1, ModBlocks.deco_tungsten); + placeBlockAtCurrentPosition(world, ModBlocks.deco_tungsten, 0, x, 1, 3, box); + fillWithMetadataBlocks(world, box, x, 3, 2, x, 3, 4, ModBlocks.concrete_smooth_stairs, i < 1 ? stairMetaE : stairMetaW); + fillWithBlocks(world, box, x, 1, 5, x, 3, 5, ModBlocks.deco_tungsten); + fillWithMetadataBlocks(world, box, x, 1, 2, x, 2, 2, ModBlocks.tape_recorder, i < 1 ? decoMetaW : decoMetaE); //don't ask me + fillWithMetadataBlocks(world, box, x, 1, 4, x, 2, 4, ModBlocks.tape_recorder, i < 1 ? decoMetaW : decoMetaE); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, i < 1 ? getDecoModelMeta(3) : getDecoModelMeta(2), x, 2, 3, box); + break; + case 5: + placeBlockAtCurrentPosition(world, Blocks.fence, 0, x, 1, 1, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_pressure_plate, 0, x, 2, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | 4, x, 1, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaN | 4, x, 1, 4, box); + placeBlockAtCurrentPosition(world, ModBlocks.radiorec, i < 1 ? decoMetaE : decoMetaW, x, 2, 3, box); + break; + } + } //doors placeDoor(world, box, ModBlocks.door_bunker, 1, true, rand.nextBoolean(), 2, 1, 0); placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 3, 1, 0); @@ -234,7 +279,7 @@ public class BunkerComponents { public static StructureComponent findValidPlacement(List components, Random rand, int x, int y, int z, int coordMode, int type) { StructureBoundingBox box = ProceduralStructureStart.getComponentToAddBoundingBox(x, y, z, -3, -1, 0, 6, 6, 7, coordMode); - return box.minY > 10 && StructureComponent.findIntersecting(components, box) == null ? new Corridor(type, box, coordMode) : null; + return box.minY > 10 && StructureComponent.findIntersecting(components, box) == null ? new Corridor(type, box, coordMode, rand) : null; } } From af695359b325c1c1d0ac957504dc30d47d3ff75f Mon Sep 17 00:00:00 2001 From: Vaern Date: Tue, 30 May 2023 20:52:47 -0700 Subject: [PATCH 026/109] small fix --- src/main/java/com/hbm/world/gen/component/BunkerComponents.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/world/gen/component/BunkerComponents.java b/src/main/java/com/hbm/world/gen/component/BunkerComponents.java index 3efd261fd..9937ac15f 100644 --- a/src/main/java/com/hbm/world/gen/component/BunkerComponents.java +++ b/src/main/java/com/hbm/world/gen/component/BunkerComponents.java @@ -113,7 +113,7 @@ public class BunkerComponents { fillWithRandomizedBlocks(world, box, 7, 0, 0, 7, 4, 7, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 1, 0, 0, 6, 4, 0, rand, ConcreteBricks); //meh, fix the area later - final int hpos = Component.getAverageHeight(world, boundingBox, box, componentType - boundingBox.minY); + final int hpos = Component.getAverageHeight(world, boundingBox, box, boundingBox.maxY) - boundingBox.minY; //top hatch placeBlockAtCurrentPosition(world, ModBlocks.concrete_slab, 1, 0, hpos, 5, box); fillWithMetadataBlocks(world, box, 1, hpos, 4, 1, hpos, 6, ModBlocks.concrete_smooth_stairs, getStairMeta(0)); From ccce86a41c716c3d549325abc52e81e5188b1a08 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 31 May 2023 15:18:16 +0200 Subject: [PATCH 027/109] usable tram trailer --- changelog | 2 +- .../entity/train/TrainCargoTramTrailer.java | 141 +++++++++++++++++- .../hbm/inventory/FluidContainerRegistry.java | 1 + .../gui/vehicles/gui_cargo_tram_trailer.png | Bin 0 -> 1382 bytes 4 files changed, 135 insertions(+), 9 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/gui/vehicles/gui_cargo_tram_trailer.png diff --git a/changelog b/changelog index 9e3e29f28..68bff38a5 100644 --- a/changelog +++ b/changelog @@ -1,6 +1,6 @@ ## Added * Laminate glass - * A new variant of refinroced glass with higher blast resistance + * A new variant of reinforced glass with higher blast resistance ## Changed * Updated russian localization diff --git a/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java b/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java index e077a14da..05d465476 100644 --- a/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java +++ b/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java @@ -1,13 +1,31 @@ package com.hbm.entity.train; -import com.hbm.blocks.rail.IRailNTM.TrackGauge; +import org.lwjgl.opengl.GL11; +import com.hbm.blocks.rail.IRailNTM.TrackGauge; +import com.hbm.inventory.gui.GuiInfoContainer; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.IGUIProvider; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.DamageSource; +import net.minecraft.util.ResourceLocation; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class TrainCargoTramTrailer extends EntityRailCarCargo { +public class TrainCargoTramTrailer extends EntityRailCarCargo implements IGUIProvider { /* * @@ -28,15 +46,11 @@ public class TrainCargoTramTrailer extends EntityRailCarCargo { @Override public double getMaxRailSpeed() { return 1; } @Override public TrackGauge getGauge() { return TrackGauge.STANDARD; } @Override public double getLengthSpan() { return 1.5; } - @Override public int getSizeInventory() { return 29; } + @Override public int getSizeInventory() { return 45; } @Override public String getInventoryName() { return this.hasCustomInventoryName() ? this.getEntityName() : "container.trainTramTrailer"; } @Override public AxisAlignedBB getCollisionBox() { return AxisAlignedBB.getBoundingBox(renderX, renderY, renderZ, renderX, renderY + 1, renderZ).expand(4, 0, 4); } @Override public double getCouplingDist(TrainCoupling coupling) { return coupling != null ? 2.75 : 0; } - - @Override - public double getCurrentSpeed() { - return 0; //we'll figure out how linked carts work later on - i hope - } + @Override public double getCurrentSpeed() { return 0; } @Override public DummyConfig[] getDummies() { @@ -55,4 +69,115 @@ public class TrainCargoTramTrailer extends EntityRailCarCargo { return true; } + + @Override + public boolean interactFirst(EntityPlayer player) { + if(super.interactFirst(player)) return false; + + if(!this.worldObj.isRemote) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, worldObj, this.getEntityId(), 0, 0); + } + + return true; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerTrainCargoTramTrailer(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUITrainCargoTramTrailer(player.inventory, this); + } + + /* + * ##### ##### # # ##### ##### ### # # ##### #### + * # # # ## # # # # # ## # # # # + * # # # # # # # ##### # # # # ### #### + * # # # # ## # # # # # ## # # # + * ##### ##### # # # # # ### # # ##### # # + */ + public static class ContainerTrainCargoTramTrailer extends Container { + private TrainCargoTramTrailer train; + public ContainerTrainCargoTramTrailer(InventoryPlayer invPlayer, TrainCargoTramTrailer train) { + this.train = train; + for(int i = 0; i < 5; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(train, i * 7 + j, 8 + j * 18, 18 + i * 18)); + } + } + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 140 + i * 18)); + } + } + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 198)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int slotIndex) { + ItemStack stackCopy = null; + Slot slot = (Slot) this.inventorySlots.get(slotIndex); + if(slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + stackCopy = stack.copy(); + if(slotIndex < train.getSizeInventory()) { + if(!this.mergeItemStack(stack, train.getSizeInventory(), this.inventorySlots.size(), true)) { + return null; + } + } else + if(!this.mergeItemStack(stack, 0, 45, false)) { + return null; + } + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); + } else { + slot.onSlotChanged(); + } + } + return stackCopy; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return train.isUseableByPlayer(player); + } + } + + /* + * ##### # # ### + * # # # # + * # ## # # # + * # # # # # + * ##### ##### ### + */ + @SideOnly(Side.CLIENT) + public static class GUITrainCargoTramTrailer extends GuiInfoContainer { + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/vehicles/gui_cargo_tram_trailer.png"); + private TrainCargoTramTrailer train; + public GUITrainCargoTramTrailer(InventoryPlayer invPlayer, TrainCargoTramTrailer train) { + super(new ContainerTrainCargoTramTrailer(invPlayer, train)); + this.train = train; + this.xSize = 176; + this.ySize = 222; + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.train.hasCustomInventoryName() ? this.train.getInventoryName() : I18n.format(this.train.getInventoryName()); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 0xffffff); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float intero, int x, int y) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } + } } diff --git a/src/main/java/com/hbm/inventory/FluidContainerRegistry.java b/src/main/java/com/hbm/inventory/FluidContainerRegistry.java index aacd3c2f2..4ad6a1b50 100644 --- a/src/main/java/com/hbm/inventory/FluidContainerRegistry.java +++ b/src/main/java/com/hbm/inventory/FluidContainerRegistry.java @@ -22,6 +22,7 @@ public class FluidContainerRegistry { public static void register() { FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(Items.water_bucket), new ItemStack(Items.bucket), Fluids.WATER, 1000)); + FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(Items.potionitem), new ItemStack(Items.glass_bottle), Fluids.WATER, 250)); FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(Items.lava_bucket), new ItemStack(Items.bucket), Fluids.LAVA, 1000)); FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.bucket_mud), new ItemStack(Items.bucket), Fluids.WATZ, 1000)); FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.bucket_schrabidic_acid), new ItemStack(Items.bucket), Fluids.SCHRABIDIC, 1000)); diff --git a/src/main/resources/assets/hbm/textures/gui/vehicles/gui_cargo_tram_trailer.png b/src/main/resources/assets/hbm/textures/gui/vehicles/gui_cargo_tram_trailer.png new file mode 100644 index 0000000000000000000000000000000000000000..5e7ed276200f0d92e544acb4593b6c7f1a9ee672 GIT binary patch literal 1382 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|G$6%N?Bp530R%N1DIE+9tg@ai zjv*Cu-rhCLyIm%6>|uXf`<(^OZp$6l2UNe9wzIjY^$lAI|J%JyCSSNBmuR#2@}_uf zS54Dr4nb6F* zLGZ*Jv1f1cS%exs-rz{_`&^vEGOI5gtMk#Vg8OST(2!@(Z*Z8%N;jU#tn2G_xV#ZA zbRIJta2f=ZNK>9*dG`E9!3--irkR)j$VfLXONI;0V?+&5d@vQmD$`?v< zSd5ncv@~P#Jq{PLVMdA>0tSKNve)66iT!c61utcI7`AvY9D59l7{62RKFu$D^KSmH zv$MJN_0*3VH#~f|uj22gM^7*EvCKPk(!TGn_y+q^fd?*I{sg6U5O}xa`|JjHYpx2Z z{VXPv>hE)3_yGi6y?h|0Fzz>2NR)02lQH5-HYz)*RMD4KbT{-`f65cpXK>^#igaDNQv(A&plzQ zr&>O33WgPb$U|R($W6XPiwloqwLaUby(oLSJAati2z8^>9D?c3Ap~f;oQM z|Mp5XcslvWLt65NBnqS?0Z%25B}sELBuV%@f8eH&F|pU-aUnM>|62bLxDb|595rL} ze$g2pZ*b)RbA`>Ed418i@->za0hRL5fb$Fm@!yt3~ANLLUry37l&iMmLEO^KRF8>&{U#1>)SsVKoq|DRR&t;uc GLK6U;S>omZ literal 0 HcmV?d00001 From 36d4a4c4e0f84c5795f842e1dc0726429da6c946 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 31 May 2023 16:31:54 +0200 Subject: [PATCH 028/109] some more train stuff --- .../hbm/entity/train/EntityRailCarBase.java | 64 ++++++++++++------- .../entity/train/EntityRailCarRidable.java | 60 +++++++++++------ .../com/hbm/main/ModEventHandlerClient.java | 20 ++++-- 3 files changed, 99 insertions(+), 45 deletions(-) diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index 163adc596..bfab8bcc1 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -5,15 +5,13 @@ import java.util.HashSet; import java.util.List; import java.util.Set; +import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.rail.IRailNTM; import com.hbm.blocks.rail.IRailNTM.RailContext; import com.hbm.blocks.rail.IRailNTM.TrackGauge; import com.hbm.items.ModItems; -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.PacketDispatcher; import com.hbm.util.fauxpointtwelve.BlockPos; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -25,8 +23,9 @@ import net.minecraft.util.DamageSource; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent; -public abstract class EntityRailCarBase extends Entity { +public abstract class EntityRailCarBase extends Entity implements ILookOverlay { public LogicalTrainUnit ltu; public boolean isOnRail = true; @@ -100,15 +99,16 @@ public abstract class EntityRailCarBase extends Entity { if(neighbor.getCoupledTo(closestNeighborCoupling) != null) continue; this.couple(closestOwnCoupling, neighbor); neighbor.couple(closestNeighborCoupling, this); - if(this.ltu != null) this.ltu.dissolve(); - if(neighbor.ltu != null) neighbor.ltu.dissolve(); + if(this.ltu != null) this.ltu.dissolveTrain(); + if(neighbor.ltu != null) neighbor.ltu.dissolveTrain(); player.swingItem(); return true; } } } - if(this.ltu != null) { + //DEBUG + /*if(this.ltu != null) { String id = Integer.toHexString(ltu.hashCode()); @@ -121,7 +121,7 @@ public abstract class EntityRailCarBase extends Entity { data.setString("text", id); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, train.posX, train.posY + 1, train.posZ), new TargetPoint(this.dimension, train.posX, train.posY + 1, train.posZ, 50)); } - } + }*/ return false; } @@ -169,15 +169,15 @@ public abstract class EntityRailCarBase extends Entity { if(this.coupledFront != null && this.coupledFront.isDead) { this.coupledFront = null; - if(this.ltu != null) this.ltu.dissolve(); + if(this.ltu != null) this.ltu.dissolveTrain(); } if(this.coupledBack != null && this.coupledBack.isDead) { this.coupledBack = null; - if(this.ltu != null) this.ltu.dissolve(); + if(this.ltu != null) this.ltu.dissolveTrain(); } if(this.ltu == null && (this.coupledFront == null || this.coupledBack == null)) { - LogicalTrainUnit.generate(this); + LogicalTrainUnit.generateTrain(this); } DummyConfig[] definitions = this.getDummies(); @@ -293,10 +293,10 @@ public abstract class EntityRailCarBase extends Entity { } /* Move carts together with links */ - for(LogicalTrainUnit ltu : ltus) ltu.combineLinks(); + for(LogicalTrainUnit ltu : ltus) ltu.combineWagons(); /* Move carts with unified speed */ - for(LogicalTrainUnit ltu : ltus) ltu.moveLinks(); + for(LogicalTrainUnit ltu : ltus) ltu.moveTrain(); } /** Returns the amount of blocks that the train should move per tick */ @@ -473,7 +473,7 @@ public abstract class EntityRailCarBase extends Entity { protected EntityRailCarBase trains[]; /** Assumes that the train is an endpoint, i.e. that only one coupling is in use */ - public static LogicalTrainUnit generate(EntityRailCarBase train) { + public static LogicalTrainUnit generateTrain(EntityRailCarBase train) { List links = new ArrayList(); Set brake = new HashSet(); links.add(train); @@ -512,13 +512,15 @@ public abstract class EntityRailCarBase extends Entity { return ltu; } - public void dissolve() { + /** Removes the LTU from all wagons */ + public void dissolveTrain() { for(EntityRailCarBase train : trains) { train.ltu = null; } } - public void combineLinks() { + /** Find the center fo the train, then moves all wagons towards that center until the coupling points roughly touch */ + public void combineWagons() { if(trains.length <= 1) return; @@ -529,19 +531,20 @@ public abstract class EntityRailCarBase extends Entity { for(int i = centerIndex - 1; i >= 0; i--) { EntityRailCarBase next = trains[i]; - moveTo(prev, next); + moveWagonTo(prev, next); prev = next; } prev = center; for(int i = centerIndex + 1; i < trains.length; i++) { EntityRailCarBase next = trains[i]; - moveTo(prev, next); + moveWagonTo(prev, next); prev = next; } } - public static void moveTo(EntityRailCarBase prev, EntityRailCarBase next) { + /** Moves one wagon to ne next until the coupling points roughly touch */ + public static void moveWagonTo(EntityRailCarBase prev, EntityRailCarBase next) { TrainCoupling prevCouple = prev.getCouplingFrom(next); TrainCoupling nextCouple = next.getCouplingFrom(prev); Vec3 prevLoc = prev.getCouplingPos(prevCouple); @@ -556,7 +559,8 @@ public abstract class EntityRailCarBase extends Entity { next.setPosition(newPos.xCoord, newPos.yCoord, newPos.zCoord); } - public void moveLinks() { + /** Generates the speed of the train, then moves the rain along the rail */ + public void moveTrain() { EntityRailCarBase prev = trains[0]; TrainCoupling dir = prev.getCouplingFrom(null); @@ -576,6 +580,12 @@ public abstract class EntityRailCarBase extends Entity { totalSpeed = maxSpeed * Math.signum(totalSpeed); } + this.moveTrainBy(totalSpeed); + } + + /** Moves the entire train along the rail by a certain speed */ + public void moveTrainBy(double totalSpeed) { + for(EntityRailCarBase train : this.trains) { BlockPos anchor = train.getCurentAnchorPos(); @@ -583,7 +593,7 @@ public abstract class EntityRailCarBase extends Entity { if(corePos == null) { train.derail(); - this.dissolve(); + this.dissolveTrain(); return; } else { train.setPosition(corePos.xCoord, corePos.yCoord, corePos.zCoord); @@ -593,7 +603,7 @@ public abstract class EntityRailCarBase extends Entity { if(frontPos == null || backPos == null) { train.derail(); - this.dissolve(); + this.dissolveTrain(); return; } else { train.renderX = (frontPos.xCoord + backPos.xCoord) / 2D; @@ -608,4 +618,14 @@ public abstract class EntityRailCarBase extends Entity { } } } + + @Override + @SideOnly(Side.CLIENT) + public void printHook(RenderGameOverlayEvent.Pre event, World world, int x, int y, int z) { + /*List text = new ArrayList(); + text.add("LTU: " + this.ltu); + text.add("Front: " + this.coupledFront); + text.add("Back: " + this.coupledBack); + ILookOverlay.printGeneric(event, this.toString(), 0xffff00, 0x404000, text);*/ //none of this shit is going to work anyway + } } diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java index 42aaa0248..79fd80a13 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java @@ -1,5 +1,10 @@ package com.hbm.entity.train; +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.ILookOverlay; +import com.hbm.main.MainRegistry; import com.hbm.util.BobMathUtil; import cpw.mods.fml.relauncher.Side; @@ -10,6 +15,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent; public abstract class EntityRailCarRidable extends EntityRailCarCargo { @@ -80,8 +86,30 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { if(super.interactFirst(player)) return true; if(worldObj.isRemote) return true; + int nearestSeat = this.getNearestSeat(player); + + if(nearestSeat == -1) { + player.mountEntity(this); + } else if(nearestSeat >= 0) { + SeatDummyEntity dummySeat = new SeatDummyEntity(worldObj, this, nearestSeat); + Vec3 passengerSeat = this.getPassengerSeats()[nearestSeat]; + passengerSeat.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); + double x = renderX + passengerSeat.xCoord; + double y = renderY + passengerSeat.yCoord; + double z = renderZ + passengerSeat.zCoord; + dummySeat.setPosition(x, y - 1, z); + passengerSeats[nearestSeat] = dummySeat; + worldObj.spawnEntityInWorld(dummySeat); + player.mountEntity(dummySeat); + } + + return true; + } + + public int getNearestSeat(EntityPlayer player) { + double nearestDist = Double.POSITIVE_INFINITY; - int nearestSeat = -1; + int nearestSeat = -2; Vec3[] seats = getPassengerSeats(); for(int i = 0; i < seats.length; i++) { @@ -124,24 +152,9 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { } } - if(nearestDist > 180) return true; + if(nearestDist > 180) return -2; - if(nearestSeat == -1) { - player.mountEntity(this); - } else { - SeatDummyEntity dummySeat = new SeatDummyEntity(worldObj, this, nearestSeat); - Vec3 passengerSeat = this.getPassengerSeats()[nearestSeat]; - passengerSeat.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); - double x = renderX + passengerSeat.xCoord; - double y = renderY + passengerSeat.yCoord; - double z = renderZ + passengerSeat.zCoord; - dummySeat.setPosition(x, y - 1, z); - passengerSeats[nearestSeat] = dummySeat; - worldObj.spawnEntityInWorld(dummySeat); - player.mountEntity(dummySeat); - } - - return true; + return nearestSeat; } @Override @@ -266,4 +279,15 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { } } } + + @Override + @SideOnly(Side.CLIENT) + public void printHook(RenderGameOverlayEvent.Pre event, World world, int x, int y, int z) { + List text = new ArrayList(); + /*text.add("LTU: " + this.ltu); + text.add("Front: " + this.coupledFront); + text.add("Back: " + this.coupledBack);*/ + text.add("Nearest seat: " + this.getNearestSeat(MainRegistry.proxy.me())); + ILookOverlay.printGeneric(event, this.toString(), 0xffff00, 0x404000, text); + } } diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 68e243c6e..31a779355 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -104,6 +104,7 @@ import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.entity.RenderPlayer; import net.minecraft.client.settings.KeyBinding; +import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; import net.minecraft.inventory.Slot; @@ -171,13 +172,22 @@ public class ModEventHandlerClient { World world = mc.theWorld; MovingObjectPosition mop = mc.objectMouseOver; - if(mop != null && mop.typeOfHit == mop.typeOfHit.BLOCK ) { + if(mop != null) { - if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ILookOverlay) { - ((ILookOverlay) player.getHeldItem().getItem()).printHook(event, world, mop.blockX, mop.blockY, mop.blockZ); + if(mop.typeOfHit == mop.typeOfHit.BLOCK) { - } else if(world.getBlock(mop.blockX, mop.blockY, mop.blockZ) instanceof ILookOverlay) { - ((ILookOverlay) world.getBlock(mop.blockX, mop.blockY, mop.blockZ)).printHook(event, world, mop.blockX, mop.blockY, mop.blockZ); + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ILookOverlay) { + ((ILookOverlay) player.getHeldItem().getItem()).printHook(event, world, mop.blockX, mop.blockY, mop.blockZ); + + } else if(world.getBlock(mop.blockX, mop.blockY, mop.blockZ) instanceof ILookOverlay) { + ((ILookOverlay) world.getBlock(mop.blockX, mop.blockY, mop.blockZ)).printHook(event, world, mop.blockX, mop.blockY, mop.blockZ); + } + } else if(mop.typeOfHit == mop.typeOfHit.ENTITY) { + Entity entity = mop.entityHit; + + if(entity instanceof ILookOverlay) { + ((ILookOverlay) entity).printHook(event, world, 0, 0, 0); + } } } From 46da9272d1a2734687b4c86552adb717fc3b4e57 Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 31 May 2023 22:10:51 +0200 Subject: [PATCH 029/109] assets --- .../hbm/models/machines/steamhammer.obj | 2331 +++++++++++++++++ .../textures/models/machines/steamhammer.png | Bin 0 -> 1907 bytes 2 files changed, 2331 insertions(+) create mode 100644 src/main/resources/assets/hbm/models/machines/steamhammer.obj create mode 100644 src/main/resources/assets/hbm/textures/models/machines/steamhammer.png diff --git a/src/main/resources/assets/hbm/models/machines/steamhammer.obj b/src/main/resources/assets/hbm/models/machines/steamhammer.obj new file mode 100644 index 000000000..5960e6fea --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/steamhammer.obj @@ -0,0 +1,2331 @@ +# Blender v2.79 (sub 0) OBJ File: 'steamhammer.blend' +# www.blender.org +o Piston2 +v -0.562750 2.000000 -0.687500 +v -0.187750 2.000000 -0.687500 +v -0.562750 2.000000 -1.062500 +v -0.187750 2.000000 -1.062500 +v -0.562750 2.250000 -1.062500 +v -0.562750 2.250000 -0.687500 +v -0.187750 2.250000 -0.687500 +v -0.187750 2.250000 -1.062500 +vt 0.771739 0.206349 +vt 0.804348 0.158730 +vt 0.804348 0.206349 +vt 0.771739 0.126984 +vt 0.739130 0.158730 +vt 0.739130 0.126984 +vt 0.836957 0.126984 +vt 0.804348 0.126984 +vt 0.771739 0.158730 +vt 0.869565 0.126984 +vt 0.836957 0.158730 +vt 0.869565 0.158730 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +s off +f 7/1/1 5/2/1 6/3/1 +f 4/4/2 7/5/2 2/6/2 +f 1/7/3 5/2/3 3/8/3 +f 3/8/4 8/9/4 4/4/4 +f 2/10/5 6/11/5 1/7/5 +f 7/1/1 8/9/1 5/2/1 +f 4/4/2 8/9/2 7/5/2 +f 1/7/3 6/11/3 5/2/3 +f 3/8/4 5/2/4 8/9/4 +f 2/10/5 7/12/5 6/11/5 +o Piston1 +v 0.187250 2.000000 -0.687500 +v 0.562250 2.000000 -0.687500 +v 0.187250 2.000000 -1.062500 +v 0.562250 2.000000 -1.062500 +v 0.187250 2.250000 -1.062500 +v 0.187250 2.250000 -0.687500 +v 0.562250 2.250000 -0.687500 +v 0.562250 2.250000 -1.062500 +vt 0.771739 0.206349 +vt 0.804348 0.158730 +vt 0.804348 0.206349 +vt 0.869565 0.126984 +vt 0.836957 0.158730 +vt 0.836957 0.126984 +vt 0.771739 0.126984 +vt 0.739130 0.158730 +vt 0.739130 0.126984 +vt 0.804348 0.126984 +vt 0.771739 0.158730 +vt 0.869565 0.158730 +vn 0.0000 1.0000 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 0.0000 -1.0000 +s off +f 15/13/6 13/14/6 14/15/6 +f 10/16/7 14/17/7 9/18/7 +f 12/19/8 15/20/8 10/21/8 +f 9/18/9 13/14/9 11/22/9 +f 11/22/10 16/23/10 12/19/10 +f 15/13/6 16/23/6 13/14/6 +f 10/16/7 15/24/7 14/17/7 +f 12/19/8 16/23/8 15/20/8 +f 9/18/9 14/17/9 13/14/9 +f 11/22/10 13/14/10 16/23/10 +o HammerRight_HammerRicht +v 1.875000 0.687500 -0.125000 +v 2.125000 0.687500 -0.125000 +v 1.875000 0.687500 -0.375000 +v 2.125000 0.687500 -0.375000 +v 1.875000 0.812500 -0.375000 +v 1.875000 0.812500 -0.125000 +v 2.125000 0.812500 -0.125000 +v 2.125000 0.812500 -0.375000 +v 1.906250 0.812500 -0.156250 +v 2.093750 0.812500 -0.156250 +v 1.906250 0.812500 -0.343750 +v 2.093750 0.812500 -0.343750 +v 1.906250 1.812500 -0.343750 +v 1.906250 1.812500 -0.156250 +v 2.093750 1.812500 -0.156250 +v 2.093750 1.812500 -0.343750 +vt 0.695652 0.507937 +vt 0.673913 0.539683 +vt 0.673913 0.507937 +vt 0.690217 0.563492 +vt 0.673913 0.555556 +vt 0.695652 0.555556 +vt 0.717391 0.539683 +vt 0.695652 0.539683 +vt 0.652174 0.555556 +vt 0.652174 0.539683 +vt 0.739130 0.539683 +vt 0.717391 0.555556 +vt 0.684783 0.587302 +vt 0.668478 0.714286 +vt 0.668478 0.587302 +vt 0.690217 0.579365 +vt 0.695652 0.587302 +vt 0.679348 0.579365 +vt 0.673913 0.587302 +vt 0.679348 0.563492 +vt 0.717391 0.587302 +vt 0.701087 0.714286 +vt 0.701087 0.587302 +vt 0.684783 0.714286 +vt 0.652174 0.714286 +vt 0.652174 0.587302 +vt 0.739130 0.555556 +vt 0.717391 0.714286 +vn 0.0000 -1.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 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +s off +f 19/25/11 18/26/11 17/27/11 +f 28/28/12 23/29/12 24/30/12 +f 19/31/13 24/30/13 20/32/13 +f 18/26/14 22/33/14 17/34/14 +f 20/32/15 23/29/15 18/26/15 +f 17/35/16 21/36/16 19/31/16 +f 28/37/15 31/38/15 26/39/15 +f 27/40/12 24/30/12 21/41/12 +f 25/42/12 21/41/12 22/43/12 +f 26/44/12 22/43/12 23/29/12 +f 25/45/16 29/46/16 27/47/16 +f 27/47/13 32/48/13 28/37/13 +f 26/39/14 30/49/14 25/50/14 +f 19/25/11 20/32/11 18/26/11 +f 28/28/12 26/44/12 23/29/12 +f 19/31/13 21/36/13 24/30/13 +f 18/26/14 23/29/14 22/33/14 +f 20/32/15 24/30/15 23/29/15 +f 17/35/16 22/51/16 21/36/16 +f 28/37/15 32/48/15 31/38/15 +f 27/40/12 28/28/12 24/30/12 +f 25/42/12 27/40/12 21/41/12 +f 26/44/12 25/42/12 22/43/12 +f 25/45/16 30/52/16 29/46/16 +f 27/47/13 29/46/13 32/48/13 +f 26/39/14 31/38/14 30/49/14 +o HammerLeft +v 1.875000 0.687500 0.375000 +v 2.125000 0.687500 0.375000 +v 1.875000 0.687500 0.125000 +v 2.125000 0.687500 0.125000 +v 1.875000 0.812500 0.125000 +v 1.875000 0.812500 0.375000 +v 2.125000 0.812500 0.375000 +v 2.125000 0.812500 0.125000 +v 1.906250 0.812500 0.343750 +v 2.093750 0.812500 0.343750 +v 1.906250 0.812500 0.156250 +v 2.093750 0.812500 0.156250 +v 1.906250 1.812500 0.156250 +v 1.906250 1.812500 0.343750 +v 2.093750 1.812500 0.343750 +v 2.093750 1.812500 0.156250 +vt 0.695652 0.507937 +vt 0.673913 0.539683 +vt 0.673913 0.507937 +vt 0.690217 0.563492 +vt 0.673913 0.555556 +vt 0.695652 0.555556 +vt 0.717391 0.539683 +vt 0.695652 0.539683 +vt 0.652174 0.555556 +vt 0.652174 0.539683 +vt 0.739130 0.539683 +vt 0.717391 0.555556 +vt 0.684783 0.587302 +vt 0.668478 0.714286 +vt 0.668478 0.587302 +vt 0.690217 0.579365 +vt 0.695652 0.587302 +vt 0.679348 0.579365 +vt 0.673913 0.587302 +vt 0.679348 0.563492 +vt 0.717391 0.587302 +vt 0.701087 0.714286 +vt 0.701087 0.587302 +vt 0.684783 0.714286 +vt 0.652174 0.714286 +vt 0.652174 0.587302 +vt 0.739130 0.555556 +vt 0.717391 0.714286 +vn 0.0000 -1.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 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +s off +f 35/53/17 34/54/17 33/55/17 +f 44/56/18 39/57/18 40/58/18 +f 35/59/19 40/58/19 36/60/19 +f 34/54/20 38/61/20 33/62/20 +f 36/60/21 39/57/21 34/54/21 +f 33/63/22 37/64/22 35/59/22 +f 44/65/21 47/66/21 42/67/21 +f 43/68/18 40/58/18 37/69/18 +f 41/70/18 37/69/18 38/71/18 +f 42/72/18 38/71/18 39/57/18 +f 41/73/22 45/74/22 43/75/22 +f 43/75/19 48/76/19 44/65/19 +f 42/67/20 46/77/20 41/78/20 +f 35/53/17 36/60/17 34/54/17 +f 44/56/18 42/72/18 39/57/18 +f 35/59/19 37/64/19 40/58/19 +f 34/54/20 39/57/20 38/61/20 +f 36/60/21 40/58/21 39/57/21 +f 33/63/22 38/79/22 37/64/22 +f 44/65/21 48/76/21 47/66/21 +f 43/68/18 44/56/18 40/58/18 +f 41/70/18 43/68/18 37/69/18 +f 42/72/18 41/70/18 38/71/18 +f 41/73/22 46/80/22 45/74/22 +f 43/75/19 45/74/19 48/76/19 +f 42/67/20 47/66/20 46/77/20 +o Main +v -1.500000 0.000000 1.500000 +v 1.500000 0.000000 1.500000 +v -1.500000 0.000000 -1.500000 +v 1.500000 0.000000 -1.500000 +v -0.500000 0.500000 1.500000 +v 0.500000 0.500000 1.500000 +v -0.500000 1.000000 1.500000 +v 0.500000 1.000000 1.500000 +v -0.500000 0.500000 -1.500000 +v 0.500000 0.500000 -1.500000 +v -0.500000 1.000000 -1.500000 +v 0.500000 1.000000 -1.500000 +v -1.187500 0.500000 -1.500000 +v -0.812500 0.500000 -1.500000 +v -1.187500 0.687500 -1.500000 +v -0.812500 0.687500 -1.500000 +v -1.187500 0.500000 1.500000 +v -0.812500 0.500000 1.500000 +v -1.187500 0.687500 1.500000 +v -0.812500 0.687500 1.500000 +v -0.500000 0.500000 -1.250000 +v 0.500000 0.500000 -1.250000 +v -0.500000 1.000000 -1.250000 +v 0.500000 1.000000 -1.250000 +v -1.187500 0.500000 -1.250000 +v -0.812500 0.500000 -1.250000 +v -1.187500 0.687500 -1.250000 +v -0.812500 0.687500 -1.250000 +v -0.500000 0.500000 1.250000 +v 0.500000 0.500000 1.250000 +v -0.500000 1.000000 1.250000 +v 0.500000 1.000000 1.250000 +v -1.187500 0.500000 1.250000 +v -0.812500 0.500000 1.250000 +v -1.187500 0.687500 1.250000 +v -0.812500 0.687500 1.250000 +v -1.500000 0.500000 1.500000 +v 1.500000 0.500000 1.500000 +v -1.500000 0.500000 -1.500000 +v 1.500000 0.500000 -1.500000 +v 1.249500 0.500000 -1.250000 +v 1.249500 0.500000 1.250000 +v -1.250000 0.500000 -1.250000 +v -1.250000 0.500000 1.250000 +v 1.249500 1.500000 -1.250000 +v 1.249500 1.500000 1.250000 +v -1.250000 1.500000 -1.250000 +v -1.250000 1.500000 1.250000 +v 1.249500 2.000000 -0.500000 +v 1.249500 2.000000 0.500000 +v -1.250000 2.000000 -0.500000 +v -1.250000 2.000000 0.500000 +v 1.750000 1.875000 0.500000 +v 2.250000 1.875000 0.500000 +v 1.750000 1.875000 -0.500000 +v 2.250000 1.875000 -0.500000 +v 1.750000 3.375000 -0.500000 +v 1.750000 3.375000 0.500000 +v 2.250000 3.375000 0.500000 +v 2.250000 3.375000 -0.500000 +v 0.250000 2.000000 0.375000 +v 0.250000 2.000000 -0.375000 +v 1.000000 2.000000 -0.375000 +v 1.000000 2.000000 0.375000 +v 1.250000 2.250000 0.375000 +v 1.000000 2.750000 0.375000 +v 1.250000 2.250000 -0.375000 +v 1.000000 2.750000 -0.375000 +v 1.750000 2.750000 -0.375000 +v 1.750000 2.250000 -0.375000 +v 1.750000 2.750000 0.375000 +v 1.750000 2.250000 0.375000 +v 1.812500 1.875000 -0.437500 +v 1.812500 1.875000 0.437500 +v 2.187500 1.875000 0.437500 +v 2.187500 1.875000 -0.437500 +v 1.812500 1.812500 -0.437500 +v 1.812500 1.812500 0.437500 +v 2.187500 1.812500 0.437500 +v 2.187500 1.812500 -0.437500 +v 1.875000 3.500000 -0.375000 +v 1.875000 3.500000 0.375000 +v 2.125000 3.500000 0.375000 +v 2.125000 3.500000 -0.375000 +v 1.875000 3.250000 -0.500000 +v 1.786612 3.213388 -0.500000 +v 1.750000 3.125000 -0.500000 +v 1.786612 3.036612 -0.500000 +v 1.875000 3.000000 -0.500000 +v 1.963388 3.036612 -0.500000 +v 2.000000 3.125000 -0.500000 +v 1.963388 3.213388 -0.500000 +v 1.875000 3.176777 -0.676777 +v 1.786612 3.150888 -0.650888 +v 1.750000 3.088388 -0.588388 +v 1.786612 3.025888 -0.525888 +v 1.963388 3.025888 -0.525888 +v 2.000000 3.088388 -0.588388 +v 1.963388 3.150888 -0.650888 +v 1.875000 3.000000 -0.750000 +v 1.786612 3.000000 -0.713388 +v 1.750000 3.000000 -0.625000 +v 1.786612 3.000000 -0.536612 +v 1.963388 3.000000 -0.536612 +v 2.000000 3.000000 -0.625000 +v 1.963388 3.000000 -0.713388 +v 1.875000 1.875000 -0.500000 +v 1.875000 1.875000 -0.750000 +v 1.786612 1.875000 -0.713388 +v 1.750000 1.875000 -0.625000 +v 1.786612 1.875000 -0.536612 +v 1.963388 1.875000 -0.536612 +v 2.000000 1.875000 -0.625000 +v 1.963388 1.875000 -0.713388 +v 1.838388 1.786612 -0.500000 +v 1.838388 1.786612 -0.750000 +v 1.775888 1.849112 -0.713388 +v 1.775888 1.849112 -0.536612 +v 1.900888 1.724112 -0.536612 +v 1.926777 1.698223 -0.625000 +v 1.900888 1.724112 -0.713388 +v 1.750000 1.750000 -0.500000 +v 1.750000 1.750000 -0.750000 +v 1.750000 1.838388 -0.713388 +v 1.750000 1.838388 -0.536612 +v 1.750000 1.661612 -0.536612 +v 1.750000 1.625000 -0.625000 +v 1.750000 1.661612 -0.713388 +v 1.250000 1.875000 -0.625000 +v 1.250000 1.750000 -0.500000 +v 1.250000 1.750000 -0.750000 +v 1.250000 1.838388 -0.713388 +v 1.250000 1.838388 -0.536612 +v 1.250000 1.661612 -0.536612 +v 1.250000 1.625000 -0.625000 +v 1.250000 1.661612 -0.713388 +v 2.000000 3.500000 0.125000 +v 1.911612 3.500000 0.161612 +v 1.875000 3.500000 0.250000 +v 1.911612 3.500000 0.338388 +v 2.000000 3.500000 0.375000 +v 2.088388 3.500000 0.338388 +v 2.125000 3.500000 0.250000 +v 2.088388 3.500000 0.161612 +v 1.963388 3.588388 0.125000 +v 1.900888 3.525888 0.161612 +v 1.900888 3.525888 0.338388 +v 1.963388 3.588388 0.375000 +v 2.025888 3.650888 0.338388 +v 2.051777 3.676777 0.250000 +v 2.025888 3.650888 0.161612 +v 1.875000 3.625000 0.125000 +v 1.875000 3.536612 0.161612 +v 1.875000 3.536612 0.338388 +v 1.875000 3.625000 0.375000 +v 1.875000 3.713388 0.338388 +v 1.875000 3.750000 0.250000 +v 1.875000 3.713388 0.161612 +v 1.625000 3.500000 0.250000 +v 1.625000 3.625000 0.125000 +v 1.625000 3.536612 0.161612 +v 1.625000 3.536612 0.338388 +v 1.625000 3.625000 0.375000 +v 1.625000 3.713388 0.338388 +v 1.625000 3.750000 0.250000 +v 1.625000 3.713388 0.161612 +v 1.536612 3.588388 0.125000 +v 1.599111 3.525888 0.161612 +v 1.599111 3.525888 0.338388 +v 1.536612 3.588388 0.375000 +v 1.474112 3.650888 0.338388 +v 1.448223 3.676777 0.250000 +v 1.474112 3.650888 0.161612 +v 1.500000 3.500000 0.125000 +v 1.588388 3.500000 0.161612 +v 1.588388 3.500000 0.338388 +v 1.500000 3.500000 0.375000 +v 1.411612 3.500000 0.338388 +v 1.375000 3.500000 0.250000 +v 1.411612 3.500000 0.161612 +v 1.625000 3.000000 0.250000 +v 1.500000 3.000000 0.125000 +v 1.588388 3.000000 0.161612 +v 1.588388 3.000000 0.338388 +v 1.500000 3.000000 0.375000 +v 1.411612 3.000000 0.338388 +v 1.375000 3.000000 0.250000 +v 1.411612 3.000000 0.161612 +v 1.551777 2.823223 0.250000 +v 1.463388 2.911612 0.125000 +v 1.525888 2.849112 0.161612 +v 1.525888 2.849112 0.338388 +v 1.463388 2.911612 0.375000 +v 1.400888 2.974112 0.338388 +v 1.400888 2.974112 0.161612 +v 1.375000 2.750000 0.250000 +v 1.375000 2.875000 0.125000 +v 1.375000 2.786612 0.161612 +v 1.375000 2.786612 0.338388 +v 1.375000 2.875000 0.375000 +v 1.375000 2.963388 0.338388 +v 1.375000 2.963388 0.161612 +v 0.250000 3.000000 0.250000 +v 0.250000 2.750000 0.250000 +v 0.250000 2.875000 0.125000 +v 0.250000 2.786612 0.161612 +v 0.250000 2.786612 0.338388 +v 0.250000 2.875000 0.375000 +v 0.250000 2.963388 0.338388 +v 0.250000 2.963388 0.161612 +v 0.073223 2.926777 0.250000 +v 0.161612 2.838388 0.125000 +v 0.224112 2.775889 0.161612 +v 0.224112 2.775889 0.338388 +v 0.161612 2.838388 0.375000 +v 0.099112 2.900888 0.338388 +v 0.099112 2.900888 0.161612 +v 0.000000 2.750000 0.250000 +v 0.125000 2.750000 0.125000 +v 0.213388 2.750000 0.161612 +v 0.213388 2.750000 0.338388 +v 0.125000 2.750000 0.375000 +v 0.036612 2.750000 0.338388 +v 0.036612 2.750000 0.161612 +v 0.250000 2.000000 0.250000 +v 0.000000 2.000000 0.250000 +v 0.125000 2.000000 0.125000 +v 0.213388 2.000000 0.161612 +v 0.213388 2.000000 0.338388 +v 0.125000 2.000000 0.375000 +v 0.036612 2.000000 0.338388 +v 0.036612 2.000000 0.161612 +v 1.812500 1.812500 0.062500 +v 2.187500 1.812500 0.062500 +v 1.812500 1.812500 -0.062500 +v 2.187500 1.812500 -0.062500 +v 2.187500 1.875000 -0.062500 +v 1.812500 1.875000 -0.062500 +v 1.812500 1.875000 0.062500 +v 2.187500 1.875000 0.062500 +v 0.124750 2.000000 -0.625000 +v 0.624750 2.000000 -0.625000 +v 0.124750 2.000000 -1.125000 +v 0.624750 2.000000 -1.125000 +v 0.124750 1.500000 -1.125000 +v 0.124750 1.500000 -0.625000 +v 0.624750 1.500000 -0.625000 +v 0.624750 1.500000 -1.125000 +v -0.625250 2.000000 -0.625000 +v -0.125250 2.000000 -0.625000 +v -0.625250 2.000000 -1.125000 +v -0.125250 2.000000 -1.125000 +v -0.625250 1.500000 -1.125000 +v -0.625250 1.500000 -0.625000 +v -0.125250 1.500000 -0.625000 +v -0.125250 1.500000 -1.125000 +v 2.125000 3.250000 -0.500000 +v 2.036612 3.213388 -0.500000 +v 2.000000 3.125000 -0.500000 +v 2.036612 3.036612 -0.500000 +v 2.125000 3.000000 -0.500000 +v 2.213388 3.036612 -0.500000 +v 2.250000 3.125000 -0.500000 +v 2.213388 3.213388 -0.500000 +v 2.125000 3.176777 -0.676777 +v 2.036612 3.150888 -0.650888 +v 2.000000 3.088388 -0.588388 +v 2.036612 3.025888 -0.525888 +v 2.213388 3.025888 -0.525888 +v 2.250000 3.088388 -0.588388 +v 2.213388 3.150888 -0.650888 +v 2.125000 3.000000 -0.750000 +v 2.036612 3.000000 -0.713388 +v 2.000000 3.000000 -0.625000 +v 2.036612 3.000000 -0.536612 +v 2.213388 3.000000 -0.536612 +v 2.250000 3.000000 -0.625000 +v 2.213388 3.000000 -0.713388 +v 2.125000 1.625000 -0.500000 +v 2.125000 1.625000 -0.750000 +v 2.036612 1.625000 -0.713388 +v 2.000000 1.625000 -0.625000 +v 2.036612 1.625000 -0.536612 +v 2.213388 1.625000 -0.536612 +v 2.250000 1.625000 -0.625000 +v 2.213388 1.625000 -0.713388 +v 2.088388 1.536612 -0.500000 +v 2.088388 1.536612 -0.750000 +v 2.025888 1.599112 -0.713388 +v 2.025888 1.599112 -0.536612 +v 2.150888 1.474112 -0.536612 +v 2.176777 1.448223 -0.625000 +v 2.150888 1.474112 -0.713388 +v 2.000000 1.500000 -0.500000 +v 2.000000 1.500000 -0.750000 +v 2.000000 1.588388 -0.713388 +v 2.000000 1.588388 -0.536612 +v 2.000000 1.411612 -0.536612 +v 2.000000 1.375000 -0.625000 +v 2.000000 1.411612 -0.713388 +v 1.250000 1.625000 -0.625000 +v 1.250000 1.500000 -0.500000 +v 1.250000 1.500000 -0.750000 +v 1.250000 1.588388 -0.713388 +v 1.250000 1.588388 -0.536612 +v 1.250000 1.411612 -0.536612 +v 1.250000 1.375000 -0.625000 +v 1.250000 1.411612 -0.713388 +v 0.124750 2.000000 1.125000 +v 0.624750 2.000000 1.125000 +v 0.124750 2.000000 0.625000 +v 0.624750 2.000000 0.625000 +v 0.124750 1.500000 0.625000 +v 0.124750 1.500000 1.125000 +v 0.624750 1.500000 1.125000 +v 0.624750 1.500000 0.625000 +v -0.625250 2.000000 1.125000 +v -0.125250 2.000000 1.125000 +v -0.625250 2.000000 0.625000 +v -0.125250 2.000000 0.625000 +v -0.625250 1.500000 0.625000 +v -0.625250 1.500000 1.125000 +v -0.125250 1.500000 1.125000 +v -0.125250 1.500000 0.625000 +v -0.562750 2.000000 1.062500 +v -0.187750 2.000000 1.062500 +v -0.562750 2.000000 0.687500 +v -0.187750 2.000000 0.687500 +v -0.500250 2.000000 1.000000 +v -0.250250 2.000000 1.000000 +v -0.500250 2.000000 0.750000 +v -0.250250 2.000000 0.750000 +v -0.562750 2.125000 0.687500 +v -0.562750 2.125000 1.062500 +v -0.187750 2.125000 1.062500 +v -0.187750 2.125000 0.687500 +v -0.500250 2.125000 0.750000 +v -0.500250 2.125000 1.000000 +v -0.250250 2.125000 1.000000 +v -0.250250 2.125000 0.750000 +v -0.406500 2.062500 1.000000 +v -0.406500 2.062500 0.750000 +v -0.469000 2.062500 1.000000 +v -0.469000 2.062500 0.750000 +v -0.281500 2.062500 1.000000 +v -0.281500 2.062500 0.750000 +v -0.344000 2.062500 1.000000 +v -0.344000 2.062500 0.750000 +v 0.187250 2.000000 1.062500 +v 0.562250 2.000000 1.062500 +v 0.187250 2.000000 0.687500 +v 0.562250 2.000000 0.687500 +v 0.249750 2.000000 1.000000 +v 0.499750 2.000000 1.000000 +v 0.249750 2.000000 0.750000 +v 0.499750 2.000000 0.750000 +v 0.187250 2.125000 0.687500 +v 0.187250 2.125000 1.062500 +v 0.562250 2.125000 1.062500 +v 0.562250 2.125000 0.687500 +v 0.249750 2.125000 0.750000 +v 0.249750 2.125000 1.000000 +v 0.499750 2.125000 1.000000 +v 0.499750 2.125000 0.750000 +v 0.343500 2.062500 1.000000 +v 0.343500 2.062500 0.750000 +v 0.281000 2.062500 1.000000 +v 0.281000 2.062500 0.750000 +v 0.468500 2.062500 1.000000 +v 0.468500 2.062500 0.750000 +v 0.406000 2.062500 1.000000 +v 0.406000 2.062500 0.750000 +v 2.000000 3.500000 -0.375000 +v 1.911612 3.500000 -0.338388 +v 1.875000 3.500000 -0.250000 +v 1.911612 3.500000 -0.161612 +v 2.000000 3.500000 -0.125000 +v 2.088388 3.500000 -0.161612 +v 2.125000 3.500000 -0.250000 +v 2.088388 3.500000 -0.338388 +v 1.963388 3.588388 -0.375000 +v 1.900888 3.525888 -0.338388 +v 1.900888 3.525888 -0.161612 +v 1.963388 3.588388 -0.125000 +v 2.025888 3.650888 -0.161612 +v 2.051777 3.676777 -0.250000 +v 2.025888 3.650888 -0.338388 +v 1.875000 3.625000 -0.375000 +v 1.875000 3.536612 -0.338388 +v 1.875000 3.536612 -0.161612 +v 1.875000 3.625000 -0.125000 +v 1.875000 3.713388 -0.161612 +v 1.875000 3.750000 -0.250000 +v 1.875000 3.713388 -0.338388 +v 1.625000 3.500000 -0.250000 +v 1.625000 3.625000 -0.375000 +v 1.625000 3.536612 -0.338388 +v 1.625000 3.536612 -0.161612 +v 1.625000 3.625000 -0.125000 +v 1.625000 3.713388 -0.161612 +v 1.625000 3.750000 -0.250000 +v 1.625000 3.713388 -0.338388 +v 1.536612 3.588388 -0.375000 +v 1.599111 3.525888 -0.338388 +v 1.599111 3.525888 -0.161612 +v 1.536612 3.588388 -0.125000 +v 1.474112 3.650888 -0.161612 +v 1.448223 3.676777 -0.250000 +v 1.474112 3.650888 -0.338388 +v 1.500000 3.500000 -0.375000 +v 1.588388 3.500000 -0.338388 +v 1.588388 3.500000 -0.161612 +v 1.500000 3.500000 -0.125000 +v 1.411612 3.500000 -0.161612 +v 1.375000 3.500000 -0.250000 +v 1.411612 3.500000 -0.338388 +v 1.625000 3.000000 -0.250000 +v 1.500000 3.000000 -0.375000 +v 1.588388 3.000000 -0.338388 +v 1.588388 3.000000 -0.161612 +v 1.500000 3.000000 -0.125000 +v 1.411612 3.000000 -0.161612 +v 1.375000 3.000000 -0.250000 +v 1.411612 3.000000 -0.338388 +v 1.551777 2.823223 -0.250000 +v 1.463388 2.911612 -0.375000 +v 1.525888 2.849112 -0.338388 +v 1.525888 2.849112 -0.161612 +v 1.463388 2.911612 -0.125000 +v 1.400888 2.974112 -0.161612 +v 1.400888 2.974112 -0.338388 +v 1.375000 2.750000 -0.250000 +v 1.375000 2.875000 -0.375000 +v 1.375000 2.786612 -0.338388 +v 1.375000 2.786612 -0.161612 +v 1.375000 2.875000 -0.125000 +v 1.375000 2.963388 -0.161612 +v 1.375000 2.963388 -0.338388 +v 0.250000 3.000000 -0.250000 +v 0.250000 2.750000 -0.250000 +v 0.250000 2.875000 -0.375000 +v 0.250000 2.786612 -0.338388 +v 0.250000 2.786612 -0.161612 +v 0.250000 2.875000 -0.125000 +v 0.250000 2.963388 -0.161612 +v 0.250000 2.963388 -0.338388 +v 0.073223 2.926777 -0.250000 +v 0.161612 2.838388 -0.375000 +v 0.224112 2.775889 -0.338388 +v 0.224112 2.775889 -0.161612 +v 0.161612 2.838388 -0.125000 +v 0.099112 2.900888 -0.161612 +v 0.099112 2.900888 -0.338388 +v 0.000000 2.750000 -0.250000 +v 0.125000 2.750000 -0.375000 +v 0.213388 2.750000 -0.338388 +v 0.213388 2.750000 -0.161612 +v 0.125000 2.750000 -0.125000 +v 0.036612 2.750000 -0.161612 +v 0.036612 2.750000 -0.338388 +v 0.250000 2.000000 -0.250000 +v 0.000000 2.000000 -0.250000 +v 0.125000 2.000000 -0.375000 +v 0.213388 2.000000 -0.338388 +v 0.213388 2.000000 -0.161612 +v 0.125000 2.000000 -0.125000 +v 0.036612 2.000000 -0.161612 +v 0.036612 2.000000 -0.338388 +vt 0.304348 -0.000000 +vt 0.043478 0.380952 +vt 0.043478 -0.000000 +vt 0.282609 0.730159 +vt 0.239130 0.698413 +vt 0.282609 0.698413 +vt 0.239130 0.539683 +vt 0.282609 0.571429 +vt 0.239130 0.571429 +vt 0.217391 0.690476 +vt 0.201087 0.658730 +vt 0.217391 0.658730 +vt 0.201087 0.579365 +vt 0.217391 0.611111 +vt 0.201087 0.611111 +vt 0.179348 0.658730 +vt 0.217391 0.698413 +vt 0.146739 0.658730 +vt 0.130435 0.690476 +vt 0.130435 0.658730 +vt 0.146739 0.611111 +vt 0.168478 0.658730 +vt 0.065217 0.571429 +vt 0.108696 0.539683 +vt 0.108696 0.571429 +vt 0.108696 0.698413 +vt 0.065217 0.730159 +vt 0.065217 0.698413 +vt 0.130435 0.611111 +vt 0.146739 0.579365 +vt 0.130435 0.698413 +vt 0.304348 0.444444 +vt 0.304348 0.380952 +vt 0.043478 0.825397 +vt 0.304348 0.888889 +vt 0.043478 0.888889 +vt -0.000000 0.444444 +vt 0.043478 0.571429 +vt 0.043478 0.698413 +vt 0.304348 0.698413 +vt 0.304348 0.571429 +vt 0.347826 0.444444 +vt 0.065217 0.476190 +vt 0.043478 0.444444 +vt 0.065217 0.571429 +vt 0.282609 0.476190 +vt 0.282609 0.571429 +vt 0.282609 0.738095 +vt 0.304348 0.738095 +vt 0.065217 0.738095 +vt 0.065217 0.698413 +vt 0.065217 0.793651 +vt 0.304348 0.825397 +vt 0.304348 0.785714 +vt 0.282609 0.793651 +vt 0.282609 0.785714 +vt 0.043478 0.785714 +vt 0.065217 0.785714 +vt 0.652174 0.698413 +vt 0.434783 0.698413 +vt 0.500000 0.507937 +vt 0.652174 0.507937 +vt 0.695652 0.412698 +vt 0.722826 0.452381 +vt 0.391304 0.412698 +vt 0.434783 0.507937 +vt 0.364130 0.452381 +vt 0.586957 0.190476 +vt 0.652174 0.190476 +vt 0.434783 0.190476 +vt 0.500000 0.190476 +vt 0.586957 0.507937 +vt 0.434783 -0.000000 +vt 0.652174 0.000000 +vt 0.353261 0.753968 +vt 0.347826 0.706349 +vt 0.353261 0.706349 +vt 0.521739 0.952381 +vt 0.489130 0.968254 +vt 0.478261 0.952381 +vt 0.478261 0.761905 +vt 0.391304 0.952381 +vt 0.391304 0.761905 +vt 0.608696 0.761905 +vt 0.521739 0.761905 +vt 0.347826 0.952381 +vt 0.347826 0.761905 +vt 0.391304 0.753968 +vt 0.385870 0.706349 +vt 0.391304 0.706349 +vt 0.891304 0.206349 +vt 0.847826 0.301587 +vt 0.847826 0.206349 +vt 0.782609 0.206349 +vt 0.739130 0.269841 +vt 0.739130 0.206349 +vt 0.934783 0.269841 +vt 0.891304 0.301587 +vt 0.804348 0.269841 +vt 0.804348 0.206349 +vt 0.782609 0.269841 +vt 0.739130 0.301587 +vt 0.353261 0.706349 +vt 0.385870 0.753968 +vt 0.353261 0.753968 +vt 0.782609 0.301587 +vt 0.782609 0.396825 +vt 0.956522 0.301587 +vt 0.847826 0.396825 +vt 0.891304 0.396825 +vt 0.385870 0.761905 +vt 0.385870 0.753968 +vt 0.472826 0.706349 +vt 0.478261 0.698413 +vt 0.391304 0.698413 +vt 0.396739 0.753968 +vt 0.429348 0.753968 +vt 0.440217 0.706349 +vt 0.440217 0.753968 +vt 0.347826 0.706349 +vt 0.347826 0.753968 +vt 0.385870 0.706349 +vt 0.391304 0.753968 +vt 0.402174 0.968254 +vt 0.467391 1.000000 +vt 0.402174 1.000000 +vt 0.358696 0.968254 +vt 0.608696 0.952381 +vt 0.532609 0.968254 +vt 0.385870 0.761905 +vt 0.385870 0.698413 +vt 0.385870 0.698413 +vt 0.472826 0.753968 +vt 0.429348 0.706349 +vt 0.869565 0.126984 +vt 0.913043 0.063492 +vt 0.913043 0.126984 +vt 0.869565 0.126984 +vt 0.913043 0.063492 +vt 0.913043 0.126984 +vt 0.869565 0.063492 +vt 0.913043 -0.000000 +vt 0.956522 0.063492 +vt 1.000000 -0.000000 +vt 1.000000 0.063492 +vt 0.826087 0.063492 +vt 0.869565 -0.000000 +vt 0.956522 -0.000000 +vt 0.869565 0.063492 +vt 0.913043 -0.000000 +vt 0.956522 0.063492 +vt 1.000000 -0.000000 +vt 1.000000 0.063492 +vt 0.826087 0.063492 +vt 0.869565 -0.000000 +vt 0.956522 -0.000000 +vt 0.739130 0.063492 +vt 0.695652 0.126984 +vt 0.695652 0.063492 +vt 0.739130 0.063492 +vt 0.695652 0.126984 +vt 0.695652 0.063492 +vt 0.782609 0.063492 +vt 0.826087 0.000000 +vt 0.826087 0.063492 +vt 0.739130 0.000000 +vt 0.782609 0.000000 +vt 0.652174 0.063492 +vt 0.695652 0.000000 +vt 0.782609 0.063492 +vt 0.826087 0.000000 +vt 0.826087 0.063492 +vt 0.739130 0.000000 +vt 0.782609 0.000000 +vt 0.652174 0.063492 +vt 0.695652 0.000000 +vt 0.673913 0.071429 +vt 0.652174 0.079365 +vt 0.652174 0.071429 +vt 0.673913 0.063492 +vt 0.652174 0.071429 +vt 0.652174 0.063492 +vt 0.673913 0.063492 +vt 0.652174 0.071429 +vt 0.652174 0.063492 +vt 0.673913 0.071429 +vt 0.652174 0.079365 +vt 0.652174 0.071429 +vt 0.798913 0.095238 +vt 0.771739 0.079365 +vt 0.804348 0.079365 +vt 0.766304 0.095238 +vt 0.739130 0.079365 +vt 0.831522 0.095238 +vt 0.836957 0.079365 +vt 0.864130 0.095238 +vt 0.869565 0.079365 +vt 0.842391 0.111111 +vt 0.864130 0.111111 +vt 0.777174 0.111111 +vt 0.798913 0.111111 +vt 0.869565 0.063492 +vt 0.836957 0.063492 +vt 0.804348 0.063492 +vt 0.771739 0.063492 +vt 0.809783 0.111111 +vt 0.831522 0.111111 +vt 0.744565 0.111111 +vt 0.766304 0.111111 +vt 0.739130 0.063492 +vt 0.798913 0.095238 +vt 0.771739 0.079365 +vt 0.804348 0.079365 +vt 0.766304 0.095238 +vt 0.739130 0.079365 +vt 0.831522 0.095238 +vt 0.836957 0.079365 +vt 0.864130 0.095238 +vt 0.869565 0.079365 +vt 0.842391 0.111111 +vt 0.864130 0.111111 +vt 0.777174 0.111111 +vt 0.798913 0.111111 +vt 0.869565 0.063492 +vt 0.836957 0.063492 +vt 0.804348 0.063492 +vt 0.771739 0.063492 +vt 0.809783 0.111111 +vt 0.831522 0.111111 +vt 0.744565 0.111111 +vt 0.766304 0.111111 +vt 0.739130 0.063492 +vt 0.239130 0.730159 +vt 0.282609 0.539683 +vt 0.201087 0.690476 +vt 0.217391 0.579365 +vt 0.179348 0.611111 +vt 0.217391 0.571429 +vt 0.146739 0.690476 +vt 0.168478 0.611111 +vt 0.065217 0.539683 +vt 0.108696 0.730159 +vt 0.130435 0.579365 +vt 0.130435 0.571429 +vt -0.000000 0.825397 +vt 0.043478 0.738095 +vt 0.347826 0.825397 +vt 0.282609 0.698413 +vt 0.434783 0.571429 +vt 0.652174 0.571429 +vt 0.722826 0.500000 +vt 0.739130 0.500000 +vt 0.739130 0.507937 +vt 0.739130 0.190476 +vt 0.695652 0.285714 +vt 0.739130 0.285714 +vt 0.739130 0.412698 +vt 0.739130 0.452381 +vt 0.391304 0.285714 +vt 0.347826 0.285714 +vt 0.347826 0.190476 +vt 0.347826 0.507937 +vt 0.364130 0.500000 +vt 0.347826 0.500000 +vt 0.347826 0.452381 +vt 0.347826 0.412698 +vt 0.652174 0.126984 +vt 0.434783 0.126984 +vt 0.347826 0.753968 +vt 0.510870 0.968254 +vt 0.934783 0.206349 +vt 0.956522 0.396825 +vt 0.353261 0.761905 +vt 0.396739 0.706349 +vt 0.391304 0.706349 +vt 0.467391 0.968254 +vt 0.380435 0.968254 +vt 0.597826 0.968254 +vt 0.353261 0.761905 +vt 0.353261 0.698413 +vt 0.353261 0.698413 +vt 0.826087 -0.000000 +vt 0.826087 -0.000000 +vt 0.739130 0.126984 +vt 0.739130 0.126984 +vt 0.652174 0.000000 +vt 0.652174 0.000000 +vt 0.673913 0.079365 +vt 0.673913 0.071429 +vt 0.673913 0.071429 +vt 0.673913 0.079365 +vt 0.777174 0.095238 +vt 0.744565 0.095238 +vt 0.809783 0.095238 +vt 0.842391 0.095238 +vt 0.777174 0.095238 +vt 0.744565 0.095238 +vt 0.809783 0.095238 +vt 0.842391 0.095238 +vt 0.978261 0.698413 +vt 0.967391 0.674603 +vt 0.978261 0.674603 +vt 0.945652 0.682540 +vt 0.956522 0.674603 +vt 0.956522 0.690476 +vt 0.989130 0.698413 +vt 1.000000 0.674603 +vt 1.000000 0.690476 +vt 0.967391 0.698413 +vt 0.923913 0.682540 +vt 0.913043 0.674603 +vt 0.923913 0.674603 +vt 0.989130 0.674603 +vt 0.967391 0.650794 +vt 0.913043 0.658730 +vt 0.923913 0.666667 +vt 0.989130 0.650794 +vt 0.978261 0.650794 +vt 0.945652 0.674603 +vt 0.956522 0.658730 +vt 1.000000 0.658730 +vt 0.934783 0.674603 +vt 0.945652 0.666667 +vt 0.923913 0.650794 +vt 0.934783 0.507937 +vt 0.934783 0.650794 +vt 0.956522 0.650794 +vt 0.967391 0.507937 +vt 0.913043 0.650794 +vt 0.923913 0.507937 +vt 0.989130 0.507937 +vt 0.945652 0.507937 +vt 0.945652 0.650794 +vt 0.978261 0.507937 +vt 0.956522 0.507937 +vt 1.000000 0.507937 +vt 1.000000 0.650794 +vt 0.989130 0.492063 +vt 0.978261 0.484127 +vt 0.989130 0.484127 +vt 0.934783 0.500000 +vt 0.945652 0.484127 +vt 0.978261 0.500000 +vt 0.956522 0.484127 +vt 0.923913 0.484127 +vt 0.934783 0.484127 +vt 0.967391 0.484127 +vt 0.934783 0.468254 +vt 0.967391 0.460317 +vt 0.978261 0.468254 +vt 0.989130 0.476190 +vt 0.945652 0.460317 +vt 0.956522 0.460317 +vt 1.000000 0.484127 +vt 0.913043 0.484127 +vt 0.923913 0.492063 +vt 0.923913 0.476190 +vt 0.923913 0.460317 +vt 0.934783 0.396825 +vt 0.934783 0.460317 +vt 0.967391 0.396825 +vt 0.978261 0.460317 +vt 0.989130 0.396825 +vt 0.989130 0.460317 +vt 0.913043 0.460317 +vt 0.923913 0.396825 +vt 0.945652 0.396825 +vt 1.000000 0.396825 +vt 1.000000 0.460317 +vt 0.978261 0.396825 +vt 0.956522 0.396825 +vt 0.771739 0.920635 +vt 0.782609 0.896825 +vt 0.782609 0.920635 +vt 0.793478 0.920635 +vt 0.804348 0.896825 +vt 0.804348 0.912698 +vt 0.750000 0.896825 +vt 0.760870 0.912698 +vt 0.750000 0.904762 +vt 0.771739 0.896825 +vt 0.815217 0.904762 +vt 0.771739 0.873016 +vt 0.793478 0.873016 +vt 0.793478 0.896825 +vt 0.750000 0.888889 +vt 0.760870 0.896825 +vt 0.782609 0.873016 +vt 0.815217 0.888889 +vt 0.815217 0.896825 +vt 0.739130 0.896825 +vt 0.826087 0.896825 +vt 0.804348 0.873016 +vt 0.793478 0.841270 +vt 0.804348 0.841270 +vt 0.750000 0.873016 +vt 0.760870 0.841270 +vt 0.760870 0.873016 +vt 0.739130 0.841270 +vt 0.750000 0.841270 +vt 0.771739 0.841270 +vt 0.815217 0.841270 +vt 0.815217 0.873016 +vt 0.826087 0.841270 +vt 0.826087 0.873016 +vt 0.782609 0.841270 +vt 0.760870 0.833333 +vt 0.771739 0.817460 +vt 0.782609 0.817460 +vt 0.793478 0.817460 +vt 0.815217 0.825397 +vt 0.804348 0.817460 +vt 0.815217 0.817460 +vt 0.804348 0.833333 +vt 0.750000 0.825397 +vt 0.760870 0.817460 +vt 0.793478 0.793651 +vt 0.804348 0.801587 +vt 0.750000 0.809524 +vt 0.760870 0.801587 +vt 0.771739 0.793651 +vt 0.815217 0.809524 +vt 0.782609 0.793651 +vt 0.739130 0.817460 +vt 0.750000 0.817460 +vt 0.826087 0.817460 +vt 0.760870 0.793651 +vt 0.750000 0.730159 +vt 0.760870 0.730159 +vt 0.815217 0.793651 +vt 0.826087 0.730159 +vt 0.826087 0.793651 +vt 0.771739 0.730159 +vt 0.739130 0.793651 +vt 0.750000 0.793651 +vt 0.793478 0.730159 +vt 0.804348 0.793651 +vt 0.815217 0.730159 +vt 0.782609 0.730159 +vt 0.804348 0.730159 +vt 0.760870 0.722222 +vt 0.771739 0.706349 +vt 0.771739 0.714286 +vt 0.804348 0.722222 +vt 0.815217 0.706349 +vt 0.739130 0.706349 +vt 0.750000 0.706349 +vt 0.793478 0.706349 +vt 0.804348 0.706349 +vt 0.760870 0.706349 +vt 0.826087 0.706349 +vt 0.750000 0.682540 +vt 0.760870 0.690476 +vt 0.826087 0.682540 +vt 0.771739 0.698413 +vt 0.815217 0.682540 +vt 0.793478 0.698413 +vt 0.804348 0.690476 +vt 0.782609 0.706349 +vt 0.793478 0.714286 +vt 0.782609 0.682540 +vt 0.793478 0.539683 +vt 0.793478 0.682540 +vt 0.815217 0.539683 +vt 0.826087 0.539683 +vt 0.771739 0.682540 +vt 0.782609 0.539683 +vt 0.760870 0.682540 +vt 0.771739 0.539683 +vt 0.804348 0.682540 +vt 0.739130 0.682540 +vt 0.750000 0.539683 +vt 0.804348 0.539683 +vt 0.760870 0.539683 +vt 0.760870 0.531746 +vt 0.771739 0.515873 +vt 0.804348 0.531746 +vt 0.815217 0.515873 +vt 0.815217 0.523810 +vt 0.782609 0.515873 +vt 0.793478 0.515873 +vt 0.804348 0.515873 +vt 0.750000 0.523810 +vt 0.760870 0.515873 +vt 0.793478 0.492063 +vt 0.771739 0.492063 +vt 0.815217 0.507937 +vt 0.782609 0.492063 +vt 0.804348 0.500000 +vt 0.750000 0.507937 +vt 0.760870 0.500000 +vt 0.739130 0.515873 +vt 0.750000 0.515873 +vt 0.826087 0.515873 +vt 0.815217 0.492063 +vt 0.826087 0.396825 +vt 0.826087 0.492063 +vt 0.793478 0.396825 +vt 0.739130 0.492063 +vt 0.750000 0.396825 +vt 0.750000 0.492063 +vt 0.760870 0.492063 +vt 0.771739 0.396825 +vt 0.804348 0.492063 +vt 0.815217 0.396825 +vt 0.782609 0.396825 +vt 0.804348 0.396825 +vt 0.760870 0.396825 +vt 0.858696 0.746032 +vt 0.869565 0.738095 +vt 0.869565 0.753968 +vt 0.891304 0.761905 +vt 0.880435 0.738095 +vt 0.891304 0.738095 +vt 0.913043 0.753968 +vt 0.902174 0.738095 +vt 0.913043 0.738095 +vt 0.880435 0.761905 +vt 0.836957 0.746032 +vt 0.826087 0.738095 +vt 0.836957 0.738095 +vt 0.902174 0.761905 +vt 0.880435 0.714286 +vt 0.826087 0.722222 +vt 0.836957 0.730159 +vt 0.902174 0.714286 +vt 0.891304 0.714286 +vt 0.858696 0.738095 +vt 0.869565 0.722222 +vt 0.913043 0.722222 +vt 0.847826 0.738095 +vt 0.858696 0.730159 +vt 0.836957 0.714286 +vt 0.847826 0.539683 +vt 0.847826 0.714286 +vt 0.869565 0.714286 +vt 0.880435 0.539683 +vt 0.826087 0.714286 +vt 0.836957 0.539683 +vt 0.902174 0.539683 +vt 0.858696 0.539683 +vt 0.858696 0.714286 +vt 0.891304 0.539683 +vt 0.869565 0.539683 +vt 0.913043 0.539683 +vt 0.913043 0.714286 +vt 0.891304 0.531746 +vt 0.902174 0.515873 +vt 0.902174 0.523810 +vt 0.847826 0.515873 +vt 0.858696 0.515873 +vt 0.891304 0.515873 +vt 0.869565 0.515873 +vt 0.847826 0.531746 +vt 0.836957 0.515873 +vt 0.880435 0.515873 +vt 0.847826 0.500000 +vt 0.880435 0.492063 +vt 0.891304 0.500000 +vt 0.902174 0.507937 +vt 0.858696 0.492063 +vt 0.869565 0.492063 +vt 0.913043 0.515873 +vt 0.826087 0.515873 +vt 0.836957 0.523810 +vt 0.836957 0.507937 +vt 0.836957 0.492063 +vt 0.847826 0.396825 +vt 0.847826 0.492063 +vt 0.880435 0.396825 +vt 0.891304 0.492063 +vt 0.902174 0.396825 +vt 0.902174 0.492063 +vt 0.826087 0.492063 +vt 0.836957 0.396825 +vt 0.858696 0.396825 +vt 0.913043 0.396825 +vt 0.913043 0.492063 +vt 0.891304 0.396825 +vt 0.869565 0.396825 +vt 0.771739 0.920635 +vt 0.782609 0.896825 +vt 0.782609 0.920635 +vt 0.793478 0.896825 +vt 0.804348 0.912698 +vt 0.793478 0.920635 +vt 0.750000 0.896825 +vt 0.760870 0.912698 +vt 0.750000 0.904762 +vt 0.760870 0.896825 +vt 0.804348 0.896825 +vt 0.815217 0.904762 +vt 0.771739 0.896825 +vt 0.782609 0.873016 +vt 0.793478 0.873016 +vt 0.750000 0.888889 +vt 0.771739 0.873016 +vt 0.815217 0.888889 +vt 0.815217 0.896825 +vt 0.739130 0.896825 +vt 0.826087 0.896825 +vt 0.804348 0.873016 +vt 0.793478 0.841270 +vt 0.804348 0.841270 +vt 0.750000 0.873016 +vt 0.760870 0.841270 +vt 0.760870 0.873016 +vt 0.739130 0.841270 +vt 0.750000 0.841270 +vt 0.771739 0.841270 +vt 0.815217 0.841270 +vt 0.815217 0.873016 +vt 0.826087 0.841270 +vt 0.826087 0.873016 +vt 0.782609 0.841270 +vt 0.760870 0.833333 +vt 0.771739 0.817460 +vt 0.793478 0.817460 +vt 0.815217 0.825397 +vt 0.804348 0.817460 +vt 0.815217 0.817460 +vt 0.782609 0.817460 +vt 0.804348 0.833333 +vt 0.750000 0.825397 +vt 0.760870 0.817460 +vt 0.793478 0.793651 +vt 0.804348 0.801587 +vt 0.750000 0.809524 +vt 0.760870 0.801587 +vt 0.771739 0.793651 +vt 0.815217 0.809524 +vt 0.782609 0.793651 +vt 0.739130 0.817460 +vt 0.750000 0.817460 +vt 0.826087 0.817460 +vt 0.760870 0.793651 +vt 0.750000 0.730159 +vt 0.760870 0.730159 +vt 0.815217 0.793651 +vt 0.826087 0.730159 +vt 0.826087 0.793651 +vt 0.771739 0.730159 +vt 0.739130 0.793651 +vt 0.750000 0.793651 +vt 0.793478 0.730159 +vt 0.804348 0.793651 +vt 0.815217 0.730159 +vt 0.782609 0.730159 +vt 0.804348 0.730159 +vt 0.760870 0.722222 +vt 0.771739 0.706349 +vt 0.771739 0.714286 +vt 0.804348 0.722222 +vt 0.815217 0.706349 +vt 0.739130 0.730159 +vt 0.750000 0.706349 +vt 0.793478 0.706349 +vt 0.804348 0.706349 +vt 0.760870 0.706349 +vt 0.826087 0.706349 +vt 0.750000 0.682540 +vt 0.760870 0.690476 +vt 0.815217 0.682540 +vt 0.826087 0.682540 +vt 0.771739 0.698413 +vt 0.739130 0.706349 +vt 0.793478 0.698413 +vt 0.804348 0.690476 +vt 0.782609 0.706349 +vt 0.793478 0.714286 +vt 0.782609 0.682540 +vt 0.793478 0.539683 +vt 0.793478 0.682540 +vt 0.815217 0.539683 +vt 0.826087 0.539683 +vt 0.771739 0.682540 +vt 0.782609 0.539683 +vt 0.760870 0.682540 +vt 0.771739 0.539683 +vt 0.804348 0.682540 +vt 0.739130 0.682540 +vt 0.750000 0.539683 +vt 0.804348 0.539683 +vt 0.760870 0.539683 +vt 0.760870 0.531746 +vt 0.771739 0.515873 +vt 0.815217 0.523810 +vt 0.804348 0.515873 +vt 0.815217 0.515873 +vt 0.782609 0.515873 +vt 0.804348 0.531746 +vt 0.793478 0.515873 +vt 0.750000 0.515873 +vt 0.760870 0.515873 +vt 0.793478 0.492063 +vt 0.771739 0.492063 +vt 0.815217 0.507937 +vt 0.782609 0.492063 +vt 0.804348 0.500000 +vt 0.750000 0.507937 +vt 0.760870 0.500000 +vt 0.739130 0.515873 +vt 0.750000 0.523810 +vt 0.826087 0.515873 +vt 0.815217 0.492063 +vt 0.826087 0.396825 +vt 0.826087 0.492063 +vt 0.793478 0.396825 +vt 0.739130 0.492063 +vt 0.750000 0.396825 +vt 0.750000 0.492063 +vt 0.760870 0.492063 +vt 0.771739 0.396825 +vt 0.804348 0.492063 +vt 0.815217 0.396825 +vt 0.782609 0.396825 +vt 0.804348 0.396825 +vt 0.760870 0.396825 +vt 0.913043 0.690476 +vt 0.913043 0.507937 +vt 0.913043 0.396825 +vt 0.804348 0.880952 +vt 0.760870 0.880952 +vt 0.739130 0.873016 +vt 0.739130 0.730159 +vt 0.739130 0.539683 +vt 0.739130 0.396825 +vt 0.826087 0.753968 +vt 0.826087 0.539683 +vt 0.826087 0.396825 +vt 0.804348 0.880952 +vt 0.760870 0.880952 +vt 0.739130 0.873016 +vt 0.739130 0.539683 +vt 0.739130 0.396825 +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.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.8321 -0.5547 +vn 0.0000 0.8321 0.5547 +vn 0.0000 0.7071 -0.7071 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.0000 0.7071 0.7071 +vn 0.7071 0.7071 0.0000 +vn 0.0000 0.9239 -0.3827 +vn 0.6630 0.5293 -0.5293 +vn 0.7311 -0.6303 0.2611 +vn 0.9955 0.0670 -0.0670 +vn 0.9947 0.0948 -0.0392 +vn -0.6332 0.7150 -0.2962 +vn -0.9955 0.0670 -0.0670 +vn -0.9947 0.0948 -0.0392 +vn 0.6332 0.7150 -0.2962 +vn -0.7311 -0.6303 0.2611 +vn -0.7573 -0.4617 0.4617 +vn -0.6630 0.5293 -0.5293 +vn 0.6794 0.1447 -0.7194 +vn -0.9987 0.0196 -0.0473 +vn -0.7263 -0.1363 0.6737 +vn -0.6794 0.1447 -0.7194 +vn 0.0000 0.1866 -0.9824 +vn 0.7573 -0.4617 0.4617 +vn 0.9987 0.0196 -0.0473 +vn 0.0000 -0.1944 0.9809 +vn 0.7263 -0.1363 0.6737 +vn 0.0473 -0.0196 0.9987 +vn 0.7194 -0.1447 -0.6794 +vn -0.6737 0.1363 0.7263 +vn -0.6737 0.1363 -0.7263 +vn 0.7194 -0.1447 0.6794 +vn 0.0473 -0.0196 -0.9987 +vn 0.9824 -0.1866 0.0000 +vn 0.0670 -0.0670 -0.9955 +vn -0.4617 0.4617 -0.7573 +vn 0.5293 -0.5293 0.6630 +vn -0.4617 0.4617 0.7573 +vn 0.0670 -0.0670 0.9955 +vn 0.5293 -0.5293 -0.6630 +vn 0.0196 -0.0473 0.9987 +vn 0.1447 -0.7194 -0.6794 +vn 0.0196 -0.0473 -0.9987 +vn -0.1363 0.6737 -0.7263 +vn 0.1447 -0.7194 0.6794 +vn 0.1866 -0.9824 0.0000 +vn -0.1363 0.6737 0.7263 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.7150 0.2962 -0.6332 +vn 0.9239 0.3827 0.0000 +vn 0.7150 0.2962 0.6332 +vn 0.0670 0.0670 0.9955 +vn 0.0948 0.0392 0.9947 +vn -0.4617 -0.4617 -0.7573 +vn 0.0948 0.0392 -0.9947 +vn -0.6303 -0.2611 -0.7311 +vn 0.5293 0.5293 -0.6630 +vn -0.6303 -0.2611 0.7311 +vn 0.1447 0.7194 -0.6794 +vn 0.1447 0.7194 0.6794 +vn 0.5293 0.5293 0.6630 +vn -0.1363 -0.6737 -0.7263 +vn 0.0670 0.0670 -0.9955 +vn 0.1866 0.9824 0.0000 +vn -0.1363 -0.6737 0.7263 +vn -0.4617 -0.4617 0.7573 +vn -0.1944 -0.9809 0.0000 +vn 0.0196 0.0473 0.9987 +vn -0.1447 0.7194 0.6794 +vn -0.0196 0.0473 0.9987 +vn -0.0196 0.0473 -0.9987 +vn 0.0196 0.0473 -0.9987 +vn 0.1363 -0.6737 -0.7263 +vn -0.1447 0.7194 -0.6794 +vn 0.1363 -0.6737 0.7263 +vn -0.1866 0.9824 0.0000 +vn -0.5293 0.5293 -0.6630 +vn -0.5293 0.5293 0.6630 +vn -0.0670 0.0670 0.9955 +vn 0.4617 -0.4617 0.7573 +vn -0.0670 0.0670 -0.9955 +vn -0.7194 0.1447 0.6794 +vn -0.0473 0.0196 0.9987 +vn 0.6737 -0.1363 -0.7263 +vn -0.0473 0.0196 -0.9987 +vn -0.7194 0.1447 -0.6794 +vn 0.6737 -0.1363 0.7263 +vn -0.9824 0.1866 0.0000 +vn 0.4617 -0.4617 -0.7573 +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 +s off +f 51/81/23 50/82/23 49/83/23 +f 69/84/24 59/85/24 57/86/24 +f 72/87/25 58/88/25 60/89/25 +f 73/90/24 63/91/24 61/92/24 +f 76/93/25 62/94/25 64/95/25 +f 75/96/26 64/95/26 63/91/26 +f 71/97/26 60/89/26 59/85/26 +f 67/98/24 81/99/24 65/100/24 +f 68/101/26 83/102/26 67/98/26 +f 54/103/25 80/104/25 56/105/25 +f 55/106/24 77/107/24 53/108/24 +f 66/109/25 84/110/25 68/101/25 +f 56/105/26 79/111/26 55/106/26 +f 88/112/25 50/82/25 52/113/25 +f 85/114/24 51/115/24 49/116/24 +f 60/89/27 57/86/27 59/85/27 +f 64/95/27 61/92/27 63/91/27 +f 53/108/28 56/105/28 55/106/28 +f 65/100/28 68/101/28 67/98/28 +f 50/117/28 54/118/28 53/119/28 +f 57/120/27 58/121/27 52/122/27 +f 88/112/26 90/123/26 86/124/26 +f 54/118/26 90/123/26 78/125/26 +f 89/126/26 58/121/26 70/127/26 +f 74/128/26 57/120/26 62/129/26 +f 82/130/26 53/119/26 77/131/26 +f 92/132/26 87/133/26 85/114/26 +f 61/134/26 91/135/26 73/136/26 +f 92/132/26 65/137/26 81/138/26 +f 91/139/24 92/140/24 100/141/24 +f 95/142/27 71/143/27 76/144/27 +f 79/145/28 96/146/28 84/147/28 +f 95/142/29 97/148/29 93/149/29 +f 94/150/30 100/141/30 96/146/30 +f 98/151/26 99/152/26 100/141/26 +f 90/153/25 89/154/25 97/148/25 +f 284/155/28 286/156/28 283/157/28 +f 105/158/31 132/159/31 108/160/31 +f 104/161/25 107/162/25 102/163/25 +f 101/164/24 105/158/24 103/165/24 +f 103/165/27 108/160/27 104/161/27 +f 102/163/28 106/166/28 101/167/28 +f 124/168/27 125/169/27 121/170/27 +f 117/171/26 114/172/26 119/173/26 +f 120/174/23 115/175/23 118/176/23 +f 117/171/27 115/177/27 116/178/27 +f 119/173/28 113/179/28 120/180/28 +f 113/181/32 111/182/32 115/175/32 +f 126/183/23 282/184/23 127/185/23 +f 112/186/28 114/172/28 109/187/28 +f 111/188/27 116/178/27 115/177/27 +f 109/189/33 116/178/33 110/190/33 +f 124/191/25 284/155/25 128/192/25 +f 104/161/23 121/193/23 103/194/23 +f 101/195/23 123/196/23 102/163/23 +f 288/197/23 286/198/23 285/199/23 +f 122/200/28 127/185/28 123/201/28 +f 281/202/27 288/203/27 282/184/27 +f 128/192/23 283/157/23 125/169/23 +f 131/204/26 129/205/26 130/206/26 +f 107/162/34 130/207/34 106/166/34 +f 108/160/35 131/204/35 107/162/35 +f 106/208/33 129/209/33 105/158/33 +f 288/210/25 127/185/25 282/184/25 +f 126/183/24 287/211/24 281/202/24 +f 283/157/24 121/212/24 125/169/24 +f 285/199/23 124/213/23 104/161/23 +f 103/194/23 286/198/23 287/214/23 +f 290/215/26 291/216/26 289/217/26 +f 298/218/26 299/219/26 297/220/26 +f 292/221/27 293/222/27 291/216/27 +f 289/223/28 295/224/28 290/225/28 +f 290/226/25 296/227/25 292/221/25 +f 291/216/24 294/228/24 289/223/24 +f 300/229/27 301/230/27 299/219/27 +f 297/231/28 303/232/28 298/233/28 +f 298/234/25 304/235/25 300/229/25 +f 299/219/24 302/236/24 297/231/24 +f 358/237/26 359/238/26 357/239/26 +f 366/240/26 367/241/26 365/242/26 +f 360/243/27 361/244/27 359/245/27 +f 357/239/28 363/246/28 358/237/28 +f 358/237/25 364/247/25 360/243/25 +f 359/248/24 362/249/24 357/239/24 +f 368/250/27 369/251/27 367/252/27 +f 365/242/28 371/253/28 366/240/28 +f 366/240/25 372/254/25 368/250/25 +f 367/255/24 370/256/24 365/242/24 +f 414/257/26 415/258/26 413/259/26 +f 418/260/26 419/261/26 417/262/26 +f 394/263/26 395/264/26 393/265/26 +f 390/266/26 391/267/26 389/268/26 +f 387/269/26 382/270/26 383/271/26 +f 386/272/26 381/273/26 382/270/26 +f 388/274/26 383/271/26 384/275/26 +f 385/276/26 384/275/26 381/277/26 +f 380/278/28 385/276/28 379/279/28 +f 377/280/27 387/269/27 378/281/27 +f 375/282/27 384/275/27 376/283/27 +f 374/284/28 382/270/28 373/285/28 +f 378/286/24 388/274/24 380/287/24 +f 379/288/25 386/272/25 377/289/25 +f 376/283/25 383/271/25 374/284/25 +f 373/285/24 381/273/24 375/290/24 +f 411/291/26 406/292/26 407/293/26 +f 410/294/26 405/295/26 406/292/26 +f 412/296/26 407/293/26 408/297/26 +f 409/298/26 408/297/26 405/299/26 +f 404/300/28 409/298/28 403/301/28 +f 401/302/27 411/291/27 402/303/27 +f 399/304/27 408/297/27 400/305/27 +f 398/306/28 406/292/28 397/307/28 +f 402/308/24 412/296/24 404/309/24 +f 403/310/25 410/294/25 401/311/25 +f 400/305/25 407/293/25 398/306/25 +f 397/307/24 405/295/24 399/312/24 +f 51/81/23 52/113/23 50/82/23 +f 69/84/24 71/313/24 59/85/24 +f 72/87/25 70/314/25 58/88/25 +f 73/90/24 75/315/24 63/91/24 +f 76/93/25 74/316/25 62/94/25 +f 75/96/26 76/317/26 64/95/26 +f 71/97/26 72/318/26 60/89/26 +f 67/98/24 83/319/24 81/99/24 +f 68/101/26 84/320/26 83/102/26 +f 54/103/25 78/321/25 80/104/25 +f 55/106/24 79/322/24 77/107/24 +f 66/109/25 82/323/25 84/110/25 +f 56/105/26 80/324/26 79/111/26 +f 88/112/25 86/124/25 50/82/25 +f 85/114/24 87/133/24 51/115/24 +f 60/89/27 58/88/27 57/86/27 +f 64/95/27 62/94/27 61/92/27 +f 53/108/28 54/103/28 56/105/28 +f 65/100/28 66/109/28 68/101/28 +f 85/114/28 49/325/28 65/137/28 +f 49/325/28 50/117/28 53/119/28 +f 65/137/28 49/325/28 66/326/28 +f 50/117/28 86/124/28 54/118/28 +f 53/119/28 66/326/28 49/325/28 +f 52/122/27 51/327/27 57/120/27 +f 51/327/27 87/133/27 61/134/27 +f 61/134/27 62/129/27 51/327/27 +f 62/129/27 57/120/27 51/327/27 +f 58/121/27 88/112/27 52/122/27 +f 88/112/26 89/126/26 90/123/26 +f 54/118/26 86/124/26 90/123/26 +f 89/126/26 88/112/26 58/121/26 +f 74/128/26 69/328/26 57/120/26 +f 82/130/26 66/326/26 53/119/26 +f 92/132/26 91/135/26 87/133/26 +f 61/134/26 87/133/26 91/135/26 +f 92/132/26 85/114/26 65/137/26 +f 92/140/24 96/329/24 100/141/24 +f 100/141/24 99/152/24 91/139/24 +f 99/152/24 95/330/24 91/139/24 +f 75/331/27 73/332/27 91/333/27 +f 93/149/27 89/334/27 72/335/27 +f 89/334/27 70/336/27 72/335/27 +f 75/331/27 91/333/27 95/142/27 +f 69/337/27 74/338/27 76/144/27 +f 76/144/27 75/331/27 95/142/27 +f 95/142/27 93/149/27 71/143/27 +f 93/149/27 72/335/27 71/143/27 +f 71/143/27 69/337/27 76/144/27 +f 80/339/28 78/340/28 90/341/28 +f 96/146/28 92/342/28 83/343/28 +f 92/342/28 81/344/28 83/343/28 +f 80/339/28 90/341/28 94/150/28 +f 82/345/28 77/346/28 84/147/28 +f 77/346/28 79/145/28 84/147/28 +f 79/145/28 80/339/28 94/150/28 +f 96/146/28 83/343/28 84/147/28 +f 79/145/28 94/150/28 96/146/28 +f 95/142/29 99/152/29 97/148/29 +f 94/150/30 98/151/30 100/141/30 +f 98/151/26 97/148/26 99/152/26 +f 89/154/25 93/347/25 97/148/25 +f 97/148/25 98/151/25 90/153/25 +f 98/151/25 94/348/25 90/153/25 +f 284/155/28 285/349/28 286/156/28 +f 105/158/31 129/350/31 132/159/31 +f 104/161/25 108/160/25 107/162/25 +f 101/164/24 106/208/24 105/158/24 +f 103/165/27 105/158/27 108/160/27 +f 102/163/28 107/162/28 106/166/28 +f 124/168/27 128/192/27 125/169/27 +f 117/171/26 116/178/26 114/172/26 +f 120/174/23 113/181/23 115/175/23 +f 117/171/27 118/351/27 115/177/27 +f 119/173/28 114/172/28 113/179/28 +f 113/181/32 112/186/32 111/182/32 +f 126/183/23 281/202/23 282/184/23 +f 112/186/28 113/179/28 114/172/28 +f 111/188/27 110/352/27 116/178/27 +f 109/189/33 114/172/33 116/178/33 +f 124/191/25 285/353/25 284/155/25 +f 104/161/23 124/213/23 121/193/23 +f 101/195/23 122/354/23 123/196/23 +f 288/197/23 287/214/23 286/198/23 +f 122/200/28 126/183/28 127/185/28 +f 281/202/27 287/355/27 288/203/27 +f 128/192/23 284/155/23 283/157/23 +f 131/204/26 132/356/26 129/205/26 +f 107/162/34 131/357/34 130/207/34 +f 108/160/35 132/356/35 131/204/35 +f 106/208/33 130/358/33 129/209/33 +f 288/210/25 123/359/25 127/185/25 +f 126/183/24 122/360/24 287/211/24 +f 283/157/24 286/361/24 121/212/24 +f 104/161/23 102/163/23 288/197/23 +f 102/163/23 123/196/23 288/197/23 +f 288/197/23 285/199/23 104/161/23 +f 122/354/23 101/195/23 287/214/23 +f 101/195/23 103/194/23 287/214/23 +f 103/194/23 121/193/23 286/198/23 +f 290/215/26 292/221/26 291/216/26 +f 298/218/26 300/229/26 299/219/26 +f 292/221/27 296/227/27 293/222/27 +f 289/223/28 294/228/28 295/224/28 +f 290/226/25 295/362/25 296/227/25 +f 291/216/24 293/222/24 294/228/24 +f 300/229/27 304/235/27 301/230/27 +f 297/231/28 302/236/28 303/232/28 +f 298/234/25 303/363/25 304/235/25 +f 299/219/24 301/230/24 302/236/24 +f 358/237/26 360/364/26 359/238/26 +f 366/240/26 368/365/26 367/241/26 +f 360/243/27 364/247/27 361/244/27 +f 357/239/28 362/249/28 363/246/28 +f 358/237/25 363/246/25 364/247/25 +f 359/248/24 361/366/24 362/249/24 +f 368/250/27 372/254/27 369/251/27 +f 365/242/28 370/256/28 371/253/28 +f 366/240/25 371/253/25 372/254/25 +f 367/255/24 369/367/24 370/256/24 +f 414/257/26 416/368/26 415/258/26 +f 418/260/26 420/369/26 419/261/26 +f 394/263/26 396/370/26 395/264/26 +f 390/266/26 392/371/26 391/267/26 +f 387/269/26 386/372/26 382/270/26 +f 386/272/26 385/373/26 381/273/26 +f 388/274/26 387/374/26 383/271/26 +f 385/276/26 388/375/26 384/275/26 +f 380/278/28 388/375/28 385/276/28 +f 377/280/27 386/372/27 387/269/27 +f 375/282/27 381/277/27 384/275/27 +f 374/284/28 383/271/28 382/270/28 +f 378/286/24 387/374/24 388/274/24 +f 379/288/25 385/373/25 386/272/25 +f 376/283/25 384/275/25 383/271/25 +f 373/285/24 382/270/24 381/273/24 +f 411/291/26 410/376/26 406/292/26 +f 410/294/26 409/377/26 405/295/26 +f 412/296/26 411/378/26 407/293/26 +f 409/298/26 412/379/26 408/297/26 +f 404/300/28 412/379/28 409/298/28 +f 401/302/27 410/376/27 411/291/27 +f 399/304/27 405/299/27 408/297/27 +f 398/306/28 407/293/28 406/292/28 +f 402/308/24 411/378/24 412/296/24 +f 403/310/25 409/377/25 410/294/25 +f 400/305/25 408/297/25 407/293/25 +f 397/307/24 406/292/24 405/295/24 +s 1 +f 133/380/36 147/381/37 141/382/31 +f 138/383/38 146/384/39 139/385/40 +f 134/386/41 143/387/42 135/388/43 +f 139/385/40 147/381/37 140/389/44 +f 136/390/45 143/391/42 144/392/46 +f 133/380/36 142/393/47 134/386/41 +f 146/384/39 154/394/48 147/381/37 +f 144/392/46 150/395/49 151/396/50 +f 141/382/31 149/397/51 142/393/47 +f 147/381/37 148/398/52 141/382/31 +f 145/399/53 153/400/54 146/384/39 +f 143/387/42 149/397/51 150/401/49 +f 137/402/55 145/399/53 138/383/38 +f 136/390/45 144/392/46 137/402/55 +f 144/392/46 151/396/50 137/402/55 +f 145/399/53 137/402/55 152/403/56 +f 151/404/50 155/405/57 137/406/55 +f 153/407/54 162/408/58 154/394/48 +f 150/409/49 159/410/59 151/404/50 +f 148/398/52 157/411/60 149/397/51 +f 137/406/55 160/412/61 152/413/56 +f 154/394/48 156/414/62 148/398/52 +f 152/413/56 161/415/63 153/407/54 +f 149/397/51 158/416/33 150/417/49 +f 157/418/60 164/419/64 165/420/65 +f 155/421/57 167/422/66 160/412/61 +f 162/408/58 164/419/64 156/423/62 +f 160/412/61 168/424/32 161/415/63 +f 155/421/57 166/425/67 163/426/68 +f 162/408/58 168/424/32 169/427/69 +f 166/425/67 170/428/70 163/426/68 +f 168/424/32 176/429/71 169/427/69 +f 165/420/65 171/430/72 172/431/73 +f 163/426/68 174/432/74 167/422/66 +f 164/419/64 176/429/71 171/430/72 +f 167/422/66 175/433/75 168/424/32 +f 157/418/60 165/420/65 158/434/33 +f 165/420/65 172/431/73 158/434/33 +f 158/435/33 166/425/67 159/436/59 +f 166/425/67 158/435/33 173/437/76 +f 173/438/76 178/439/28 170/440/70 +f 175/433/75 184/441/77 176/429/71 +f 171/442/72 180/443/31 172/444/73 +f 158/445/33 181/446/34 173/438/76 +f 170/440/70 182/447/78 174/432/74 +f 172/444/73 177/448/26 158/449/33 +f 176/429/71 179/450/27 171/442/72 +f 174/432/74 183/451/23 175/433/75 +f 192/452/79 198/453/35 191/454/80 +f 190/455/81 196/456/82 189/457/83 +f 194/458/84 185/459/85 186/460/86 +f 185/459/85 199/461/87 192/452/79 +f 198/453/35 190/455/81 191/454/80 +f 196/456/82 188/462/88 189/457/83 +f 206/463/89 198/453/35 199/461/87 +f 204/464/90 196/456/82 197/465/91 +f 201/466/92 193/467/93 194/458/84 +f 193/467/93 206/463/89 199/461/87 +f 205/468/94 197/465/91 198/453/35 +f 196/456/82 202/469/95 195/470/96 +f 186/460/86 187/471/97 194/458/84 +f 187/472/97 188/462/88 195/470/96 +f 195/470/96 202/469/95 187/472/97 +f 194/458/84 187/471/97 201/466/92 +f 203/473/98 212/474/99 211/475/100 +f 201/476/92 208/477/101 200/478/102 +f 201/476/92 207/479/32 209/480/103 +f 200/478/102 214/481/104 206/463/89 +f 205/468/94 212/474/99 204/464/90 +f 203/473/98 210/482/105 202/483/95 +f 202/483/95 207/484/32 187/485/97 +f 206/463/89 213/486/106 205/468/94 +f 208/487/101 221/488/107 214/481/104 +f 212/474/99 220/489/33 219/490/108 +f 210/491/105 218/492/109 217/493/110 +f 213/486/106 221/488/107 220/489/33 +f 211/494/100 219/490/108 218/492/109 +f 209/495/103 215/496/111 208/487/101 +f 218/492/109 226/497/112 225/498/113 +f 215/496/111 223/499/114 222/500/115 +f 215/496/111 228/501/116 221/488/107 +f 220/489/33 226/497/112 219/490/108 +f 218/492/109 224/502/117 217/493/110 +f 220/489/33 228/501/116 227/503/118 +f 207/504/32 216/505/119 209/495/103 +f 216/505/119 207/504/32 223/499/114 +f 210/491/105 217/493/110 207/506/32 +f 217/493/110 224/502/117 207/506/32 +f 222/507/115 231/508/58 230/509/62 +f 224/510/117 229/511/63 207/512/32 +f 222/507/115 236/513/60 228/501/116 +f 207/514/32 231/508/58 223/515/114 +f 227/503/118 234/516/59 226/497/112 +f 225/517/113 232/518/61 224/510/117 +f 228/501/116 235/519/33 227/503/118 +f 225/517/113 234/516/59 233/520/57 +f 230/521/62 243/522/65 236/523/60 +f 233/524/57 240/525/66 232/518/61 +f 231/508/58 237/526/32 239/527/69 +f 233/524/57 242/528/67 241/529/68 +f 230/521/62 239/527/69 238/530/64 +f 232/518/61 237/531/32 229/511/63 +f 238/530/64 246/532/71 245/533/72 +f 240/525/66 244/534/75 237/531/32 +f 238/530/64 250/535/73 243/522/65 +f 241/529/68 247/536/74 240/525/66 +f 237/526/32 246/532/71 239/527/69 +f 241/529/68 249/537/76 248/538/70 +f 236/523/60 243/522/65 235/539/33 +f 243/522/65 250/535/73 235/539/33 +f 234/540/59 235/539/33 242/528/67 +f 242/528/67 235/539/33 249/537/76 +f 235/541/33 257/542/99 249/543/76 +f 244/534/75 255/544/105 252/545/32 +f 250/546/73 251/547/106 235/541/33 +f 245/548/72 258/549/104 250/546/73 +f 248/550/70 255/544/105 247/536/74 +f 244/551/75 254/552/103 246/532/71 +f 248/550/70 257/542/99 256/553/100 +f 245/548/72 254/552/103 253/554/101 +f 253/555/101 265/556/107 258/549/104 +f 256/557/100 262/558/110 255/559/105 +f 251/547/106 265/556/107 259/560/33 +f 256/557/100 264/561/108 263/562/109 +f 254/563/103 260/564/111 253/555/101 +f 251/547/106 264/561/108 257/542/99 +f 259/560/33 271/565/112 264/561/108 +f 260/564/111 272/566/116 265/556/107 +f 263/562/109 269/567/117 262/558/110 +f 265/556/107 266/568/118 259/560/33 +f 263/562/109 271/565/112 270/569/113 +f 260/564/111 268/570/114 267/571/115 +f 252/572/32 261/573/119 254/563/103 +f 261/573/119 252/572/32 268/570/114 +f 255/559/105 262/558/110 252/574/32 +f 262/558/110 269/567/117 252/574/32 +f 269/575/117 273/576/25 252/577/32 +f 266/568/118 279/578/120 271/565/112 +f 252/579/32 276/580/121 268/581/114 +f 267/582/115 280/583/122 272/566/116 +f 270/584/113 277/585/123 269/575/117 +f 272/566/116 274/586/24 266/568/118 +f 270/584/113 279/578/120 278/587/28 +f 267/582/115 276/580/121 275/588/27 +f 310/589/38 318/590/39 311/591/40 +f 305/592/36 319/593/37 313/594/31 +f 307/595/43 314/596/47 315/597/42 +f 311/591/40 319/593/37 312/598/44 +f 308/599/45 315/600/42 316/601/46 +f 306/602/41 313/594/31 314/596/47 +f 318/590/39 326/603/48 319/593/37 +f 316/601/46 322/604/49 323/605/50 +f 313/594/31 321/606/51 314/596/47 +f 313/594/31 326/603/48 320/607/52 +f 317/608/53 325/609/54 318/590/39 +f 315/597/42 321/606/51 322/610/49 +f 309/611/55 317/608/53 310/589/38 +f 308/599/45 316/601/46 309/611/55 +f 316/601/46 323/605/50 309/611/55 +f 317/608/53 309/611/55 324/612/56 +f 323/613/50 327/614/57 309/615/55 +f 325/616/54 334/617/58 326/603/48 +f 322/618/49 331/619/59 323/613/50 +f 320/607/52 329/620/60 321/606/51 +f 309/615/55 332/621/61 324/622/56 +f 326/603/48 328/623/62 320/607/52 +f 324/622/56 333/624/63 325/616/54 +f 321/606/51 330/625/33 322/626/49 +f 328/627/62 337/628/65 329/629/60 +f 332/621/61 335/630/68 339/631/66 +f 334/617/58 336/632/64 328/627/62 +f 332/621/61 340/633/32 333/624/63 +f 327/634/57 338/635/67 335/630/68 +f 333/624/63 341/636/69 334/617/58 +f 338/635/67 342/637/70 335/630/68 +f 340/633/32 348/638/71 341/636/69 +f 337/628/65 343/639/72 344/640/73 +f 339/631/66 342/637/70 346/641/74 +f 341/636/69 343/639/72 336/632/64 +f 339/631/66 347/642/75 340/633/32 +f 329/629/60 337/628/65 330/643/33 +f 337/628/65 344/640/73 330/643/33 +f 330/644/33 338/635/67 331/645/59 +f 338/635/67 330/644/33 345/646/76 +f 345/647/76 350/648/28 342/649/70 +f 347/642/75 356/650/77 348/638/71 +f 343/651/72 352/652/31 344/653/73 +f 330/654/33 353/655/34 345/647/76 +f 342/649/70 354/656/78 346/641/74 +f 344/653/73 349/657/26 330/658/33 +f 348/638/71 351/659/27 343/651/72 +f 346/641/74 355/660/23 347/642/75 +f 428/661/79 434/662/35 427/663/80 +f 433/664/91 425/665/83 426/666/81 +f 430/667/84 421/668/85 422/669/86 +f 429/670/93 428/661/79 421/668/85 +f 434/662/35 426/666/81 427/663/80 +f 432/671/82 424/672/88 425/665/83 +f 435/673/87 441/674/94 434/662/35 +f 440/675/90 432/671/82 433/664/91 +f 437/676/92 429/670/93 430/667/84 +f 429/670/93 442/677/89 435/673/87 +f 434/662/35 440/675/90 433/664/91 +f 432/671/82 438/678/95 431/679/96 +f 422/669/86 423/680/97 430/667/84 +f 423/681/97 424/672/88 431/679/96 +f 431/679/96 438/678/95 423/681/97 +f 430/667/84 423/680/97 437/676/92 +f 439/682/98 448/683/99 447/684/100 +f 437/685/92 444/686/101 436/687/102 +f 437/685/92 443/688/32 445/689/103 +f 436/687/102 450/690/104 442/677/89 +f 441/674/94 448/683/99 440/675/90 +f 439/682/98 446/691/105 438/692/95 +f 438/692/95 443/693/32 423/694/97 +f 442/677/89 449/695/106 441/674/94 +f 444/696/101 457/697/107 450/690/104 +f 449/695/106 455/698/108 448/683/99 +f 446/699/105 454/700/109 453/701/110 +f 450/690/104 456/702/33 449/695/106 +f 447/703/100 455/698/108 454/700/109 +f 445/704/103 451/705/111 444/696/101 +f 454/700/109 462/706/112 461/707/113 +f 451/705/111 459/708/114 458/709/115 +f 451/705/111 464/710/116 457/697/107 +f 456/702/33 462/706/112 455/698/108 +f 454/700/109 460/711/117 453/701/110 +f 457/697/107 463/712/118 456/702/33 +f 443/713/32 452/714/119 445/704/103 +f 452/714/119 443/713/32 459/708/114 +f 446/699/105 453/701/110 443/715/32 +f 453/701/110 460/711/117 443/715/32 +f 458/716/115 467/717/58 466/718/62 +f 460/719/117 465/720/63 443/721/32 +f 458/716/115 472/722/60 464/710/116 +f 443/723/32 467/717/58 459/724/114 +f 463/712/118 470/725/59 462/706/112 +f 461/726/113 468/727/61 460/719/117 +f 464/710/116 471/728/33 463/712/118 +f 461/726/113 470/725/59 469/729/57 +f 466/730/62 479/731/65 472/732/60 +f 469/733/57 476/734/66 468/727/61 +f 465/735/63 475/736/69 467/717/58 +f 469/733/57 478/737/67 477/738/68 +f 466/730/62 475/736/69 474/739/64 +f 468/727/61 473/740/32 465/720/63 +f 474/739/64 482/741/71 481/742/72 +f 473/740/32 483/743/74 480/744/75 +f 474/739/64 486/745/73 479/731/65 +f 477/738/68 483/743/74 476/734/66 +f 473/746/32 482/741/71 475/736/69 +f 477/738/68 485/747/76 484/748/70 +f 472/732/60 479/731/65 471/749/33 +f 479/731/65 486/745/73 471/749/33 +f 470/750/59 471/749/33 478/737/67 +f 478/737/67 471/749/33 485/747/76 +f 471/751/33 493/752/99 485/753/76 +f 480/744/75 491/754/105 488/755/32 +f 486/756/73 487/757/106 471/751/33 +f 481/758/72 494/759/104 486/756/73 +f 484/760/70 491/754/105 483/743/74 +f 480/761/75 490/762/103 482/741/71 +f 484/760/70 493/752/99 492/763/100 +f 481/758/72 490/762/103 489/764/101 +f 489/765/101 501/766/107 494/759/104 +f 491/767/105 499/768/109 498/769/110 +f 487/757/106 501/766/107 495/770/33 +f 492/771/100 500/772/108 499/768/109 +f 489/765/101 497/773/119 496/774/111 +f 487/757/106 500/772/108 493/752/99 +f 495/770/33 507/775/112 500/772/108 +f 496/774/111 508/776/116 501/766/107 +f 499/768/109 505/777/117 498/769/110 +f 495/770/33 508/776/116 502/778/118 +f 499/768/109 507/775/112 506/779/113 +f 496/774/111 504/780/114 503/781/115 +f 488/782/32 497/773/119 490/783/103 +f 497/773/119 488/782/32 504/780/114 +f 491/767/105 498/769/110 488/784/32 +f 498/769/110 505/777/117 488/784/32 +f 505/785/117 509/786/25 488/787/32 +f 502/778/118 515/788/120 507/775/112 +f 488/789/32 512/790/121 504/791/114 +f 503/792/115 516/793/122 508/776/116 +f 506/794/113 513/795/123 505/785/117 +f 508/776/116 510/796/24 502/778/118 +f 506/794/113 515/788/120 514/797/28 +f 503/792/115 512/790/121 511/798/27 +f 133/380/36 140/389/44 147/381/37 +f 138/383/38 145/399/53 146/384/39 +f 134/386/41 142/393/47 143/387/42 +f 139/385/40 146/384/39 147/381/37 +f 136/390/45 135/799/43 143/391/42 +f 133/380/36 141/382/31 142/393/47 +f 146/384/39 153/400/54 154/394/48 +f 144/392/46 143/391/42 150/395/49 +f 141/382/31 148/398/52 149/397/51 +f 147/381/37 154/394/48 148/398/52 +f 145/399/53 152/403/56 153/400/54 +f 143/387/42 142/393/47 149/397/51 +f 151/404/50 159/410/59 155/405/57 +f 153/407/54 161/415/63 162/408/58 +f 150/409/49 158/800/33 159/410/59 +f 148/398/52 156/414/62 157/411/60 +f 137/406/55 155/405/57 160/412/61 +f 154/394/48 162/408/58 156/414/62 +f 152/413/56 160/412/61 161/415/63 +f 149/397/51 157/411/60 158/416/33 +f 157/418/60 156/423/62 164/419/64 +f 155/421/57 163/426/68 167/422/66 +f 162/408/58 169/427/69 164/419/64 +f 160/412/61 167/422/66 168/424/32 +f 155/421/57 159/436/59 166/425/67 +f 162/408/58 161/415/63 168/424/32 +f 166/425/67 173/437/76 170/428/70 +f 168/424/32 175/433/75 176/429/71 +f 165/420/65 164/419/64 171/430/72 +f 163/426/68 170/428/70 174/432/74 +f 164/419/64 169/427/69 176/429/71 +f 167/422/66 174/432/74 175/433/75 +f 173/438/76 181/446/34 178/439/28 +f 175/433/75 183/451/23 184/441/77 +f 171/442/72 179/450/27 180/443/31 +f 158/445/33 177/801/26 181/446/34 +f 170/440/70 178/439/28 182/447/78 +f 172/444/73 180/443/31 177/448/26 +f 176/429/71 184/441/77 179/450/27 +f 174/432/74 182/447/78 183/451/23 +f 192/452/79 199/461/87 198/453/35 +f 190/455/81 197/465/91 196/456/82 +f 194/458/84 193/467/93 185/459/85 +f 185/459/85 193/467/93 199/461/87 +f 198/453/35 197/465/91 190/455/81 +f 196/456/82 195/470/96 188/462/88 +f 206/463/89 205/468/94 198/453/35 +f 204/464/90 203/802/98 196/456/82 +f 201/466/92 200/803/102 193/467/93 +f 193/467/93 200/803/102 206/463/89 +f 205/468/94 204/464/90 197/465/91 +f 196/456/82 203/802/98 202/469/95 +f 203/473/98 204/464/90 212/474/99 +f 201/476/92 209/480/103 208/477/101 +f 201/476/92 187/804/97 207/479/32 +f 200/478/102 208/477/101 214/481/104 +f 205/468/94 213/486/106 212/474/99 +f 203/473/98 211/475/100 210/482/105 +f 202/483/95 210/482/105 207/484/32 +f 206/463/89 214/481/104 213/486/106 +f 208/487/101 215/496/111 221/488/107 +f 212/474/99 213/486/106 220/489/33 +f 210/491/105 211/494/100 218/492/109 +f 213/486/106 214/481/104 221/488/107 +f 211/494/100 212/474/99 219/490/108 +f 209/495/103 216/505/119 215/496/111 +f 218/492/109 219/490/108 226/497/112 +f 215/496/111 216/505/119 223/499/114 +f 215/496/111 222/500/115 228/501/116 +f 220/489/33 227/503/118 226/497/112 +f 218/492/109 225/498/113 224/502/117 +f 220/489/33 221/488/107 228/501/116 +f 222/507/115 223/515/114 231/508/58 +f 224/510/117 232/518/61 229/511/63 +f 222/507/115 230/509/62 236/513/60 +f 207/514/32 229/805/63 231/508/58 +f 227/503/118 235/519/33 234/516/59 +f 225/517/113 233/520/57 232/518/61 +f 228/501/116 236/513/60 235/519/33 +f 225/517/113 226/497/112 234/516/59 +f 230/521/62 238/530/64 243/522/65 +f 233/524/57 241/529/68 240/525/66 +f 231/508/58 229/805/63 237/526/32 +f 233/524/57 234/540/59 242/528/67 +f 230/521/62 231/508/58 239/527/69 +f 232/518/61 240/525/66 237/531/32 +f 238/530/64 239/527/69 246/532/71 +f 240/525/66 247/536/74 244/534/75 +f 238/530/64 245/533/72 250/535/73 +f 241/529/68 248/538/70 247/536/74 +f 237/526/32 244/551/75 246/532/71 +f 241/529/68 242/528/67 249/537/76 +f 235/541/33 251/547/106 257/542/99 +f 244/534/75 247/536/74 255/544/105 +f 250/546/73 258/549/104 251/547/106 +f 245/548/72 253/554/101 258/549/104 +f 248/550/70 256/553/100 255/544/105 +f 244/551/75 252/806/32 254/552/103 +f 248/550/70 249/543/76 257/542/99 +f 245/548/72 246/532/71 254/552/103 +f 253/555/101 260/564/111 265/556/107 +f 256/557/100 263/562/109 262/558/110 +f 251/547/106 258/549/104 265/556/107 +f 256/557/100 257/542/99 264/561/108 +f 254/563/103 261/573/119 260/564/111 +f 251/547/106 259/560/33 264/561/108 +f 259/560/33 266/568/118 271/565/112 +f 260/564/111 267/571/115 272/566/116 +f 263/562/109 270/569/113 269/567/117 +f 265/556/107 272/566/116 266/568/118 +f 263/562/109 264/561/108 271/565/112 +f 260/564/111 261/573/119 268/570/114 +f 269/575/117 277/585/123 273/576/25 +f 266/568/118 274/586/24 279/578/120 +f 252/579/32 273/807/25 276/580/121 +f 267/582/115 275/588/27 280/583/122 +f 270/584/113 278/587/28 277/585/123 +f 272/566/116 280/583/122 274/586/24 +f 270/584/113 271/565/112 279/578/120 +f 267/582/115 268/581/114 276/580/121 +f 310/589/38 317/608/53 318/590/39 +f 305/592/36 312/598/44 319/593/37 +f 307/595/43 306/602/41 314/596/47 +f 311/591/40 318/590/39 319/593/37 +f 308/599/45 307/808/43 315/600/42 +f 306/602/41 305/592/36 313/594/31 +f 318/590/39 325/609/54 326/603/48 +f 316/601/46 315/600/42 322/604/49 +f 313/594/31 320/607/52 321/606/51 +f 313/594/31 319/593/37 326/603/48 +f 317/608/53 324/612/56 325/609/54 +f 315/597/42 314/596/47 321/606/51 +f 323/613/50 331/619/59 327/614/57 +f 325/616/54 333/624/63 334/617/58 +f 322/618/49 330/809/33 331/619/59 +f 320/607/52 328/623/62 329/620/60 +f 309/615/55 327/614/57 332/621/61 +f 326/603/48 334/617/58 328/623/62 +f 324/622/56 332/621/61 333/624/63 +f 321/606/51 329/620/60 330/625/33 +f 328/627/62 336/632/64 337/628/65 +f 332/621/61 327/634/57 335/630/68 +f 334/617/58 341/636/69 336/632/64 +f 332/621/61 339/631/66 340/633/32 +f 327/634/57 331/645/59 338/635/67 +f 333/624/63 340/633/32 341/636/69 +f 338/635/67 345/646/76 342/637/70 +f 340/633/32 347/642/75 348/638/71 +f 337/628/65 336/632/64 343/639/72 +f 339/631/66 335/630/68 342/637/70 +f 341/636/69 348/638/71 343/639/72 +f 339/631/66 346/641/74 347/642/75 +f 345/647/76 353/655/34 350/648/28 +f 347/642/75 355/660/23 356/650/77 +f 343/651/72 351/659/27 352/652/31 +f 330/654/33 349/810/26 353/655/34 +f 342/649/70 350/648/28 354/656/78 +f 344/653/73 352/652/31 349/657/26 +f 348/638/71 356/650/77 351/659/27 +f 346/641/74 354/656/78 355/660/23 +f 428/661/79 435/673/87 434/662/35 +f 433/664/91 432/671/82 425/665/83 +f 430/667/84 429/670/93 421/668/85 +f 429/670/93 435/673/87 428/661/79 +f 434/662/35 433/664/91 426/666/81 +f 432/671/82 431/679/96 424/672/88 +f 435/673/87 442/677/89 441/674/94 +f 440/675/90 439/811/98 432/671/82 +f 437/676/92 436/812/102 429/670/93 +f 429/670/93 436/812/102 442/677/89 +f 434/662/35 441/674/94 440/675/90 +f 432/671/82 439/811/98 438/678/95 +f 439/682/98 440/675/90 448/683/99 +f 437/685/92 445/689/103 444/686/101 +f 437/685/92 423/813/97 443/688/32 +f 436/687/102 444/686/101 450/690/104 +f 441/674/94 449/695/106 448/683/99 +f 439/682/98 447/684/100 446/691/105 +f 438/692/95 446/691/105 443/693/32 +f 442/677/89 450/690/104 449/695/106 +f 444/696/101 451/705/111 457/697/107 +f 449/695/106 456/702/33 455/698/108 +f 446/699/105 447/703/100 454/700/109 +f 450/690/104 457/697/107 456/702/33 +f 447/703/100 448/683/99 455/698/108 +f 445/704/103 452/714/119 451/705/111 +f 454/700/109 455/698/108 462/706/112 +f 451/705/111 452/714/119 459/708/114 +f 451/705/111 458/709/115 464/710/116 +f 456/702/33 463/712/118 462/706/112 +f 454/700/109 461/707/113 460/711/117 +f 457/697/107 464/710/116 463/712/118 +f 458/716/115 459/724/114 467/717/58 +f 460/719/117 468/727/61 465/720/63 +f 458/716/115 466/718/62 472/722/60 +f 443/723/32 465/735/63 467/717/58 +f 463/712/118 471/728/33 470/725/59 +f 461/726/113 469/729/57 468/727/61 +f 464/710/116 472/722/60 471/728/33 +f 461/726/113 462/706/112 470/725/59 +f 466/730/62 474/739/64 479/731/65 +f 469/733/57 477/738/68 476/734/66 +f 465/735/63 473/746/32 475/736/69 +f 469/733/57 470/750/59 478/737/67 +f 466/730/62 467/717/58 475/736/69 +f 468/727/61 476/734/66 473/740/32 +f 474/739/64 475/736/69 482/741/71 +f 473/740/32 476/734/66 483/743/74 +f 474/739/64 481/742/72 486/745/73 +f 477/738/68 484/748/70 483/743/74 +f 473/746/32 480/761/75 482/741/71 +f 477/738/68 478/737/67 485/747/76 +f 471/751/33 487/757/106 493/752/99 +f 480/744/75 483/743/74 491/754/105 +f 486/756/73 494/759/104 487/757/106 +f 481/758/72 489/764/101 494/759/104 +f 484/760/70 492/763/100 491/754/105 +f 480/761/75 488/814/32 490/762/103 +f 484/760/70 485/753/76 493/752/99 +f 481/758/72 482/741/71 490/762/103 +f 489/765/101 496/774/111 501/766/107 +f 491/767/105 492/771/100 499/768/109 +f 487/757/106 494/759/104 501/766/107 +f 492/771/100 493/752/99 500/772/108 +f 489/765/101 490/783/103 497/773/119 +f 487/757/106 495/770/33 500/772/108 +f 495/770/33 502/778/118 507/775/112 +f 496/774/111 503/781/115 508/776/116 +f 499/768/109 506/779/113 505/777/117 +f 495/770/33 501/766/107 508/776/116 +f 499/768/109 500/772/108 507/775/112 +f 496/774/111 497/773/119 504/780/114 +f 505/785/117 513/795/123 509/786/25 +f 502/778/118 510/796/24 515/788/120 +f 488/789/32 509/815/25 512/790/121 +f 503/792/115 511/798/27 516/793/122 +f 506/794/113 514/797/28 513/795/123 +f 508/776/116 516/793/122 510/796/24 +f 506/794/113 507/775/112 515/788/120 +f 503/792/115 504/791/114 512/790/121 diff --git a/src/main/resources/assets/hbm/textures/models/machines/steamhammer.png b/src/main/resources/assets/hbm/textures/models/machines/steamhammer.png new file mode 100644 index 0000000000000000000000000000000000000000..ce0ae052e1ce70e45abd8cfddafdd752559148c8 GIT binary patch literal 1907 zcmV-(2aNcMP)KW^kU6voNG2XPTB25GnO9gM8209&|mZ7in91w>sSK#Yak zOtZzd$zt!Yh115^CO$y!pcER~BUV;$=8GJ+&%J+OXY(hBYCOJCar^&H zY#+OSh}_Lt?F!U}5*Q`W+WQA?;K2cFAaKAM2pq6x^Bx?8G2D)ga`kOoRu{+5<8uGd zR-+dJ2VQh<{Zg6w0+9D@2ptv$I2mrmphX)(_f`zP7e!7G!GRN-74co}AM)4H1u5`B z)V~U2ka(CCh4$3yB1{LZSQJEX;Dr_}WjoNw1gnC|nwZPx`n3g*MkZhl1P)jOfdkgS zg99fs*^tp=TfBHH*%J*SIPk*vfln(Bcr<5Jo?8{FNG_=3dsnI=D`lxzTX|#;ivpZ1 zeS)c%YXgA;C%zAOOls%9H4r%P!uOGVZA)SjEbzYZz8&4l`_8n6j@-W1L>O6?+JYwq z-nyVo%=#(_e$yaL2v`Gw1J-Q5k@-amIXuqW7`YR2>8Mku`;Xb4JNn$KyK!0VkDtfo zKGMT)Uf{!{81%`U`|X{ui&TrB`hCl20n6R=9CZs`gIfYD3MfK%D~9e?48!C2uT;5Y z1UJ)et!Gt`CTt6v_3&Np@8il3wkXuCCDt>=mMId38O&g_=p4_~Jsl9E@5%bomJQ|&*KRkuXV;>F& z=l*{=)D{1~H-Bf@@2m41IBrTRsJH&JNAOc`=G%p`r8h#r6x-i$X}4O6P|t6&d5Z$v zP~)DERwYqAd_BJj1P+=ewhaJ*gH^E9^Jf>h(VCt%Kp*CP+vzqcSH-|8i1qx4;Gk)O zJ-@Mx&Q^dm5IA5B1P)jOfdkg$&!U_pqR!V1l3n0S24OtirmNHqlQkdYcz&P7&X?eqj;S{-QooZq zvp?q_rSwb3Pft%l>z|*W7cFn=z=KDklxlXA0c+hp4#O6rw-E5)Nzg)4N;M&xiLgx} ze^t|!sozDPu3{BH1W!l{(Y%E^v_$y$;FZUFrpm89@K3F1ZWXp}P-@JGZT@aB^JCB~ zYyHl$z2$BCSL3Hd4l98Oo{5r?v_x64v#j|J*`|khTUt*Oc<_wmj^-tV9XrdKT3GJ$ z#SodIhrkPc`xwvy(n&D`A~c9u0QSZdHs+aOG@2KBU{FGOA6 z%?lj3iJfIl9l!LoCc@0JTraD)z91lQ&@{1afbj9bF~B@1NbF3@h~QuqENufo;Gk(@ z+W?yvI5H=%IXx%CU#enF;yIJVq*BAmJvViHYURfV+@LQCU=0KgSOb9r)}WC|bXwxx z2&ImH?bFF1f&K^^};9;fF@NcpEIJ0*(m zg@p(Xl29^|hm^JX2oBs(p83=RUkNF5ceo0@kPyKEYanpI8VDS)1_B4HfxrQ4AaKAM z2pq5md2rywmUq@qK$Vz2>ZHb5q56)b1`!;vX7dre*o3Obh!;9Cm5Cmys^nDRYX%X# z0698zZM~D2FPo3xIms=;XCI7cZUqrM6D1=oqPZRN%3u4un0@5vvZ16Njn*XhXt6W< zn>`-eaoFl-TmR9>-d$}9G4_!Yeh~R)V$b(06 zI2@WjKV+Vn@ZiI5^S%Gn-TeA$Z~5M`zWC-U9UdG2C-C6RiS@myBDHn>>yX-n1A#Ng zY7I651kRlPshfUrX|$;>m3#ZImhXSHZ2!}AvHN4ZVb~(Ix^NaR1knbhwuc7?tbxD* tYanpI8VDS)1_B4HfxrQ4AaKB%{{hic2yuHKt;hfX002ovPDHLkV1iK5jRgPz literal 0 HcmV?d00001 From 7ed32a6c7f99d8e4794d39c3a8d3b971e01a6a7e Mon Sep 17 00:00:00 2001 From: Vaern Date: Wed, 31 May 2023 20:08:36 -0700 Subject: [PATCH 030/109] a --- .../world/gen/component/BunkerComponents.java | 130 +++++++++++++++++- .../hbm/world/gen/component/Component.java | 18 ++- 2 files changed, 142 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/hbm/world/gen/component/BunkerComponents.java b/src/main/java/com/hbm/world/gen/component/BunkerComponents.java index 9937ac15f..2f14105b6 100644 --- a/src/main/java/com/hbm/world/gen/component/BunkerComponents.java +++ b/src/main/java/com/hbm/world/gen/component/BunkerComponents.java @@ -31,9 +31,10 @@ public class BunkerComponents { Weight[] weights = new Weight[] { new Weight(6, 3, Corridor::findValidPlacement), - new Weight(7, 4, BedroomL::findValidPlacement), + new Weight(5, 4, BedroomL::findValidPlacement), new Weight(10, 3, FunJunction::findValidPlacement), new Weight(5, 2, BathroomL::findValidPlacement), + new Weight(7, 2, Laboratory::findValidPlacement), }; StructureComponent starter = new StartingHub(rand, x, z); @@ -51,6 +52,7 @@ public class BunkerComponents { MapGenStructureIO.func_143031_a(BedroomL.class, "NTMBBedroomL"); MapGenStructureIO.func_143031_a(FunJunction.class, "NTMBFunJunction"); MapGenStructureIO.func_143031_a(BathroomL.class, "NTMBBathroomL"); + MapGenStructureIO.func_143031_a(Laboratory.class, "NTMBLaboratory"); //TODO more rooms for more variety } @@ -569,7 +571,6 @@ public class BunkerComponents { placeBlockAtCurrentPosition(world, Blocks.stone_button, 1, 7, 2, 9, box); //stalls w/ toilets for(int i = 1; i <= 5; i += 2) { - placeBlockAtCurrentPosition(world, ModBlocks.door_metal, 0, 5, 1, i, box); placeDoor(world, box, ModBlocks.door_metal, 0, false, rand.nextBoolean(), 5, 1, i); fillWithMetadataBlocks(world, box, 5, 1, i + 1, 5, 2, i + 1, ModBlocks.steel_corner, getDecoMeta(2)); fillWithMetadataBlocks(world, box, 6, 1, i + 1, 7, 2, i + 1, ModBlocks.steel_wall, getDecoMeta(2)); @@ -589,4 +590,129 @@ public class BunkerComponents { return box.minY > 10 && StructureComponent.findIntersecting(components, box) == null ? new BathroomL(type, box, coordMode) : null; } } + + public static class Laboratory extends Component implements ProceduralComponent { + + private boolean[] paths = new boolean[2]; + + public Laboratory() { } + + public Laboratory(int componentType, StructureBoundingBox box, int coordMode) { + super(componentType); + this.boundingBox = box; + this.coordBaseMode = coordMode; + } + + /** write to nbt */ + @Override + protected void func_143012_a(NBTTagCompound nbt) { + super.func_143012_a(nbt); + for(int i = 0; i < paths.length; i++) + nbt.setBoolean("p" + i, paths[i]); + } + + /** read from nbt */ + @Override + protected void func_143011_b(NBTTagCompound nbt) { + super.func_143011_b(nbt); + for(int i = 0; i < paths.length; i++) + paths[i] = nbt.getBoolean("p" + i); + } + + @Override + public void buildComponent(ProceduralStructureStart start, Random rand) { + paths[0] = this.getNextComponentWest(start, this, coordBaseMode, rand, 3, 1) != null; + paths[1] = this.getNextComponentNormal(start, this, coordBaseMode, rand, 6, 1) != null; + } + + @Override + public boolean addComponentParts(World world, Random rand, StructureBoundingBox box) { + + fillWithAir(world, box, 1, 1, 1, 7, 3, 11); + //floor + fillWithMetadataBlocks(world, box, 1, 0, 1, 7, 0, 11, ModBlocks.vinyl_tile, 1); + //ceiling + fillWithBlocks(world, box, 1, 4, 1, 7, 4, 11, ModBlocks.vinyl_tile); + //upper shield + fillWithBlocks(world, box, 0, 5, 0, 8, 5, 12, ModBlocks.reinforced_stone); + //walls + fillWithBlocks(world, box, 0, 0, 0, 0, 4, 12, ModBlocks.brick_concrete); + fillWithBlocks(world, box, 1, 0, 12, 7, 4, 12, ModBlocks.brick_concrete); + fillWithBlocks(world, box, 8, 0, 0, 8, 4, 12, ModBlocks.brick_concrete); + fillWithBlocks(world, box, 1, 0, 0, 7, 4, 0, ModBlocks.brick_concrete); + + /* DECO */ + //lamps + for(int x = 3; x <= 5; x += 2) { + for(int z = 3; z <= 9; z += 3) { + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, x, 5, z, box); + placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, x, 4, z, box); + } + } + //couch w/ table + final int stairMetaW = getStairMeta(0); + final int stairMetaE = getStairMeta(1); + final int stairMetaN = getStairMeta(2); + final int stairMetaS = getStairMeta(3); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaE, 1, 1, 1, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaS, 2, 1, 1, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaW, 3, 1, 1, box); + placeBlockAtCurrentPosition(world, Blocks.fence, 0, 4, 1, 1, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_pressure_plate, 0, 4, 2, 1, box); + //big ole wall machine + final int decoMetaE = getDecoMeta(4); + final int decoMetaW = getDecoMeta(5); + final int decoModelMetaW = getDecoModelMeta(2); + final int decoModelMetaE = getDecoModelMeta(3); + fillWithBlocks(world, box, 1, 1, 5, 1, 3, 5, ModBlocks.deco_tungsten); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 1, 1, 6, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, decoModelMetaE, 1, 2, 6, box); + placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, decoMetaW, 1, 3, 6, box); + fillWithMetadataBlocks(world, box, 1, 1, 7, 1, 3, 7, ModBlocks.tape_recorder, decoMetaW); + fillWithBlocks(world, box, 1, 1, 8, 1, 3, 8, ModBlocks.deco_tungsten); + fillWithMetadataBlocks(world, box, 1, 1, 9, 1, 1, 10, ModBlocks.tape_recorder, decoMetaW); + fillWithMetadataBlocks(world, box, 1, 2, 9, 1, 2, 10, ModBlocks.concrete_smooth_stairs, stairMetaE | 4); + fillWithMetadataBlocks(world, box, 1, 3, 9, 1, 3, 10, ModBlocks.tape_recorder, decoMetaW); + fillWithBlocks(world, box, 1, 1, 11, 1, 3, 11, ModBlocks.deco_tungsten); + //desks w/ computers + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(2), 3, 1, 4, HbmChestContents.antenna, 4); //wip + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | 4, 3, 1, 5, box); + fillWithMetadataBlocks(world, box, 4, 1, 5, 4, 1, 7, ModBlocks.concrete_smooth_stairs, stairMetaW | 4); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaN, 3, 1, 7, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | 4, 3, 1, 9, box); + fillWithMetadataBlocks(world, box, 4, 1, 9, 4, 1, 11, ModBlocks.concrete_smooth_stairs, 4); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaN, 3, 1, 11, box); + placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 3, 2, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, decoModelMetaW, 4, 2, 6, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, decoModelMetaW, 4, 2, 10, box); + //lever wall machine + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaW | 4, 7, 1, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_red_copper, 0, 7, 2, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaW, 7, 3, 3, box); + placeBlockAtCurrentPosition(world, Blocks.lever, 2, 6, 2, 3, box); //TODO lever meta + fillWithMetadataBlocks(world, box, 7, 1, 4, 7, 2, 4, ModBlocks.steel_poles, decoMetaE); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 7, 3, 4, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_tungsten, 0, 7, 1, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, decoMetaE, 7, 1, 6, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_tungsten, 0, 7, 1, 7, box); + fillWithMetadataBlocks(world, box, 7, 2, 5, 7, 2, 7, ModBlocks.concrete_smooth_stairs, stairMetaW | 4); + fillWithMetadataBlocks(world, box, 7, 3, 5, 7, 3, 7, ModBlocks.tape_recorder, decoMetaE); + //table w/ chest + placeBlockAtCurrentPosition(world, Blocks.fence, 0, 7, 1, 9, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_pressure_plate, 0, 7, 2, 9, box); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 7, 1, 10, HbmChestContents.antenna, 4); //wip + //doors + placeDoor(world, box, ModBlocks.door_bunker, 1, true, rand.nextBoolean(), 5, 1, 0); + placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 6, 1, 0); + if(paths[0]) fillWithAir(world, box, 0, 1, 2, 0, 2, 3); + if(paths[1]) fillWithAir(world, box, 5, 1, 12, 6, 2, 12); + + return true; + } + + public static StructureComponent findValidPlacement(List components, Random rand, int x, int y, int z, int coordMode, int type) { + StructureBoundingBox box = ProceduralStructureStart.getComponentToAddBoundingBox(x, y, z, -6, -1, 0, 9, 6, 12, coordMode); + return box.minY > 10 && StructureComponent.findIntersecting(components, box) == null ? new Laboratory(type, box, coordMode) : null; + } + } } diff --git a/src/main/java/com/hbm/world/gen/component/Component.java b/src/main/java/com/hbm/world/gen/component/Component.java index effd0c592..eb42dc9b7 100644 --- a/src/main/java/com/hbm/world/gen/component/Component.java +++ b/src/main/java/com/hbm/world/gen/component/Component.java @@ -261,13 +261,13 @@ abstract public class Component extends StructureComponent { if(!box.isVecInside(posX, posY, posZ)) return; switch(this.coordBaseMode) { - default: + default: //South break; - case 1: + case 1: //West dirMeta = (dirMeta + 1) % 4; break; - case 2: + case 2: //North dirMeta ^= 2; break; //Flip second bit - case 3: + case 3: //East dirMeta = (dirMeta - 1) % 4; break; } @@ -281,6 +281,16 @@ abstract public class Component extends StructureComponent { } } + protected void placeLever(World world, StructureBoundingBox box, int dirMeta, boolean on, int featureX, int featureY, int featureZ) { + int posX = this.getXWithOffset(featureX, featureZ); + int posY = this.getYWithOffset(featureY); + int posZ = this.getZWithOffset(featureX, featureZ); + + if(!box.isVecInside(posX, posY, posZ)) return; + + //levers suck ass + } + /**N:0 W:1 S:2 E:3 */ protected void placeBed(World world, StructureBoundingBox box, int meta, int featureX, int featureY, int featureZ) { int xOffset = 0; From de10c15ea6e9d546b2fc73c6d03cae9a9e214218 Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 1 Jun 2023 16:19:33 +0200 Subject: [PATCH 031/109] more rail logic, straight standard gauge model --- src/main/java/com/hbm/blocks/ModBlocks.java | 4 + .../java/com/hbm/blocks/rail/IRailNTM.java | 20 +- .../com/hbm/blocks/rail/RailNarrowCurve.java | 2 +- .../hbm/blocks/rail/RailNarrowStraight.java | 2 +- .../hbm/blocks/rail/RailStandardBuffer.java | 57 ++ .../hbm/blocks/rail/RailStandardCurve.java | 2 +- .../hbm/blocks/rail/RailStandardStraight.java | 7 +- .../hbm/entity/train/EntityRailCarBase.java | 43 +- .../com/hbm/entity/train/TrainCargoTram.java | 4 +- .../entity/train/TrainCargoTramTrailer.java | 4 +- src/main/java/com/hbm/items/ModItems.java | 3 + .../java/com/hbm/items/special/ItemTrain.java | 8 +- src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/CraftingManager.java | 1 + .../java/com/hbm/main/ResourceManager.java | 1 + .../block/RenderStandardStraightRail.java | 65 ++ src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + .../hbm/models/blocks/rail_standard.obj | 698 ++++++++++++++++++ .../hbm/textures/items/motor_bismuth.png | Bin 0 -> 537 bytes 20 files changed, 897 insertions(+), 27 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java create mode 100644 src/main/java/com/hbm/render/block/RenderStandardStraightRail.java create mode 100644 src/main/resources/assets/hbm/models/blocks/rail_standard.obj create mode 100644 src/main/resources/assets/hbm/textures/items/motor_bismuth.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index c006878ad..a4d55f383 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -13,6 +13,7 @@ import com.hbm.blocks.machine.rbmk.*; import com.hbm.blocks.network.*; import com.hbm.blocks.rail.RailNarrowCurve; import com.hbm.blocks.rail.RailNarrowStraight; +import com.hbm.blocks.rail.RailStandardBuffer; import com.hbm.blocks.rail.RailStandardCurve; import com.hbm.blocks.rail.RailStandardStraight; import com.hbm.blocks.siege.*; @@ -1100,6 +1101,7 @@ public class ModBlocks { public static Block rail_narrow_curve; public static Block rail_large_straight; public static Block rail_large_curve; + public static Block rail_large_buffer; public static Block statue_elb; public static Block statue_elb_g; @@ -2129,6 +2131,7 @@ public class ModBlocks { rail_narrow_curve = new RailNarrowCurve().setBlockName("rail_narrow_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_narrow_neo"); rail_large_straight = new RailStandardStraight().setBlockName("rail_large_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":block_steel"); rail_large_curve = new RailStandardCurve().setBlockName("rail_large_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":block_steel"); + rail_large_buffer = new RailStandardBuffer().setBlockName("rail_large_buffer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":block_steel"); crate = new BlockCrate(Material.wood).setBlockName("crate").setStepSound(Block.soundTypeWood).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate"); crate_weapon = new BlockCrate(Material.wood).setBlockName("crate_weapon").setStepSound(Block.soundTypeWood).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate_weapon"); @@ -3359,6 +3362,7 @@ public class ModBlocks { register(rail_narrow_curve); register(rail_large_straight); register(rail_large_curve); + register(rail_large_buffer); //Crate GameRegistry.registerBlock(crate, crate.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/rail/IRailNTM.java b/src/main/java/com/hbm/blocks/rail/IRailNTM.java index 4fd66886a..782dc15e6 100644 --- a/src/main/java/com/hbm/blocks/rail/IRailNTM.java +++ b/src/main/java/com/hbm/blocks/rail/IRailNTM.java @@ -19,7 +19,7 @@ public interface IRailNTM { * Motion ends up being *-1 if the train is going in reverse, still pointing forwards despite the speed being negative. * Also features a double[] wrapper with size 1 which holds the speed value that overshoots the rail. * */ - public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info); + public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info, MoveContext context); /** Returns that rail's gauge. Trains will derail if the gauge does not match. */ public TrackGauge getGauge(World world, int x, int y, int z); @@ -41,4 +41,22 @@ public interface IRailNTM { public RailContext dist(double d) { this.overshoot = d; return this; } public RailContext pos(BlockPos d) { this.pos = d; return this; } } + + /** A wrapper for additional information like stopping on rails and what type of check we're doing */ + public static class MoveContext { + public RailCheckType type; + public boolean collision = false; //if a buffer stop or similar applies + public double overshoot; //how much of the travel distance was cut shor + + public MoveContext(RailCheckType type) { + this.type = type; + } + } + + public static enum RailCheckType { + CORE, + FRONT, + BACK, + OTHER + } } diff --git a/src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java b/src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java index 1fc4c01ae..ac317b65d 100644 --- a/src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java +++ b/src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java @@ -38,7 +38,7 @@ public class RailNarrowCurve extends BlockDummyable implements IRailNTM { } @Override - public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info) { + public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info, MoveContext context) { return snapAndMove(world, x, y, z, trainX, trainY, trainZ, motionX, motionY, motionZ, speed, info); } diff --git a/src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java b/src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java index 4d51dfe07..624087974 100644 --- a/src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java +++ b/src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java @@ -59,7 +59,7 @@ public class RailNarrowStraight extends BlockDummyable implements IRailNTM { } @Override - public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info) { + public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info, MoveContext context) { return snapAndMove(world, x, y, z, trainX, trainY, trainZ, motionX, motionY, motionZ, speed, info); } diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java b/src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java new file mode 100644 index 000000000..52bee4310 --- /dev/null +++ b/src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java @@ -0,0 +1,57 @@ +package com.hbm.blocks.rail; + +import com.hbm.blocks.BlockDummyable; + +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Vec3; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class RailStandardBuffer extends BlockDummyable implements IRailNTM { + + public RailStandardBuffer() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return null; + } + + @Override + public int getRenderType() { + return 0; + } + + @Override + public int[] getDimensions() { + return new int[] {0, 0, 2, 2, 1, 0}; + } + + @Override + public int getOffset() { + return 2; + } + + @Override + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { + this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); + } + + // TBI + @Override + public Vec3 getSnappingPos(World world, int x, int y, int z, double trainX, double trainY, double trainZ) { + return null; + } + + @Override + public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info, MoveContext context) { + return null; + } + + @Override + public TrackGauge getGauge(World world, int x, int y, int z) { + return TrackGauge.STANDARD; + } +} diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java b/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java index 7028571ce..712b395bf 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java @@ -35,7 +35,7 @@ public class RailStandardCurve extends BlockDummyable implements IRailNTM { } @Override - public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info) { + public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info, MoveContext context) { return snapAndMove(world, x, y, z, trainX, trainY, trainZ, motionX, motionY, motionZ, speed, info); } diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java b/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java index 903e01e1b..72c4be7b5 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java @@ -4,6 +4,7 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.lib.Library; import com.hbm.util.fauxpointtwelve.BlockPos; +import cpw.mods.fml.client.registry.RenderingRegistry; import net.minecraft.block.material.Material; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; @@ -24,9 +25,11 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM { return null; } + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + @Override public int getRenderType() { - return 0; + return renderID; } @Override @@ -56,7 +59,7 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM { } @Override - public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info) { + public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info, MoveContext context) { return snapAndMove(world, x, y, z, trainX, trainY, trainZ, motionX, motionY, motionZ, speed, info); } diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index bfab8bcc1..885532850 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -7,6 +7,8 @@ import java.util.Set; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.rail.IRailNTM; +import com.hbm.blocks.rail.IRailNTM.MoveContext; +import com.hbm.blocks.rail.IRailNTM.RailCheckType; import com.hbm.blocks.rail.IRailNTM.RailContext; import com.hbm.blocks.rail.IRailNTM.TrackGauge; import com.hbm.items.ModItems; @@ -18,7 +20,6 @@ import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.DamageSource; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; @@ -152,8 +153,8 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { } BlockPos anchor = this.getCurentAnchorPos(); - Vec3 frontPos = getRelPosAlongRail(anchor, this.getLengthSpan()); - Vec3 backPos = getRelPosAlongRail(anchor, -this.getLengthSpan()); + Vec3 frontPos = getRelPosAlongRail(anchor, this.getLengthSpan(), new MoveContext(RailCheckType.FRONT)); + Vec3 backPos = getRelPosAlongRail(anchor, -this.getLengthSpan(), new MoveContext(RailCheckType.BACK)); this.lastRenderX = this.renderX; this.lastRenderY = this.renderY; @@ -215,11 +216,11 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { } } - public Vec3 getRelPosAlongRail(BlockPos anchor, double distanceToCover) { - return getRelPosAlongRail(anchor, distanceToCover, this.getGauge(), this.worldObj, Vec3.createVectorHelper(posX, posY, posZ), this.rotationYaw); + public Vec3 getRelPosAlongRail(BlockPos anchor, double distanceToCover, MoveContext context) { + return getRelPosAlongRail(anchor, distanceToCover, this.getGauge(), this.worldObj, Vec3.createVectorHelper(posX, posY, posZ), this.rotationYaw, context); } - public static Vec3 getRelPosAlongRail(BlockPos anchor, double distanceToCover, TrackGauge gauge, World worldObj, Vec3 next, float yaw) { + public static Vec3 getRelPosAlongRail(BlockPos anchor, double distanceToCover, TrackGauge gauge, World worldObj, Vec3 next, float yaw, MoveContext context) { if(distanceToCover < 0) { distanceToCover *= -1; @@ -248,7 +249,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { IRailNTM rail = (IRailNTM) block; if(it == 1) { - next = rail.getTravelLocation(worldObj, x, y, z, next.xCoord, next.yCoord, next.zCoord, rot.xCoord, rot.yCoord, rot.zCoord, 0, new RailContext()); + next = rail.getTravelLocation(worldObj, x, y, z, next.xCoord, next.yCoord, next.zCoord, rot.xCoord, rot.yCoord, rot.zCoord, 0, new RailContext(), context); } boolean flip = distanceToCover < 0; @@ -256,7 +257,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { if(rail.getGauge(worldObj, x, y, z) == gauge) { RailContext info = new RailContext(); Vec3 prev = next; - next = rail.getTravelLocation(worldObj, x, y, z, prev.xCoord, prev.yCoord, prev.zCoord, rot.xCoord, rot.yCoord, rot.zCoord, distanceToCover, info); + next = rail.getTravelLocation(worldObj, x, y, z, prev.xCoord, prev.yCoord, prev.zCoord, rot.xCoord, rot.yCoord, rot.zCoord, distanceToCover, info, context); distanceToCover = info.overshoot; anchor = info.pos; @@ -292,6 +293,18 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { } } + //TODO: rethink this entire concept + /* + * first, figure out which train is the "front" when moving + * if the train is not in motion, reuse the contract ("combine") function we have now + * move the first wagon until either it finishes or bumps into a buffer + * if it derails, continue using the velocity + * then take the second wagon and move it towards the first wagon's collision point, assuming it didn't derail + * continue with all further wagons + * + * step 3 may also do collision checks for other trains, which is good because that's an issue we would have to solve sooner or later + */ + /* Move carts together with links */ for(LogicalTrainUnit ltu : ltus) ltu.combineWagons(); @@ -306,10 +319,12 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { public abstract TrackGauge getGauge(); /** Returns the length between the core and one of the bogies */ public abstract double getLengthSpan(); + /** Returns the length between the core and the collision points */ + public abstract double getCollisionSpan(); /** Returns a collision box, usually smaller than the entity's AABB for rendering, which is used for colliding trains */ - public AxisAlignedBB getCollisionBox() { + /*public AxisAlignedBB getCollisionBox() { return this.boundingBox; - } + }*/ /** Returns a collision box used for block collisions when derailed */ /*@Override public AxisAlignedBB getBoundingBox() { return this.boundingBox; @@ -555,7 +570,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { BlockPos anchor = new BlockPos(next.posX, next.posY, next.posZ); Vec3 trainPos = Vec3.createVectorHelper(next.posX, next.posY, next.posZ); float yaw = EntityRailCarBase.generateYaw(prevLoc, nextLoc); - Vec3 newPos = EntityRailCarBase.getRelPosAlongRail(anchor, len, next.getGauge(), next.worldObj, trainPos, yaw); + Vec3 newPos = EntityRailCarBase.getRelPosAlongRail(anchor, len, next.getGauge(), next.worldObj, trainPos, yaw, new MoveContext(RailCheckType.CORE)); next.setPosition(newPos.xCoord, newPos.yCoord, newPos.zCoord); } @@ -589,7 +604,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { for(EntityRailCarBase train : this.trains) { BlockPos anchor = train.getCurentAnchorPos(); - Vec3 corePos = train.getRelPosAlongRail(anchor, totalSpeed); + Vec3 corePos = train.getRelPosAlongRail(anchor, totalSpeed, new MoveContext(RailCheckType.CORE)); if(corePos == null) { train.derail(); @@ -598,8 +613,8 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { } else { train.setPosition(corePos.xCoord, corePos.yCoord, corePos.zCoord); anchor = train.getCurentAnchorPos(); //reset origin to new position - Vec3 frontPos = train.getRelPosAlongRail(anchor, train.getLengthSpan()); - Vec3 backPos = train.getRelPosAlongRail(anchor, -train.getLengthSpan()); + Vec3 frontPos = train.getRelPosAlongRail(anchor, train.getLengthSpan(), new MoveContext(RailCheckType.FRONT)); + Vec3 backPos = train.getRelPosAlongRail(anchor, -train.getLengthSpan(), new MoveContext(RailCheckType.BACK)); if(frontPos == null || backPos == null) { train.derail(); diff --git a/src/main/java/com/hbm/entity/train/TrainCargoTram.java b/src/main/java/com/hbm/entity/train/TrainCargoTram.java index af8bbe587..3b64d7679 100644 --- a/src/main/java/com/hbm/entity/train/TrainCargoTram.java +++ b/src/main/java/com/hbm/entity/train/TrainCargoTram.java @@ -18,7 +18,6 @@ import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; -import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.DamageSource; import net.minecraft.util.ResourceLocation; import net.minecraft.util.Vec3; @@ -52,11 +51,12 @@ public class TrainCargoTram extends EntityRailCarElectric implements IGUIProvide @Override public TrackGauge getGauge() { return TrackGauge.STANDARD; } @Override public double getLengthSpan() { return 1.5; } + @Override public double getCollisionSpan() { return 2.5; } @Override public Vec3 getRiderSeatPosition() { return Vec3.createVectorHelper(0.375, 2.375, 0.5); } @Override public boolean shouldRiderSit() { return false; } @Override public int getSizeInventory() { return 29; } @Override public String getInventoryName() { return this.hasCustomInventoryName() ? this.getEntityName() : "container.trainTram"; } - @Override public AxisAlignedBB getCollisionBox() { return AxisAlignedBB.getBoundingBox(renderX, renderY, renderZ, renderX, renderY + 1, renderZ).expand(4, 0, 4); } + //@Override public AxisAlignedBB getCollisionBox() { return AxisAlignedBB.getBoundingBox(renderX, renderY, renderZ, renderX, renderY + 1, renderZ).expand(4, 0, 4); } @Override public double getCouplingDist(TrainCoupling coupling) { return coupling != null ? 2.75 : 0; } @Override public int getMaxPower() { return this.getPowerConsumption() * 100; } diff --git a/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java b/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java index 05d465476..ffeea5245 100644 --- a/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java +++ b/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java @@ -19,7 +19,6 @@ import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; -import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.DamageSource; import net.minecraft.util.ResourceLocation; import net.minecraft.util.Vec3; @@ -46,9 +45,10 @@ public class TrainCargoTramTrailer extends EntityRailCarCargo implements IGUIPro @Override public double getMaxRailSpeed() { return 1; } @Override public TrackGauge getGauge() { return TrackGauge.STANDARD; } @Override public double getLengthSpan() { return 1.5; } + @Override public double getCollisionSpan() { return 2.5; } @Override public int getSizeInventory() { return 45; } @Override public String getInventoryName() { return this.hasCustomInventoryName() ? this.getEntityName() : "container.trainTramTrailer"; } - @Override public AxisAlignedBB getCollisionBox() { return AxisAlignedBB.getBoundingBox(renderX, renderY, renderZ, renderX, renderY + 1, renderZ).expand(4, 0, 4); } + //@Override public AxisAlignedBB getCollisionBox() { return AxisAlignedBB.getBoundingBox(renderX, renderY, renderZ, renderX, renderY + 1, renderZ).expand(4, 0, 4); } @Override public double getCouplingDist(TrainCoupling coupling) { return coupling != null ? 2.75 : 0; } @Override public double getCurrentSpeed() { return 0; } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 791bcf915..317ecb9e8 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -552,6 +552,7 @@ public class ModItems { public static Item tank_steel; public static Item motor; public static Item motor_desh; + public static Item motor_bismuth; public static Item centrifuge_element; //public static Item centrifuge_tower; public static Item reactor_core; @@ -2928,6 +2929,7 @@ public class ModItems { tank_steel = new Item().setUnlocalizedName("tank_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":tank_steel"); motor = new Item().setUnlocalizedName("motor").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":motor"); motor_desh = new Item().setUnlocalizedName("motor_desh").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":motor_desh"); + motor_bismuth = new Item().setUnlocalizedName("motor_bismuth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":motor_bismuth"); centrifuge_element = new Item().setUnlocalizedName("centrifuge_element").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":centrifuge_element"); //centrifuge_tower = new Item().setUnlocalizedName("centrifuge_tower").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":centrifuge_tower"); reactor_core = new Item().setUnlocalizedName("reactor_core").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":reactor_core"); @@ -5985,6 +5987,7 @@ public class ModItems { GameRegistry.registerItem(tank_steel, tank_steel.getUnlocalizedName()); GameRegistry.registerItem(motor, motor.getUnlocalizedName()); GameRegistry.registerItem(motor_desh, motor_desh.getUnlocalizedName()); + GameRegistry.registerItem(motor_bismuth, motor_bismuth.getUnlocalizedName()); GameRegistry.registerItem(centrifuge_element, centrifuge_element.getUnlocalizedName()); //GameRegistry.registerItem(centrifuge_tower, centrifuge_tower.getUnlocalizedName()); //GameRegistry.registerItem(magnet_dee, magnet_dee.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/special/ItemTrain.java b/src/main/java/com/hbm/items/special/ItemTrain.java index d8353bcd2..62695488a 100644 --- a/src/main/java/com/hbm/items/special/ItemTrain.java +++ b/src/main/java/com/hbm/items/special/ItemTrain.java @@ -3,6 +3,8 @@ package com.hbm.items.special; import java.util.List; import com.hbm.blocks.rail.IRailNTM; +import com.hbm.blocks.rail.IRailNTM.MoveContext; +import com.hbm.blocks.rail.IRailNTM.RailCheckType; import com.hbm.entity.train.EntityRailCarBase; import com.hbm.entity.train.TrainCargoTram; import com.hbm.entity.train.TrainCargoTramTrailer; @@ -78,10 +80,10 @@ public class ItemTrain extends ItemEnumMulti { train.setPosition(x + fx, y + fy, z + fz); BlockPos anchor = train.getCurentAnchorPos(); train.rotationYaw = entity.rotationYaw; - Vec3 corePos = train.getRelPosAlongRail(anchor, 0); + Vec3 corePos = train.getRelPosAlongRail(anchor, 0, new MoveContext(RailCheckType.CORE)); train.setPosition(corePos.xCoord, corePos.yCoord, corePos.zCoord); - Vec3 frontPos = train.getRelPosAlongRail(anchor, train.getLengthSpan()); - Vec3 backPos = train.getRelPosAlongRail(anchor, -train.getLengthSpan()); + Vec3 frontPos = train.getRelPosAlongRail(anchor, train.getLengthSpan(), new MoveContext(RailCheckType.FRONT)); + Vec3 backPos = train.getRelPosAlongRail(anchor, -train.getLengthSpan(), new MoveContext(RailCheckType.BACK)); train.rotationYaw = train.generateYaw(frontPos, backPos); world.spawnEntityInWorld(train); } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index a757432e5..bd9794aed 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -786,6 +786,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerBlockHandler(new RenderNarrowStraightRail()); RenderingRegistry.registerBlockHandler(new RenderNarrowCurveRail()); + RenderingRegistry.registerBlockHandler(new RenderStandardStraightRail()); RenderingRegistry.registerBlockHandler(new RenderBlockRotated(ModBlocks.charge_dynamite.getRenderType(), ResourceManager.charge_dynamite)); RenderingRegistry.registerBlockHandler(new RenderBlockRotated(ModBlocks.charge_c4.getRenderType(), ResourceManager.charge_c4)); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 1b8d0b48a..3fb520d1a 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -189,6 +189,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.motor, 2), new Object[] { " R ", "ICI", "ITI", 'R', ModItems.wire_red_copper, 'T', ModItems.coil_copper_torus, 'I', IRON.plate(), 'C', ModItems.coil_copper }); addRecipeAuto(new ItemStack(ModItems.motor, 2), new Object[] { " R ", "ICI", " T ", 'R', ModItems.wire_red_copper, 'T', ModItems.coil_copper_torus, 'I', STEEL.plate(), 'C', ModItems.coil_copper }); addRecipeAuto(new ItemStack(ModItems.motor_desh, 1), new Object[] { "PCP", "DMD", "PCP", 'P', ANY_PLASTIC.ingot(), 'C', ModItems.coil_gold_torus, 'D', DESH.ingot(), 'M', ModItems.motor }); + addRecipeAuto(new ItemStack(ModItems.motor_bismuth, 1), new Object[] { "BCB", "SBS", "BCB", 'B', BI.nugget(), 'C', ModBlocks.hadron_coil_alloy, 'S', STEEL.plateCast(), 'B', DURA.ingot() }); //addRecipeAuto(new ItemStack(ModItems.centrifuge_element, 1), new Object[] { " T ", "WTW", "RMR", 'R', ModItems.wire_red_copper, 'T', ModItems.tank_steel, 'M', ModItems.motor, 'W', ModItems.coil_tungsten }); //addRecipeAuto(new ItemStack(ModItems.centrifuge_tower, 1), new Object[] { "LL", "EE", "EE", 'E', ModItems.centrifuge_element, 'L', KEY_BLUE }); //addRecipeAuto(new ItemStack(ModItems.reactor_core, 1), new Object[] { "LNL", "N N", "LNL", 'N', getReflector(), 'L', PB.plate() }); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 30f1e2c2e..44716fec9 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1331,6 +1331,7 @@ public class ResourceManager { public static final IModelCustom splitter = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/splitter.obj")); public static final IModelCustom rail_narrow_straight = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_narrow.obj")); public static final IModelCustom rail_narrow_curve = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_narrow_bend.obj")); + public static final IModelCustom rail_standard_straight = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard.obj")); public static final IModelCustom charge_dynamite = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/charge_dynamite.obj")); public static final IModelCustom charge_c4 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/charge_c4.obj")); diff --git a/src/main/java/com/hbm/render/block/RenderStandardStraightRail.java b/src/main/java/com/hbm/render/block/RenderStandardStraightRail.java new file mode 100644 index 000000000..1343795ca --- /dev/null +++ b/src/main/java/com/hbm/render/block/RenderStandardStraightRail.java @@ -0,0 +1,65 @@ +package com.hbm.render.block; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.rail.RailStandardStraight; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.client.model.obj.WavefrontObject; + +public class RenderStandardStraightRail implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + + GL11.glPushMatrix(); + Tessellator tessellator = Tessellator.instance; + + GL11.glTranslated(0, -0.0625, 0); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_straight, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + + GL11.glPopMatrix(); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + + int meta = world.getBlockMetadata(x, y, z); + if(meta < 12) return true; + + Tessellator tessellator = Tessellator.instance; + + tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); + tessellator.setColorOpaque_F(1, 1, 1); + + float rotation = 0; + + if(meta == 12) rotation = 90F / 180F * (float) Math.PI; + if(meta == 14) rotation = 180F / 180F * (float) Math.PI; + if(meta == 13) rotation = 270F / 180F * (float) Math.PI; + + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_straight, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return RailStandardStraight.renderID; + } +} diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index f17622a7a..7a5a8049b 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -2242,6 +2242,7 @@ item.mold_base.name=Blanke Gussform item.mold.name=Gussform item.morning_glory.name=Zaunwinde item.motor.name=Motor +item.motor_bismuth.name=Bismuth-Motor item.motor_desh.name=Desh-Motor item.mp_c_1.name=Stufe 1 Zielsucher-Schaltkreis item.mp_c_2.name=Stufe 2 Zielsucher-Schaltkreis diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 5091ddb4b..94cfb0809 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -2913,6 +2913,7 @@ item.mold_base.name=Blank Foundry Mold item.mold.name=Foundry Mold item.morning_glory.name=Morning Glory item.motor.name=Motor +item.motor_bismuth.name=Bismuth Motor item.motor_desh.name=Desh Motor item.mp_c_1.name=Tier 1 Missile Targeting Circuit item.mp_c_2.name=Tier 2 Missile Targeting Circuit diff --git a/src/main/resources/assets/hbm/models/blocks/rail_standard.obj b/src/main/resources/assets/hbm/models/blocks/rail_standard.obj new file mode 100644 index 000000000..292011e56 --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/rail_standard.obj @@ -0,0 +1,698 @@ +# Blender v2.79 (sub 0) OBJ File: 'rail_standard.blend' +# www.blender.org +o Plane +v 0.750000 0.062500 2.500000 +v 0.750000 0.062500 -2.500000 +v -0.750000 0.062500 2.500000 +v -0.750000 0.062500 -2.500000 +v 0.750000 0.187500 2.500000 +v 0.750000 0.187500 -2.500000 +v -0.750000 0.187500 2.500000 +v -0.750000 0.187500 -2.500000 +v 0.812500 0.062500 2.500000 +v 0.812500 0.062500 -2.500000 +v 0.812500 0.187500 2.500000 +v 0.812500 0.187500 -2.500000 +v -0.812500 0.062500 2.500000 +v -0.812500 0.062500 -2.500000 +v -0.812500 0.187500 2.500000 +v -0.812500 0.187500 -2.500000 +v -1.000000 0.000000 -0.250000 +v 1.000000 0.000000 -0.250000 +v -1.000000 0.000000 0.250000 +v 1.000000 0.000000 0.250000 +v 1.000000 0.062500 -0.250000 +v -1.000000 0.062500 -0.250000 +v 1.000000 0.062500 0.250000 +v -1.000000 0.062500 0.250000 +v -1.000000 0.000000 2.250000 +v 1.000000 0.000000 2.250000 +v -1.000000 0.000000 2.500000 +v 1.000000 0.000000 2.500000 +v 1.000000 0.062500 2.250000 +v -1.000000 0.062500 2.250000 +v 1.000000 0.062500 2.500000 +v -1.000000 0.062500 2.500000 +v -1.000000 0.000000 1.000000 +v 1.000000 0.000000 1.000000 +v -1.000000 0.000000 1.500000 +v 1.000000 0.000000 1.500000 +v 1.000000 0.062500 1.000000 +v -1.000000 0.062500 1.000000 +v 1.000000 0.062500 1.500000 +v -1.000000 0.062500 1.500000 +v -1.000000 0.000000 -2.500000 +v 1.000000 0.000000 -2.500000 +v -1.000000 0.000000 -2.250000 +v 1.000000 0.000000 -2.250000 +v 1.000000 0.062500 -2.500000 +v -1.000000 0.062500 -2.500000 +v 1.000000 0.062500 -2.250000 +v -1.000000 0.062500 -2.250000 +v -1.000000 0.000000 -1.500000 +v 1.000000 0.000000 -1.500000 +v -1.000000 0.000000 -1.000000 +v 1.000000 0.000000 -1.000000 +v 1.000000 0.062500 -1.500000 +v -1.000000 0.062500 -1.500000 +v 1.000000 0.062500 -1.000000 +v -1.000000 0.062500 -1.000000 +v 0.625000 0.062500 0.062500 +v 0.937500 0.062500 0.062500 +v 0.625000 0.062500 -0.062500 +v 0.937500 0.062500 -0.062500 +v 0.625000 0.125000 -0.062500 +v 0.625000 0.125000 0.062500 +v 0.937500 0.125000 0.062500 +v 0.937500 0.125000 -0.062500 +v -0.937500 0.062500 0.062500 +v -0.625000 0.062500 0.062500 +v -0.937500 0.062500 -0.062500 +v -0.625000 0.062500 -0.062500 +v -0.937500 0.125000 -0.062500 +v -0.937500 0.125000 0.062500 +v -0.625000 0.125000 0.062500 +v -0.625000 0.125000 -0.062500 +v 0.625000 0.062500 -1.187500 +v 0.937500 0.062500 -1.187500 +v 0.625000 0.062500 -1.312500 +v 0.937500 0.062500 -1.312500 +v 0.625000 0.125000 -1.312500 +v 0.625000 0.125000 -1.187500 +v 0.937500 0.125000 -1.187500 +v 0.937500 0.125000 -1.312500 +v -0.937500 0.062500 -1.187500 +v -0.625000 0.062500 -1.187500 +v -0.937500 0.062500 -1.312500 +v -0.625000 0.062500 -1.312500 +v -0.937500 0.125000 -1.312500 +v -0.937500 0.125000 -1.187500 +v -0.625000 0.125000 -1.187500 +v -0.625000 0.125000 -1.312500 +v 0.625000 0.062500 2.500000 +v 0.937500 0.062500 2.500000 +v 0.625000 0.062500 2.437500 +v 0.937500 0.062500 2.437500 +v 0.625000 0.125000 2.437500 +v 0.625000 0.125000 2.500000 +v 0.937500 0.125000 2.500000 +v 0.937500 0.125000 2.437500 +v -0.937500 0.062500 2.500000 +v -0.625000 0.062500 2.500000 +v -0.937500 0.062500 2.437500 +v -0.625000 0.062500 2.437500 +v -0.937500 0.125000 2.437500 +v -0.937500 0.125000 2.500000 +v -0.625000 0.125000 2.500000 +v -0.625000 0.125000 2.437500 +v 0.625000 0.062500 1.312500 +v 0.937500 0.062500 1.312500 +v 0.625000 0.062500 1.187500 +v 0.937500 0.062500 1.187500 +v 0.625000 0.125000 1.187500 +v 0.625000 0.125000 1.312500 +v 0.937500 0.125000 1.312500 +v 0.937500 0.125000 1.187500 +v -0.937500 0.062500 1.312500 +v -0.625000 0.062500 1.312500 +v -0.937500 0.062500 1.187500 +v -0.625000 0.062500 1.187500 +v -0.937500 0.125000 1.187500 +v -0.937500 0.125000 1.312500 +v -0.625000 0.125000 1.312500 +v -0.625000 0.125000 1.187500 +v 0.625000 0.062500 -2.437500 +v 0.937500 0.062500 -2.437500 +v 0.625000 0.062500 -2.500000 +v 0.937500 0.062500 -2.500000 +v 0.625000 0.125000 -2.500000 +v 0.625000 0.125000 -2.437500 +v 0.937500 0.125000 -2.437500 +v 0.937500 0.125000 -2.500000 +v -0.937500 0.062500 -2.437500 +v -0.625000 0.062500 -2.437500 +v -0.937500 0.062500 -2.500000 +v -0.625000 0.062500 -2.500000 +v -0.937500 0.125000 -2.500000 +v -0.937500 0.125000 -2.437500 +v -0.625000 0.125000 -2.437500 +v -0.625000 0.125000 -2.500000 +vt 0.750000 1.000000 +vt 0.781249 0.000000 +vt 0.781250 1.000000 +vt 0.875000 1.000000 +vt 0.843750 0.000000 +vt 0.875000 0.000000 +vt 0.781250 1.000000 +vt 0.812499 0.000000 +vt 0.812500 1.000000 +vt 0.468750 0.550000 +vt 0.453125 0.575000 +vt 0.453125 0.550000 +vt 0.968750 0.000000 +vt 0.953125 1.000000 +vt 0.953125 0.000000 +vt 1.000000 0.000000 +vt 0.984375 1.000000 +vt 0.984375 0.000000 +vt 0.531250 0.575000 +vt 0.546875 0.550000 +vt 0.546875 0.575000 +vt 0.843750 1.000000 +vt 0.812500 0.000000 +vt 0.843750 0.000000 +vt 0.656249 0.550000 +vt 0.640624 0.525000 +vt 0.656249 0.525000 +vt 0.656249 0.550000 +vt 0.671874 0.575000 +vt 0.656249 0.575000 +vt 0.953125 1.000000 +vt 0.937500 0.000000 +vt 0.953125 0.000000 +vt 0.984375 1.000000 +vt 0.968750 0.000000 +vt 0.984375 0.000000 +vt 0.375000 0.000000 +vt 0.499999 0.400000 +vt 0.375000 0.400000 +vt 0.250000 0.400000 +vt 0.375000 0.000000 +vt 0.375000 0.400000 +vt 0.593749 0.500000 +vt 0.609374 0.400000 +vt 0.609374 0.500000 +vt 0.359375 0.800000 +vt 0.375000 0.400000 +vt 0.375000 0.800000 +vt 0.562499 0.500000 +vt 0.578124 0.400000 +vt 0.578124 0.500000 +vt 0.312500 0.400000 +vt 0.296875 0.800000 +vt 0.296875 0.400000 +vt 0.187500 0.800000 +vt 0.125000 0.400000 +vt 0.187500 0.400000 +vt 0.062500 0.400000 +vt 0.000000 0.800000 +vt 0.000000 0.400000 +vt 0.406250 0.575000 +vt 0.421875 0.525000 +vt 0.421875 0.575000 +vt 0.390625 0.400000 +vt 0.375000 0.800000 +vt 0.375000 0.400000 +vt 0.421875 0.575000 +vt 0.437500 0.525000 +vt 0.437500 0.575000 +vt 0.218750 0.400000 +vt 0.203125 0.800000 +vt 0.203125 0.400000 +vt 0.125000 0.000000 +vt 0.250000 0.400000 +vt 0.125000 0.400000 +vt 0.624999 0.000000 +vt 0.500000 0.400000 +vt 0.499999 0.000000 +vt 0.609374 0.500000 +vt 0.624999 0.400000 +vt 0.624999 0.500000 +vt 0.250000 0.800000 +vt 0.265625 0.400000 +vt 0.265625 0.800000 +vt 0.578124 0.500000 +vt 0.593749 0.400000 +vt 0.593749 0.500000 +vt 0.281250 0.400000 +vt 0.265625 0.800000 +vt 0.265625 0.400000 +vt 0.125000 0.800000 +vt 0.062500 0.400000 +vt 0.125000 0.400000 +vt 0.937500 0.000000 +vt 0.875000 0.400000 +vt 0.875000 0.000000 +vt 0.390625 0.575000 +vt 0.406250 0.525000 +vt 0.406250 0.575000 +vt 0.203125 0.400000 +vt 0.187500 0.800000 +vt 0.187500 0.400000 +vt 0.437500 0.575000 +vt 0.453125 0.525000 +vt 0.453125 0.575000 +vt 0.359374 0.400000 +vt 0.343750 0.800000 +vt 0.343749 0.400000 +vt 0.749999 0.400000 +vt 0.624999 0.000000 +vt 0.749999 0.000000 +vt 0.000000 0.400000 +vt 0.125000 0.000000 +vt 0.125000 0.400000 +vt 0.624999 0.500000 +vt 0.640624 0.400000 +vt 0.640624 0.500000 +vt 0.250000 0.400000 +vt 0.234375 0.800000 +vt 0.234375 0.400000 +vt 0.312500 0.500000 +vt 0.328125 0.400000 +vt 0.328125 0.500000 +vt 0.296875 0.400000 +vt 0.281250 0.800000 +vt 0.281250 0.400000 +vt 0.453125 0.462500 +vt 0.484375 0.525000 +vt 0.453125 0.525000 +vt 0.468750 0.550000 +vt 0.453125 0.525000 +vt 0.468750 0.525000 +vt 0.703124 0.550000 +vt 0.687499 0.525000 +vt 0.703124 0.525000 +vt 0.531249 0.462500 +vt 0.515625 0.400000 +vt 0.531249 0.400000 +vt 0.640624 0.400000 +vt 0.656249 0.462500 +vt 0.640624 0.462500 +vt 0.421875 0.462500 +vt 0.453125 0.525000 +vt 0.421875 0.525000 +vt 0.687499 0.550000 +vt 0.671874 0.525000 +vt 0.687499 0.525000 +vt 0.484375 0.550000 +vt 0.468750 0.525000 +vt 0.484375 0.525000 +vt 0.515625 0.525000 +vt 0.500000 0.462500 +vt 0.515625 0.462500 +vt 0.546874 0.400000 +vt 0.562499 0.462500 +vt 0.546874 0.462500 +vt 0.421875 0.525000 +vt 0.390625 0.462500 +vt 0.421875 0.462500 +vt 0.484375 0.575000 +vt 0.468750 0.550000 +vt 0.484375 0.550000 +vt 0.531250 0.575000 +vt 0.515625 0.550000 +vt 0.531250 0.550000 +vt 0.656249 0.400000 +vt 0.671874 0.462500 +vt 0.656249 0.462500 +vt 0.531249 0.462500 +vt 0.546874 0.525000 +vt 0.531249 0.525000 +vt 0.484375 0.462500 +vt 0.453125 0.400000 +vt 0.484375 0.400000 +vt 0.671874 0.550000 +vt 0.656249 0.525000 +vt 0.671874 0.525000 +vt 0.546874 0.550000 +vt 0.531249 0.525000 +vt 0.546874 0.525000 +vt 0.593749 0.500000 +vt 0.609374 0.562500 +vt 0.593749 0.562500 +vt 0.546874 0.462500 +vt 0.562499 0.525000 +vt 0.546874 0.525000 +vt 0.624999 0.562500 +vt 0.609374 0.500000 +vt 0.624999 0.500000 +vt 0.578124 0.575000 +vt 0.562499 0.562500 +vt 0.578124 0.562500 +vt 0.624999 0.575000 +vt 0.609374 0.562500 +vt 0.624999 0.562500 +vt 0.531249 0.400000 +vt 0.546874 0.462500 +vt 0.531249 0.462500 +vt 0.703124 0.400000 +vt 0.718749 0.462500 +vt 0.703124 0.462500 +vt 0.640624 0.562500 +vt 0.624999 0.500000 +vt 0.640624 0.500000 +vt 0.328125 0.575000 +vt 0.312500 0.562500 +vt 0.328125 0.562500 +vt 0.656249 0.562500 +vt 0.640624 0.550000 +vt 0.656249 0.550000 +vt 0.671874 0.400000 +vt 0.687499 0.462500 +vt 0.671874 0.462500 +vt 0.687499 0.462500 +vt 0.703124 0.525000 +vt 0.687499 0.525000 +vt 0.453125 0.462500 +vt 0.421875 0.400000 +vt 0.453125 0.400000 +vt 0.500000 0.575000 +vt 0.484375 0.550000 +vt 0.500000 0.550000 +vt 0.515625 0.575000 +vt 0.500000 0.550000 +vt 0.515625 0.550000 +vt 0.640624 0.462500 +vt 0.656249 0.525000 +vt 0.640624 0.525000 +vt 0.312500 0.500000 +vt 0.328125 0.562500 +vt 0.312500 0.562500 +vt 0.421875 0.462500 +vt 0.390625 0.400000 +vt 0.421875 0.400000 +vt 0.687499 0.575000 +vt 0.671874 0.550000 +vt 0.687499 0.550000 +vt 0.515625 0.550000 +vt 0.500000 0.525000 +vt 0.515625 0.525000 +vt 0.656249 0.462500 +vt 0.671874 0.525000 +vt 0.656249 0.525000 +vt 0.671874 0.462500 +vt 0.687499 0.525000 +vt 0.671874 0.525000 +vt 0.578124 0.562500 +vt 0.562499 0.500000 +vt 0.578124 0.500000 +vt 0.609374 0.575000 +vt 0.593749 0.562500 +vt 0.609374 0.562500 +vt 0.640624 0.575000 +vt 0.624999 0.562500 +vt 0.640624 0.562500 +vt 0.703124 0.462500 +vt 0.718749 0.525000 +vt 0.703124 0.525000 +vt 0.515625 0.462500 +vt 0.531249 0.525000 +vt 0.515625 0.525000 +vt 0.593749 0.562500 +vt 0.578124 0.500000 +vt 0.593749 0.500000 +vt 0.593749 0.575000 +vt 0.578124 0.562500 +vt 0.593749 0.562500 +vt 0.703124 0.562500 +vt 0.687499 0.550000 +vt 0.703124 0.550000 +vt 0.687499 0.400000 +vt 0.703124 0.462500 +vt 0.687499 0.462500 +vt 0.500000 0.400000 +vt 0.515625 0.462500 +vt 0.500000 0.462500 +vt 0.749999 0.000000 +vt 0.843750 1.000000 +vt 0.781250 0.000000 +vt 0.468750 0.575000 +vt 0.968750 1.000000 +vt 1.000000 1.000000 +vt 0.531250 0.550000 +vt 0.812500 1.000000 +vt 0.640624 0.550000 +vt 0.671874 0.550000 +vt 0.937500 1.000000 +vt 0.968750 1.000000 +vt 0.499999 0.000000 +vt 0.250000 0.000000 +vt 0.593749 0.400000 +vt 0.359375 0.400000 +vt 0.562499 0.400000 +vt 0.312500 0.800000 +vt 0.125000 0.800000 +vt 0.062500 0.800000 +vt 0.406250 0.525000 +vt 0.390625 0.800000 +vt 0.421875 0.525000 +vt 0.218750 0.800000 +vt 0.250000 0.000000 +vt 0.624999 0.400000 +vt 0.609374 0.400000 +vt 0.250000 0.400000 +vt 0.578124 0.400000 +vt 0.281250 0.800000 +vt 0.062500 0.800000 +vt 0.937500 0.400000 +vt 0.390625 0.525000 +vt 0.203125 0.800000 +vt 0.437500 0.525000 +vt 0.359375 0.800000 +vt 0.624999 0.400000 +vt 0.000000 0.000000 +vt 0.624999 0.400000 +vt 0.250000 0.800000 +vt 0.312500 0.400000 +vt 0.296875 0.800000 +vt 0.484375 0.462500 +vt 0.453125 0.550000 +vt 0.687499 0.550000 +vt 0.515625 0.462500 +vt 0.656249 0.400000 +vt 0.453125 0.462500 +vt 0.671874 0.550000 +vt 0.468750 0.550000 +vt 0.500000 0.525000 +vt 0.562499 0.400000 +vt 0.390625 0.525000 +vt 0.468750 0.575000 +vt 0.515625 0.575000 +vt 0.671874 0.400000 +vt 0.546874 0.462500 +vt 0.453125 0.462500 +vt 0.656249 0.550000 +vt 0.531249 0.550000 +vt 0.609374 0.500000 +vt 0.562499 0.462500 +vt 0.609374 0.562500 +vt 0.562499 0.575000 +vt 0.609374 0.575000 +vt 0.546874 0.400000 +vt 0.718749 0.400000 +vt 0.624999 0.562500 +vt 0.312500 0.575000 +vt 0.640624 0.562500 +vt 0.687499 0.400000 +vt 0.703124 0.462500 +vt 0.421875 0.462500 +vt 0.484375 0.575000 +vt 0.500000 0.575000 +vt 0.656249 0.462500 +vt 0.328125 0.500000 +vt 0.390625 0.462500 +vt 0.671874 0.575000 +vt 0.500000 0.550000 +vt 0.671874 0.462500 +vt 0.687499 0.462500 +vt 0.562499 0.562500 +vt 0.593749 0.575000 +vt 0.624999 0.575000 +vt 0.718749 0.462500 +vt 0.531249 0.462500 +vt 0.578124 0.562500 +vt 0.578124 0.575000 +vt 0.687499 0.562500 +vt 0.703124 0.400000 +vt 0.515625 0.400000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +s off +f 8/1/1 3/2/1 4/3/1 +f 1/4/2 6/5/2 2/6/2 +f 12/7/1 9/8/1 10/9/1 +f 12/10/3 2/11/3 6/12/3 +f 11/13/4 6/14/4 5/15/4 +f 10/16/5 1/17/5 2/18/5 +f 9/19/6 5/20/6 1/21/6 +f 13/22/2 16/23/2 14/24/2 +f 4/25/3 16/26/3 8/27/3 +f 7/28/6 13/29/6 3/30/6 +f 8/31/4 15/32/4 7/33/4 +f 3/34/5 14/35/5 4/36/5 +f 18/37/5 19/38/5 17/39/5 +f 24/40/4 21/41/4 22/42/4 +f 24/43/2 17/44/2 19/45/2 +f 22/46/3 18/47/3 17/48/3 +f 21/49/1 20/50/1 18/51/1 +f 23/52/6 19/53/6 20/54/6 +f 26/55/5 27/56/5 25/57/5 +f 32/58/4 29/59/4 30/60/4 +f 32/61/2 25/62/2 27/63/2 +f 30/64/3 26/65/3 25/66/3 +f 29/67/1 28/68/1 26/69/1 +f 31/70/6 27/71/6 28/72/6 +f 34/73/5 35/74/5 33/75/5 +f 40/76/4 37/77/4 38/78/4 +f 40/79/2 33/80/2 35/81/2 +f 38/82/3 34/83/3 33/84/3 +f 37/85/1 36/86/1 34/87/1 +f 39/88/6 35/89/6 36/90/6 +f 42/91/5 43/92/5 41/93/5 +f 48/94/4 45/95/4 46/96/4 +f 48/97/2 41/98/2 43/99/2 +f 46/100/3 42/101/3 41/102/3 +f 45/103/1 44/104/1 42/105/1 +f 47/106/6 43/107/6 44/108/6 +f 50/109/5 51/110/5 49/111/5 +f 56/112/4 53/113/4 54/114/4 +f 56/115/2 49/116/2 51/117/2 +f 54/118/3 50/119/3 49/120/3 +f 53/121/1 52/122/1 50/123/1 +f 55/124/6 51/125/6 52/126/6 +f 63/127/4 61/128/4 62/129/4 +f 60/130/1 63/131/1 58/132/1 +f 57/133/2 61/134/2 59/135/2 +f 59/136/3 64/137/3 60/138/3 +f 58/139/6 62/140/6 57/141/6 +f 71/142/4 69/143/4 70/144/4 +f 68/145/1 71/146/1 66/147/1 +f 65/148/2 69/149/2 67/150/2 +f 67/151/3 72/152/3 68/153/3 +f 66/154/6 70/155/6 65/156/6 +f 79/157/4 77/158/4 78/159/4 +f 76/160/1 79/161/1 74/162/1 +f 73/163/2 77/164/2 75/165/2 +f 75/166/3 80/167/3 76/168/3 +f 74/169/6 78/170/6 73/171/6 +f 87/172/4 85/173/4 86/174/4 +f 84/175/1 87/176/1 82/177/1 +f 81/178/2 85/179/2 83/180/2 +f 83/181/3 88/182/3 84/183/3 +f 82/184/6 86/185/6 81/186/6 +f 95/187/4 93/188/4 94/189/4 +f 92/190/1 95/191/1 90/192/1 +f 89/193/2 93/194/2 91/195/2 +f 91/196/3 96/197/3 92/198/3 +f 90/199/6 94/200/6 89/201/6 +f 103/202/4 101/203/4 102/204/4 +f 100/205/1 103/206/1 98/207/1 +f 97/208/2 101/209/2 99/210/2 +f 99/211/3 104/212/3 100/213/3 +f 98/214/6 102/215/6 97/216/6 +f 111/217/4 109/218/4 110/219/4 +f 108/220/1 111/221/1 106/222/1 +f 105/223/2 109/224/2 107/225/2 +f 107/226/3 112/227/3 108/228/3 +f 106/229/6 110/230/6 105/231/6 +f 119/232/4 117/233/4 118/234/4 +f 116/235/1 119/236/1 114/237/1 +f 113/238/2 117/239/2 115/240/2 +f 115/241/3 120/242/3 116/243/3 +f 114/244/6 118/245/6 113/246/6 +f 127/247/4 125/248/4 126/249/4 +f 124/250/1 127/251/1 122/252/1 +f 121/253/2 125/254/2 123/255/2 +f 123/256/3 128/257/3 124/258/3 +f 122/259/6 126/260/6 121/261/6 +f 135/262/4 133/263/4 134/264/4 +f 132/265/1 135/266/1 130/267/1 +f 129/268/2 133/269/2 131/270/2 +f 131/271/3 136/272/3 132/273/3 +f 130/274/6 134/275/6 129/276/6 +f 8/1/1 7/277/1 3/2/1 +f 1/4/2 5/278/2 6/5/2 +f 12/7/1 11/279/1 9/8/1 +f 12/10/3 10/280/3 2/11/3 +f 11/13/4 12/281/4 6/14/4 +f 10/16/5 9/282/5 1/17/5 +f 9/19/6 11/283/6 5/20/6 +f 13/22/2 15/284/2 16/23/2 +f 4/25/3 14/285/3 16/26/3 +f 7/28/6 15/286/6 13/29/6 +f 8/31/4 16/287/4 15/32/4 +f 3/34/5 13/288/5 14/35/5 +f 18/37/5 20/289/5 19/38/5 +f 24/40/4 23/290/4 21/41/4 +f 24/43/2 22/291/2 17/44/2 +f 22/46/3 21/292/3 18/47/3 +f 21/49/1 23/293/1 20/50/1 +f 23/52/6 24/294/6 19/53/6 +f 26/55/5 28/295/5 27/56/5 +f 32/58/4 31/296/4 29/59/4 +f 32/61/2 30/297/2 25/62/2 +f 30/64/3 29/298/3 26/65/3 +f 29/67/1 31/299/1 28/68/1 +f 31/70/6 32/300/6 27/71/6 +f 34/73/5 36/301/5 35/74/5 +f 40/76/4 39/302/4 37/77/4 +f 40/79/2 38/303/2 33/80/2 +f 38/82/3 37/304/3 34/83/3 +f 37/85/1 39/305/1 36/86/1 +f 39/88/6 40/306/6 35/89/6 +f 42/91/5 44/307/5 43/92/5 +f 48/94/4 47/308/4 45/95/4 +f 48/97/2 46/309/2 41/98/2 +f 46/100/3 45/310/3 42/101/3 +f 45/103/1 47/311/1 44/104/1 +f 47/106/6 48/312/6 43/107/6 +f 50/109/5 52/313/5 51/110/5 +f 56/112/4 55/314/4 53/113/4 +f 56/115/2 54/315/2 49/116/2 +f 54/118/3 53/316/3 50/119/3 +f 53/121/1 55/317/1 52/122/1 +f 55/124/6 56/318/6 51/125/6 +f 63/127/4 64/319/4 61/128/4 +f 60/130/1 64/320/1 63/131/1 +f 57/133/2 62/321/2 61/134/2 +f 59/136/3 61/322/3 64/137/3 +f 58/139/6 63/323/6 62/140/6 +f 71/142/4 72/324/4 69/143/4 +f 68/145/1 72/325/1 71/146/1 +f 65/148/2 70/326/2 69/149/2 +f 67/151/3 69/327/3 72/152/3 +f 66/154/6 71/328/6 70/155/6 +f 79/157/4 80/329/4 77/158/4 +f 76/160/1 80/330/1 79/161/1 +f 73/163/2 78/331/2 77/164/2 +f 75/166/3 77/332/3 80/167/3 +f 74/169/6 79/333/6 78/170/6 +f 87/172/4 88/334/4 85/173/4 +f 84/175/1 88/335/1 87/176/1 +f 81/178/2 86/336/2 85/179/2 +f 83/181/3 85/337/3 88/182/3 +f 82/184/6 87/338/6 86/185/6 +f 95/187/4 96/339/4 93/188/4 +f 92/190/1 96/340/1 95/191/1 +f 89/193/2 94/341/2 93/194/2 +f 91/196/3 93/342/3 96/197/3 +f 90/199/6 95/343/6 94/200/6 +f 103/202/4 104/344/4 101/203/4 +f 100/205/1 104/345/1 103/206/1 +f 97/208/2 102/346/2 101/209/2 +f 99/211/3 101/347/3 104/212/3 +f 98/214/6 103/348/6 102/215/6 +f 111/217/4 112/349/4 109/218/4 +f 108/220/1 112/350/1 111/221/1 +f 105/223/2 110/351/2 109/224/2 +f 107/226/3 109/352/3 112/227/3 +f 106/229/6 111/353/6 110/230/6 +f 119/232/4 120/354/4 117/233/4 +f 116/235/1 120/355/1 119/236/1 +f 113/238/2 118/356/2 117/239/2 +f 115/241/3 117/357/3 120/242/3 +f 114/244/6 119/358/6 118/245/6 +f 127/247/4 128/359/4 125/248/4 +f 124/250/1 128/360/1 127/251/1 +f 121/253/2 126/361/2 125/254/2 +f 123/256/3 125/362/3 128/257/3 +f 122/259/6 127/363/6 126/260/6 +f 135/262/4 136/364/4 133/263/4 +f 132/265/1 136/365/1 135/266/1 +f 129/268/2 134/366/2 133/269/2 +f 131/271/3 133/367/3 136/272/3 +f 130/274/6 135/368/6 134/275/6 diff --git a/src/main/resources/assets/hbm/textures/items/motor_bismuth.png b/src/main/resources/assets/hbm/textures/items/motor_bismuth.png new file mode 100644 index 0000000000000000000000000000000000000000..404e935e17f208634e405b4c06717643da7a8580 GIT binary patch literal 537 zcmV+!0_OdRP)a*+z8^t1>=X=>i95)a*=_{ zmkxy}jmg-gamF&Fbq!qsMx1gt}=;f7D07 zeFmsfDWm~V$A_^wY&>QMbjl-RBuWxwfU5 zYCDuPjkVRaKedM*2*BOgsC@bKm6*DBO>WyQxcd6|WSr*1dYR1pTuX0L1@BMDKy>oR b|I$)>=+~{*{fM#V00000NkvXXu0mjfgXad_ literal 0 HcmV?d00001 From b9d159bffe86b3814a2f2c734846d44bc6f91030 Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 1 Jun 2023 19:07:21 +0200 Subject: [PATCH 032/109] chlorocalcite --- changelog | 2 ++ src/main/java/com/hbm/config/WorldConfig.java | 2 ++ .../com/hbm/inventory/OreDictManager.java | 2 ++ .../inventory/recipes/CombinationRecipes.java | 3 ++- src/main/java/com/hbm/items/ModItems.java | 3 +++ .../com/hbm/items/special/ItemBedrockOre.java | 23 +++++++++--------- .../block/RenderStandardStraightRail.java | 14 ++++++++--- .../com/hbm/world/feature/BedrockOre.java | 1 + src/main/resources/assets/hbm/lang/de_DE.lang | 2 ++ src/main/resources/assets/hbm/lang/en_US.lang | 2 ++ .../textures/items/powder_chlorocalcite.png | Bin 0 -> 482 bytes 11 files changed, 39 insertions(+), 15 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/items/powder_chlorocalcite.png diff --git a/changelog b/changelog index 68bff38a5..5dade27bb 100644 --- a/changelog +++ b/changelog @@ -1,6 +1,8 @@ ## Added * Laminate glass * A new variant of reinforced glass with higher blast resistance +* Chlorocalcite + * A new bedrock ore, the powder can be heated in the combination furnace to make calcium and chlorine ## Changed * Updated russian localization diff --git a/src/main/java/com/hbm/config/WorldConfig.java b/src/main/java/com/hbm/config/WorldConfig.java index 62d951918..faedff279 100644 --- a/src/main/java/com/hbm/config/WorldConfig.java +++ b/src/main/java/com/hbm/config/WorldConfig.java @@ -36,6 +36,7 @@ public class WorldConfig { public static int bedrockIronSpawn = 100; public static int bedrockCopperSpawn = 200; public static int bedrockBoraxSpawn = 50; + public static int bedrockChlorocalciteSpawn = 35; public static int bedrockAsbestosSpawn = 50; public static int bedrockNiobiumSpawn = 50; public static int bedrockTitaniumSpawn = 100; @@ -153,6 +154,7 @@ public class WorldConfig { bedrockNiterSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B11_bedrockNiterWeight", "Spawn weight for niter bedrock ore", 50); bedrockFluoriteSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B12_bedrockFluoriteWeight", "Spawn weight for fluorite bedrock ore", 50); bedrockRedstoneSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B13_bedrockRedstoneWeight", "Spawn weight for redstone bedrock ore", 50); + bedrockChlorocalciteSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B14_bedrockbChlorocalciteWeight", "Spawn weight for chlorocalcite bedrock ore", 35); ironClusterSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.C00_ironClusterSpawn", "Amount of iron cluster veins per chunk", 4); titaniumClusterSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.C01_titaniumClusterSpawn", "Amount of titanium cluster veins per chunk", 2); diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index f85df1900..0f1db9e1a 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -209,6 +209,7 @@ public class OreDictManager { public static final DictFrame LIGCOKE = new DictFrame("LigniteCoke"); public static final DictFrame CINNABAR = new DictFrame("Cinnabar"); public static final DictFrame BORAX = new DictFrame("Borax"); + public static final DictFrame CHLOROCALCITE = new DictFrame("Chlorocalcite"); public static final DictFrame VOLCANIC = new DictFrame("Volcanic"); public static final DictFrame HEMATITE = new DictFrame("Hematite"); public static final DictFrame MALACHITE = new DictFrame("Malachite"); @@ -390,6 +391,7 @@ public class OreDictManager { LIGCOKE .gem(fromOne(coke, EnumCokeType.LIGNITE)) .block(fromOne(block_coke, EnumCokeType.LIGNITE)); CINNABAR .crystal(cinnebar) .gem(cinnebar) .ore(ore_cinnebar, ore_depth_cinnebar); BORAX .dust(powder_borax) .ore(ore_depth_borax); + CHLOROCALCITE .dust(powder_chlorocalcite); VOLCANIC .gem(gem_volcanic) .ore(basalt_gem); HEMATITE .ore(fromOne(stone_resource, EnumStoneType.HEMATITE)); MALACHITE .ore(fromOne(stone_resource, EnumStoneType.MALACHITE)); diff --git a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java index 022068894..3442fcee4 100644 --- a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java @@ -42,8 +42,9 @@ public class CombinationRecipes extends SerializableRecipe { recipes.put(LIGNITE.gem(), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.LIGNITE), new FluidStack(Fluids.COALCREOSOTE, 50))); recipes.put(LIGNITE.dust(), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.LIGNITE), new FluidStack(Fluids.COALCREOSOTE, 50))); recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.briquette, EnumBriquetteType.LIGNITE)), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.LIGNITE), new FluidStack(Fluids.COALCREOSOTE, 100))); - + recipes.put(CINNABAR.crystal(), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.MERCURY, 100))); + recipes.put(CHLOROCALCITE.dust(), new Pair(new ItemStack(ModItems.powder_calcium), new FluidStack(Fluids.CHLORINE, 250))); recipes.put(new ComparableStack(Items.glowstone_dust), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.CHLORINE, 50))); recipes.put(new ComparableStack(DictFrame.fromOne(ModBlocks.stone_resource, EnumStoneType.BAUXITE)), new Pair(new ItemStack(ModItems.ingot_aluminium, 2), new FluidStack(Fluids.REDMUD, 250))); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 317ecb9e8..5b97238fc 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -513,6 +513,7 @@ public class ModItems { public static Item powder_paleogenite_tiny; public static Item powder_impure_osmiridium; public static Item powder_borax; + public static Item powder_chlorocalcite; public static Item powder_lanthanium; public static Item powder_actinium; @@ -2907,6 +2908,7 @@ public class ModItems { powder_paleogenite_tiny = new Item().setUnlocalizedName("powder_paleogenite_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_paleogenite_tiny"); powder_impure_osmiridium = new Item().setUnlocalizedName("powder_impure_osmiridium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_impure_osmiridium"); powder_borax = new Item().setUnlocalizedName("powder_borax").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_borax"); + powder_chlorocalcite = new Item().setUnlocalizedName("powder_chlorocalcite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_chlorocalcite"); fragment_neodymium = new Item().setUnlocalizedName("fragment_neodymium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_neodymium"); fragment_cobalt = new Item().setUnlocalizedName("fragment_cobalt").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_cobalt"); @@ -5716,6 +5718,7 @@ public class ModItems { GameRegistry.registerItem(powder_paleogenite_tiny, powder_paleogenite_tiny.getUnlocalizedName()); GameRegistry.registerItem(powder_impure_osmiridium, powder_impure_osmiridium.getUnlocalizedName()); GameRegistry.registerItem(powder_borax, powder_borax.getUnlocalizedName()); + GameRegistry.registerItem(powder_chlorocalcite, powder_chlorocalcite.getUnlocalizedName()); GameRegistry.registerItem(powder_yellowcake, powder_yellowcake.getUnlocalizedName()); GameRegistry.registerItem(powder_beryllium, powder_beryllium.getUnlocalizedName()); GameRegistry.registerItem(powder_dura_steel, powder_dura_steel.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/special/ItemBedrockOre.java b/src/main/java/com/hbm/items/special/ItemBedrockOre.java index 6dc73e9fc..9d12bade0 100644 --- a/src/main/java/com/hbm/items/special/ItemBedrockOre.java +++ b/src/main/java/com/hbm/items/special/ItemBedrockOre.java @@ -84,17 +84,18 @@ public class ItemBedrockOre extends ItemEnumMulti { */ public static enum EnumBedrockOre { - //Ore Byproduct 1, 2, 3 - IRON("Iron", 0xE2C0AA, B_SULFUR, B_TITANIUM, B_TITANIUM), //titanium, sulfur from pyrite - COPPER("Copper", 0xEC9A63, B_SULFUR, B_SULFUR, B_SULFUR), //sulfur sulfur sulfur sulfur - BORAX("Borax", 0xE4BE74, B_LITHIUM, B_CALCIUM, B_CALCIUM), //calcium from ulexite, uhhh lithium? - ASBESTOS("Asbestos", 0xBFBFB9, B_SILICON, B_SILICON, B_SILICON), //quartz i guess? - NIOBIUM("Niobium", 0xAF58D8, B_IRON, B_IRON, B_IRON), //iron in columbite, often found along tantalite - TITANIUM("Titanium", 0xF2EFE2, B_SILICON, B_CALCIUM, B_ALUMINIUM), //titanite is titanium + calcium + silicon with traces of iron and aluminium - TUNGSTEN("Tungsten", 0x2C293C, B_LEAD, B_IRON, B_BISMUTH), //ferberite has iron, raspite has lead, russelite is bismuth tungsten - GOLD("Gold", 0xF9D738, B_LEAD, B_COPPER, B_BISMUTH), //occurs with copper, lead and rare bismuthide - URANIUM("Uranium", 0x868D82, B_LEAD, B_RADIUM, B_POLONIUM), //uranium and its decay products - THORIUM("Thorium", 0x7D401D, B_SILICON, B_URANIUM, B_TECHNETIUM); //thorium occours with uraninite and decay products + //Ore Byproduct 1, 2, 3 + IRON("Iron", 0xE2C0AA, B_SULFUR, B_TITANIUM, B_TITANIUM), //titanium, sulfur from pyrite + COPPER("Copper", 0xEC9A63, B_SULFUR, B_SULFUR, B_SULFUR), //sulfur sulfur sulfur sulfur + BORAX("Borax", 0xE4BE74, B_LITHIUM, B_CALCIUM, B_CALCIUM), //calcium from ulexite, uhhh lithium? + ASBESTOS("Asbestos", 0xBFBFB9, B_SILICON, B_SILICON, B_SILICON), //quartz i guess? + NIOBIUM("Niobium", 0xAF58D8, B_IRON, B_IRON, B_IRON), //iron in columbite, often found along tantalite + TITANIUM("Titanium", 0xF2EFE2, B_SILICON, B_CALCIUM, B_ALUMINIUM), //titanite is titanium + calcium + silicon with traces of iron and aluminium + TUNGSTEN("Tungsten", 0x2C293C, B_LEAD, B_IRON, B_BISMUTH), //ferberite has iron, raspite has lead, russelite is bismuth tungsten + GOLD("Gold", 0xF9D738, B_LEAD, B_COPPER, B_BISMUTH), //occurs with copper, lead and rare bismuthide + URANIUM("Uranium", 0x868D82, B_LEAD, B_RADIUM, B_POLONIUM), //uranium and its decay products + THORIUM("Thorium", 0x7D401D, B_SILICON, B_URANIUM, B_TECHNETIUM), //thorium occours with uraninite and decay products + CHLOROCALCITE("Chlorocalcite", 0xCDE036, B_LITHIUM, B_SILICON, B_SILICON); //i guess? public String oreName; public int color; diff --git a/src/main/java/com/hbm/render/block/RenderStandardStraightRail.java b/src/main/java/com/hbm/render/block/RenderStandardStraightRail.java index 1343795ca..1dafab520 100644 --- a/src/main/java/com/hbm/render/block/RenderStandardStraightRail.java +++ b/src/main/java/com/hbm/render/block/RenderStandardStraightRail.java @@ -42,14 +42,22 @@ public class RenderStandardStraightRail implements ISimpleBlockRenderingHandler float rotation = 0; - if(meta == 12) rotation = 90F / 180F * (float) Math.PI; - if(meta == 14) rotation = 180F / 180F * (float) Math.PI; - if(meta == 13) rotation = 270F / 180F * (float) Math.PI; + if(meta == 14 || meta == 15) rotation = 90F / 180F * (float) Math.PI; + + if(meta == 12) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, -0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, 0.5F); tessellator.addTranslation(x + 0.5F, y, z + 0.5F); ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_straight, block.getIcon(1, 0), tessellator, rotation, true); tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + if(meta == 12) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, 0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, -0.5F); + return true; } diff --git a/src/main/java/com/hbm/world/feature/BedrockOre.java b/src/main/java/com/hbm/world/feature/BedrockOre.java index 6d054e206..cce83e8ec 100644 --- a/src/main/java/com/hbm/world/feature/BedrockOre.java +++ b/src/main/java/com/hbm/world/feature/BedrockOre.java @@ -27,6 +27,7 @@ public class BedrockOre { registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.IRON, 1), WorldConfig.bedrockIronSpawn); registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.COPPER, 1), WorldConfig.bedrockCopperSpawn); registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.BORAX, 3, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockBoraxSpawn); + registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.CHLOROCALCITE, 3, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockChlorocalciteSpawn); registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.ASBESTOS, 2), WorldConfig.bedrockAsbestosSpawn); registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.NIOBIUM, 2, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockNiobiumSpawn); registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.TITANIUM, 2, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockTitaniumSpawn); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 7a5a8049b..f31fb87d5 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -2471,6 +2471,7 @@ item.oil_tar.wax.name=Chloriertes Petroleumwachs item.oil_tar.wood.name=Holzteer item.ore.asbestos=Asbest item.ore.borax=Borax +item.ore.chlorocalcite=Chlorokalzit item.ore.copper=Kupfer item.ore.gold=Gold item.ore.iron=Eisen @@ -2643,6 +2644,7 @@ item.powder_caesium.name=Caesiumstaub item.powder_calcium.name=Kalziumstaub item.powder_cerium.name=Cerstaub item.powder_cerium_tiny.name=Kleiner Haufen Cerstaub +item.powder_chlorocalcite.name=Chlorokalzit item.powder_chlorophyte.name=Grünalgenstaub item.powder_cloud.name=Wolkenrückstände item.powder_co60.name=Kobalt-60-Staub diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 94cfb0809..6ec00e3fb 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -3150,6 +3150,7 @@ item.oil_tar.wax.name=Chlorinated Petroleum Wax item.oil_tar.wood.name=Wood Tar item.ore.asbestos=Asbestos item.ore.borax=Borax +item.ore.chlorocalcite=Chlorocalcite item.ore.copper=Copper item.ore.gold=Gold item.ore.iron=Iron @@ -3368,6 +3369,7 @@ item.powder_caesium.name=Caesium Powder item.powder_calcium.name=Calcium Powder item.powder_cerium.name=Cerium Powder item.powder_cerium_tiny.name=Tiny Pile of Cerium Powder +item.powder_chlorocalcite.name=Chlorocalcite item.powder_chlorophyte.name=Chlorophyte Powder item.powder_cloud.name=Cloud Residue item.powder_co60.name=Cobalt-60 Powder diff --git a/src/main/resources/assets/hbm/textures/items/powder_chlorocalcite.png b/src/main/resources/assets/hbm/textures/items/powder_chlorocalcite.png new file mode 100644 index 0000000000000000000000000000000000000000..901a98e2db7438e9848c46d6c6e21343433e7ea2 GIT binary patch literal 482 zcmV<80UiE{P)~tkBq4v?j!B8YmY8aqtrB;vZ6oqE6DG zLOT?9ojN>ukK+a9XPobTpB@`WiU z`3pWQ860G)=J%^R3_OqHDJ1u;q%{SMB~4jbG&n8l^bKvWvu@#*eGCl6X$|_31|jMq z=o;h;I;SVqE5BR%Nk^w5*yg9`xIF4;;c=wCiyB}oY0B%_7;on`h<5qd{$gQS0X}_J z6dadQ@r*YM2CwE5v|oex07jCg3?`y%Zv9|wIYIb|V(+U?Cg)LbTzdNhTzX*Vb1S$e@&2%Sfk2L<707Sa~vw1^* Y02JP%M6~2V!Z literal 0 HcmV?d00001 From b6212b6110d6f54ffac7506af0a01fb60f27c0d5 Mon Sep 17 00:00:00 2001 From: burningwater202 Date: Thu, 1 Jun 2023 21:51:09 -0400 Subject: [PATCH 033/109] god I wish it were me Glass panes (I'm in pane) --- .gitignore | 6 +++ src/main/java/com/hbm/blocks/ModBlocks.java | 4 ++ .../hbm/blocks/generic/BlockNTMGlassPane.java | 43 ++++++++++++++++++ .../blocks/generic/BlockNTMGlassPaneRot.java | 28 ++++++++++++ .../blocks/reinforced_laminate_pane.png | Bin 0 -> 206 bytes 5 files changed, 81 insertions(+) create mode 100644 src/main/java/com/hbm/blocks/generic/BlockNTMGlassPane.java create mode 100644 src/main/java/com/hbm/blocks/generic/BlockNTMGlassPaneRot.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/reinforced_laminate_pane.png diff --git a/.gitignore b/.gitignore index 22222fc39..ab2c2acdb 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,9 @@ run # Changelog backup /changelog.bak +CREDITS-fml.txt +forge-1.7.10-10.13.4.1614-1.7.10-changelog.txt +LICENSE-fml.txt +MinecraftForge-Credits.txt +MinecraftForge-License.txt +README.txt diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index c006878ad..c406c9868 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -30,6 +30,7 @@ import com.hbm.tileentity.machine.storage.TileEntityFileCabinet; import cpw.mods.fml.common.registry.GameRegistry; import net.minecraft.block.Block; import net.minecraft.block.BlockFalling; +import net.minecraft.block.BlockPane; import net.minecraft.block.material.*; import net.minecraft.creativetab.CreativeTabs; import net.minecraftforge.fluids.Fluid; @@ -318,6 +319,7 @@ public class ModBlocks { public static Block reinforced_lamp_off; public static Block reinforced_lamp_on; public static Block reinforced_laminate; + public static Block reinforced_laminate_pane; public static Block lamp_tritium_green_off; public static Block lamp_tritium_green_on; @@ -1503,6 +1505,7 @@ public class ModBlocks { reinforced_lamp_off = new ReinforcedLamp(Material.rock, false).setBlockName("reinforced_lamp_off").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_lamp_off"); reinforced_lamp_on = new ReinforcedLamp(Material.rock, true).setBlockName("reinforced_lamp_on").setHardness(15.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_lamp_on"); reinforced_laminate = new BlockNTMGlassCT(1, RefStrings.MODID + ":reinforced_laminate", Material.rock).setBlockName("reinforced_laminate").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(15.0F).setResistance(1000.0F); + reinforced_laminate_pane = new BlockNTMGlassPaneRot(1, RefStrings.MODID + ":reinforced_laminate_pane",RefStrings.MODID + ":reinforced_laminate_pane_edge", Material.rock, false).setBlockName("reinforced_laminate_pane").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(15.0F).setResistance(1000.0F); lamp_tritium_green_off = new ReinforcedLamp(Material.redstoneLight, false).setBlockName("lamp_tritium_green_off").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_green_off"); lamp_tritium_green_on = new ReinforcedLamp(Material.redstoneLight, true).setBlockName("lamp_tritium_green_on").setStepSound(Block.soundTypeGlass).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_green_on"); @@ -2648,6 +2651,7 @@ public class ModBlocks { GameRegistry.registerBlock(reinforced_lamp_off, ItemBlockBlastInfo.class, reinforced_lamp_off.getUnlocalizedName()); GameRegistry.registerBlock(reinforced_lamp_on, ItemBlockBlastInfo.class, reinforced_lamp_on.getUnlocalizedName()); GameRegistry.registerBlock(reinforced_laminate, ItemBlockBlastInfo.class, reinforced_laminate.getUnlocalizedName()); + GameRegistry.registerBlock(reinforced_laminate_pane,ItemBlockBlastInfo.class, reinforced_laminate_pane.getUnlocalizedName()); //Bricks GameRegistry.registerBlock(reinforced_stone, ItemBlockBlastInfo.class, reinforced_stone.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockNTMGlassPane.java b/src/main/java/com/hbm/blocks/generic/BlockNTMGlassPane.java new file mode 100644 index 000000000..c18e300a9 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockNTMGlassPane.java @@ -0,0 +1,43 @@ +package com.hbm.blocks.generic; + +import java.util.Random; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.BlockBreakable; +import net.minecraft.block.BlockPane; +import net.minecraft.block.material.Material; + +public class BlockNTMGlassPane extends BlockBreakable { + + int renderLayer; + boolean doesDrop = false; + + public BlockNTMGlassPane(int layer, String name, Material material) { + this(layer, name, material, false); + } + + public BlockNTMGlassPane(int layer, String name, Material material, boolean doesDrop) { + super(name, material, false); + this.renderLayer = layer; + this.doesDrop = doesDrop; + } + + public int quantityDropped(Random rand) { + return doesDrop ? 1 : 0; + } + + @SideOnly(Side.CLIENT) + public int getRenderBlockPass() { + return renderLayer; + } + + public boolean renderAsNormalBlock() { + return false; + } + + protected boolean canSilkHarvest() { + return true; + } + +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockNTMGlassPaneRot.java b/src/main/java/com/hbm/blocks/generic/BlockNTMGlassPaneRot.java new file mode 100644 index 000000000..feead29cb --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockNTMGlassPaneRot.java @@ -0,0 +1,28 @@ +package com.hbm.blocks.generic; + +import net.minecraft.block.BlockPane; +import net.minecraft.block.material.Material; + +public class BlockNTMGlassPaneRot extends BlockPane +{ + int renderLayer; + boolean doesDrop = false; + + //NOTE when you have eclipse make the constructor for you it *WILL BE 'protected'* so make sure to make this public like below. + public BlockNTMGlassPaneRot(String flatFaceTextureName, String rimTextureName, + Material mat, boolean bool) { + super(flatFaceTextureName, rimTextureName, mat, bool); + // TODO Auto-generated constructor stub + + this.opaque = true; + } + + public BlockNTMGlassPaneRot(int layer, String name, String rimTextureName, Material material, boolean doesDrop) { + super(name, rimTextureName, material, false); + this.renderLayer = layer; + this.doesDrop = doesDrop; + this.opaque = true; + this.setLightOpacity(1); + } + +} diff --git a/src/main/resources/assets/hbm/textures/blocks/reinforced_laminate_pane.png b/src/main/resources/assets/hbm/textures/blocks/reinforced_laminate_pane.png new file mode 100644 index 0000000000000000000000000000000000000000..d003abb6cb903b9698ecda6dd5605b8183fa8da7 GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc!DLSt#}Etu9pEh}C`hmmdKI;Vst0A*c2!vFvP literal 0 HcmV?d00001 From 2d3217c96bba16ec111c2f21691358ecc555ed1a Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 2 Jun 2023 14:22:29 +0200 Subject: [PATCH 034/109] block remapping, steel alloy blocks, osmiridium cast plates --- changelog | 1 + src/main/java/com/hbm/blocks/BlockRemap.java | 41 ++++++++++++++++++ src/main/java/com/hbm/blocks/ModBlocks.java | 19 +++++++- .../java/com/hbm/crafting/MineralRecipes.java | 3 ++ .../standard/BlockMutatorDebris.java | 36 +++++++++++++++ .../com/hbm/inventory/OreDictManager.java | 2 +- .../java/com/hbm/inventory/material/Mats.java | 3 +- src/main/java/com/hbm/items/ModItems.java | 4 -- .../com/hbm/items/block/ItemBlockRemap.java | 34 +++++++++++++++ .../java/com/hbm/main/CraftingManager.java | 8 ++-- .../block/RenderStandardStraightRail.java | 2 + src/main/resources/assets/hbm/lang/de_DE.lang | 3 ++ src/main/resources/assets/hbm/lang/en_US.lang | 3 ++ .../hbm/textures/blocks/block_cdalloy.png | Bin 0 -> 288 bytes .../hbm/textures/blocks/block_tcalloy.png | Bin 0 -> 265 bytes 15 files changed, 147 insertions(+), 12 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/BlockRemap.java create mode 100644 src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorDebris.java create mode 100644 src/main/java/com/hbm/items/block/ItemBlockRemap.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/block_cdalloy.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/block_tcalloy.png diff --git a/changelog b/changelog index 5dade27bb..494b463ba 100644 --- a/changelog +++ b/changelog @@ -3,6 +3,7 @@ * A new variant of reinforced glass with higher blast resistance * Chlorocalcite * A new bedrock ore, the powder can be heated in the combination furnace to make calcium and chlorine +* Blocks for cadmium, TC and CD alloy ## Changed * Updated russian localization diff --git a/src/main/java/com/hbm/blocks/BlockRemap.java b/src/main/java/com/hbm/blocks/BlockRemap.java new file mode 100644 index 000000000..c9d66894f --- /dev/null +++ b/src/main/java/com/hbm/blocks/BlockRemap.java @@ -0,0 +1,41 @@ +package com.hbm.blocks; + +import java.util.ArrayList; +import java.util.Random; + +import com.hbm.lib.RefStrings; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; + +public class BlockRemap extends Block implements ILookOverlay { + + public Block remapBlock; + public int remapMeta; + + protected BlockRemap(Block block, int meta) { + super(Material.tnt); + this.remapBlock = block; + this.remapMeta = meta; + this.setTickRandomly(true); + } + + @Override + public Block setBlockName(String name) { + super.setBlockName(name); + this.setBlockTextureName(RefStrings.MODID + ":" + name); + return this; + } + + @Override + public void updateTick(World world, int x, int y, int z, Random rand) { + world.setBlock(x, y, z, this.remapBlock, this.remapMeta, 2); + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + ILookOverlay.printGeneric(event, "Compatibility block, will convert on update tick.", 0xffff00, 0x404000, new ArrayList()); + } +} diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index a4d55f383..c296c8153 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -33,6 +33,7 @@ import net.minecraft.block.Block; import net.minecraft.block.BlockFalling; import net.minecraft.block.material.*; import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.ItemBlock; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidRegistry; @@ -207,8 +208,11 @@ public class ModBlocks { public static Block block_aluminium; public static Block block_fluorite; public static Block block_steel; + public static Block block_tcalloy; + public static Block block_cdalloy; public static Block block_lead; public static Block block_bismuth; + public static Block block_cadmium; public static Block block_coltan; public static Block block_tantalium; public static Block block_niobium; @@ -1395,8 +1399,11 @@ public class ModBlocks { block_aluminium = new BlockBeaconable(Material.iron).setBlockName("block_aluminium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_aluminium"); block_fluorite = new BlockBeaconable(Material.iron).setBlockName("block_fluorite").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_fluorite"); block_steel = new BlockBeaconable(Material.iron).setBlockName("block_steel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); + block_tcalloy = new BlockBeaconable(Material.iron).setBlockName("block_tcalloy").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_tcalloy"); + block_cdalloy = new BlockBeaconable(Material.iron).setBlockName("block_cdalloy").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_cdalloy"); block_lead = new BlockBeaconable(Material.iron).setBlockName("block_lead").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":block_lead"); block_bismuth = new BlockBeaconable(Material.iron).setBlockName("block_bismuth").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":block_bismuth"); + block_cadmium = new BlockBeaconable(Material.iron).setBlockName("block_cadmium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":block_cadmium"); block_coltan = new BlockBeaconable(Material.iron).setBlockName("block_coltan").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":block_coltan"); block_tantalium = new BlockBeaconable(Material.iron).setBlockName("block_tantalium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":block_tantalium"); block_niobium = new BlockBeaconable(Material.iron).setBlockName("block_niobium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(30.0F); @@ -2533,8 +2540,11 @@ public class ModBlocks { GameRegistry.registerBlock(block_beryllium, block_beryllium.getUnlocalizedName()); GameRegistry.registerBlock(block_cobalt, block_cobalt.getUnlocalizedName()); GameRegistry.registerBlock(block_steel, block_steel.getUnlocalizedName()); + GameRegistry.registerBlock(block_tcalloy, block_tcalloy.getUnlocalizedName()); + GameRegistry.registerBlock(block_cdalloy, block_cdalloy.getUnlocalizedName()); GameRegistry.registerBlock(block_lead, block_lead.getUnlocalizedName()); GameRegistry.registerBlock(block_bismuth, block_bismuth.getUnlocalizedName()); + GameRegistry.registerBlock(block_cadmium, block_cadmium.getUnlocalizedName()); GameRegistry.registerBlock(block_coltan, block_coltan.getUnlocalizedName()); GameRegistry.registerBlock(block_tantalium, block_tantalium.getUnlocalizedName()); GameRegistry.registerBlock(block_niobium, block_niobium.getUnlocalizedName()); @@ -3451,7 +3461,12 @@ public class ModBlocks { GameRegistry.registerBlock(b, ItemBlockBase.class, b.getUnlocalizedName()); } - /*private static void register(Block b, Class clazz) { + private static void register(Block b, Class clazz) { GameRegistry.registerBlock(b, clazz, b.getUnlocalizedName()); - }*/ + } + + public static void addRemap(String unloc, Block block, int meta) { + Block remap = new BlockRemap(block, meta).setBlockName(unloc); + register(remap, ItemBlockRemap.class); + } } diff --git a/src/main/java/com/hbm/crafting/MineralRecipes.java b/src/main/java/com/hbm/crafting/MineralRecipes.java index 039775e82..039644891 100644 --- a/src/main/java/com/hbm/crafting/MineralRecipes.java +++ b/src/main/java/com/hbm/crafting/MineralRecipes.java @@ -51,6 +51,9 @@ public class MineralRecipes { add1To9Pair(ModBlocks.block_polymer, ModItems.ingot_polymer); add1To9Pair(ModBlocks.block_bakelite, ModItems.ingot_bakelite); add1To9Pair(ModBlocks.block_rubber, ModItems.ingot_rubber); + add1To9Pair(ModBlocks.block_cadmium, ModItems.ingot_cadmium); + add1To9Pair(ModBlocks.block_tcalloy, ModItems.ingot_tcalloy); + add1To9Pair(ModBlocks.block_cdalloy, ModItems.ingot_cdalloy); for(int i = 0; i < EnumCokeType.values().length; i++) { add1To9PairSameMeta(Item.getItemFromBlock(ModBlocks.block_coke), ModItems.coke, i); diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorDebris.java b/src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorDebris.java new file mode 100644 index 000000000..3210eff6e --- /dev/null +++ b/src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorDebris.java @@ -0,0 +1,36 @@ +package com.hbm.explosion.vanillant.standard; + +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.interfaces.IBlockMutator; +import com.hbm.inventory.RecipesCommon.MetaBlock; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class BlockMutatorDebris implements IBlockMutator { + + protected MetaBlock metaBlock; + + public BlockMutatorDebris(Block block) { + this(block, 0); + } + + public BlockMutatorDebris(Block block, int meta) { + this.metaBlock = new MetaBlock(block, meta); + } + + @Override public void mutatePre(ExplosionVNT explosion, Block block, int meta, int x, int y, int z) { } + + @Override public void mutatePost(ExplosionVNT explosion, int x, int y, int z) { + + World world = explosion.world; + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + Block b = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ); + if(b.isNormalCube()) { + world.setBlock(x, y, z, metaBlock.block, metaBlock.meta, 3); + return; + } + } + } +} diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 0f1db9e1a..53138c7ee 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -352,7 +352,7 @@ public class OreDictManager { BI .nugget(nugget_bismuth) .ingot(ingot_bismuth) .dust(powder_bismuth); AS .nugget(nugget_arsenic) .ingot(ingot_arsenic); CA .ingot(ingot_calcium) .dust(powder_calcium); - CD .ingot(ingot_cadmium) .dust(powder_cadmium); + CD .ingot(ingot_cadmium) .dust(powder_cadmium) .block(block_cadmium); TA .nugget(nugget_tantalium) .gem(gem_tantalium) .ingot(ingot_tantalium) .dust(powder_tantalium) .block(block_tantalium); COLTAN .ingot(fragment_coltan) .dust(powder_coltan_ore) .block(block_coltan) .ore(ore_coltan); NB .nugget(fragment_niobium) .ingot(ingot_niobium) .dustSmall(powder_niobium_tiny) .dust(powder_niobium) .block(block_niobium); diff --git a/src/main/java/com/hbm/inventory/material/Mats.java b/src/main/java/com/hbm/inventory/material/Mats.java index ffb7d3516..58ccaad64 100644 --- a/src/main/java/com/hbm/inventory/material/Mats.java +++ b/src/main/java/com/hbm/inventory/material/Mats.java @@ -99,7 +99,7 @@ public class Mats { public static final NTMMaterial MAT_TUNGSTEN = makeSmeltable(7400, W, 0x868686, 0x000000, 0x977474).setShapes(WIRE, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_ALUMINIUM = makeSmeltable(1300, AL, 0xFFFFFF, 0x344550, 0xD0B8EB).setShapes(WIRE, INGOT, DUST, PLATE, CASTPLATE, BLOCK); public static final NTMMaterial MAT_LEAD = makeSmeltable(8200, PB, 0xA6A6B2, 0x03030F, 0x646470).setShapes(NUGGET, INGOT, DUST, PLATE, CASTPLATE, BLOCK); - public static final NTMMaterial MAT_BISMUTH = makeSmeltable(8300, df("Bismuth"), 0xB200FF).setShapes(NUGGET, BILLET, INGOT, DUST, BLOCK); + public static final NTMMaterial MAT_BISMUTH = makeSmeltable(8300, BI, 0xB200FF).setShapes(NUGGET, BILLET, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_ARSENIC = makeSmeltable(3300, AS, 0x6CBABA, 0x242525, 0x558080).setShapes(NUGGET, INGOT); public static final NTMMaterial MAT_TANTALIUM = makeSmeltable(7300, TA, 0xFFFFFF, 0x1D1D36, 0xA89B74).setShapes(NUGGET, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_NIOBIUM = makeSmeltable(4100, NB, 0xB76EC9, 0x2F2D42, 0xD576B1).setShapes(NUGGET, DUSTTINY, INGOT, DUST, BLOCK); @@ -107,6 +107,7 @@ public class Mats { public static final NTMMaterial MAT_COBALT = makeSmeltable(2700, CO, 0xC2D1EE, 0x353554, 0x8F72AE).setShapes(NUGGET, DUSTTINY, BILLET, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_BORON = makeSmeltable(500, B, 0xBDC8D2, 0x29343E, 0xAD72AE).setShapes(DUSTTINY, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_CADMIUM = makeSmeltable(4800, CD, 0xFFFADE, 0x350000, 0xA85600).setShapes(INGOT, DUST); + public static final NTMMaterial MAT_OSMIRIDIUM = makeSmeltable(7699, OSMIRIDIUM, 0xDBE3EF, 0x7891BE, 0xACBDD9).setShapes(NUGGET, INGOT, CASTPLATE); //Alloys public static final NTMMaterial MAT_STEEL = makeSmeltable(_AS + 0, STEEL, 0xAFAFAF, 0x0F0F0F, 0x4A4A4A).setShapes(DUSTTINY, INGOT, DUST, PLATE, CASTPLATE, BLOCK); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 5b97238fc..fc5d18874 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -8107,10 +8107,6 @@ public class ModItems { addRemap("gas_lpg", gas_full, Fluids.LPG.getID()); } - public static void addRemap(String unloc, int removoingTheseWouldTakeForever, Item item, Enum sub) { - addRemap(unloc, item, sub.ordinal()); - } - public static void addRemap(String unloc, Item item, Enum sub) { addRemap(unloc, item, sub.ordinal()); } diff --git a/src/main/java/com/hbm/items/block/ItemBlockRemap.java b/src/main/java/com/hbm/items/block/ItemBlockRemap.java new file mode 100644 index 000000000..bda77f379 --- /dev/null +++ b/src/main/java/com/hbm/items/block/ItemBlockRemap.java @@ -0,0 +1,34 @@ +package com.hbm.items.block; + +import java.util.List; + +import com.hbm.blocks.BlockRemap; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; + +public class ItemBlockRemap extends ItemBlockBase { + + public ItemBlockRemap(Block block) { + super(block); + } + + @Override + public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean held) { + + if(!(entity instanceof EntityPlayer) || !(this.field_150939_a instanceof BlockRemap)) return; + + EntityPlayer player = (EntityPlayer) entity; + BlockRemap remap = (BlockRemap) this.field_150939_a; + player.inventory.setInventorySlotContents(slot, new ItemStack(remap.remapBlock, stack.stackSize, remap.remapMeta)); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + list.add(EnumChatFormatting.RED + "Compatibility item, hold in inventory to convert!"); + } +} diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 3fb520d1a..a37150a43 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -764,10 +764,10 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.ams_catalyst_schrabidium, 1), new Object[] { ModItems.ams_catalyst_blank, ModItems.rune_dagaz, ModItems.rune_hagalaz, ModItems.rune_thurisaz, ModItems.rune_thurisaz, SA326.dust(), SA326.dust(), SA326.dust(), SA326.dust() }); addShapelessAuto(new ItemStack(ModItems.ams_catalyst_dineutronium, 1), new Object[] { ModItems.ams_catalyst_blank, ModItems.rune_hagalaz, ModItems.rune_hagalaz, ModItems.rune_thurisaz, ModItems.rune_thurisaz, DNT.dust(), DNT.dust(), DNT.dust(), DNT.dust() }); addRecipeAuto(new ItemStack(ModBlocks.dfc_core, 1), new Object[] { "DLD", "LML", "DLD", 'D', ModItems.ingot_bismuth, 'L', DNT.block(), 'M', KEY_CIRCUIT_BISMUTH }); - addRecipeAuto(new ItemStack(ModBlocks.dfc_emitter, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.ingot(), 'D', ModItems.plate_desh, 'T', ModBlocks.machine_transformer_dnt, 'X', ModItems.crystal_xen, 'L', ModItems.sat_head_laser }); - addRecipeAuto(new ItemStack(ModBlocks.dfc_receiver, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.ingot(), 'D', ModItems.plate_desh, 'T', ModBlocks.machine_transformer_dnt, 'X', new ItemStack(ModBlocks.sellafield, 1, 5), 'L', ModItems.hull_small_steel }); - addRecipeAuto(new ItemStack(ModBlocks.dfc_injector, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.ingot(), 'D', CMB.plate(), 'T', ModBlocks.machine_fluidtank, 'X', ModItems.motor, 'L', ModItems.pipes_steel }); - addRecipeAuto(new ItemStack(ModBlocks.dfc_stabilizer, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.ingot(), 'D', ModItems.plate_desh, 'T', ModItems.singularity_spark, 'X', ModItems.magnet_circular, 'L', ModItems.crystal_xen }); + addRecipeAuto(new ItemStack(ModBlocks.dfc_emitter, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateCast(), 'D', ModItems.plate_desh, 'T', ModBlocks.machine_transformer_dnt, 'X', ModItems.crystal_xen, 'L', ModItems.sat_head_laser }); + addRecipeAuto(new ItemStack(ModBlocks.dfc_receiver, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateCast(), 'D', ModItems.plate_desh, 'T', ModBlocks.machine_transformer_dnt, 'X', new ItemStack(ModBlocks.sellafield, 1, 5), 'L', ModItems.hull_small_steel }); + addRecipeAuto(new ItemStack(ModBlocks.dfc_injector, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateCast(), 'D', CMB.plate(), 'T', ModBlocks.machine_fluidtank, 'X', ModItems.motor, 'L', ModItems.pipes_steel }); + addRecipeAuto(new ItemStack(ModBlocks.dfc_stabilizer, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateCast(), 'D', ModItems.plate_desh, 'T', ModItems.singularity_spark, 'X', ModItems.magnet_circular, 'L', ModItems.crystal_xen }); addRecipeAuto(new ItemStack(ModBlocks.barrel_plastic, 1), new Object[] { "IPI", "I I", "IPI", 'I', ModItems.plate_polymer, 'P', AL.plate() }); addRecipeAuto(new ItemStack(ModBlocks.barrel_iron, 1), new Object[] { "IPI", "I I", "IPI", 'I', IRON.plate(), 'P', IRON.ingot() }); addShapelessAuto(new ItemStack(ModBlocks.barrel_iron, 1), new Object[] { ModBlocks.barrel_corroded, ANY_TAR.any() }); diff --git a/src/main/java/com/hbm/render/block/RenderStandardStraightRail.java b/src/main/java/com/hbm/render/block/RenderStandardStraightRail.java index 1dafab520..5108aaea2 100644 --- a/src/main/java/com/hbm/render/block/RenderStandardStraightRail.java +++ b/src/main/java/com/hbm/render/block/RenderStandardStraightRail.java @@ -22,6 +22,8 @@ public class RenderStandardStraightRail implements ISimpleBlockRenderingHandler Tessellator tessellator = Tessellator.instance; GL11.glTranslated(0, -0.0625, 0); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(0.3, 0.3, 0.3); tessellator.startDrawingQuads(); ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_straight, block.getIcon(1, 0), tessellator, 0, false); tessellator.draw(); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index f31fb87d5..3667c7753 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -3432,6 +3432,7 @@ tile.block_beryllium.name=Berylliumblock tile.block_bismuth.name=Bismutblock tile.block_boron.name=Borblock tile.block_c4.name=C4-Block +tile.block_cadmium.name=Cadmiumblock tile.block_cap_fritz.name=Fritz-Kola Kronkorkenblock tile.block_cap_korl.name=Korl Kronkorkenblock tile.block_cap_nuka.name=Nuka Kronkorkenblock @@ -3440,6 +3441,7 @@ tile.block_cap_rad.name=S~Cola RAD Kronkorkenblock tile.block_cap_sparkle.name=S~Cola Kronkorkenblock tile.block_cap_star.name=Sunset Sarsaparilla Kronkorkenblock tile.block_cap_sunset.name=Sunset Sarsaparilla Sternkronkorkenblock +tile.block_cdalloy.name=Cadmiumstahlblock tile.block_cobalt.name=Kobaltblock tile.block_coke.coal.name=Kohlekoksblock tile.block_coke.lignite.name=Braunkohlekoksblock @@ -3507,6 +3509,7 @@ tile.block_starmetal.name=§9Sternenmetallblock§r tile.block_steel.name=Stahlblock tile.block_sulfur.name=Schwefelblock tile.block_tantalium.name=Tantalblock +tile.block_tcalloy.name=Technetiumstahlblock tile.block_thorium.name=Thorium-232-Block tile.block_thorium_fuel.name=Thoriumkernbrennstoffblock tile.block_titanium.name=Titanblock diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 6ec00e3fb..39d246706 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -4240,6 +4240,7 @@ tile.block_beryllium.name=Block of Beryllium tile.block_bismuth.name=Block of Bismuth tile.block_boron.name=Block of Boron tile.block_c4.name=Block of C-4 +tile.block_cadmium.name=Block of Cadmium tile.block_cap_fritz.name=Block of Fritz Cola Bottle Caps tile.block_cap_korl.name=Block of Korl Bottle Caps tile.block_cap_nuka.name=Block of Nuka Cola Bottle Caps @@ -4248,6 +4249,7 @@ tile.block_cap_rad.name=Block of S~Cola RAD Bottle Caps tile.block_cap_sparkle.name=Block of S~Cola Bottle Caps tile.block_cap_star.name=Block of Sunset Sarsaparilla Star Caps tile.block_cap_sunset.name=Block of Sunset Sarsaparilla Bottle Caps +tile.block_cdalloy.name=Block of Cadmium Steel tile.block_cobalt.name=Block of Cobalt tile.block_coke.coal.name=Block of Coal Coke tile.block_coke.lignite.name=Block of Lignite Coke @@ -4319,6 +4321,7 @@ tile.block_starmetal.name=§9Block of Starmetal§r tile.block_steel.name=Block of Steel tile.block_sulfur.name=Block of Sulfur tile.block_tantalium.name=Block of Tantalium +tile.block_tcalloy.name=Block of Technetium Steel tile.block_thorium.name=Block of Thorium-232 tile.block_thorium_fuel.name=Block of Thorium Fuel tile.block_titanium.name=Block of Titanium diff --git a/src/main/resources/assets/hbm/textures/blocks/block_cdalloy.png b/src/main/resources/assets/hbm/textures/blocks/block_cdalloy.png new file mode 100644 index 0000000000000000000000000000000000000000..4b93264c69ece20788d3cf6aa2f3f4fade29aabe GIT binary patch literal 288 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfWD za@+56*B|>_$I1}#IDq|tRQuVovz9Jh(T{hOS;+->`tCnroB3|#rDs2Mp3XCgy1J2r z+hcOD%>*NM@7(RHm?yF`2vqXa{jrL0dgtl9lFdcV%k&c;)61fJ-Q|2w9;9qy&P?)Q zGf>>zV7hL{(~6=u4XlUOYu)tC6)!g^zaEsI}LW!!UnA0K+) i&T}u#cmAxN{fz0xoF%pMf*u0B$l&Sf=d#Wzp$Pyv8EOOo literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/block_tcalloy.png b/src/main/resources/assets/hbm/textures/blocks/block_tcalloy.png new file mode 100644 index 0000000000000000000000000000000000000000..22fc05fa5155bb986e9ae4b83d59aa3dfd3421eb GIT binary patch literal 265 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfKaSXBO zof_oGcUXbv^Qt&6m$dp|i*T2BYarK*v)iUZo z1P+QFa(Cpe5Iw zT~$Hp^{B8Wu??a6A~B7{%-!J|=B;4!TdcmaSC=J6QN(#;`cdijDco=GZfG_I`h~&M L)z4*}Q$iB}y>n*5 literal 0 HcmV?d00001 From df830d9612592a2248a608d4ed02ba92680d2b05 Mon Sep 17 00:00:00 2001 From: burningwater202 Date: Sat, 3 Jun 2023 13:19:50 -0400 Subject: [PATCH 035/109] :letsfuckingGOOOOO: Y'know I'm a bit of a pane in the glass --- src/main/java/com/hbm/blocks/ModBlocks.java | 5 +- .../hbm/blocks/generic/BlockNTMGlassPane.java | 62 +++++++++--------- .../blocks/generic/BlockNTMGlassPaneRot.java | 28 -------- .../java/com/hbm/main/CraftingManager.java | 2 + src/main/resources/assets/hbm/lang/en_US.lang | 3 + .../textures/blocks/reinforced_glass_pane.png | Bin 0 -> 236 bytes .../blocks/reinforced_glass_pane_edge.png | Bin 0 -> 146 bytes .../blocks/reinforced_laminate_pane_edge.png | Bin 0 -> 140 bytes 8 files changed, 41 insertions(+), 59 deletions(-) delete mode 100644 src/main/java/com/hbm/blocks/generic/BlockNTMGlassPaneRot.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/reinforced_glass_pane.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/reinforced_glass_pane_edge.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/reinforced_laminate_pane_edge.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index c406c9868..32b852431 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -314,6 +314,7 @@ public class ModBlocks { public static Block reinforced_brick; public static Block reinforced_ducrete; public static Block reinforced_glass; + public static Block reinforced_glass_pane; public static Block reinforced_light; public static Block reinforced_sand; public static Block reinforced_lamp_off; @@ -1500,12 +1501,13 @@ public class ModBlocks { reinforced_brick = new BlockGeneric(Material.rock).setBlockName("reinforced_brick").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(8000.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_brick"); reinforced_glass = new BlockNTMGlassCT(0, RefStrings.MODID + ":reinforced_glass", Material.rock).setBlockName("reinforced_glass").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(15.0F).setResistance(200.0F); + reinforced_glass_pane = new BlockNTMGlassPane(1, RefStrings.MODID + ":reinforced_glass_pane",RefStrings.MODID + ":reinforced_glass_pane_edge", Material.rock, false).setBlockName("reinforced_glass_pane").setCreativeTab(MainRegistry.blockTab).setLightOpacity(1).setHardness(15.0F).setResistance(200.0F); reinforced_light = new BlockGeneric(Material.rock).setBlockName("reinforced_light").setCreativeTab(MainRegistry.blockTab).setLightLevel(1.0F).setHardness(15.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_light"); reinforced_sand = new BlockGeneric(Material.rock).setBlockName("reinforced_sand").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(400.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_sand"); reinforced_lamp_off = new ReinforcedLamp(Material.rock, false).setBlockName("reinforced_lamp_off").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_lamp_off"); reinforced_lamp_on = new ReinforcedLamp(Material.rock, true).setBlockName("reinforced_lamp_on").setHardness(15.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_lamp_on"); reinforced_laminate = new BlockNTMGlassCT(1, RefStrings.MODID + ":reinforced_laminate", Material.rock).setBlockName("reinforced_laminate").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(15.0F).setResistance(1000.0F); - reinforced_laminate_pane = new BlockNTMGlassPaneRot(1, RefStrings.MODID + ":reinforced_laminate_pane",RefStrings.MODID + ":reinforced_laminate_pane_edge", Material.rock, false).setBlockName("reinforced_laminate_pane").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(15.0F).setResistance(1000.0F); + reinforced_laminate_pane = new BlockNTMGlassPane(1, RefStrings.MODID + ":reinforced_laminate_pane",RefStrings.MODID + ":reinforced_laminate_pane_edge", Material.rock, false).setBlockName("reinforced_laminate_pane").setCreativeTab(MainRegistry.blockTab).setLightOpacity(1).setHardness(15.0F).setResistance(1000.0F); lamp_tritium_green_off = new ReinforcedLamp(Material.redstoneLight, false).setBlockName("lamp_tritium_green_off").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_green_off"); lamp_tritium_green_on = new ReinforcedLamp(Material.redstoneLight, true).setBlockName("lamp_tritium_green_on").setStepSound(Block.soundTypeGlass).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_green_on"); @@ -2646,6 +2648,7 @@ public class ModBlocks { GameRegistry.registerBlock(asphalt_light, ItemBlockBlastInfo.class, asphalt_light.getUnlocalizedName()); GameRegistry.registerBlock(reinforced_brick, ItemBlockBlastInfo.class, reinforced_brick.getUnlocalizedName()); GameRegistry.registerBlock(reinforced_glass, ItemBlockBlastInfo.class, reinforced_glass.getUnlocalizedName()); + GameRegistry.registerBlock(reinforced_glass_pane, ItemBlockBlastInfo.class, reinforced_glass_pane.getUnlocalizedName()); GameRegistry.registerBlock(reinforced_light, ItemBlockBlastInfo.class, reinforced_light.getUnlocalizedName()); GameRegistry.registerBlock(reinforced_sand, ItemBlockBlastInfo.class, reinforced_sand.getUnlocalizedName()); GameRegistry.registerBlock(reinforced_lamp_off, ItemBlockBlastInfo.class, reinforced_lamp_off.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockNTMGlassPane.java b/src/main/java/com/hbm/blocks/generic/BlockNTMGlassPane.java index c18e300a9..7246191aa 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockNTMGlassPane.java +++ b/src/main/java/com/hbm/blocks/generic/BlockNTMGlassPane.java @@ -1,43 +1,45 @@ package com.hbm.blocks.generic; -import java.util.Random; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.BlockBreakable; import net.minecraft.block.BlockPane; import net.minecraft.block.material.Material; +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.common.util.ForgeDirection; -public class BlockNTMGlassPane extends BlockBreakable { - +public class BlockNTMGlassPane extends BlockPane +{ int renderLayer; boolean doesDrop = false; - public BlockNTMGlassPane(int layer, String name, Material material) { - this(layer, name, material, false); - } - - public BlockNTMGlassPane(int layer, String name, Material material, boolean doesDrop) { - super(name, material, false); + //NOTE when you have eclipse make the constructor for you it *WILL BE 'protected'* so make sure to make this public like below. + /*public BlockNTMGlassPane(String flatFaceTextureName, String rimTextureName, + Material mat, boolean bool) { + super(flatFaceTextureName, rimTextureName, mat, bool); + // TODO Auto-generated constructor stub + this.setLightOpacity(1); + this.opaque = true; + }*/ + + public BlockNTMGlassPane(int layer, String name, String rimTextureName, Material material, boolean doesDrop) { + super(name, rimTextureName, material, false); this.renderLayer = layer; this.doesDrop = doesDrop; + this.opaque = true; + this.setLightOpacity(1); + + } - - public int quantityDropped(Random rand) { - return doesDrop ? 1 : 0; - } - - @SideOnly(Side.CLIENT) - public int getRenderBlockPass() { - return renderLayer; - } - - public boolean renderAsNormalBlock() { - return false; - } - - protected boolean canSilkHarvest() { - return true; - } + + public boolean canPaneConnectTo(IBlockAccess world, int x, int y, int z, ForgeDirection dir) + { + + if (getIdFromBlock(world.getBlock(x,y,z)) == 0) + return false; + else + return true; + + /*return canPaneConnectToBlock(world.getBlock(x, y, z)) || + world.isSideSolid(x, y, z, dir.getOpposite(), false);*/ + + } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockNTMGlassPaneRot.java b/src/main/java/com/hbm/blocks/generic/BlockNTMGlassPaneRot.java deleted file mode 100644 index feead29cb..000000000 --- a/src/main/java/com/hbm/blocks/generic/BlockNTMGlassPaneRot.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.hbm.blocks.generic; - -import net.minecraft.block.BlockPane; -import net.minecraft.block.material.Material; - -public class BlockNTMGlassPaneRot extends BlockPane -{ - int renderLayer; - boolean doesDrop = false; - - //NOTE when you have eclipse make the constructor for you it *WILL BE 'protected'* so make sure to make this public like below. - public BlockNTMGlassPaneRot(String flatFaceTextureName, String rimTextureName, - Material mat, boolean bool) { - super(flatFaceTextureName, rimTextureName, mat, bool); - // TODO Auto-generated constructor stub - - this.opaque = true; - } - - public BlockNTMGlassPaneRot(int layer, String name, String rimTextureName, Material material, boolean doesDrop) { - super(name, rimTextureName, material, false); - this.renderLayer = layer; - this.doesDrop = doesDrop; - this.opaque = true; - this.setLightOpacity(1); - } - -} diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 1b8d0b48a..407b6574d 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -433,6 +433,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.reinforced_brick), 4), new Object[] { "FBF", "BFB", "FBF", 'F', Blocks.iron_bars, 'B', ModBlocks.brick_concrete }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.brick_compound), 4), new Object[] { "FBF", "BTB", "FBF", 'F', ModItems.bolt_tungsten, 'B', ModBlocks.reinforced_brick, 'T', ANY_TAR.any() }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.reinforced_glass), 4), new Object[] { "FBF", "BFB", "FBF", 'F', Blocks.iron_bars, 'B', Blocks.glass }); + addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.reinforced_glass_pane), 16), new Object[] { " ", "GGG", "GGG", 'G', ModBlocks.reinforced_glass}); + addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.reinforced_laminate_pane), 16), new Object[] { " ", "LLL", "LLL", 'L', ModBlocks.reinforced_laminate}); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.reinforced_light), 1), new Object[] { "FFF", "FBF", "FFF", 'F', Blocks.iron_bars, 'B', Blocks.glowstone }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.reinforced_lamp_off), 1), new Object[] { "FFF", "FBF", "FFF", 'F', Blocks.iron_bars, 'B', Blocks.redstone_lamp }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.reinforced_sand), 4), new Object[] { "FBF", "BFB", "FBF", 'F', Blocks.iron_bars, 'B', Blocks.sandstone }); diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 5091ddb4b..c484480eb 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -5010,12 +5010,15 @@ tile.reinforced_brick.name=Reinforced Stone tile.reinforced_brick_stairs.name=Reinforced Stone Stairs tile.reinforced_ducrete.name=Reinforced Ducrete tile.reinforced_glass.name=Reinforced Glass +tile.reinforced_glass_pane.name=Reinforced Glass Pane tile.reinforced_lamp_off.name=Reinforced Lamp tile.reinforced_lamp_on.name=Reinforced Lamp tile.reinforced_light.name=Reinforced Glowstone tile.reinforced_sand.name=Reinforced Sandstone tile.reinforced_stone.name=Dense Stone tile.reinforced_stone_stairs.name=Dense Stone Stairs +tile.reinforced_laminate.name=Reinforced Laminate +tile.reinforced_laminate_pane.name=Reinforced Laminate Pane tile.rejuvinator.name=Rejuvination Device tile.residue.name=Cloud Residue tile.safe.name=Safe diff --git a/src/main/resources/assets/hbm/textures/blocks/reinforced_glass_pane.png b/src/main/resources/assets/hbm/textures/blocks/reinforced_glass_pane.png new file mode 100644 index 0000000000000000000000000000000000000000..157496351ace151f26f32c8a5a1d50b4da1b63cb GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5he4R}c>anMpx``D z7sn8b)2+eLTn7|*KJSn_!2B-gcj;kAuUSi@1g^Q?GC6mxy1w9;#5ZX>zT?u9&fb`F z`Pg(;z6a~2ZZ2ej$;4hW2Fxor2nX${?e$u+h5^t`Axvk(8^nc*> hB%z?{l2r14Rt`~#bs8c}hCr7xc)I$ztaD0e0swQ3T8{t# literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/reinforced_glass_pane_edge.png b/src/main/resources/assets/hbm/textures/blocks/reinforced_glass_pane_edge.png new file mode 100644 index 0000000000000000000000000000000000000000..9c2ff4dd15f23ec7af588f8b1b5e063d45570c96 GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFGn5)5Z Date: Sun, 4 Jun 2023 17:08:11 +0200 Subject: [PATCH 036/109] redid most train physics, pollution handling stuff --- src/main/java/com/hbm/blocks/ModBlocks.java | 4 +- .../hbm/blocks/rail/RailStandardCurve.java | 5 +- .../hbm/entity/train/EntityRailCarBase.java | 261 ++- .../hbm/entity/train/EntityRailCarCargo.java | 22 + .../entity/train/EntityRailCarElectric.java | 6 +- .../entity/train/EntityRailCarRidable.java | 26 +- .../entity/train/TrainCargoTramTrailer.java | 2 +- .../handler/pollution/PollutionHandler.java | 139 ++ .../java/com/hbm/items/special/ItemTrain.java | 2 +- src/main/java/com/hbm/main/ClientProxy.java | 1 + src/main/java/com/hbm/main/MainRegistry.java | 5 + .../com/hbm/main/ModEventHandlerClient.java | 4 +- .../java/com/hbm/main/ResourceManager.java | 1 + .../render/block/RenderStandardCurveRail.java | 70 + .../item/RenderTrainCargoTramTrailer.java | 75 + .../hbm/models/blocks/rail_standard.obj | 1407 +++++++++-------- .../hbm/models/blocks/rail_standard_bend.obj | 982 ++++++++++++ .../blocks/rail_standard_straight.png | Bin 0 -> 467 bytes .../hbm/textures/items/coupling_tool.png | Bin 183 -> 204 bytes 19 files changed, 2262 insertions(+), 750 deletions(-) create mode 100644 src/main/java/com/hbm/handler/pollution/PollutionHandler.java create mode 100644 src/main/java/com/hbm/render/block/RenderStandardCurveRail.java create mode 100644 src/main/resources/assets/hbm/models/blocks/rail_standard_bend.obj create mode 100644 src/main/resources/assets/hbm/textures/blocks/rail_standard_straight.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index c296c8153..b3d95c9c2 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -2136,8 +2136,8 @@ public class ModBlocks { rail_booster = new RailBooster().setBlockName("rail_booster").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_booster"); rail_narrow_straight = new RailNarrowStraight().setBlockName("rail_narrow_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_narrow_neo"); rail_narrow_curve = new RailNarrowCurve().setBlockName("rail_narrow_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_narrow_neo"); - rail_large_straight = new RailStandardStraight().setBlockName("rail_large_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":block_steel"); - rail_large_curve = new RailStandardCurve().setBlockName("rail_large_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":block_steel"); + rail_large_straight = new RailStandardStraight().setBlockName("rail_large_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_curve = new RailStandardCurve().setBlockName("rail_large_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); rail_large_buffer = new RailStandardBuffer().setBlockName("rail_large_buffer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":block_steel"); crate = new BlockCrate(Material.wood).setBlockName("crate").setStepSound(Block.soundTypeWood).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate"); diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java b/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java index 712b395bf..49394f6a8 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java @@ -4,6 +4,7 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.lib.Library; import com.hbm.util.fauxpointtwelve.BlockPos; +import cpw.mods.fml.client.registry.RenderingRegistry; import net.minecraft.block.material.Material; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; @@ -24,9 +25,11 @@ public class RailStandardCurve extends BlockDummyable implements IRailNTM { return null; } + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + @Override public int getRenderType() { - return 0; + return renderID; } @Override diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index 885532850..e5e21d817 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -12,23 +12,32 @@ import com.hbm.blocks.rail.IRailNTM.RailCheckType; import com.hbm.blocks.rail.IRailNTM.RailContext; import com.hbm.blocks.rail.IRailNTM.TrackGauge; import com.hbm.items.ModItems; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.PlayerInformPacket; +import com.hbm.util.ChatBuilder; import com.hbm.util.fauxpointtwelve.BlockPos; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ChatComponentText; import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; public abstract class EntityRailCarBase extends Entity implements ILookOverlay { public LogicalTrainUnit ltu; + public int ltuIndex = 0; public boolean isOnRail = true; private int turnProgress; /* Clientside position that should be approached with smooth interpolation */ @@ -103,13 +112,16 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { if(this.ltu != null) this.ltu.dissolveTrain(); if(neighbor.ltu != null) neighbor.ltu.dissolveTrain(); player.swingItem(); + + player.addChatComponentMessage(new ChatComponentText("Coupled " + this.hashCode() + " (" + closestOwnCoupling.name() + ") to " + neighbor.hashCode() + " (" + closestNeighborCoupling.name() + ")")); + return true; } } } //DEBUG - /*if(this.ltu != null) { + if(this.ltu != null) { String id = Integer.toHexString(ltu.hashCode()); @@ -122,7 +134,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { data.setString("text", id); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, train.posX, train.posY + 1, train.posZ), new TargetPoint(this.dimension, train.posX, train.posY + 1, train.posZ, 50)); } - }*/ + } return false; } @@ -152,7 +164,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { this.setRotation(this.rotationYaw, this.rotationPitch); } - BlockPos anchor = this.getCurentAnchorPos(); + BlockPos anchor = this.getCurrentAnchorPos(); Vec3 frontPos = getRelPosAlongRail(anchor, this.getLengthSpan(), new MoveContext(RailCheckType.FRONT)); Vec3 backPos = getRelPosAlongRail(anchor, -this.getLengthSpan(), new MoveContext(RailCheckType.BACK)); @@ -293,23 +305,51 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { } } - //TODO: rethink this entire concept - /* - * first, figure out which train is the "front" when moving - * if the train is not in motion, reuse the contract ("combine") function we have now - * move the first wagon until either it finishes or bumps into a buffer - * if it derails, continue using the velocity - * then take the second wagon and move it towards the first wagon's collision point, assuming it didn't derail - * continue with all further wagons - * - * step 3 may also do collision checks for other trains, which is good because that's an issue we would have to solve sooner or later - */ - /* Move carts together with links */ - for(LogicalTrainUnit ltu : ltus) ltu.combineWagons(); + //for(LogicalTrainUnit ltu : ltus) ltu.combineWagons(); /* Move carts with unified speed */ - for(LogicalTrainUnit ltu : ltus) ltu.moveTrain(); + //for(LogicalTrainUnit ltu : ltus) ltu.moveTrain(); + + for(LogicalTrainUnit ltu : ltus) { + + double speed = ltu.getTotalSpeed(); + + if(Math.abs(speed) < 0.001) speed = 0; + + if(ltu.trains.length == 1) { + + EntityRailCarBase train = ltu.trains[0]; + + BlockPos anchor = new BlockPos(train.posX, train.posY, train.posZ); + Vec3 newPos = train.getRelPosAlongRail(anchor, speed, new MoveContext(RailCheckType.CORE)); + if(newPos == null) { + train.derail(); + ltu.dissolveTrain(); + continue; + } + train.setPosition(newPos.xCoord, newPos.yCoord, newPos.zCoord); + anchor = train.getCurrentAnchorPos(); + Vec3 frontPos = train.getRelPosAlongRail(anchor, train.getLengthSpan(), new MoveContext(RailCheckType.FRONT)); + Vec3 backPos = train.getRelPosAlongRail(anchor, -train.getLengthSpan(), new MoveContext(RailCheckType.BACK)); + + if(frontPos == null || backPos == null) { + train.derail(); + ltu.dissolveTrain(); + continue; + } else { + ltu.setRenderPos(train, frontPos, backPos); + } + + continue; + } + + if(speed == 0) { + ltu.combineWagons(); + } else { + ltu.moveTrainByApproach(speed); + } + } } /** Returns the amount of blocks that the train should move per tick */ @@ -331,7 +371,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { }*/ /** Returns the "true" position of the train, i.e. the block it wants to snap to */ - public BlockPos getCurentAnchorPos() { + public BlockPos getCurrentAnchorPos() { return new BlockPos(posX, posY, posZ); } @@ -363,7 +403,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { } /** Invisible entities that make up the dynamic bounding structure of the train, moving as the train rotates. */ - public static class BoundingBoxDummyEntity extends Entity { + public static class BoundingBoxDummyEntity extends Entity implements ILookOverlay { private int turnProgress; private double trainX; @@ -428,6 +468,13 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { this.trainZ = posZ; this.turnProgress = turnProg + 2; } + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + Entity e = worldObj.getEntityByID(this.dataWatcher.getWatchableObjectInt(3)); + if(e instanceof EntityRailCarBase) { + ((EntityRailCarBase) e).printHook(event, world, x, y, z); + } + } } public DummyConfig[] getDummies() { @@ -491,37 +538,36 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { public static LogicalTrainUnit generateTrain(EntityRailCarBase train) { List links = new ArrayList(); Set brake = new HashSet(); - links.add(train); - brake.add(train); LogicalTrainUnit ltu = new LogicalTrainUnit(); - if(train.coupledFront == null && train.coupledFront == null) { + if(train.coupledFront == null && train.coupledBack == null) { ltu.trains = new EntityRailCarBase[] {train}; train.ltu = ltu; + train.ltuIndex = 0; return ltu; } - EntityRailCarBase prevCar = train; - EntityRailCarBase nextCar = train.coupledBack == null ? train.coupledFront : train.coupledBack; + EntityRailCarBase current = train; + EntityRailCarBase next = null; - while(nextCar != null) { - links.add(nextCar); - brake.add(nextCar); + do { + next = null; + + if(current.coupledFront != null && !brake.contains(current.coupledFront)) next = current.coupledFront; + if(current.coupledBack != null && !brake.contains(current.coupledBack)) next = current.coupledBack; - EntityRailCarBase currentCar = nextCar; - nextCar = nextCar.coupledBack == prevCar ? nextCar.coupledFront : nextCar.coupledBack; - prevCar = currentCar; + links.add(current); + brake.add(current); - if(brake.contains(nextCar)) { - break; - } - } + current = next; + + } while(next != null); ltu.trains = new EntityRailCarBase[links.size()]; - for(int i = 0; i < ltu.trains.length; i++) { ltu.trains[i] = links.get(i); ltu.trains[i].ltu = ltu; + ltu.trains[i].ltuIndex = i; } return ltu; @@ -531,6 +577,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { public void dissolveTrain() { for(EntityRailCarBase train : trains) { train.ltu = null; + train.ltuIndex = 0; } } @@ -559,23 +606,34 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { } /** Moves one wagon to ne next until the coupling points roughly touch */ - public static void moveWagonTo(EntityRailCarBase prev, EntityRailCarBase next) { - TrainCoupling prevCouple = prev.getCouplingFrom(next); - TrainCoupling nextCouple = next.getCouplingFrom(prev); - Vec3 prevLoc = prev.getCouplingPos(prevCouple); - Vec3 nextLoc = next.getCouplingPos(nextCouple); + public void moveWagonTo(EntityRailCarBase moveTo, EntityRailCarBase moving) { + TrainCoupling prevCouple = moveTo.getCouplingFrom(moving); + TrainCoupling nextCouple = moving.getCouplingFrom(moveTo); + Vec3 prevLoc = moveTo.getCouplingPos(prevCouple); + Vec3 nextLoc = moving.getCouplingPos(nextCouple); Vec3 delta = Vec3.createVectorHelper(prevLoc.xCoord - nextLoc.xCoord, 0, prevLoc.zCoord - nextLoc.zCoord); double len = delta.lengthVector(); - len *= 0.25D; //suspension, causes movements to be less rigid - BlockPos anchor = new BlockPos(next.posX, next.posY, next.posZ); - Vec3 trainPos = Vec3.createVectorHelper(next.posX, next.posY, next.posZ); + len *= 0.75; //suspension, causes movements to be less rigid + BlockPos anchor = new BlockPos(moving.posX, moving.posY, moving.posZ); + Vec3 trainPos = Vec3.createVectorHelper(moving.posX, moving.posY, moving.posZ); float yaw = EntityRailCarBase.generateYaw(prevLoc, nextLoc); - Vec3 newPos = EntityRailCarBase.getRelPosAlongRail(anchor, len, next.getGauge(), next.worldObj, trainPos, yaw, new MoveContext(RailCheckType.CORE)); - next.setPosition(newPos.xCoord, newPos.yCoord, newPos.zCoord); + Vec3 newPos = EntityRailCarBase.getRelPosAlongRail(anchor, len, moving.getGauge(), moving.worldObj, trainPos, yaw, new MoveContext(RailCheckType.CORE)); + moving.setPosition(newPos.xCoord, newPos.yCoord, newPos.zCoord); + anchor = moving.getCurrentAnchorPos(); //reset origin to new position + Vec3 frontPos = moving.getRelPosAlongRail(anchor, moving.getLengthSpan(), new MoveContext(RailCheckType.FRONT)); + Vec3 backPos = moving.getRelPosAlongRail(anchor, -moving.getLengthSpan(), new MoveContext(RailCheckType.BACK)); + + if(frontPos == null || backPos == null) { + moving.derail(); + this.dissolveTrain(); + return; + } else { + setRenderPos(moving, frontPos, backPos); + } } /** Generates the speed of the train, then moves the rain along the rail */ - public void moveTrain() { + @Deprecated public void moveTrain() { EntityRailCarBase prev = trains[0]; TrainCoupling dir = prev.getCouplingFrom(null); @@ -599,11 +657,11 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { } /** Moves the entire train along the rail by a certain speed */ - public void moveTrainBy(double totalSpeed) { + @Deprecated public void moveTrainBy(double totalSpeed) { for(EntityRailCarBase train : this.trains) { - BlockPos anchor = train.getCurentAnchorPos(); + BlockPos anchor = train.getCurrentAnchorPos(); Vec3 corePos = train.getRelPosAlongRail(anchor, totalSpeed, new MoveContext(RailCheckType.CORE)); if(corePos == null) { @@ -612,7 +670,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { return; } else { train.setPosition(corePos.xCoord, corePos.yCoord, corePos.zCoord); - anchor = train.getCurentAnchorPos(); //reset origin to new position + anchor = train.getCurrentAnchorPos(); //reset origin to new position Vec3 frontPos = train.getRelPosAlongRail(anchor, train.getLengthSpan(), new MoveContext(RailCheckType.FRONT)); Vec3 backPos = train.getRelPosAlongRail(anchor, -train.getLengthSpan(), new MoveContext(RailCheckType.BACK)); @@ -632,15 +690,110 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { } } } + + /** Returns the total speed of the LTU, negative if it is backwards compared to the arbitrary "front" wagon */ + public double getTotalSpeed() { + + EntityRailCarBase prev = trains[0]; + double totalSpeed = 0; + double maxSpeed = Double.POSITIVE_INFINITY; + //if the first car is in reverse, flip all subsequent cars as well + boolean reverseTheReverse = prev.getCouplingFrom(null) == TrainCoupling.BACK; + + if(trains.length == 1) { + return prev.getCurrentSpeed(); + } + + for(EntityRailCarBase train : this.trains) { + //if the car's linked indices are the wrong way, it is in reverse and speed applies negatively + boolean reverse = false; + + EntityRailCarBase conFront = train.getCoupledTo(TrainCoupling.FRONT); + EntityRailCarBase conBack = train.getCoupledTo(TrainCoupling.BACK); + + if(conFront != null && conFront.ltuIndex > train.ltuIndex) reverse = true; + if(conBack != null && conBack.ltuIndex < train.ltuIndex) reverse = true; + + reverse ^= reverseTheReverse; + + double speed = train.getCurrentSpeed(); + if(reverse) speed *= -1; + totalSpeed += speed; + maxSpeed = Math.min(maxSpeed, train.getMaxRailSpeed()); + prev = train; + } + + if(Math.abs(totalSpeed) > maxSpeed) { + totalSpeed = maxSpeed * Math.signum(totalSpeed); + } + + return totalSpeed; + } + + /** Determines the "front" wagon based on the movement and moves it, then moves all other wagons towards that */ + public void moveTrainByApproach(double speed) { + boolean forward = speed < 0; + double origSpeed = speed; + speed = Math.abs(speed); + EntityRailCarBase previous = null; + + EntityRailCarBase first = this.trains[0]; + + for(int i = forward ? 0 : this.trains.length - 1; forward ? i < this.trains.length : i >= 0; i += forward ? 1 : -1) { + EntityRailCarBase current = this.trains[i]; + + if(previous == null) { + PacketDispatcher.wrapper.sendToAllAround(new PlayerInformPacket(ChatBuilder.start("" + current.getClass() + " " + origSpeed).color(EnumChatFormatting.RED).flush(), 1), + new TargetPoint(current.dimension, current.posX, current.posY + 1, current.posZ, 50)); + + boolean inReverse = first.getCouplingFrom(null) == current.getCouplingFrom(null); + int sigNum = inReverse ? -1 : 1; + BlockPos anchor = current.getCurrentAnchorPos(); + Vec3 corePos = current.getRelPosAlongRail(anchor, speed * sigNum, new MoveContext(RailCheckType.CORE)); + + if(corePos == null) { + current.derail(); + this.dissolveTrain(); + return; + } else { + current.setPosition(corePos.xCoord, corePos.yCoord, corePos.zCoord); + anchor = current.getCurrentAnchorPos(); //reset origin to new position + Vec3 frontPos = current.getRelPosAlongRail(anchor, current.getLengthSpan(), new MoveContext(RailCheckType.FRONT)); + Vec3 backPos = current.getRelPosAlongRail(anchor, -current.getLengthSpan(), new MoveContext(RailCheckType.BACK)); + + if(frontPos == null || backPos == null) { + current.derail(); + this.dissolveTrain(); + return; + } else { + setRenderPos(current, frontPos, backPos); + } + } + + } else { + this.moveWagonTo(previous, current); + } + + previous = current; + } + } + + /** Uses the front and back bogey positions to set the render pos and angles of a wagon */ + public void setRenderPos(EntityRailCarBase current, Vec3 frontPos, Vec3 backPos) { + current.renderX = (frontPos.xCoord + backPos.xCoord) / 2D; + current.renderY = (frontPos.yCoord + backPos.yCoord) / 2D; + current.renderZ = (frontPos.zCoord + backPos.zCoord) / 2D; + current.prevRotationYaw = current.rotationYaw; + current.rotationYaw = current.movementYaw = generateYaw(frontPos, backPos); + current.motionX = current.rotationYaw / 360D; // hijacking this crap for easy syncing + current.velocityChanged = true; + } } @Override @SideOnly(Side.CLIENT) public void printHook(RenderGameOverlayEvent.Pre event, World world, int x, int y, int z) { - /*List text = new ArrayList(); - text.add("LTU: " + this.ltu); - text.add("Front: " + this.coupledFront); - text.add("Back: " + this.coupledBack); - ILookOverlay.printGeneric(event, this.toString(), 0xffff00, 0x404000, text);*/ //none of this shit is going to work anyway + List text = new ArrayList(); + ILookOverlay.printGeneric(event, this.getClass().getSimpleName() + " " + this.hashCode(), 0xffff00, 0x404000, text); //none of this shit is going to work anyway } } diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarCargo.java b/src/main/java/com/hbm/entity/train/EntityRailCarCargo.java index 2e41f6d4d..31823285b 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarCargo.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarCargo.java @@ -15,6 +15,22 @@ public abstract class EntityRailCarCargo extends EntityRailCarBase implements II public EntityRailCarCargo(World world) { super(world); } + + @Override + protected void entityInit() { + super.entityInit(); + this.dataWatcher.addObject(10, new Integer(0)); + } + + public int countVacantSlots() { + int slots = 0; + + for(int i = 0; i < this.getSizeInventory(); i++) { + if(this.getStackInSlot(i) != null) slots++; + } + + return slots; + } @Override public ItemStack getStackInSlot(int slot) { @@ -37,9 +53,11 @@ public abstract class EntityRailCarCargo extends EntityRailCarBase implements II this.slots[slot] = null; } + if(!this.worldObj.isRemote) this.dataWatcher.updateObject(10, this.countVacantSlots()); return itemstack; } } else { + if(!this.worldObj.isRemote) this.dataWatcher.updateObject(10, this.countVacantSlots()); return null; } } @@ -49,8 +67,10 @@ public abstract class EntityRailCarCargo extends EntityRailCarBase implements II if(this.slots[slot] != null) { ItemStack itemstack = this.slots[slot]; this.slots[slot] = null; + if(!this.worldObj.isRemote) this.dataWatcher.updateObject(10, this.countVacantSlots()); return itemstack; } else { + if(!this.worldObj.isRemote) this.dataWatcher.updateObject(10, this.countVacantSlots()); return null; } } @@ -119,6 +139,8 @@ public abstract class EntityRailCarCargo extends EntityRailCarBase implements II this.slots[j] = ItemStack.loadItemStackFromNBT(nbttagcompound1); } } + + this.dataWatcher.updateObject(10, this.countVacantSlots()); } @Override diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarElectric.java b/src/main/java/com/hbm/entity/train/EntityRailCarElectric.java index 4a6b0bdff..46643b029 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarElectric.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarElectric.java @@ -19,15 +19,17 @@ public abstract class EntityRailCarElectric extends EntityRailCarRidable { public int getChargeSlot() { return 0; } @Override protected void entityInit() { + super.entityInit(); this.dataWatcher.addObject(3, new Integer(0)); } @Override public boolean canAccelerate() { - return this.getPower() >= this.getPowerConsumption(); + return true; + //return this.getPower() >= this.getPowerConsumption(); } @Override public void consumeFuel() { - this.setPower(this.getPower() - this.getPowerConsumption()); + //this.setPower(this.getPower() - this.getPowerConsumption()); } public void setPower(int power) { diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java index 79fd80a13..b7ae2784a 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java @@ -5,7 +5,6 @@ import java.util.List; import com.hbm.blocks.ILookOverlay; import com.hbm.main.MainRegistry; -import com.hbm.util.BobMathUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -109,9 +108,14 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { public int getNearestSeat(EntityPlayer player) { double nearestDist = Double.POSITIVE_INFINITY; - int nearestSeat = -2; + int nearestSeat = -3; Vec3[] seats = getPassengerSeats(); + Vec3 look = player.getLook(2); + look.xCoord += player.posX; + look.yCoord += player.posY + player.eyeHeight - player.yOffset; + look.zCoord += player.posZ; + for(int i = 0; i < seats.length; i++) { Vec3 seat = seats[i]; @@ -120,13 +124,11 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { seat.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); double x = renderX + seat.xCoord; + double y = renderY + seat.yCoord; double z = renderZ + seat.zCoord; - double deltaX = player.posX - x; - double deltaZ = player.posZ - z; - double radians = -Math.atan2(deltaX, deltaZ); - double degrees = MathHelper.wrapAngleTo180_double(radians * 180D / Math.PI - 90); - double dist = Math.abs(BobMathUtil.angularDifference(degrees, player.rotationYaw)); + Vec3 delta = Vec3.createVectorHelper(look.xCoord - x, look.yCoord - y, look.zCoord - z); + double dist = delta.lengthVector(); if(dist < nearestDist) { nearestDist = dist; @@ -138,13 +140,11 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { Vec3 seat = getRiderSeatPosition(); seat.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); double x = renderX + seat.xCoord; + double y = renderY + seat.yCoord; double z = renderZ + seat.zCoord; - double deltaX = player.posX - x; - double deltaZ = player.posZ - z; - double radians = -Math.atan2(deltaX, deltaZ); - double degrees = MathHelper.wrapAngleTo180_double(radians * 180D / Math.PI - 90); - double dist = Math.abs(BobMathUtil.angularDifference(degrees, player.rotationYaw)); + Vec3 delta = Vec3.createVectorHelper(look.xCoord - x, look.yCoord - y, look.zCoord - z); + double dist = delta.lengthVector(); if(dist < nearestDist) { nearestDist = dist; @@ -288,6 +288,6 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { text.add("Front: " + this.coupledFront); text.add("Back: " + this.coupledBack);*/ text.add("Nearest seat: " + this.getNearestSeat(MainRegistry.proxy.me())); - ILookOverlay.printGeneric(event, this.toString(), 0xffff00, 0x404000, text); + ILookOverlay.printGeneric(event, this.getClass().getSimpleName() + " " + this.hashCode(), 0xffff00, 0x404000, text); } } diff --git a/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java b/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java index ffeea5245..afefb1d9a 100644 --- a/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java +++ b/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java @@ -105,7 +105,7 @@ public class TrainCargoTramTrailer extends EntityRailCarCargo implements IGUIPro this.train = train; for(int i = 0; i < 5; i++) { for(int j = 0; j < 9; j++) { - this.addSlotToContainer(new Slot(train, i * 7 + j, 8 + j * 18, 18 + i * 18)); + this.addSlotToContainer(new Slot(train, i * 9 + j, 8 + j * 18, 18 + i * 18)); } } for(int i = 0; i < 3; i++) { diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java new file mode 100644 index 000000000..692ba83a2 --- /dev/null +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -0,0 +1,139 @@ +package com.hbm.handler.pollution; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.util.HashMap; +import java.util.Map.Entry; + +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import net.minecraft.nbt.CompressedStreamTools; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.world.ChunkCoordIntPair; +import net.minecraft.world.World; +import net.minecraft.world.WorldServer; +import net.minecraftforge.event.world.WorldEvent; + +public class PollutionHandler { + + public static final String fileName = "hbmpollution.dat"; + public static HashMap perWorld = new HashMap(); + + @SubscribeEvent + public void onWorldLoad(WorldEvent.Load event) { + if(!event.world.isRemote) { + WorldServer world = (WorldServer) event.world; + String dirPath = getDataDir(world); + + try { + File pollutionFile = new File(dirPath, fileName); + + if(pollutionFile != null) { + + if(pollutionFile.exists()) { + FileInputStream io = new FileInputStream(pollutionFile); + NBTTagCompound data = CompressedStreamTools.readCompressed(io); + io.close(); + perWorld.put(event.world, new PollutionPerWorld(data)); + } else { + perWorld.put(event.world, new PollutionPerWorld()); + } + } + } catch(Exception ex) { + ex.printStackTrace(); + } + } + } + + @SubscribeEvent + public void onWorldUnload(WorldEvent.Unload event) { + if(!event.world.isRemote) perWorld.remove(event.world); + } + + @SubscribeEvent + public void onWorldSave(WorldEvent.Save event) { + if(!event.world.isRemote) { + WorldServer world = (WorldServer) event.world; + String dirPath = getDataDir(world); + + try { + File pollutionFile = new File(dirPath, fileName); + if(!pollutionFile.exists()) pollutionFile.createNewFile(); + NBTTagCompound data = perWorld.get(world).writeToNBT(); + CompressedStreamTools.writeCompressed(data, new FileOutputStream(pollutionFile)); + } catch(Exception ex) { + ex.printStackTrace(); + } + } + } + + public String getDataDir(WorldServer world) { + String dir = world.getSaveHandler().getWorldDirectory().getAbsolutePath(); + + if(world.provider.dimensionId != 0) { + dir += File.separator + "DIM" + world.provider.dimensionId; + } + + dir += File.separator + "data"; + + return dir; + } + + public static class PollutionPerWorld { + public HashMap pollution = new HashMap(); + + public PollutionPerWorld() { } + + public PollutionPerWorld(NBTTagCompound data) { + + NBTTagList list = data.getTagList("entries", 10); + + for(int i = 0; i < list.tagCount(); i++) { + NBTTagCompound nbt = list.getCompoundTagAt(i); + int chunkX = nbt.getInteger("chunkX"); + int chunkZ = nbt.getInteger("chunkZ"); + pollution.put(new ChunkCoordIntPair(chunkX, chunkZ), PollutionData.fromNBT(nbt)); + } + } + + public NBTTagCompound writeToNBT() { + + NBTTagCompound data = new NBTTagCompound(); + + NBTTagList list = new NBTTagList(); + + for(Entry entry : pollution.entrySet()) { + NBTTagCompound nbt = new NBTTagCompound(); + nbt.setInteger("chunkX", entry.getKey().chunkXPos); + nbt.setInteger("chunkZ", entry.getKey().chunkZPos); + entry.getValue().toNBT(nbt); + list.appendTag(nbt); + } + + data.setTag("entries", list); + + return data; + } + } + + public static class PollutionData { + float soot; + float poison; + float heavyMetal; + + public static PollutionData fromNBT(NBTTagCompound nbt) { + PollutionData data = new PollutionData(); + data.soot = nbt.getFloat("soot"); + data.poison = nbt.getFloat("poison"); + data.heavyMetal = nbt.getFloat("heavyMetal"); + return data; + } + + public void toNBT(NBTTagCompound nbt) { + nbt.setFloat("soot", soot); + nbt.setFloat("poison", poison); + nbt.setFloat("heavyMetal", heavyMetal); + } + } +} diff --git a/src/main/java/com/hbm/items/special/ItemTrain.java b/src/main/java/com/hbm/items/special/ItemTrain.java index 62695488a..25dc46ccf 100644 --- a/src/main/java/com/hbm/items/special/ItemTrain.java +++ b/src/main/java/com/hbm/items/special/ItemTrain.java @@ -78,7 +78,7 @@ public class ItemTrain extends ItemEnumMulti { if(train != null && train.getGauge() == ((IRailNTM) b).getGauge(world, x, y, z)) { if(!world.isRemote) { train.setPosition(x + fx, y + fy, z + fz); - BlockPos anchor = train.getCurentAnchorPos(); + BlockPos anchor = train.getCurrentAnchorPos(); train.rotationYaw = entity.rotationYaw; Vec3 corePos = train.getRelPosAlongRail(anchor, 0, new MoveContext(RailCheckType.CORE)); train.setPosition(corePos.xCoord, corePos.yCoord, corePos.zCoord); diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index bd9794aed..3cd7392bc 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -787,6 +787,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerBlockHandler(new RenderNarrowStraightRail()); RenderingRegistry.registerBlockHandler(new RenderNarrowCurveRail()); RenderingRegistry.registerBlockHandler(new RenderStandardStraightRail()); + RenderingRegistry.registerBlockHandler(new RenderStandardCurveRail()); RenderingRegistry.registerBlockHandler(new RenderBlockRotated(ModBlocks.charge_dynamite.getRenderType(), ResourceManager.charge_dynamite)); RenderingRegistry.registerBlockHandler(new RenderBlockRotated(ModBlocks.charge_c4.getRenderType(), ResourceManager.charge_c4)); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 99df0747c..19c93acf9 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -58,6 +58,7 @@ import com.hbm.entity.logic.*; import com.hbm.entity.mob.siege.*; import com.hbm.handler.*; import com.hbm.handler.imc.*; +import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.hazard.HazardRegistry; import com.hbm.inventory.*; @@ -903,6 +904,10 @@ public class MainRegistry { ChunkRadiationManager radiationSystem = new ChunkRadiationManager(); MinecraftForge.EVENT_BUS.register(radiationSystem); FMLCommonHandler.instance().bus().register(radiationSystem); + + PollutionHandler pollution = new PollutionHandler(); + MinecraftForge.EVENT_BUS.register(pollution); + FMLCommonHandler.instance().bus().register(pollution); if(event.getSide() == Side.CLIENT) { HbmKeybinds.register(); diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 31a779355..4a7bbe41f 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -259,12 +259,12 @@ public class ModEventHandlerClient { boolean flip = distanceToCover < 0; if(it == 1) { - Vec3 snap = next = rail.getTravelLocation(world, x, y, z, next.xCoord, next.yCoord, next.zCoord, rot.xCoord, rot.yCoord, rot.zCoord, 0, info); + Vec3 snap = next = rail.getTravelLocation(world, x, y, z, next.xCoord, next.yCoord, next.zCoord, rot.xCoord, rot.yCoord, rot.zCoord, 0, info, new MoveContext(RailCheckType.CORE)); if(i == 0) world.spawnParticle("reddust", snap.xCoord, snap.yCoord + 0.25, snap.zCoord, 0.1, 1, 0.1); } Vec3 prev = next; - next = rail.getTravelLocation(world, x, y, z, prev.xCoord, prev.yCoord, prev.zCoord, rot.xCoord, rot.yCoord, rot.zCoord, distanceToCover, info); + next = rail.getTravelLocation(world, x, y, z, prev.xCoord, prev.yCoord, prev.zCoord, rot.xCoord, rot.yCoord, rot.zCoord, distanceToCover, info, new MoveContext(i == 0 ? RailCheckType.FRONT : RailCheckType.BACK)); distanceToCover = info.overshoot; anchor = info.pos; if(i == 0) world.spawnParticle("reddust", next.xCoord, next.yCoord + 0.25, next.zCoord, 0, distanceToCover != 0 ? 0.5 : 0, 0); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 44716fec9..1bd34ccdb 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1332,6 +1332,7 @@ public class ResourceManager { public static final IModelCustom rail_narrow_straight = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_narrow.obj")); public static final IModelCustom rail_narrow_curve = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_narrow_bend.obj")); public static final IModelCustom rail_standard_straight = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard.obj")); + public static final IModelCustom rail_standard_curve = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_bend.obj")); public static final IModelCustom charge_dynamite = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/charge_dynamite.obj")); public static final IModelCustom charge_c4 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/charge_c4.obj")); diff --git a/src/main/java/com/hbm/render/block/RenderStandardCurveRail.java b/src/main/java/com/hbm/render/block/RenderStandardCurveRail.java new file mode 100644 index 000000000..a238d461d --- /dev/null +++ b/src/main/java/com/hbm/render/block/RenderStandardCurveRail.java @@ -0,0 +1,70 @@ +package com.hbm.render.block; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.rail.RailStandardCurve; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.client.model.obj.WavefrontObject; + +public class RenderStandardCurveRail implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + + GL11.glPushMatrix(); + Tessellator tessellator = Tessellator.instance; + + GL11.glScaled(0.2, 0.2, 0.2); + GL11.glTranslated(2.5, -0.0625, -1.5); + GL11.glRotated(90, 0, 1, 0); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_curve, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + + GL11.glPopMatrix(); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + + int meta = world.getBlockMetadata(x, y, z); + if(meta < 12) return true; + + Tessellator tessellator = Tessellator.instance; + + tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); + tessellator.setColorOpaque_F(1, 1, 1); + + float rotation = 0; + + if(meta == 15) + rotation = 90F / 180F * (float) Math.PI; + if(meta == 12) + rotation = 180F / 180F * (float) Math.PI; + if(meta == 14) + rotation = 270F / 180F * (float) Math.PI; + + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_curve, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return RailStandardCurve.renderID; + } +} diff --git a/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTramTrailer.java b/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTramTrailer.java index e0166ac4a..58d150ea8 100644 --- a/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTramTrailer.java +++ b/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTramTrailer.java @@ -2,10 +2,15 @@ package com.hbm.render.entity.item; import org.lwjgl.opengl.GL11; +import com.hbm.blocks.ModBlocks; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.entity.Render; +import net.minecraft.client.renderer.entity.RenderItem; +import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.entity.Entity; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; public class RenderTrainCargoTramTrailer extends Render { @@ -31,6 +36,76 @@ public class RenderTrainCargoTramTrailer extends Render { ResourceManager.train_cargo_tram_trailer.renderAll(); GL11.glEnable(GL11.GL_CULL_FACE); + int slots = entity.getDataWatcher().getWatchableObjectInt(10); + + if(slots > 0) { + + EntityItem dummy = new EntityItem(entity.worldObj, 0, 0, 0, new ItemStack(ModBlocks.crate)); + dummy.hoverStart = 0.0F; + + RenderItem.renderInFrame = true; + double scale = 2; + GL11.glScaled(scale, scale, scale); + + if(slots <= 5) { + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.0D, 0.375D, 0.0D, 0.0F, 0.0F); + } else if(slots <= 10) { + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.1D, 0.375D, 0.25D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.1D, 0.375D, -0.25D, 0.0F, 0.0F); + } else if(slots <= 15) { + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.1D, 0.375D, 0.0D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.1D, 0.375D, 0.375D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.1D, 0.375D, -0.375D, 0.0F, 0.0F); + } else if(slots <= 20) { + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.2D, 0.375D, 0.3D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.2D, 0.375D, -0.2D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.2D, 0.375D, 0.2D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.2D, 0.375D, -0.3D, 0.0F, 0.0F); + } else if(slots <= 25) { + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.2D, 0.375D, 0.6D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.2D, 0.375D, 0.0D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.2D, 0.375D, -0.5D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.2D, 0.375D, 0.2D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.2D, 0.375D, -0.3D, 0.0F, 0.0F); + } else if(slots <= 30) { + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.2D, 0.375D, 0.6D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.2D, 0.375D, 0.0D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.2D, 0.375D, -0.5D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.2D, 0.375D, 0.5D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.2D, 0.375D, -0.1D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.2D, 0.375D, -0.6D, 0.0F, 0.0F); + } else if(slots <= 35) { + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.2D, 0.375D, 0.4D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.2D, 0.375D, 0.0D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.2D, 0.375D, -0.4D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.2D, 0.375D, 0.3D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.2D, 0.375D, -0.1D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.2D, 0.375D, -0.5D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.0D, 0.6875D, -0.25D, 0.0F, 0.0F); + } else if(slots <= 40) { + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.2D, 0.375D, 0.4D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.2D, 0.375D, 0.0D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.2D, 0.375D, -0.4D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.2D, 0.375D, 0.3D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.2D, 0.375D, -0.1D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.2D, 0.375D, -0.5D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.0D, 0.6875D, -0.25D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.0D, 0.6875D, 0.15D, 0.0F, 0.0F); + } else { + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.2D, 0.375D, 0.4D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.2D, 0.375D, 0.0D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.2D, 0.375D, -0.4D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.2D, 0.375D, 0.3D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.2D, 0.375D, -0.1D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.2D, 0.375D, -0.5D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.0D, 0.6875D, -0.25D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.0D, 0.6875D, 0.15D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.1D, 0.375D, 0.8D, 0.0F, 0.0F); + } + + RenderItem.renderInFrame = false; + } + GL11.glPopMatrix(); } diff --git a/src/main/resources/assets/hbm/models/blocks/rail_standard.obj b/src/main/resources/assets/hbm/models/blocks/rail_standard.obj index 292011e56..0323332c5 100644 --- a/src/main/resources/assets/hbm/models/blocks/rail_standard.obj +++ b/src/main/resources/assets/hbm/models/blocks/rail_standard.obj @@ -1,698 +1,757 @@ -# Blender v2.79 (sub 0) OBJ File: 'rail_standard.blend' +# Blender v2.79 (sub 0) OBJ File: 'rail_standard_straight.blend' # www.blender.org -o Plane +o Plane.001 +v 1.000000 0.062500 -0.187500 +v 1.000000 0.062500 0.187500 +v -1.000000 0.062500 0.187500 +v -1.000000 0.062500 -0.187500 +v -1.000000 0.000000 0.187500 +v 1.000000 0.000000 0.187500 +v -1.000000 0.000000 -0.187500 +v 1.000000 0.000000 -0.187500 +v -1.000000 0.000000 -0.812500 +v 1.000000 0.000000 -0.812500 +v -1.000000 0.000000 -1.187500 +v 1.000000 0.000000 -1.187500 +v -1.000000 0.000000 -1.812500 +v 1.000000 0.000000 -1.812500 +v -1.000000 0.000000 -2.187500 +v 1.000000 0.000000 -2.187500 +v -1.000000 0.000000 2.187500 +v 1.000000 0.000000 2.187500 +v -1.000000 0.000000 1.812500 +v 1.000000 0.000000 1.812500 +v -1.000000 0.000000 1.187500 +v 1.000000 0.000000 1.187500 +v -1.000000 0.000000 0.812500 +v 1.000000 0.000000 0.812500 +v -1.000000 0.062500 -1.187500 +v -1.000000 0.062500 -0.812500 +v 1.000000 0.062500 -0.812500 +v 1.000000 0.062500 -1.187500 +v -1.000000 0.062500 -2.187500 +v -1.000000 0.062500 -1.812500 +v 1.000000 0.062500 -1.812500 +v 1.000000 0.062500 -2.187500 +v -1.000000 0.062500 1.812500 +v -1.000000 0.062500 2.187500 +v 1.000000 0.062500 2.187500 +v 1.000000 0.062500 1.812500 +v -1.000000 0.062500 0.812500 +v -1.000000 0.062500 1.187500 +v 1.000000 0.062500 1.187500 +v 1.000000 0.062500 0.812500 +v -0.812500 0.062500 2.500000 +v 0.812500 0.062500 2.500000 +v -0.812500 0.062500 -2.500000 +v 0.812500 0.062500 -2.500000 +v -0.812500 0.187500 2.500000 +v 0.812500 0.187500 2.500000 +v -0.812500 0.187500 -2.500000 +v 0.812500 0.187500 -2.500000 v 0.750000 0.062500 2.500000 v 0.750000 0.062500 -2.500000 -v -0.750000 0.062500 2.500000 -v -0.750000 0.062500 -2.500000 v 0.750000 0.187500 2.500000 v 0.750000 0.187500 -2.500000 -v -0.750000 0.187500 2.500000 +v -0.750000 0.062500 -2.500000 +v -0.750000 0.062500 2.500000 v -0.750000 0.187500 -2.500000 -v 0.812500 0.062500 2.500000 -v 0.812500 0.062500 -2.500000 -v 0.812500 0.187500 2.500000 -v 0.812500 0.187500 -2.500000 -v -0.812500 0.062500 2.500000 -v -0.812500 0.062500 -2.500000 -v -0.812500 0.187500 2.500000 -v -0.812500 0.187500 -2.500000 -v -1.000000 0.000000 -0.250000 -v 1.000000 0.000000 -0.250000 -v -1.000000 0.000000 0.250000 -v 1.000000 0.000000 0.250000 -v 1.000000 0.062500 -0.250000 -v -1.000000 0.062500 -0.250000 -v 1.000000 0.062500 0.250000 -v -1.000000 0.062500 0.250000 -v -1.000000 0.000000 2.250000 -v 1.000000 0.000000 2.250000 -v -1.000000 0.000000 2.500000 -v 1.000000 0.000000 2.500000 -v 1.000000 0.062500 2.250000 -v -1.000000 0.062500 2.250000 -v 1.000000 0.062500 2.500000 -v -1.000000 0.062500 2.500000 -v -1.000000 0.000000 1.000000 -v 1.000000 0.000000 1.000000 -v -1.000000 0.000000 1.500000 -v 1.000000 0.000000 1.500000 -v 1.000000 0.062500 1.000000 -v -1.000000 0.062500 1.000000 -v 1.000000 0.062500 1.500000 -v -1.000000 0.062500 1.500000 -v -1.000000 0.000000 -2.500000 -v 1.000000 0.000000 -2.500000 -v -1.000000 0.000000 -2.250000 -v 1.000000 0.000000 -2.250000 -v 1.000000 0.062500 -2.500000 -v -1.000000 0.062500 -2.500000 -v 1.000000 0.062500 -2.250000 -v -1.000000 0.062500 -2.250000 -v -1.000000 0.000000 -1.500000 -v 1.000000 0.000000 -1.500000 -v -1.000000 0.000000 -1.000000 -v 1.000000 0.000000 -1.000000 -v 1.000000 0.062500 -1.500000 -v -1.000000 0.062500 -1.500000 -v 1.000000 0.062500 -1.000000 -v -1.000000 0.062500 -1.000000 +v -0.750000 0.187500 2.500000 +v 0.625000 0.062500 2.062500 +v 0.937500 0.062500 2.062500 +v 0.625000 0.062500 1.937500 +v 0.937500 0.062500 1.937500 +v 0.625000 0.125000 2.062500 +v 0.937500 0.125000 2.062500 +v 0.625000 0.125000 1.937500 +v 0.937500 0.125000 1.937500 +v -0.937500 0.062500 2.062500 +v -0.625000 0.062500 2.062500 +v -0.937500 0.062500 1.937500 +v -0.625000 0.062500 1.937500 +v -0.937500 0.125000 2.062500 +v -0.625000 0.125000 2.062500 +v -0.937500 0.125000 1.937500 +v -0.625000 0.125000 1.937500 +v 0.625000 0.062500 1.062500 +v 0.937500 0.062500 1.062500 +v 0.625000 0.062500 0.937500 +v 0.937500 0.062500 0.937500 +v 0.625000 0.125000 1.062500 +v 0.937500 0.125000 1.062500 +v 0.625000 0.125000 0.937500 +v 0.937500 0.125000 0.937500 +v -0.937500 0.062500 1.062500 +v -0.625000 0.062500 1.062500 +v -0.937500 0.062500 0.937500 +v -0.625000 0.062500 0.937500 +v -0.937500 0.125000 1.062500 +v -0.625000 0.125000 1.062500 +v -0.937500 0.125000 0.937500 +v -0.625000 0.125000 0.937500 v 0.625000 0.062500 0.062500 v 0.937500 0.062500 0.062500 v 0.625000 0.062500 -0.062500 v 0.937500 0.062500 -0.062500 -v 0.625000 0.125000 -0.062500 v 0.625000 0.125000 0.062500 v 0.937500 0.125000 0.062500 +v 0.625000 0.125000 -0.062500 v 0.937500 0.125000 -0.062500 v -0.937500 0.062500 0.062500 v -0.625000 0.062500 0.062500 v -0.937500 0.062500 -0.062500 v -0.625000 0.062500 -0.062500 -v -0.937500 0.125000 -0.062500 v -0.937500 0.125000 0.062500 v -0.625000 0.125000 0.062500 +v -0.937500 0.125000 -0.062500 v -0.625000 0.125000 -0.062500 -v 0.625000 0.062500 -1.187500 -v 0.937500 0.062500 -1.187500 -v 0.625000 0.062500 -1.312500 -v 0.937500 0.062500 -1.312500 -v 0.625000 0.125000 -1.312500 -v 0.625000 0.125000 -1.187500 -v 0.937500 0.125000 -1.187500 -v 0.937500 0.125000 -1.312500 -v -0.937500 0.062500 -1.187500 -v -0.625000 0.062500 -1.187500 -v -0.937500 0.062500 -1.312500 -v -0.625000 0.062500 -1.312500 -v -0.937500 0.125000 -1.312500 -v -0.937500 0.125000 -1.187500 -v -0.625000 0.125000 -1.187500 -v -0.625000 0.125000 -1.312500 -v 0.625000 0.062500 2.500000 -v 0.937500 0.062500 2.500000 -v 0.625000 0.062500 2.437500 -v 0.937500 0.062500 2.437500 -v 0.625000 0.125000 2.437500 -v 0.625000 0.125000 2.500000 -v 0.937500 0.125000 2.500000 -v 0.937500 0.125000 2.437500 -v -0.937500 0.062500 2.500000 -v -0.625000 0.062500 2.500000 -v -0.937500 0.062500 2.437500 -v -0.625000 0.062500 2.437500 -v -0.937500 0.125000 2.437500 -v -0.937500 0.125000 2.500000 -v -0.625000 0.125000 2.500000 -v -0.625000 0.125000 2.437500 -v 0.625000 0.062500 1.312500 -v 0.937500 0.062500 1.312500 -v 0.625000 0.062500 1.187500 -v 0.937500 0.062500 1.187500 -v 0.625000 0.125000 1.187500 -v 0.625000 0.125000 1.312500 -v 0.937500 0.125000 1.312500 -v 0.937500 0.125000 1.187500 -v -0.937500 0.062500 1.312500 -v -0.625000 0.062500 1.312500 -v -0.937500 0.062500 1.187500 -v -0.625000 0.062500 1.187500 -v -0.937500 0.125000 1.187500 -v -0.937500 0.125000 1.312500 -v -0.625000 0.125000 1.312500 -v -0.625000 0.125000 1.187500 -v 0.625000 0.062500 -2.437500 -v 0.937500 0.062500 -2.437500 -v 0.625000 0.062500 -2.500000 -v 0.937500 0.062500 -2.500000 -v 0.625000 0.125000 -2.500000 -v 0.625000 0.125000 -2.437500 -v 0.937500 0.125000 -2.437500 -v 0.937500 0.125000 -2.500000 -v -0.937500 0.062500 -2.437500 -v -0.625000 0.062500 -2.437500 -v -0.937500 0.062500 -2.500000 -v -0.625000 0.062500 -2.500000 -v -0.937500 0.125000 -2.500000 -v -0.937500 0.125000 -2.437500 -v -0.625000 0.125000 -2.437500 -v -0.625000 0.125000 -2.500000 -vt 0.750000 1.000000 -vt 0.781249 0.000000 -vt 0.781250 1.000000 -vt 0.875000 1.000000 -vt 0.843750 0.000000 -vt 0.875000 0.000000 -vt 0.781250 1.000000 -vt 0.812499 0.000000 -vt 0.812500 1.000000 -vt 0.468750 0.550000 -vt 0.453125 0.575000 -vt 0.453125 0.550000 -vt 0.968750 0.000000 -vt 0.953125 1.000000 -vt 0.953125 0.000000 -vt 1.000000 0.000000 -vt 0.984375 1.000000 -vt 0.984375 0.000000 -vt 0.531250 0.575000 -vt 0.546875 0.550000 -vt 0.546875 0.575000 -vt 0.843750 1.000000 -vt 0.812500 0.000000 -vt 0.843750 0.000000 -vt 0.656249 0.550000 -vt 0.640624 0.525000 -vt 0.656249 0.525000 -vt 0.656249 0.550000 -vt 0.671874 0.575000 -vt 0.656249 0.575000 -vt 0.953125 1.000000 -vt 0.937500 0.000000 -vt 0.953125 0.000000 -vt 0.984375 1.000000 -vt 0.968750 0.000000 -vt 0.984375 0.000000 -vt 0.375000 0.000000 -vt 0.499999 0.400000 -vt 0.375000 0.400000 -vt 0.250000 0.400000 -vt 0.375000 0.000000 -vt 0.375000 0.400000 -vt 0.593749 0.500000 -vt 0.609374 0.400000 -vt 0.609374 0.500000 -vt 0.359375 0.800000 -vt 0.375000 0.400000 -vt 0.375000 0.800000 -vt 0.562499 0.500000 -vt 0.578124 0.400000 -vt 0.578124 0.500000 -vt 0.312500 0.400000 -vt 0.296875 0.800000 -vt 0.296875 0.400000 -vt 0.187500 0.800000 -vt 0.125000 0.400000 -vt 0.187500 0.400000 -vt 0.062500 0.400000 -vt 0.000000 0.800000 -vt 0.000000 0.400000 -vt 0.406250 0.575000 -vt 0.421875 0.525000 -vt 0.421875 0.575000 -vt 0.390625 0.400000 -vt 0.375000 0.800000 -vt 0.375000 0.400000 -vt 0.421875 0.575000 -vt 0.437500 0.525000 -vt 0.437500 0.575000 -vt 0.218750 0.400000 -vt 0.203125 0.800000 -vt 0.203125 0.400000 -vt 0.125000 0.000000 -vt 0.250000 0.400000 -vt 0.125000 0.400000 -vt 0.624999 0.000000 -vt 0.500000 0.400000 -vt 0.499999 0.000000 -vt 0.609374 0.500000 -vt 0.624999 0.400000 -vt 0.624999 0.500000 -vt 0.250000 0.800000 -vt 0.265625 0.400000 -vt 0.265625 0.800000 -vt 0.578124 0.500000 -vt 0.593749 0.400000 -vt 0.593749 0.500000 -vt 0.281250 0.400000 -vt 0.265625 0.800000 -vt 0.265625 0.400000 -vt 0.125000 0.800000 -vt 0.062500 0.400000 -vt 0.125000 0.400000 -vt 0.937500 0.000000 -vt 0.875000 0.400000 -vt 0.875000 0.000000 -vt 0.390625 0.575000 -vt 0.406250 0.525000 -vt 0.406250 0.575000 -vt 0.203125 0.400000 -vt 0.187500 0.800000 -vt 0.187500 0.400000 -vt 0.437500 0.575000 -vt 0.453125 0.525000 -vt 0.453125 0.575000 -vt 0.359374 0.400000 -vt 0.343750 0.800000 -vt 0.343749 0.400000 -vt 0.749999 0.400000 -vt 0.624999 0.000000 -vt 0.749999 0.000000 -vt 0.000000 0.400000 -vt 0.125000 0.000000 -vt 0.125000 0.400000 -vt 0.624999 0.500000 -vt 0.640624 0.400000 -vt 0.640624 0.500000 -vt 0.250000 0.400000 -vt 0.234375 0.800000 -vt 0.234375 0.400000 -vt 0.312500 0.500000 -vt 0.328125 0.400000 -vt 0.328125 0.500000 -vt 0.296875 0.400000 -vt 0.281250 0.800000 -vt 0.281250 0.400000 -vt 0.453125 0.462500 -vt 0.484375 0.525000 -vt 0.453125 0.525000 -vt 0.468750 0.550000 -vt 0.453125 0.525000 -vt 0.468750 0.525000 -vt 0.703124 0.550000 -vt 0.687499 0.525000 -vt 0.703124 0.525000 -vt 0.531249 0.462500 -vt 0.515625 0.400000 -vt 0.531249 0.400000 -vt 0.640624 0.400000 -vt 0.656249 0.462500 -vt 0.640624 0.462500 -vt 0.421875 0.462500 -vt 0.453125 0.525000 -vt 0.421875 0.525000 -vt 0.687499 0.550000 -vt 0.671874 0.525000 -vt 0.687499 0.525000 -vt 0.484375 0.550000 -vt 0.468750 0.525000 -vt 0.484375 0.525000 -vt 0.515625 0.525000 -vt 0.500000 0.462500 -vt 0.515625 0.462500 -vt 0.546874 0.400000 -vt 0.562499 0.462500 -vt 0.546874 0.462500 -vt 0.421875 0.525000 -vt 0.390625 0.462500 -vt 0.421875 0.462500 -vt 0.484375 0.575000 -vt 0.468750 0.550000 -vt 0.484375 0.550000 -vt 0.531250 0.575000 -vt 0.515625 0.550000 -vt 0.531250 0.550000 -vt 0.656249 0.400000 -vt 0.671874 0.462500 -vt 0.656249 0.462500 -vt 0.531249 0.462500 -vt 0.546874 0.525000 -vt 0.531249 0.525000 -vt 0.484375 0.462500 -vt 0.453125 0.400000 -vt 0.484375 0.400000 -vt 0.671874 0.550000 -vt 0.656249 0.525000 -vt 0.671874 0.525000 -vt 0.546874 0.550000 -vt 0.531249 0.525000 -vt 0.546874 0.525000 -vt 0.593749 0.500000 -vt 0.609374 0.562500 -vt 0.593749 0.562500 -vt 0.546874 0.462500 -vt 0.562499 0.525000 -vt 0.546874 0.525000 -vt 0.624999 0.562500 -vt 0.609374 0.500000 -vt 0.624999 0.500000 -vt 0.578124 0.575000 -vt 0.562499 0.562500 -vt 0.578124 0.562500 -vt 0.624999 0.575000 -vt 0.609374 0.562500 -vt 0.624999 0.562500 -vt 0.531249 0.400000 -vt 0.546874 0.462500 -vt 0.531249 0.462500 -vt 0.703124 0.400000 -vt 0.718749 0.462500 -vt 0.703124 0.462500 -vt 0.640624 0.562500 -vt 0.624999 0.500000 -vt 0.640624 0.500000 -vt 0.328125 0.575000 -vt 0.312500 0.562500 -vt 0.328125 0.562500 -vt 0.656249 0.562500 -vt 0.640624 0.550000 -vt 0.656249 0.550000 -vt 0.671874 0.400000 -vt 0.687499 0.462500 -vt 0.671874 0.462500 -vt 0.687499 0.462500 -vt 0.703124 0.525000 -vt 0.687499 0.525000 -vt 0.453125 0.462500 -vt 0.421875 0.400000 -vt 0.453125 0.400000 -vt 0.500000 0.575000 -vt 0.484375 0.550000 -vt 0.500000 0.550000 -vt 0.515625 0.575000 -vt 0.500000 0.550000 -vt 0.515625 0.550000 -vt 0.640624 0.462500 -vt 0.656249 0.525000 -vt 0.640624 0.525000 -vt 0.312500 0.500000 -vt 0.328125 0.562500 -vt 0.312500 0.562500 -vt 0.421875 0.462500 -vt 0.390625 0.400000 -vt 0.421875 0.400000 -vt 0.687499 0.575000 -vt 0.671874 0.550000 -vt 0.687499 0.550000 -vt 0.515625 0.550000 -vt 0.500000 0.525000 -vt 0.515625 0.525000 -vt 0.656249 0.462500 -vt 0.671874 0.525000 -vt 0.656249 0.525000 -vt 0.671874 0.462500 -vt 0.687499 0.525000 -vt 0.671874 0.525000 -vt 0.578124 0.562500 -vt 0.562499 0.500000 -vt 0.578124 0.500000 -vt 0.609374 0.575000 -vt 0.593749 0.562500 -vt 0.609374 0.562500 -vt 0.640624 0.575000 -vt 0.624999 0.562500 -vt 0.640624 0.562500 -vt 0.703124 0.462500 -vt 0.718749 0.525000 -vt 0.703124 0.525000 -vt 0.515625 0.462500 -vt 0.531249 0.525000 -vt 0.515625 0.525000 -vt 0.593749 0.562500 -vt 0.578124 0.500000 -vt 0.593749 0.500000 -vt 0.593749 0.575000 -vt 0.578124 0.562500 -vt 0.593749 0.562500 -vt 0.703124 0.562500 -vt 0.687499 0.550000 -vt 0.703124 0.550000 -vt 0.687499 0.400000 -vt 0.703124 0.462500 -vt 0.687499 0.462500 -vt 0.500000 0.400000 -vt 0.515625 0.462500 -vt 0.500000 0.462500 -vt 0.749999 0.000000 -vt 0.843750 1.000000 -vt 0.781250 0.000000 -vt 0.468750 0.575000 -vt 0.968750 1.000000 -vt 1.000000 1.000000 -vt 0.531250 0.550000 -vt 0.812500 1.000000 -vt 0.640624 0.550000 -vt 0.671874 0.550000 -vt 0.937500 1.000000 -vt 0.968750 1.000000 -vt 0.499999 0.000000 -vt 0.250000 0.000000 -vt 0.593749 0.400000 -vt 0.359375 0.400000 -vt 0.562499 0.400000 -vt 0.312500 0.800000 -vt 0.125000 0.800000 -vt 0.062500 0.800000 -vt 0.406250 0.525000 -vt 0.390625 0.800000 -vt 0.421875 0.525000 -vt 0.218750 0.800000 -vt 0.250000 0.000000 -vt 0.624999 0.400000 -vt 0.609374 0.400000 -vt 0.250000 0.400000 -vt 0.578124 0.400000 -vt 0.281250 0.800000 -vt 0.062500 0.800000 -vt 0.937500 0.400000 -vt 0.390625 0.525000 -vt 0.203125 0.800000 -vt 0.437500 0.525000 -vt 0.359375 0.800000 -vt 0.624999 0.400000 -vt 0.000000 0.000000 -vt 0.624999 0.400000 -vt 0.250000 0.800000 -vt 0.312500 0.400000 -vt 0.296875 0.800000 -vt 0.484375 0.462500 -vt 0.453125 0.550000 -vt 0.687499 0.550000 -vt 0.515625 0.462500 -vt 0.656249 0.400000 -vt 0.453125 0.462500 -vt 0.671874 0.550000 -vt 0.468750 0.550000 -vt 0.500000 0.525000 -vt 0.562499 0.400000 -vt 0.390625 0.525000 -vt 0.468750 0.575000 -vt 0.515625 0.575000 -vt 0.671874 0.400000 -vt 0.546874 0.462500 -vt 0.453125 0.462500 -vt 0.656249 0.550000 -vt 0.531249 0.550000 -vt 0.609374 0.500000 -vt 0.562499 0.462500 -vt 0.609374 0.562500 -vt 0.562499 0.575000 -vt 0.609374 0.575000 -vt 0.546874 0.400000 -vt 0.718749 0.400000 -vt 0.624999 0.562500 -vt 0.312500 0.575000 -vt 0.640624 0.562500 -vt 0.687499 0.400000 -vt 0.703124 0.462500 -vt 0.421875 0.462500 -vt 0.484375 0.575000 -vt 0.500000 0.575000 -vt 0.656249 0.462500 -vt 0.328125 0.500000 -vt 0.390625 0.462500 -vt 0.671874 0.575000 -vt 0.500000 0.550000 -vt 0.671874 0.462500 -vt 0.687499 0.462500 -vt 0.562499 0.562500 -vt 0.593749 0.575000 -vt 0.624999 0.575000 -vt 0.718749 0.462500 -vt 0.531249 0.462500 -vt 0.578124 0.562500 -vt 0.578124 0.575000 -vt 0.687499 0.562500 -vt 0.703124 0.400000 -vt 0.515625 0.400000 -vn 1.0000 0.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 +v 0.625000 0.062500 -0.937500 +v 0.937500 0.062500 -0.937500 +v 0.625000 0.062500 -1.062500 +v 0.937500 0.062500 -1.062500 +v 0.625000 0.125000 -0.937500 +v 0.937500 0.125000 -0.937500 +v 0.625000 0.125000 -1.062500 +v 0.937500 0.125000 -1.062500 +v -0.937500 0.062500 -0.937500 +v -0.625000 0.062500 -0.937500 +v -0.937500 0.062500 -1.062500 +v -0.625000 0.062500 -1.062500 +v -0.937500 0.125000 -0.937500 +v -0.625000 0.125000 -0.937500 +v -0.937500 0.125000 -1.062500 +v -0.625000 0.125000 -1.062500 +v 0.625000 0.062500 -1.937500 +v 0.937500 0.062500 -1.937500 +v 0.625000 0.062500 -2.062500 +v 0.937500 0.062500 -2.062500 +v 0.625000 0.125000 -1.937500 +v 0.937500 0.125000 -1.937500 +v 0.625000 0.125000 -2.062500 +v 0.937500 0.125000 -2.062500 +v -0.937500 0.062500 -1.937500 +v -0.625000 0.062500 -1.937500 +v -0.937500 0.062500 -2.062500 +v -0.625000 0.062500 -2.062500 +v -0.937500 0.125000 -1.937500 +v -0.625000 0.125000 -1.937500 +v -0.937500 0.125000 -2.062500 +v -0.625000 0.125000 -2.062500 +v -0.812500 0.062500 -1.500000 +v -0.812500 0.062500 -0.500000 +v -0.812500 0.062500 0.500000 +v -0.812500 0.062500 1.500000 +v 0.812500 0.062500 1.500000 +v 0.812500 0.062500 0.500000 +v 0.812500 0.062500 -0.500000 +v 0.812500 0.062500 -1.500000 +v -0.812500 0.187500 -1.500000 +v -0.812500 0.187500 -0.500000 +v -0.812500 0.187500 0.500000 +v -0.812500 0.187500 1.500000 +v 0.812500 0.187500 1.500000 +v 0.812500 0.187500 0.500000 +v 0.812500 0.187500 -0.500000 +v 0.812500 0.187500 -1.500000 +v 0.750000 0.062500 1.500000 +v 0.750000 0.062500 0.500000 +v 0.750000 0.062500 -0.500000 +v 0.750000 0.062500 -1.500000 +v 0.750000 0.187500 1.500000 +v 0.750000 0.187500 0.500000 +v 0.750000 0.187500 -0.500000 +v 0.750000 0.187500 -1.500000 +v -0.750000 0.062500 -1.500000 +v -0.750000 0.062500 -0.500000 +v -0.750000 0.062500 0.500000 +v -0.750000 0.062500 1.500000 +v -0.750000 0.187500 -1.500000 +v -0.750000 0.187500 -0.500000 +v -0.750000 0.187500 0.500000 +v -0.750000 0.187500 1.500000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.406250 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.718750 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.718750 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.500000 0.718750 +vt 0.406250 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.718750 +vt 0.531250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 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.0000 0.0000 -1.0000 s off -f 8/1/1 3/2/1 4/3/1 -f 1/4/2 6/5/2 2/6/2 -f 12/7/1 9/8/1 10/9/1 -f 12/10/3 2/11/3 6/12/3 -f 11/13/4 6/14/4 5/15/4 -f 10/16/5 1/17/5 2/18/5 -f 9/19/6 5/20/6 1/21/6 -f 13/22/2 16/23/2 14/24/2 -f 4/25/3 16/26/3 8/27/3 -f 7/28/6 13/29/6 3/30/6 -f 8/31/4 15/32/4 7/33/4 -f 3/34/5 14/35/5 4/36/5 -f 18/37/5 19/38/5 17/39/5 -f 24/40/4 21/41/4 22/42/4 -f 24/43/2 17/44/2 19/45/2 -f 22/46/3 18/47/3 17/48/3 -f 21/49/1 20/50/1 18/51/1 -f 23/52/6 19/53/6 20/54/6 -f 26/55/5 27/56/5 25/57/5 -f 32/58/4 29/59/4 30/60/4 -f 32/61/2 25/62/2 27/63/2 -f 30/64/3 26/65/3 25/66/3 -f 29/67/1 28/68/1 26/69/1 -f 31/70/6 27/71/6 28/72/6 -f 34/73/5 35/74/5 33/75/5 -f 40/76/4 37/77/4 38/78/4 -f 40/79/2 33/80/2 35/81/2 -f 38/82/3 34/83/3 33/84/3 -f 37/85/1 36/86/1 34/87/1 -f 39/88/6 35/89/6 36/90/6 -f 42/91/5 43/92/5 41/93/5 -f 48/94/4 45/95/4 46/96/4 -f 48/97/2 41/98/2 43/99/2 -f 46/100/3 42/101/3 41/102/3 -f 45/103/1 44/104/1 42/105/1 -f 47/106/6 43/107/6 44/108/6 -f 50/109/5 51/110/5 49/111/5 -f 56/112/4 53/113/4 54/114/4 -f 56/115/2 49/116/2 51/117/2 -f 54/118/3 50/119/3 49/120/3 -f 53/121/1 52/122/1 50/123/1 -f 55/124/6 51/125/6 52/126/6 -f 63/127/4 61/128/4 62/129/4 -f 60/130/1 63/131/1 58/132/1 -f 57/133/2 61/134/2 59/135/2 -f 59/136/3 64/137/3 60/138/3 -f 58/139/6 62/140/6 57/141/6 -f 71/142/4 69/143/4 70/144/4 -f 68/145/1 71/146/1 66/147/1 -f 65/148/2 69/149/2 67/150/2 -f 67/151/3 72/152/3 68/153/3 -f 66/154/6 70/155/6 65/156/6 -f 79/157/4 77/158/4 78/159/4 -f 76/160/1 79/161/1 74/162/1 -f 73/163/2 77/164/2 75/165/2 -f 75/166/3 80/167/3 76/168/3 -f 74/169/6 78/170/6 73/171/6 -f 87/172/4 85/173/4 86/174/4 -f 84/175/1 87/176/1 82/177/1 -f 81/178/2 85/179/2 83/180/2 -f 83/181/3 88/182/3 84/183/3 -f 82/184/6 86/185/6 81/186/6 -f 95/187/4 93/188/4 94/189/4 -f 92/190/1 95/191/1 90/192/1 -f 89/193/2 93/194/2 91/195/2 -f 91/196/3 96/197/3 92/198/3 -f 90/199/6 94/200/6 89/201/6 -f 103/202/4 101/203/4 102/204/4 -f 100/205/1 103/206/1 98/207/1 -f 97/208/2 101/209/2 99/210/2 -f 99/211/3 104/212/3 100/213/3 -f 98/214/6 102/215/6 97/216/6 -f 111/217/4 109/218/4 110/219/4 -f 108/220/1 111/221/1 106/222/1 -f 105/223/2 109/224/2 107/225/2 -f 107/226/3 112/227/3 108/228/3 -f 106/229/6 110/230/6 105/231/6 -f 119/232/4 117/233/4 118/234/4 -f 116/235/1 119/236/1 114/237/1 -f 113/238/2 117/239/2 115/240/2 -f 115/241/3 120/242/3 116/243/3 -f 114/244/6 118/245/6 113/246/6 -f 127/247/4 125/248/4 126/249/4 -f 124/250/1 127/251/1 122/252/1 -f 121/253/2 125/254/2 123/255/2 -f 123/256/3 128/257/3 124/258/3 -f 122/259/6 126/260/6 121/261/6 -f 135/262/4 133/263/4 134/264/4 -f 132/265/1 135/266/1 130/267/1 -f 129/268/2 133/269/2 131/270/2 -f 131/271/3 136/272/3 132/273/3 -f 130/274/6 134/275/6 129/276/6 -f 8/1/1 7/277/1 3/2/1 -f 1/4/2 5/278/2 6/5/2 -f 12/7/1 11/279/1 9/8/1 -f 12/10/3 10/280/3 2/11/3 -f 11/13/4 12/281/4 6/14/4 -f 10/16/5 9/282/5 1/17/5 -f 9/19/6 11/283/6 5/20/6 -f 13/22/2 15/284/2 16/23/2 -f 4/25/3 14/285/3 16/26/3 -f 7/28/6 15/286/6 13/29/6 -f 8/31/4 16/287/4 15/32/4 -f 3/34/5 13/288/5 14/35/5 -f 18/37/5 20/289/5 19/38/5 -f 24/40/4 23/290/4 21/41/4 -f 24/43/2 22/291/2 17/44/2 -f 22/46/3 21/292/3 18/47/3 -f 21/49/1 23/293/1 20/50/1 -f 23/52/6 24/294/6 19/53/6 -f 26/55/5 28/295/5 27/56/5 -f 32/58/4 31/296/4 29/59/4 -f 32/61/2 30/297/2 25/62/2 -f 30/64/3 29/298/3 26/65/3 -f 29/67/1 31/299/1 28/68/1 -f 31/70/6 32/300/6 27/71/6 -f 34/73/5 36/301/5 35/74/5 -f 40/76/4 39/302/4 37/77/4 -f 40/79/2 38/303/2 33/80/2 -f 38/82/3 37/304/3 34/83/3 -f 37/85/1 39/305/1 36/86/1 -f 39/88/6 40/306/6 35/89/6 -f 42/91/5 44/307/5 43/92/5 -f 48/94/4 47/308/4 45/95/4 -f 48/97/2 46/309/2 41/98/2 -f 46/100/3 45/310/3 42/101/3 -f 45/103/1 47/311/1 44/104/1 -f 47/106/6 48/312/6 43/107/6 -f 50/109/5 52/313/5 51/110/5 -f 56/112/4 55/314/4 53/113/4 -f 56/115/2 54/315/2 49/116/2 -f 54/118/3 53/316/3 50/119/3 -f 53/121/1 55/317/1 52/122/1 -f 55/124/6 56/318/6 51/125/6 -f 63/127/4 64/319/4 61/128/4 -f 60/130/1 64/320/1 63/131/1 -f 57/133/2 62/321/2 61/134/2 -f 59/136/3 61/322/3 64/137/3 -f 58/139/6 63/323/6 62/140/6 -f 71/142/4 72/324/4 69/143/4 -f 68/145/1 72/325/1 71/146/1 -f 65/148/2 70/326/2 69/149/2 -f 67/151/3 69/327/3 72/152/3 -f 66/154/6 71/328/6 70/155/6 -f 79/157/4 80/329/4 77/158/4 -f 76/160/1 80/330/1 79/161/1 -f 73/163/2 78/331/2 77/164/2 -f 75/166/3 77/332/3 80/167/3 -f 74/169/6 79/333/6 78/170/6 -f 87/172/4 88/334/4 85/173/4 -f 84/175/1 88/335/1 87/176/1 -f 81/178/2 86/336/2 85/179/2 -f 83/181/3 85/337/3 88/182/3 -f 82/184/6 87/338/6 86/185/6 -f 95/187/4 96/339/4 93/188/4 -f 92/190/1 96/340/1 95/191/1 -f 89/193/2 94/341/2 93/194/2 -f 91/196/3 93/342/3 96/197/3 -f 90/199/6 95/343/6 94/200/6 -f 103/202/4 104/344/4 101/203/4 -f 100/205/1 104/345/1 103/206/1 -f 97/208/2 102/346/2 101/209/2 -f 99/211/3 101/347/3 104/212/3 -f 98/214/6 103/348/6 102/215/6 -f 111/217/4 112/349/4 109/218/4 -f 108/220/1 112/350/1 111/221/1 -f 105/223/2 110/351/2 109/224/2 -f 107/226/3 109/352/3 112/227/3 -f 106/229/6 111/353/6 110/230/6 -f 119/232/4 120/354/4 117/233/4 -f 116/235/1 120/355/1 119/236/1 -f 113/238/2 118/356/2 117/239/2 -f 115/241/3 117/357/3 120/242/3 -f 114/244/6 119/358/6 118/245/6 -f 127/247/4 128/359/4 125/248/4 -f 124/250/1 128/360/1 127/251/1 -f 121/253/2 126/361/2 125/254/2 -f 123/256/3 125/362/3 128/257/3 -f 122/259/6 127/363/6 126/260/6 -f 135/262/4 136/364/4 133/263/4 -f 132/265/1 136/365/1 135/266/1 -f 129/268/2 134/366/2 133/269/2 -f 131/271/3 133/367/3 136/272/3 -f 130/274/6 135/368/6 134/275/6 +f 2/1/1 4/2/1 3/3/1 +f 7/4/2 6/5/2 5/6/2 +f 11/7/2 10/8/2 9/9/2 +f 15/10/2 14/11/2 13/12/2 +f 19/13/2 18/14/2 17/15/2 +f 23/16/2 22/17/2 21/18/2 +f 27/19/1 25/20/1 26/21/1 +f 31/22/1 29/23/1 30/24/1 +f 35/25/1 33/26/1 34/27/1 +f 39/28/1 37/29/1 38/30/1 +f 17/31/3 33/32/3 19/33/3 +f 10/34/4 26/35/4 9/36/4 +f 18/37/4 34/38/4 17/39/4 +f 12/40/5 27/41/5 10/8/5 +f 20/42/5 35/43/5 18/14/5 +f 11/7/6 28/44/6 12/45/6 +f 5/46/3 4/47/3 7/48/3 +f 19/13/6 36/49/6 20/50/6 +f 13/51/3 29/52/3 15/53/3 +f 6/54/4 3/55/4 5/56/4 +f 21/57/3 37/58/3 23/59/3 +f 14/60/4 30/61/4 13/62/4 +f 8/63/5 2/64/5 6/5/5 +f 22/65/4 38/66/4 21/67/4 +f 16/68/5 31/69/5 14/11/5 +f 7/4/6 1/70/6 8/71/6 +f 24/72/5 39/73/5 22/17/5 +f 15/10/6 32/74/6 16/75/6 +f 9/76/3 25/77/3 11/78/3 +f 23/16/6 40/79/6 24/80/6 +f 149/81/5 42/82/5 141/83/5 +f 145/84/3 43/85/3 137/86/3 +f 49/87/3 157/88/3 153/89/3 +f 46/90/4 49/91/4 42/92/4 +f 48/93/1 160/94/1 152/95/1 +f 42/82/2 153/96/2 141/83/2 +f 44/97/6 52/98/6 48/99/6 +f 53/100/5 165/101/5 161/102/5 +f 45/103/1 168/104/1 148/105/1 +f 43/106/2 161/102/2 137/107/2 +f 47/108/6 53/109/6 43/110/6 +f 41/111/4 56/112/4 45/113/4 +f 61/114/3 59/115/3 57/116/3 +f 63/117/6 60/118/6 59/119/6 +f 62/120/4 57/121/4 58/122/4 +f 64/123/5 58/124/5 60/125/5 +f 61/114/1 64/123/1 63/117/1 +f 69/126/3 67/127/3 65/128/3 +f 71/129/6 68/130/6 67/131/6 +f 70/132/4 65/133/4 66/134/4 +f 72/135/5 66/136/5 68/137/5 +f 69/126/1 72/135/1 71/129/1 +f 77/138/3 75/139/3 73/140/3 +f 79/141/6 76/142/6 75/143/6 +f 78/144/4 73/145/4 74/146/4 +f 80/147/5 74/148/5 76/149/5 +f 77/138/1 80/147/1 79/141/1 +f 85/150/3 83/151/3 81/152/3 +f 87/153/6 84/154/6 83/155/6 +f 86/156/4 81/157/4 82/158/4 +f 88/159/5 82/160/5 84/161/5 +f 85/150/1 88/159/1 87/153/1 +f 93/162/3 91/163/3 89/164/3 +f 95/165/6 92/166/6 91/167/6 +f 94/168/4 89/169/4 90/170/4 +f 96/171/5 90/172/5 92/173/5 +f 93/162/1 96/171/1 95/165/1 +f 101/174/3 99/175/3 97/176/3 +f 103/177/6 100/178/6 99/179/6 +f 102/180/4 97/181/4 98/182/4 +f 104/183/5 98/184/5 100/185/5 +f 101/174/1 104/183/1 103/177/1 +f 109/186/3 107/187/3 105/188/3 +f 111/189/6 108/190/6 107/191/6 +f 110/192/4 105/193/4 106/194/4 +f 112/195/5 106/196/5 108/197/5 +f 109/186/1 112/195/1 111/189/1 +f 117/198/3 115/199/3 113/200/3 +f 119/201/6 116/202/6 115/203/6 +f 118/204/4 113/205/4 114/206/4 +f 120/207/5 114/208/5 116/209/5 +f 117/198/1 120/207/1 119/201/1 +f 125/210/3 123/211/3 121/212/3 +f 127/213/6 124/214/6 123/215/6 +f 126/216/4 121/217/4 122/218/4 +f 128/219/5 122/220/5 124/221/5 +f 125/210/1 128/219/1 127/213/1 +f 133/222/3 131/223/3 129/224/3 +f 135/225/6 132/226/6 131/227/6 +f 134/228/4 129/229/4 130/230/4 +f 136/231/5 130/232/5 132/233/5 +f 133/222/1 136/231/1 135/225/1 +f 140/234/2 54/235/2 41/236/2 +f 139/237/2 164/238/2 140/239/2 +f 138/240/2 163/241/2 139/242/2 +f 137/243/2 162/244/2 138/245/2 +f 145/84/1 55/246/1 47/247/1 +f 146/248/1 165/249/1 145/250/1 +f 147/251/1 166/252/1 146/253/1 +f 148/254/1 167/255/1 147/256/1 +f 164/257/5 56/258/5 54/235/5 +f 163/259/5 168/260/5 164/238/5 +f 162/261/5 167/262/5 163/241/5 +f 161/263/5 166/264/5 162/244/5 +f 144/265/2 50/266/2 44/267/2 +f 143/268/2 156/269/2 144/270/2 +f 142/271/2 155/272/2 143/273/2 +f 141/274/2 154/275/2 142/276/2 +f 149/81/1 51/277/1 46/278/1 +f 150/279/1 157/280/1 149/281/1 +f 151/282/1 158/283/1 150/284/1 +f 152/285/1 159/286/1 151/287/1 +f 156/288/3 52/289/3 50/290/3 +f 155/291/3 160/292/3 156/293/3 +f 154/294/3 159/295/3 155/296/3 +f 153/297/3 158/298/3 154/299/3 +f 45/103/3 140/300/3 41/301/3 +f 148/254/3 139/302/3 140/303/3 +f 147/251/3 138/304/3 139/305/3 +f 146/248/3 137/306/3 138/307/3 +f 48/93/5 144/265/5 44/267/5 +f 152/285/5 143/268/5 144/270/5 +f 151/282/5 142/271/5 143/273/5 +f 150/279/5 141/274/5 142/276/5 +f 2/1/1 1/70/1 4/2/1 +f 7/4/2 8/71/2 6/5/2 +f 11/7/2 12/45/2 10/8/2 +f 15/10/2 16/75/2 14/11/2 +f 19/13/2 20/50/2 18/14/2 +f 23/16/2 24/80/2 22/17/2 +f 27/19/1 28/44/1 25/20/1 +f 31/22/1 32/74/1 29/23/1 +f 35/25/1 36/49/1 33/26/1 +f 39/28/1 40/79/1 37/29/1 +f 17/31/3 34/308/3 33/32/3 +f 10/34/4 27/309/4 26/35/4 +f 18/37/4 35/310/4 34/38/4 +f 12/40/5 28/311/5 27/41/5 +f 20/42/5 36/312/5 35/43/5 +f 11/7/6 25/20/6 28/44/6 +f 5/46/3 3/313/3 4/47/3 +f 19/13/6 33/26/6 36/49/6 +f 13/51/3 30/314/3 29/52/3 +f 6/54/4 2/315/4 3/55/4 +f 21/57/3 38/316/3 37/58/3 +f 14/60/4 31/317/4 30/61/4 +f 8/63/5 1/318/5 2/64/5 +f 22/65/4 39/319/4 38/66/4 +f 16/68/5 32/320/5 31/69/5 +f 7/4/6 4/2/6 1/70/6 +f 24/72/5 40/321/5 39/73/5 +f 15/10/6 29/23/6 32/74/6 +f 9/76/3 26/322/3 25/77/3 +f 23/16/6 37/29/6 40/79/6 +f 149/81/5 46/278/5 42/82/5 +f 145/84/3 47/247/3 43/85/3 +f 49/87/3 51/277/3 157/88/3 +f 46/90/4 51/323/4 49/91/4 +f 48/93/1 52/289/1 160/94/1 +f 42/82/2 49/324/2 153/96/2 +f 44/97/6 50/325/6 52/98/6 +f 53/100/5 55/246/5 165/101/5 +f 45/103/1 56/258/1 168/104/1 +f 43/106/2 53/100/2 161/102/2 +f 47/108/6 55/326/6 53/109/6 +f 41/111/4 54/327/4 56/112/4 +f 61/114/3 63/117/3 59/115/3 +f 63/117/6 64/123/6 60/118/6 +f 62/120/4 61/114/4 57/121/4 +f 64/123/5 62/120/5 58/124/5 +f 61/114/1 62/120/1 64/123/1 +f 69/126/3 71/129/3 67/127/3 +f 71/129/6 72/135/6 68/130/6 +f 70/132/4 69/126/4 65/133/4 +f 72/135/5 70/132/5 66/136/5 +f 69/126/1 70/132/1 72/135/1 +f 77/138/3 79/141/3 75/139/3 +f 79/141/6 80/147/6 76/142/6 +f 78/144/4 77/138/4 73/145/4 +f 80/147/5 78/144/5 74/148/5 +f 77/138/1 78/144/1 80/147/1 +f 85/150/3 87/153/3 83/151/3 +f 87/153/6 88/159/6 84/154/6 +f 86/156/4 85/150/4 81/157/4 +f 88/159/5 86/156/5 82/160/5 +f 85/150/1 86/156/1 88/159/1 +f 93/162/3 95/165/3 91/163/3 +f 95/165/6 96/171/6 92/166/6 +f 94/168/4 93/162/4 89/169/4 +f 96/171/5 94/168/5 90/172/5 +f 93/162/1 94/168/1 96/171/1 +f 101/174/3 103/177/3 99/175/3 +f 103/177/6 104/183/6 100/178/6 +f 102/180/4 101/174/4 97/181/4 +f 104/183/5 102/180/5 98/184/5 +f 101/174/1 102/180/1 104/183/1 +f 109/186/3 111/189/3 107/187/3 +f 111/189/6 112/195/6 108/190/6 +f 110/192/4 109/186/4 105/193/4 +f 112/195/5 110/192/5 106/196/5 +f 109/186/1 110/192/1 112/195/1 +f 117/198/3 119/201/3 115/199/3 +f 119/201/6 120/207/6 116/202/6 +f 118/204/4 117/198/4 113/205/4 +f 120/207/5 118/204/5 114/208/5 +f 117/198/1 118/204/1 120/207/1 +f 125/210/3 127/213/3 123/211/3 +f 127/213/6 128/219/6 124/214/6 +f 126/216/4 125/210/4 121/217/4 +f 128/219/5 126/216/5 122/220/5 +f 125/210/1 126/216/1 128/219/1 +f 133/222/3 135/225/3 131/223/3 +f 135/225/6 136/231/6 132/226/6 +f 134/228/4 133/222/4 129/229/4 +f 136/231/5 134/228/5 130/232/5 +f 133/222/1 134/228/1 136/231/1 +f 140/234/2 164/257/2 54/235/2 +f 139/237/2 163/259/2 164/238/2 +f 138/240/2 162/261/2 163/241/2 +f 137/243/2 161/263/2 162/244/2 +f 145/84/1 165/101/1 55/246/1 +f 146/248/1 166/264/1 165/249/1 +f 147/251/1 167/262/1 166/252/1 +f 148/254/1 168/260/1 167/255/1 +f 164/257/5 168/104/5 56/258/5 +f 163/259/5 167/255/5 168/260/5 +f 162/261/5 166/252/5 167/262/5 +f 161/263/5 165/249/5 166/264/5 +f 144/265/2 156/328/2 50/266/2 +f 143/268/2 155/329/2 156/269/2 +f 142/271/2 154/330/2 155/272/2 +f 141/274/2 153/331/2 154/275/2 +f 149/81/1 157/88/1 51/277/1 +f 150/279/1 158/298/1 157/280/1 +f 151/282/1 159/295/1 158/283/1 +f 152/285/1 160/292/1 159/286/1 +f 156/288/3 160/94/3 52/289/3 +f 155/291/3 159/286/3 160/292/3 +f 154/294/3 158/283/3 159/295/3 +f 153/297/3 157/280/3 158/298/3 +f 45/103/3 148/105/3 140/300/3 +f 148/254/3 147/256/3 139/302/3 +f 147/251/3 146/253/3 138/304/3 +f 146/248/3 145/250/3 137/306/3 +f 48/93/5 152/95/5 144/265/5 +f 152/285/5 151/287/5 143/268/5 +f 151/282/5 150/284/5 142/271/5 +f 150/279/5 149/281/5 141/274/5 diff --git a/src/main/resources/assets/hbm/models/blocks/rail_standard_bend.obj b/src/main/resources/assets/hbm/models/blocks/rail_standard_bend.obj new file mode 100644 index 000000000..23702e62b --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/rail_standard_bend.obj @@ -0,0 +1,982 @@ +# Blender v2.79 (sub 0) OBJ File: 'rail_standard_curve.blend' +# www.blender.org +o Plane.001 +v -1.312500 0.062500 0.500000 +v -1.141243 0.062500 -2.858757 +v -1.312500 0.187500 0.500000 +v -1.141243 0.187500 -2.858757 +v -1.097049 0.062500 -2.902951 +v -1.097049 0.187500 -2.902951 +v -1.250000 0.062500 0.500000 +v -1.250000 0.187500 0.500000 +v -4.500000 0.062500 -2.687500 +v -4.500000 0.062500 -4.312500 +v -4.500000 0.187500 -2.687500 +v -4.500000 0.187500 -4.312500 +v -4.500000 0.062500 -4.250000 +v -4.500000 0.187500 -4.250000 +v -4.500000 0.062500 -2.750000 +v -4.500000 0.187500 -2.750000 +v -2.246097 0.062500 -1.753903 +v -0.550519 0.187500 -2.138958 +v -2.246097 0.187500 -1.753903 +v -0.498553 0.187500 -2.173681 +v -0.498553 0.062500 -2.173681 +v -0.550519 0.062500 -2.138958 +v -2.201903 0.062500 -1.798097 +v -2.201903 0.187500 -1.798097 +v -3.675014 0.062500 -2.578888 +v -3.675014 0.187500 -2.578888 +v -3.658838 0.062500 -2.639259 +v -3.658838 0.187500 -2.639259 +v -2.906250 0.062500 -2.260456 +v -2.906250 0.187500 -2.260456 +v -2.875000 0.062500 -2.314582 +v -2.875000 0.187500 -2.314582 +v -1.739544 0.062500 -1.093750 +v -1.739544 0.187500 -1.093750 +v -1.685418 0.062500 -1.125000 +v -1.685418 0.187500 -1.125000 +v -1.421111 0.062500 -0.324986 +v -1.421111 0.187500 -0.324986 +v -1.360741 0.062500 -0.341162 +v -1.360741 0.187500 -0.341162 +v -3.561128 0.187500 -4.220029 +v -3.561128 0.062500 -4.220029 +v -3.573321 0.187500 -4.158730 +v -3.573321 0.062500 -4.158730 +v -2.658336 0.187500 -3.946170 +v -2.658336 0.062500 -3.946170 +v -2.682254 0.187500 -3.888428 +v -2.682254 0.062500 -3.888428 +v -1.826319 0.187500 -3.501447 +v -1.826319 0.062500 -3.501447 +v -1.861041 0.187500 -3.449481 +v -1.861041 0.062500 -3.449481 +v -0.111573 0.062500 -1.317746 +v -0.053831 0.062500 -1.341664 +v -0.053831 0.187500 -1.341664 +v -0.111573 0.187500 -1.317746 +v 0.158730 0.062500 -0.426678 +v 0.220028 0.062500 -0.438872 +v 0.220028 0.187500 -0.438872 +v 0.158730 0.187500 -0.426678 +v 0.250000 0.062500 0.500000 +v 0.312499 0.062500 0.500000 +v 0.312499 0.187500 0.500000 +v 0.250000 0.187500 0.500000 +v -1.501192 0.000000 0.294317 +v 0.481698 0.000000 0.033265 +v -1.550139 0.000000 -0.077475 +v 0.432751 0.000000 -0.338527 +v -1.550139 0.062500 -0.077475 +v -1.501192 0.062500 0.294317 +v 0.481698 0.062500 0.033265 +v 0.432751 0.062500 -0.338527 +v -1.656608 0.000000 -0.474823 +v 0.191151 0.000000 -1.240190 +v -1.800115 0.000000 -0.821278 +v 0.047645 0.000000 -1.586645 +v -1.800115 0.062500 -0.821278 +v -1.656608 0.062500 -0.474823 +v 0.191151 0.062500 -1.240190 +v 0.047645 0.062500 -1.586645 +v -2.005797 0.000000 -1.177531 +v -0.419090 0.000000 -2.395053 +v -2.234083 0.000000 -1.475038 +v -0.647376 0.000000 -2.692561 +v -2.234083 0.062500 -1.475038 +v -2.005797 0.062500 -1.177531 +v -0.419090 0.062500 -2.395053 +v -0.647376 0.062500 -2.692561 +v -2.524962 0.000000 -1.765917 +v -1.307439 0.000000 -3.352624 +v -2.822469 0.000000 -1.994203 +v -1.604947 0.000000 -3.580910 +v -2.822469 0.062500 -1.994203 +v -2.524962 0.062500 -1.765917 +v -1.307439 0.062500 -3.352624 +v -1.604947 0.062500 -3.580910 +v -3.178722 0.000000 -2.199886 +v -2.413356 0.000000 -4.047645 +v -3.525177 0.000000 -2.343392 +v -2.759810 0.000000 -4.191151 +v -3.525177 0.062500 -2.343392 +v -3.178722 0.062500 -2.199886 +v -2.413356 0.062500 -4.047645 +v -2.759810 0.062500 -4.191151 +v -3.922526 0.000000 -2.449861 +v -3.661473 0.000000 -4.432751 +v -4.294317 0.000000 -2.498808 +v -4.033265 0.000000 -4.481698 +v -4.294317 0.062500 -2.498808 +v -3.922526 0.062500 -2.449861 +v -3.661473 0.062500 -4.432751 +v -4.033265 0.062500 -4.481698 +v 0.387101 0.125000 -0.206438 +v 0.077275 0.125000 -0.165649 +v 0.403417 0.125000 -0.082508 +v 0.093590 0.125000 -0.041718 +v 0.387101 0.062500 -0.206438 +v 0.077275 0.062500 -0.165649 +v 0.403417 0.062500 -0.082508 +v 0.093590 0.062500 -0.041718 +v -1.455542 0.062500 0.162229 +v -1.145715 0.062500 0.121439 +v -1.471858 0.062500 0.038298 +v -1.162031 0.062500 -0.002491 +v -1.455542 0.125000 0.162229 +v -1.145715 0.125000 0.121439 +v -1.471858 0.125000 0.038298 +v -1.162031 0.125000 -0.002491 +v 0.037737 0.125000 -1.447242 +v -0.250975 0.125000 -1.327653 +v 0.085573 0.125000 -1.331757 +v -0.203139 0.125000 -1.212168 +v 0.037737 0.062500 -1.447242 +v -0.250975 0.062500 -1.327653 +v 0.085573 0.062500 -1.331757 +v -0.203139 0.062500 -1.212168 +v -1.646701 0.062500 -0.614226 +v -1.357989 0.062500 -0.733814 +v -1.694537 0.062500 -0.729711 +v -1.405824 0.062500 -0.849299 +v -1.646701 0.125000 -0.614226 +v -1.357989 0.125000 -0.733814 +v -1.694537 0.125000 -0.729711 +v -1.405824 0.125000 -0.849299 +v -0.620866 0.125000 -2.555344 +v -0.868788 0.125000 -2.365106 +v -0.544770 0.125000 -2.456175 +v -0.792693 0.125000 -2.265937 +v -0.620866 0.062500 -2.555344 +v -0.868788 0.062500 -2.365106 +v -0.544770 0.062500 -2.456175 +v -0.792693 0.062500 -2.265937 +v -2.032308 0.062500 -1.314747 +v -1.784385 0.062500 -1.504985 +v -2.108403 0.062500 -1.413917 +v -1.860480 0.062500 -1.604154 +v -2.032308 0.125000 -1.314747 +v -1.784385 0.125000 -1.504985 +v -2.108403 0.125000 -1.413917 +v -1.860480 0.125000 -1.604154 +v -1.543825 0.125000 -3.455230 +v -1.734063 0.125000 -3.207307 +v -1.444656 0.125000 -3.379134 +v -1.634893 0.125000 -3.131212 +v -1.543825 0.062500 -3.455230 +v -1.734063 0.062500 -3.207307 +v -1.444656 0.062500 -3.379134 +v -1.634893 0.062500 -3.131212 +v -2.586083 0.062500 -1.891597 +v -2.395845 0.062500 -2.139520 +v -2.685253 0.062500 -1.967692 +v -2.495015 0.062500 -2.215615 +v -2.586083 0.125000 -1.891597 +v -2.395845 0.125000 -2.139520 +v -2.685253 0.125000 -1.967692 +v -2.495015 0.125000 -2.215615 +v -2.668243 0.125000 -4.085573 +v -2.787832 0.125000 -3.796861 +v -2.552758 0.125000 -4.037737 +v -2.672346 0.125000 -3.749025 +v -2.668243 0.062500 -4.085573 +v -2.787832 0.062500 -3.796861 +v -2.552758 0.062500 -4.037737 +v -2.672346 0.062500 -3.749025 +v -3.270289 0.062500 -2.305463 +v -3.150701 0.062500 -2.594176 +v -3.385775 0.062500 -2.353299 +v -3.266186 0.062500 -2.642011 +v -3.270289 0.125000 -2.305463 +v -3.150701 0.125000 -2.594176 +v -3.385775 0.125000 -2.353299 +v -3.266186 0.125000 -2.642011 +v -3.917492 0.125000 -4.403417 +v -3.958282 0.125000 -4.093591 +v -3.793562 0.125000 -4.387100 +v -3.834351 0.125000 -4.077275 +v -3.917492 0.062500 -4.403417 +v -3.958282 0.062500 -4.093591 +v -3.793562 0.062500 -4.387100 +v -3.834351 0.062500 -4.077275 +v -4.038298 0.062500 -2.528142 +v -3.997509 0.062500 -2.837969 +v -4.162229 0.062500 -2.544458 +v -4.121440 0.062500 -2.854284 +v -4.038298 0.125000 -2.528142 +v -3.997509 0.125000 -2.837969 +v -4.162229 0.125000 -2.544458 +v -4.121440 0.125000 -2.854284 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.718750 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.500000 0.718750 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt -0.000000 1.000000 +vt 0.187500 0.000000 +vt 0.187500 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.500000 0.718750 +vt 0.531250 0.656250 +vt 0.500000 0.718750 +vt 0.406250 0.156250 +vt 0.406250 0.156250 +vt 0.531250 0.156250 +vt 0.406250 0.156250 +vt 0.406250 0.156250 +vt 0.593750 0.656250 +vt 0.406250 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.406250 0.656250 +vt 0.531250 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.531250 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.656250 +vt 0.531250 0.656250 +vt 0.531250 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt -0.000000 0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vn 0.7730 0.0000 -0.6344 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.6344 0.0000 -0.7730 +vn 0.0000 -1.0000 0.0000 +vn -0.1305 0.0000 0.9914 +vn 0.0000 1.0000 0.0000 +vn 0.1305 0.0000 -0.9914 +vn 0.3827 0.0000 -0.9239 +vn -0.3827 0.0000 0.9239 +vn 0.6088 0.0000 -0.7934 +vn -0.6088 0.0000 0.7934 +vn 0.7934 0.0000 -0.6088 +vn -0.7934 0.0000 0.6088 +vn 0.9914 0.0000 -0.1305 +vn 0.9239 0.0000 -0.3827 +vn -0.9239 0.0000 0.3827 +vn -0.9914 0.0000 0.1305 +vn -0.0980 0.0000 0.9952 +vn 0.0980 0.0000 -0.9952 +vn 0.2903 0.0000 -0.9569 +vn -0.2903 0.0000 0.9569 +vn -0.4714 0.0000 0.8819 +vn 0.4714 0.0000 -0.8819 +vn -0.6344 0.0000 0.7730 +vn -0.7730 0.0000 0.6344 +vn 0.9569 0.0000 -0.2903 +vn 0.8819 0.0000 -0.4714 +vn -0.8819 0.0000 0.4714 +vn -0.9952 0.0000 0.0980 +vn -0.9569 0.0000 0.2903 +vn 0.9952 0.0000 -0.0980 +vn 0.1305 0.0000 0.9914 +vn -0.1305 0.0000 -0.9914 +vn 0.3827 0.0000 0.9239 +vn -0.3827 0.0000 -0.9239 +vn 0.6088 0.0000 0.7934 +vn -0.6088 0.0000 -0.7934 +vn 0.7934 0.0000 0.6088 +vn -0.7934 0.0000 -0.6088 +vn 0.9239 0.0000 0.3827 +vn -0.9239 0.0000 -0.3827 +vn 0.9914 0.0000 0.1305 +vn -0.9914 0.0000 -0.1305 +s off +f 20/1/1 5/2/1 6/3/1 +f 7/4/2 3/5/2 1/6/2 +f 10/7/3 14/8/3 12/9/3 +f 11/10/3 15/11/3 9/12/3 +f 6/13/4 50/14/4 49/15/4 +f 35/16/5 17/17/5 23/18/5 +f 31/19/5 25/20/5 27/21/5 +f 25/22/6 11/23/6 9/24/6 +f 11/23/7 28/25/7 16/26/7 +f 27/27/5 9/28/5 15/29/5 +f 28/25/8 15/29/8 16/26/8 +f 23/30/5 29/31/5 31/32/5 +f 32/33/9 27/21/9 28/34/9 +f 30/35/7 28/34/7 26/36/7 +f 29/37/10 26/36/10 25/38/10 +f 23/30/11 32/39/11 24/40/11 +f 24/40/7 30/41/7 19/42/7 +f 30/41/12 17/43/12 19/42/12 +f 39/44/5 33/45/5 35/46/5 +f 36/47/13 23/18/13 24/48/13 +f 33/49/14 19/50/14 17/51/14 +f 19/50/7 36/47/7 24/48/7 +f 7/52/15 40/53/15 8/54/15 +f 40/55/16 35/46/16 36/56/16 +f 34/57/7 40/55/7 36/56/7 +f 37/58/17 34/57/17 33/59/17 +f 8/54/7 38/60/7 3/61/7 +f 38/60/18 1/62/18 3/61/18 +f 1/63/5 39/64/5 7/52/5 +f 43/65/7 45/66/7 41/67/7 +f 14/68/7 41/69/7 12/70/7 +f 42/71/5 13/72/5 10/73/5 +f 44/74/19 14/68/19 13/75/19 +f 41/69/20 10/73/20 12/70/20 +f 50/76/5 48/77/5 46/78/5 +f 45/66/21 42/79/21 41/67/21 +f 46/80/5 44/81/5 42/79/5 +f 48/82/22 43/65/22 44/83/22 +f 51/84/7 6/13/7 49/15/7 +f 52/85/23 47/86/23 48/87/23 +f 47/86/7 49/88/7 45/89/7 +f 49/88/24 46/78/24 45/89/24 +f 5/90/5 52/91/5 50/14/5 +f 2/92/25 51/84/25 52/93/25 +f 54/94/5 22/95/5 21/96/5 +f 4/97/7 20/1/7 6/3/7 +f 21/98/5 2/99/5 5/2/5 +f 22/100/26 4/97/26 2/101/26 +f 59/102/27 54/103/27 55/104/27 +f 55/105/28 21/96/28 20/106/28 +f 18/107/7 55/105/7 20/106/7 +f 53/108/29 18/107/29 22/109/29 +f 61/110/30 60/111/30 57/112/30 +f 56/113/7 59/102/7 55/104/7 +f 57/114/31 56/113/31 53/115/31 +f 58/116/5 53/117/5 54/103/5 +f 64/118/2 62/119/2 63/120/2 +f 62/121/5 57/122/5 58/123/5 +f 63/124/32 58/123/32 59/125/32 +f 60/111/7 63/124/7 59/125/7 +f 67/126/5 66/127/5 65/128/5 +f 71/129/7 69/130/7 70/131/7 +f 65/132/18 69/133/18 67/134/18 +f 66/135/33 70/136/33 65/137/33 +f 68/138/15 71/139/15 66/127/15 +f 67/126/34 72/140/34 68/141/34 +f 75/142/5 74/143/5 73/144/5 +f 79/145/7 77/146/7 78/147/7 +f 73/148/17 77/149/17 75/150/17 +f 74/151/35 78/152/35 73/153/35 +f 76/154/16 79/155/16 74/143/16 +f 75/142/36 80/156/36 76/157/36 +f 81/158/5 84/159/5 82/160/5 +f 87/161/7 85/162/7 86/163/7 +f 81/164/14 85/165/14 83/166/14 +f 82/167/37 86/168/37 81/169/37 +f 84/170/13 87/171/13 82/160/13 +f 83/172/38 88/173/38 84/159/38 +f 91/174/5 90/175/5 89/176/5 +f 95/177/7 93/178/7 94/179/7 +f 89/180/12 93/181/12 91/182/12 +f 90/183/39 94/184/39 89/185/39 +f 92/186/11 95/187/11 90/175/11 +f 91/174/40 96/188/40 92/189/40 +f 97/190/5 100/191/5 98/192/5 +f 102/193/7 104/194/7 101/195/7 +f 97/196/10 101/197/10 99/198/10 +f 98/199/41 102/200/41 97/201/41 +f 100/202/9 103/203/9 98/192/9 +f 99/204/42 104/194/42 100/191/42 +f 107/205/5 106/206/5 105/207/5 +f 111/208/7 109/209/7 110/210/7 +f 105/211/6 109/212/6 107/213/6 +f 106/214/43 110/215/43 105/216/43 +f 108/217/8 111/218/8 106/206/8 +f 107/205/44 112/219/44 108/220/44 +f 125/221/18 123/222/18 121/223/18 +f 114/224/7 115/225/7 113/226/7 +f 113/226/15 119/227/15 117/228/15 +f 115/225/33 120/229/33 119/230/33 +f 114/224/34 117/231/34 118/232/34 +f 116/233/18 118/234/18 120/235/18 +f 127/236/34 124/237/34 123/238/34 +f 126/239/33 121/240/33 122/241/33 +f 128/242/15 122/243/15 124/244/15 +f 125/221/7 128/242/7 127/236/7 +f 141/245/17 139/246/17 137/247/17 +f 130/248/7 131/249/7 129/250/7 +f 129/250/16 135/251/16 133/252/16 +f 131/249/35 136/253/35 135/254/35 +f 130/248/36 133/255/36 134/256/36 +f 132/257/17 134/258/17 136/259/17 +f 143/260/36 140/261/36 139/262/36 +f 142/263/35 137/264/35 138/265/35 +f 144/266/16 138/267/16 140/268/16 +f 141/245/7 144/266/7 143/260/7 +f 157/269/14 155/270/14 153/271/14 +f 148/272/7 145/273/7 146/274/7 +f 145/273/13 151/275/13 149/276/13 +f 147/277/37 152/278/37 151/279/37 +f 146/274/38 149/280/38 150/281/38 +f 148/272/14 150/282/14 152/283/14 +f 159/284/38 156/285/38 155/286/38 +f 158/287/37 153/288/37 154/289/37 +f 160/290/13 154/291/13 156/292/13 +f 157/269/7 160/290/7 159/284/7 +f 173/293/12 171/294/12 169/295/12 +f 162/296/7 163/297/7 161/298/7 +f 161/298/11 167/299/11 165/300/11 +f 163/297/39 168/301/39 167/302/39 +f 162/296/40 165/303/40 166/304/40 +f 164/305/12 166/306/12 168/307/12 +f 175/308/40 172/309/40 171/310/40 +f 174/311/39 169/312/39 170/313/39 +f 176/314/11 170/315/11 172/316/11 +f 173/293/7 176/314/7 175/308/7 +f 189/317/10 187/318/10 185/319/10 +f 178/320/7 179/321/7 177/322/7 +f 177/322/9 183/323/9 181/324/9 +f 179/321/41 184/325/41 183/326/41 +f 178/320/42 181/327/42 182/328/42 +f 180/329/10 182/330/10 184/331/10 +f 191/332/42 188/333/42 187/334/42 +f 190/335/41 185/336/41 186/337/41 +f 192/338/9 186/339/9 188/340/9 +f 191/332/7 190/335/7 192/338/7 +f 205/341/6 203/342/6 201/343/6 +f 194/344/7 195/345/7 193/346/7 +f 193/346/8 199/347/8 197/348/8 +f 195/345/43 200/349/43 199/350/43 +f 194/344/44 197/351/44 198/352/44 +f 196/353/6 198/354/6 200/355/6 +f 207/356/44 204/357/44 203/358/44 +f 206/359/43 201/360/43 202/361/43 +f 208/362/8 202/363/8 204/364/8 +f 207/356/7 206/359/7 208/362/7 +f 20/1/1 21/98/1 5/2/1 +f 7/4/2 8/365/2 3/5/2 +f 10/7/3 13/366/3 14/8/3 +f 11/10/3 16/367/3 15/11/3 +f 6/13/4 5/90/4 50/14/4 +f 35/16/5 33/368/5 17/17/5 +f 31/19/5 29/369/5 25/20/5 +f 25/22/6 26/370/6 11/23/6 +f 11/23/7 26/370/7 28/25/7 +f 27/27/5 25/371/5 9/28/5 +f 28/25/8 27/27/8 15/29/8 +f 23/30/5 17/372/5 29/31/5 +f 32/33/9 31/19/9 27/21/9 +f 30/35/7 32/33/7 28/34/7 +f 29/37/10 30/35/10 26/36/10 +f 23/30/11 31/32/11 32/39/11 +f 24/40/7 32/39/7 30/41/7 +f 30/41/12 29/373/12 17/43/12 +f 39/44/5 37/374/5 33/45/5 +f 36/47/13 35/16/13 23/18/13 +f 33/49/14 34/375/14 19/50/14 +f 19/50/7 34/375/7 36/47/7 +f 7/52/15 39/64/15 40/53/15 +f 40/55/16 39/44/16 35/46/16 +f 34/57/7 38/376/7 40/55/7 +f 37/58/17 38/376/17 34/57/17 +f 8/54/7 40/53/7 38/60/7 +f 38/60/18 37/377/18 1/62/18 +f 1/63/5 37/378/5 39/64/5 +f 43/65/7 47/379/7 45/66/7 +f 14/68/7 43/380/7 41/69/7 +f 42/71/5 44/381/5 13/72/5 +f 44/74/19 43/380/19 14/68/19 +f 41/69/20 42/71/20 10/73/20 +f 50/76/5 52/382/5 48/77/5 +f 45/66/21 46/80/21 42/79/21 +f 46/80/5 48/383/5 44/81/5 +f 48/82/22 47/379/22 43/65/22 +f 51/84/7 4/384/7 6/13/7 +f 52/85/23 51/385/23 47/86/23 +f 47/86/7 51/385/7 49/88/7 +f 49/88/24 50/76/24 46/78/24 +f 5/90/5 2/386/5 52/91/5 +f 2/92/25 4/384/25 51/84/25 +f 54/94/5 53/387/5 22/95/5 +f 4/97/7 18/388/7 20/1/7 +f 21/98/5 22/389/5 2/99/5 +f 22/100/26 18/388/26 4/97/26 +f 59/102/27 58/116/27 54/103/27 +f 55/105/28 54/94/28 21/96/28 +f 18/107/7 56/390/7 55/105/7 +f 53/108/29 56/390/29 18/107/29 +f 61/110/30 64/391/30 60/111/30 +f 56/113/7 60/392/7 59/102/7 +f 57/114/31 60/392/31 56/113/31 +f 58/116/5 57/393/5 53/117/5 +f 64/118/2 61/394/2 62/119/2 +f 62/121/5 61/395/5 57/122/5 +f 63/124/32 62/121/32 58/123/32 +f 60/111/7 64/391/7 63/124/7 +f 67/126/5 68/141/5 66/127/5 +f 71/129/7 72/140/7 69/130/7 +f 65/132/18 70/396/18 69/133/18 +f 66/135/33 71/397/33 70/136/33 +f 68/138/15 72/398/15 71/139/15 +f 67/126/34 69/130/34 72/140/34 +f 75/142/5 76/157/5 74/143/5 +f 79/145/7 80/156/7 77/146/7 +f 73/148/17 78/399/17 77/149/17 +f 74/151/35 79/400/35 78/152/35 +f 76/154/16 80/401/16 79/155/16 +f 75/142/36 77/146/36 80/156/36 +f 81/158/5 83/172/5 84/159/5 +f 87/161/7 88/173/7 85/162/7 +f 81/164/14 86/402/14 85/165/14 +f 82/167/37 87/403/37 86/168/37 +f 84/170/13 88/404/13 87/171/13 +f 83/172/38 85/162/38 88/173/38 +f 91/174/5 92/189/5 90/175/5 +f 95/177/7 96/188/7 93/178/7 +f 89/180/12 94/405/12 93/181/12 +f 90/183/39 95/406/39 94/184/39 +f 92/186/11 96/407/11 95/187/11 +f 91/174/40 93/178/40 96/188/40 +f 97/190/5 99/204/5 100/191/5 +f 102/193/7 103/408/7 104/194/7 +f 97/196/10 102/409/10 101/197/10 +f 98/199/41 103/410/41 102/200/41 +f 100/202/9 104/411/9 103/203/9 +f 99/204/42 101/195/42 104/194/42 +f 107/205/5 108/220/5 106/206/5 +f 111/208/7 112/219/7 109/209/7 +f 105/211/6 110/412/6 109/212/6 +f 106/214/43 111/413/43 110/215/43 +f 108/217/8 112/414/8 111/218/8 +f 107/205/44 109/209/44 112/219/44 +f 125/221/18 127/236/18 123/222/18 +f 114/224/7 116/233/7 115/225/7 +f 113/226/15 115/225/15 119/227/15 +f 115/225/33 116/233/33 120/229/33 +f 114/224/34 113/226/34 117/231/34 +f 116/233/18 114/224/18 118/234/18 +f 127/236/34 128/242/34 124/237/34 +f 126/239/33 125/221/33 121/240/33 +f 128/242/15 126/239/15 122/243/15 +f 125/221/7 126/239/7 128/242/7 +f 141/245/17 143/260/17 139/246/17 +f 130/248/7 132/257/7 131/249/7 +f 129/250/16 131/249/16 135/251/16 +f 131/249/35 132/257/35 136/253/35 +f 130/248/36 129/250/36 133/255/36 +f 132/257/17 130/248/17 134/258/17 +f 143/260/36 144/266/36 140/261/36 +f 142/263/35 141/245/35 137/264/35 +f 144/266/16 142/263/16 138/267/16 +f 141/245/7 142/263/7 144/266/7 +f 157/269/14 159/284/14 155/270/14 +f 148/272/7 147/277/7 145/273/7 +f 145/273/13 147/277/13 151/275/13 +f 147/277/37 148/272/37 152/278/37 +f 146/274/38 145/273/38 149/280/38 +f 148/272/14 146/274/14 150/282/14 +f 159/284/38 160/290/38 156/285/38 +f 158/287/37 157/269/37 153/288/37 +f 160/290/13 158/287/13 154/291/13 +f 157/269/7 158/287/7 160/290/7 +f 173/293/12 175/308/12 171/294/12 +f 162/296/7 164/305/7 163/297/7 +f 161/298/11 163/297/11 167/299/11 +f 163/297/39 164/305/39 168/301/39 +f 162/296/40 161/298/40 165/303/40 +f 164/305/12 162/296/12 166/306/12 +f 175/308/40 176/314/40 172/309/40 +f 174/311/39 173/293/39 169/312/39 +f 176/314/11 174/311/11 170/315/11 +f 173/293/7 174/311/7 176/314/7 +f 189/317/10 191/332/10 187/318/10 +f 178/320/7 180/329/7 179/321/7 +f 177/322/9 179/321/9 183/323/9 +f 179/321/41 180/329/41 184/325/41 +f 178/320/42 177/322/42 181/327/42 +f 180/329/10 178/320/10 182/330/10 +f 191/332/42 192/338/42 188/333/42 +f 190/335/41 189/317/41 185/336/41 +f 192/338/9 190/335/9 186/339/9 +f 191/332/7 189/317/7 190/335/7 +f 205/341/6 207/356/6 203/342/6 +f 194/344/7 196/353/7 195/345/7 +f 193/346/8 195/345/8 199/347/8 +f 195/345/43 196/353/43 200/349/43 +f 194/344/44 193/346/44 197/351/44 +f 196/353/6 194/344/6 198/354/6 +f 207/356/44 208/362/44 204/357/44 +f 206/359/43 205/341/43 201/360/43 +f 208/362/8 206/359/8 202/363/8 +f 207/356/7 205/341/7 206/359/7 diff --git a/src/main/resources/assets/hbm/textures/blocks/rail_standard_straight.png b/src/main/resources/assets/hbm/textures/blocks/rail_standard_straight.png new file mode 100644 index 0000000000000000000000000000000000000000..649fbd388e9de62f307e51c25836daf08e0caa40 GIT binary patch literal 467 zcmV;^0WAKBP)U5Jf*I1wu)OOC&C|S3ufZP^=Ke7TjVbuCT}83Upht zog?HfDIyzihFJjl`_mA&j?K?{f0U%8j(nJ9O)cG=-z%elc zKfk>jh@xmVfn#C@thfkY5xp~zCJM%wS%h{$iisNlfc~msj3Fm+OvJ$S$NhykCT0M5 zq`JRqauUbH3>+nAVET9S#j&cYRyVRI1Gd7cRC7#1Cx0MK)MCVz6-9B2;~2v*Aj>lM zT$bhP7Cozht=q6iE(5mVP~zBLJ)H%0VeuIr%dI%uuYwk@>Q=(=v70bst*e!8bD&vWt` zwlw~yfg_J&cN*Gi_b(n4Ynq03BWK2L}Mqq5ggqS9K{Xnmmw9}YEwb*=bd`! z7|md2?=p`f#}@%Jn<7+&0L-qcN_mnpyw+{FEl`1PJy`b>5dz?``)dRYz$43JXJ=c7 tvju0M3SZ30#+5q*@a-pQU)WzFClTj9e*3LKoB#j-07*qoL Date: Mon, 5 Jun 2023 16:39:05 +0200 Subject: [PATCH 037/109] fixes, some more pollution stuff --- changelog | 3 +- .../handler/pollution/PollutionHandler.java | 101 +++++++++++++++--- .../hazard/type/HazardTypeHydroactive.java | 3 +- src/main/java/com/hbm/items/ModItems.java | 3 + .../hbm/items/tool/ItemPollutionDetector.java | 32 ++++++ .../java/com/hbm/items/tool/ItemWandD.java | 8 +- .../hbm/textures/items/pollution_detector.png | Bin 0 -> 241 bytes 7 files changed, 133 insertions(+), 17 deletions(-) create mode 100644 src/main/java/com/hbm/items/tool/ItemPollutionDetector.java create mode 100644 src/main/resources/assets/hbm/textures/items/pollution_detector.png diff --git a/changelog b/changelog index 494b463ba..f875507b2 100644 --- a/changelog +++ b/changelog @@ -14,4 +14,5 @@ * Paraffin wax can now also be used to make chlorated petroleum wax * Retextured schrabidium batteries, the cap is now black instead of red -## Fixed \ No newline at end of file +## Fixed +* Fixed hydroreactive stat not applying when an item is dropped in the rain diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java index 692ba83a2..fff803ed6 100644 --- a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -4,12 +4,17 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.HashMap; +import java.util.Locale; import java.util.Map.Entry; import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.common.gameevent.TickEvent; +import cpw.mods.fml.common.gameevent.TickEvent.Phase; +import cpw.mods.fml.relauncher.Side; import net.minecraft.nbt.CompressedStreamTools; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; +import net.minecraft.util.MathHelper; import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; import net.minecraft.world.WorldServer; @@ -19,7 +24,58 @@ public class PollutionHandler { public static final String fileName = "hbmpollution.dat"; public static HashMap perWorld = new HashMap(); + + /////////////////////// + /// UTILITY METHODS /// + /////////////////////// + public static void incrementPollution(World world, int x, int y, int z, PollutionType type, float amount) { + PollutionPerWorld ppw = perWorld.get(world); + if(ppw == null) return; + ChunkCoordIntPair pos = new ChunkCoordIntPair(x >> 6, z >> 6); + PollutionData data = ppw.pollution.get(pos); + if(data == null) { + data = new PollutionData(); + ppw.pollution.put(pos, data); + } + data.pollution[type.ordinal()] = MathHelper.clamp_float(data.pollution[type.ordinal()] + amount, 0F, 10_000F); + } + + public static void decrementPollution(World world, int x, int y, int z, PollutionType type, float amount) { + incrementPollution(world, x, y, z, type, -amount); + } + + public static void setPollution(World world, int x, int y, int z, PollutionType type, float amount) { + PollutionPerWorld ppw = perWorld.get(world); + if(ppw == null) return; + ChunkCoordIntPair pos = new ChunkCoordIntPair(x >> 6, z >> 6); + PollutionData data = ppw.pollution.get(pos); + if(data == null) { + data = new PollutionData(); + ppw.pollution.put(pos, data); + } + data.pollution[type.ordinal()] = amount; + } + + public static float getPollution(World world, int x, int y, int z, PollutionType type) { + PollutionPerWorld ppw = perWorld.get(world); + if(ppw == null) return 0F; + ChunkCoordIntPair pos = new ChunkCoordIntPair(x >> 6, z >> 6); + PollutionData data = ppw.pollution.get(pos); + if(data == null) return 0F; + return data.pollution[type.ordinal()]; + } + + public static PollutionData getPollutionData(World world, int x, int y, int z) { + PollutionPerWorld ppw = perWorld.get(world); + if(ppw == null) return null; + ChunkCoordIntPair pos = new ChunkCoordIntPair(x >> 6, z >> 6); + PollutionData data = ppw.pollution.get(pos); + return data; + } + ////////////////////// + /// EVENT HANDLING /// + ////////////////////// @SubscribeEvent public void onWorldLoad(WorldEvent.Load event) { if(!event.world.isRemote) { @@ -70,16 +126,33 @@ public class PollutionHandler { public String getDataDir(WorldServer world) { String dir = world.getSaveHandler().getWorldDirectory().getAbsolutePath(); - if(world.provider.dimensionId != 0) { dir += File.separator + "DIM" + world.provider.dimensionId; } - dir += File.separator + "data"; - return dir; } + + ////////////////////////// + /// SYSTEM UPDATE LOOP /// + ////////////////////////// + int eggTimer = 0; + @SubscribeEvent + public void updateSystem(TickEvent.ServerTickEvent event) { + + if(event.side == Side.SERVER && event.phase == Phase.END) { + + eggTimer++; + if(eggTimer < 60) return; + eggTimer = 0; + + // TBI + } + } + ////////////////////// + /// DATA STRUCTURE /// + ////////////////////// public static class PollutionPerWorld { public HashMap pollution = new HashMap(); @@ -118,22 +191,26 @@ public class PollutionHandler { } public static class PollutionData { - float soot; - float poison; - float heavyMetal; + public float[] pollution = new float[PollutionType.values().length]; public static PollutionData fromNBT(NBTTagCompound nbt) { PollutionData data = new PollutionData(); - data.soot = nbt.getFloat("soot"); - data.poison = nbt.getFloat("poison"); - data.heavyMetal = nbt.getFloat("heavyMetal"); + + for(int i = 0; i < PollutionType.values().length; i++) { + data.pollution[i] = nbt.getFloat(PollutionType.values()[i].name().toLowerCase(Locale.US)); + } + return data; } public void toNBT(NBTTagCompound nbt) { - nbt.setFloat("soot", soot); - nbt.setFloat("poison", poison); - nbt.setFloat("heavyMetal", heavyMetal); + for(int i = 0; i < PollutionType.values().length; i++) { + nbt.setFloat(PollutionType.values()[i].name().toLowerCase(Locale.US), pollution[i]); + } } } + + public static enum PollutionType { + SOOT, POISON, HEAVYMETAL, FALLOUT; + } } diff --git a/src/main/java/com/hbm/hazard/type/HazardTypeHydroactive.java b/src/main/java/com/hbm/hazard/type/HazardTypeHydroactive.java index 2a2dbb9e5..f7d6a3c49 100644 --- a/src/main/java/com/hbm/hazard/type/HazardTypeHydroactive.java +++ b/src/main/java/com/hbm/hazard/type/HazardTypeHydroactive.java @@ -6,7 +6,6 @@ import com.hbm.config.RadiationConfig; import com.hbm.hazard.modifier.HazardModifier; import com.hbm.util.I18nUtil; -import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; @@ -33,7 +32,7 @@ public class HazardTypeHydroactive extends HazardTypeBase { if(RadiationConfig.disableHydro) return; - if(item.worldObj.getBlock((int)Math.floor(item.posX), (int)Math.floor(item.posY), (int)Math.floor(item.posZ)).getMaterial() == Material.water) { + if(item.isWet()) { item.setDead(); item.worldObj.newExplosion(null, item.posX, item.posY + item.height * 0.5, item.posZ, level, false, true); } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index fc5d18874..816ecdfe4 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1249,6 +1249,7 @@ public class ModItems { public static Item dosimeter; public static Item geiger_counter; public static Item digamma_diagnostic; + public static Item pollution_detector; public static Item survey_scanner; public static Item mirror_tool; public static Item rbmk_tool; @@ -4575,6 +4576,7 @@ public class ModItems { dosimeter = new ItemDosimeter().setUnlocalizedName("dosimeter").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":dosimeter"); geiger_counter = new ItemGeigerCounter().setUnlocalizedName("geiger_counter").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":geiger_counter"); digamma_diagnostic = new ItemDigammaDiagnostic().setUnlocalizedName("digamma_diagnostic").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":digamma_diagnostic"); + pollution_detector = new ItemPollutionDetector().setUnlocalizedName("pollution_detector").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pollution_detector"); survey_scanner = new ItemSurveyScanner().setUnlocalizedName("survey_scanner").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":survey_scanner"); mirror_tool = new ItemMirrorTool().setUnlocalizedName("mirror_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":mirror_tool"); rbmk_tool = new ItemRBMKTool().setUnlocalizedName("rbmk_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":rbmk_tool"); @@ -6725,6 +6727,7 @@ public class ModItems { GameRegistry.registerItem(dosimeter, dosimeter.getUnlocalizedName()); GameRegistry.registerItem(geiger_counter, geiger_counter.getUnlocalizedName()); GameRegistry.registerItem(digamma_diagnostic, digamma_diagnostic.getUnlocalizedName()); + GameRegistry.registerItem(pollution_detector, pollution_detector.getUnlocalizedName()); GameRegistry.registerItem(containment_box, containment_box.getUnlocalizedName()); //Keys and Locks diff --git a/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java b/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java new file mode 100644 index 000000000..ef45af10d --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java @@ -0,0 +1,32 @@ +package com.hbm.items.tool; + +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionData; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.PlayerInformPacket; +import com.hbm.util.ChatBuilder; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; + +public class ItemPollutionDetector extends Item { + + @Override + public void onUpdate(ItemStack stack, World world, Entity entity, int i, boolean bool) { + + if(!(entity instanceof EntityPlayerMP) || world.getTotalWorldTime() % 10 != 0) return; + + PollutionData data = PollutionHandler.getPollutionData(world, (int) Math.floor(entity.posX), (int) Math.floor(entity.posY), (int) Math.floor(entity.posZ)); + if(data == null) data = new PollutionData(); + + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Soot: " + data.pollution[PollutionType.SOOT.ordinal()]).color(EnumChatFormatting.RED).flush(), 100), (EntityPlayerMP) entity); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Poison: " + data.pollution[PollutionType.POISON.ordinal()]).color(EnumChatFormatting.RED).flush(), 101), (EntityPlayerMP) entity); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Heavy metal: " + data.pollution[PollutionType.HEAVYMETAL.ordinal()]).color(EnumChatFormatting.RED).flush(), 102), (EntityPlayerMP) entity); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Fallout: " + data.pollution[PollutionType.FALLOUT.ordinal()]).color(EnumChatFormatting.RED).flush(), 103), (EntityPlayerMP) entity); + } +} diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index 7ea8ad8b7..b165bae10 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -12,6 +12,8 @@ import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; import com.hbm.explosion.vanillant.standard.EntityProcessorStandard; import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard; import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.lib.Library; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.PlayerInformPacket; @@ -43,13 +45,15 @@ public class ItemWandD extends Item { if(pos != null) { - ExplosionVNT vnt = new ExplosionVNT(world, pos.hitVec.xCoord, pos.hitVec.yCoord, pos.hitVec.zCoord, 7); + /*ExplosionVNT vnt = new ExplosionVNT(world, pos.hitVec.xCoord, pos.hitVec.yCoord, pos.hitVec.zCoord, 7); vnt.setBlockAllocator(new BlockAllocatorBulkie(60)); vnt.setBlockProcessor(new BlockProcessorStandard().withBlockEffect(new BlockMutatorBulkie(ModBlocks.block_slag)).setNoDrop()); vnt.setEntityProcessor(new EntityProcessorStandard()); vnt.setPlayerProcessor(new PlayerProcessorStandard()); vnt.setSFX(new ExplosionEffectStandard()); - vnt.explode(); + vnt.explode();*/ + + PollutionHandler.incrementPollution(world, pos.blockX, pos.blockY, pos.blockZ, PollutionType.SOOT, 15); /*TimeAnalyzer.startCount("setBlock"); world.setBlock(pos.blockX, pos.blockY, pos.blockZ, Blocks.dirt); diff --git a/src/main/resources/assets/hbm/textures/items/pollution_detector.png b/src/main/resources/assets/hbm/textures/items/pollution_detector.png new file mode 100644 index 0000000000000000000000000000000000000000..b926f8086389a911a67c40c5028aa3f7c47a2d86 GIT binary patch literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf Date: Mon, 5 Jun 2023 21:50:33 +0200 Subject: [PATCH 038/109] Update .gitignore --- .gitignore | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.gitignore b/.gitignore index ab2c2acdb..22222fc39 100644 --- a/.gitignore +++ b/.gitignore @@ -26,9 +26,3 @@ run # Changelog backup /changelog.bak -CREDITS-fml.txt -forge-1.7.10-10.13.4.1614-1.7.10-changelog.txt -LICENSE-fml.txt -MinecraftForge-Credits.txt -MinecraftForge-License.txt -README.txt From 41444173d23a805d16853b35ce83a0e87e82a3ce Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 5 Jun 2023 21:50:45 +0200 Subject: [PATCH 039/109] fixed liquefactor being stupid --- changelog | 1 + gradle.properties | 2 +- src/main/java/com/hbm/blocks/ModBlocks.java | 10 +++++----- src/main/java/com/hbm/inventory/RecipesCommon.java | 1 - .../com/hbm/inventory/recipes/LiquefactionRecipes.java | 3 +-- src/main/java/com/hbm/lib/RefStrings.java | 2 +- .../machine/oil/TileEntityMachineLiquefactor.java | 2 +- 7 files changed, 10 insertions(+), 11 deletions(-) diff --git a/changelog b/changelog index f875507b2..9712e87f7 100644 --- a/changelog +++ b/changelog @@ -16,3 +16,4 @@ ## Fixed * Fixed hydroreactive stat not applying when an item is dropped in the rain +* Fixed the liquefactor not working with ore dictionary recipes diff --git a/gradle.properties b/gradle.properties index a7d9d6e1a..c314b14dd 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4613 +mod_build_number=4621 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index b3d95c9c2..c6b28f2b5 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -2134,11 +2134,11 @@ public class ModBlocks { rail_narrow = new RailGeneric().setBlockName("rail_narrow").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_narrow"); rail_highspeed = new RailGeneric().setMaxSpeed(1F).setFlexible(false).setBlockName("rail_highspeed").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_highspeed"); rail_booster = new RailBooster().setBlockName("rail_booster").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_booster"); - rail_narrow_straight = new RailNarrowStraight().setBlockName("rail_narrow_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_narrow_neo"); - rail_narrow_curve = new RailNarrowCurve().setBlockName("rail_narrow_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_narrow_neo"); - rail_large_straight = new RailStandardStraight().setBlockName("rail_large_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); - rail_large_curve = new RailStandardCurve().setBlockName("rail_large_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); - rail_large_buffer = new RailStandardBuffer().setBlockName("rail_large_buffer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":block_steel"); + rail_narrow_straight = new RailNarrowStraight().setBlockName("rail_narrow_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_narrow_neo"); + rail_narrow_curve = new RailNarrowCurve().setBlockName("rail_narrow_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_narrow_neo"); + rail_large_straight = new RailStandardStraight().setBlockName("rail_large_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_curve = new RailStandardCurve().setBlockName("rail_large_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_buffer = new RailStandardBuffer().setBlockName("rail_large_buffer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); crate = new BlockCrate(Material.wood).setBlockName("crate").setStepSound(Block.soundTypeWood).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate"); crate_weapon = new BlockCrate(Material.wood).setBlockName("crate_weapon").setStepSound(Block.soundTypeWood).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate_weapon"); diff --git a/src/main/java/com/hbm/inventory/RecipesCommon.java b/src/main/java/com/hbm/inventory/RecipesCommon.java index 2b1191f55..9e963743b 100644 --- a/src/main/java/com/hbm/inventory/RecipesCommon.java +++ b/src/main/java/com/hbm/inventory/RecipesCommon.java @@ -169,7 +169,6 @@ public class RecipesCommon { String[] entries = new String[ids.length]; for(int i = 0; i < ids.length; i++) { - entries[i] = OreDictionary.getOreName(ids[i]); } diff --git a/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java b/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java index 7a663f90d..43ee798ca 100644 --- a/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java @@ -80,13 +80,12 @@ public class LiquefactionRecipes extends SerializableRecipe { if(recipes.containsKey(comp)) return recipes.get(comp); + String[] dictKeys = comp.getDictKeys(); comp = new ComparableStack(stack.getItem(), 1, OreDictionary.WILDCARD_VALUE); if(recipes.containsKey(comp)) return recipes.get(comp); - String[] dictKeys = comp.getDictKeys(); - for(String key : dictKeys) { if(recipes.containsKey(key)) diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 5416fa4d3..3d65e0ba6 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4613)"; + public static final String VERSION = "1.0.27 BETA (4621)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java index 99f9d8bf0..edfeeff30 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java @@ -67,7 +67,7 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen int power = Math.min(UpgradeManager.getLevel(UpgradeType.POWER), 3); this.processTime = processTimeBase - (processTimeBase / 4) * speed; - this.usage = (usageBase + (usageBase * speed)) / (power + 1); + this.usage = (usageBase + (usageBase * speed)) / (power + 1); if(this.canProcess()) this.process(); From 72078d6b032ec014ba43303076e8f57e97fd6bf6 Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 5 Jun 2023 21:58:16 +0200 Subject: [PATCH 040/109] better safe than sorry --- changelog | 2 ++ src/main/java/com/hbm/main/MainRegistry.java | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/changelog b/changelog index 9712e87f7..2fdd4c818 100644 --- a/changelog +++ b/changelog @@ -1,6 +1,8 @@ ## Added * Laminate glass * A new variant of reinforced glass with higher blast resistance + * Also comes in pane shape +* Reinforced glass panes * Chlorocalcite * A new bedrock ore, the powder can be heated in the combination furnace to make calcium and chlorine * Blocks for cadmium, TC and CD alloy diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 19c93acf9..2f1baa02a 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -905,9 +905,9 @@ public class MainRegistry { MinecraftForge.EVENT_BUS.register(radiationSystem); FMLCommonHandler.instance().bus().register(radiationSystem); - PollutionHandler pollution = new PollutionHandler(); + /*PollutionHandler pollution = new PollutionHandler(); MinecraftForge.EVENT_BUS.register(pollution); - FMLCommonHandler.instance().bus().register(pollution); + FMLCommonHandler.instance().bus().register(pollution);*/ if(event.getSide() == Side.CLIENT) { HbmKeybinds.register(); From 32ae24823a8d55837a4bfcf97c0893efda0294e0 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 6 Jun 2023 15:26:36 +0200 Subject: [PATCH 041/109] soot fog, hostile mob buffs, tiny mass storage, comparator output --- src/main/java/com/hbm/blocks/ModBlocks.java | 7 +- .../com/hbm/blocks/generic/BlockNTMGlass.java | 4 + .../hbm/blocks/generic/BlockNTMGlassPane.java | 37 +++++---- .../hbm/blocks/machine/BlockMassStorage.java | 25 ++++-- .../handler/pollution/PollutionHandler.java | 78 +++++++++++++++++- .../java/com/hbm/main/CraftingManager.java | 1 + src/main/java/com/hbm/main/MainRegistry.java | 4 +- .../com/hbm/main/ModEventHandlerRenderer.java | 32 +++++++ .../java/com/hbm/packet/PermaSyncHandler.java | 18 ++++ .../machine/TileEntityFurnaceCombination.java | 4 + .../machine/TileEntityFurnaceIron.java | 3 + .../machine/TileEntityFurnaceSteel.java | 3 + .../machine/oil/TileEntityMachineCoker.java | 4 + .../oil/TileEntityMachineGasFlare.java | 4 + .../oil/TileEntityMachineRefinery.java | 4 + .../storage/TileEntityMassStorage.java | 10 +++ .../blocks/mass_storage_side_wood.png | Bin 0 -> 526 bytes .../textures/blocks/mass_storage_top_wood.png | Bin 0 -> 545 bytes 18 files changed, 210 insertions(+), 28 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/blocks/mass_storage_side_wood.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/mass_storage_top_wood.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index b93a0a4ec..006621f66 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -31,7 +31,6 @@ import com.hbm.tileentity.machine.storage.TileEntityFileCabinet; import cpw.mods.fml.common.registry.GameRegistry; import net.minecraft.block.Block; import net.minecraft.block.BlockFalling; -import net.minecraft.block.BlockPane; import net.minecraft.block.material.*; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.ItemBlock; @@ -1510,13 +1509,13 @@ public class ModBlocks { reinforced_brick = new BlockGeneric(Material.rock).setBlockName("reinforced_brick").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(8000.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_brick"); reinforced_glass = new BlockNTMGlassCT(0, RefStrings.MODID + ":reinforced_glass", Material.rock).setBlockName("reinforced_glass").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(15.0F).setResistance(200.0F); - reinforced_glass_pane = new BlockNTMGlassPane(1, RefStrings.MODID + ":reinforced_glass_pane",RefStrings.MODID + ":reinforced_glass_pane_edge", Material.rock, false).setBlockName("reinforced_glass_pane").setCreativeTab(MainRegistry.blockTab).setLightOpacity(1).setHardness(15.0F).setResistance(200.0F); + reinforced_glass_pane = new BlockNTMGlassPane(0, RefStrings.MODID + ":reinforced_glass_pane", RefStrings.MODID + ":reinforced_glass_pane_edge", Material.rock, false).setBlockName("reinforced_glass_pane").setCreativeTab(MainRegistry.blockTab).setLightOpacity(1).setHardness(15.0F).setResistance(200.0F); reinforced_light = new BlockGeneric(Material.rock).setBlockName("reinforced_light").setCreativeTab(MainRegistry.blockTab).setLightLevel(1.0F).setHardness(15.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_light"); reinforced_sand = new BlockGeneric(Material.rock).setBlockName("reinforced_sand").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(400.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_sand"); reinforced_lamp_off = new ReinforcedLamp(Material.rock, false).setBlockName("reinforced_lamp_off").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_lamp_off"); reinforced_lamp_on = new ReinforcedLamp(Material.rock, true).setBlockName("reinforced_lamp_on").setHardness(15.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_lamp_on"); - reinforced_laminate = new BlockNTMGlassCT(1, RefStrings.MODID + ":reinforced_laminate", Material.rock).setBlockName("reinforced_laminate").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(15.0F).setResistance(1000.0F); - reinforced_laminate_pane = new BlockNTMGlassPane(1, RefStrings.MODID + ":reinforced_laminate_pane",RefStrings.MODID + ":reinforced_laminate_pane_edge", Material.rock, false).setBlockName("reinforced_laminate_pane").setCreativeTab(MainRegistry.blockTab).setLightOpacity(1).setHardness(15.0F).setResistance(1000.0F); + reinforced_laminate = new BlockNTMGlassCT(1, RefStrings.MODID + ":reinforced_laminate", Material.rock, true).setBlockName("reinforced_laminate").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(15.0F).setResistance(1000.0F); + reinforced_laminate_pane = new BlockNTMGlassPane(1, RefStrings.MODID + ":reinforced_laminate_pane", RefStrings.MODID + ":reinforced_laminate_pane_edge", Material.rock, true).setBlockName("reinforced_laminate_pane").setCreativeTab(MainRegistry.blockTab).setLightOpacity(1).setHardness(15.0F).setResistance(1000.0F); lamp_tritium_green_off = new ReinforcedLamp(Material.redstoneLight, false).setBlockName("lamp_tritium_green_off").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_green_off"); lamp_tritium_green_on = new ReinforcedLamp(Material.redstoneLight, true).setBlockName("lamp_tritium_green_on").setStepSound(Block.soundTypeGlass).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_green_on"); diff --git a/src/main/java/com/hbm/blocks/generic/BlockNTMGlass.java b/src/main/java/com/hbm/blocks/generic/BlockNTMGlass.java index 440352102..acfdc1521 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockNTMGlass.java +++ b/src/main/java/com/hbm/blocks/generic/BlockNTMGlass.java @@ -22,19 +22,23 @@ public class BlockNTMGlass extends BlockBreakable { this.doesDrop = doesDrop; } + @Override public int quantityDropped(Random rand) { return doesDrop ? 1 : 0; } + @Override @SideOnly(Side.CLIENT) public int getRenderBlockPass() { return renderLayer; } + @Override public boolean renderAsNormalBlock() { return false; } + @Override protected boolean canSilkHarvest() { return true; } diff --git a/src/main/java/com/hbm/blocks/generic/BlockNTMGlassPane.java b/src/main/java/com/hbm/blocks/generic/BlockNTMGlassPane.java index 7246191aa..204064e52 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockNTMGlassPane.java +++ b/src/main/java/com/hbm/blocks/generic/BlockNTMGlassPane.java @@ -1,5 +1,10 @@ package com.hbm.blocks.generic; +import java.util.Random; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.block.BlockPane; import net.minecraft.block.material.Material; import net.minecraft.world.IBlockAccess; @@ -25,21 +30,23 @@ public class BlockNTMGlassPane extends BlockPane this.doesDrop = doesDrop; this.opaque = true; this.setLightOpacity(1); - - } - - public boolean canPaneConnectTo(IBlockAccess world, int x, int y, int z, ForgeDirection dir) - { - - if (getIdFromBlock(world.getBlock(x,y,z)) == 0) - return false; - else - return true; - - /*return canPaneConnectToBlock(world.getBlock(x, y, z)) || - world.isSideSolid(x, y, z, dir.getOpposite(), false);*/ - - } + + @Override + public boolean canPaneConnectTo(IBlockAccess world, int x, int y, int z, ForgeDirection dir) { + Block b = world.getBlock(x, y, z); + return super.canPaneConnectTo(world, x, y, z, dir) || b instanceof BlockNTMGlass; + } + + @Override + @SideOnly(Side.CLIENT) + public int getRenderBlockPass() { + return renderLayer; + } + + @Override + public int quantityDropped(Random rand) { + return doesDrop ? 1 : 0; + } } diff --git a/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java b/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java index 519011857..a86b9a8db 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java +++ b/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java @@ -47,8 +47,8 @@ public class BlockMassStorage extends BlockContainer implements IBlockMulti, ILo @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { - this.iconTop = new IIcon[3]; - this.iconSide = new IIcon[3]; + this.iconTop = new IIcon[4]; + this.iconSide = new IIcon[4]; this.iconTop[0] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_top_iron"); this.iconSide[0] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_side_iron"); @@ -56,14 +56,17 @@ public class BlockMassStorage extends BlockContainer implements IBlockMulti, ILo this.iconSide[1] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_side_desh"); this.iconTop[2] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_top"); this.iconSide[2] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_side"); + this.iconTop[2] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_top_wood"); + this.iconSide[2] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_side_wood"); } @Override @SideOnly(Side.CLIENT) public void getSubBlocks(Item item, CreativeTabs tab, List list) { - for(int i = 0; i < getSubCount(); ++i) { - list.add(new ItemStack(item, 1, i)); - } + list.add(new ItemStack(item, 1, 3)); + list.add(new ItemStack(item, 1, 0)); + list.add(new ItemStack(item, 1, 1)); + list.add(new ItemStack(item, 1, 2)); } @Override @@ -84,7 +87,7 @@ public class BlockMassStorage extends BlockContainer implements IBlockMulti, ILo } public int getCapacity(int meta) { - return meta == 0 ? 10_000 : meta == 1 ? 100_000 : meta == 2 ? 1_000_000 : 0; + return meta == 3 ? 100 : meta == 0 ? 10_000 : meta == 1 ? 100_000 : meta == 2 ? 1_000_000 : 0; } @Override @@ -286,4 +289,14 @@ public class BlockMassStorage extends BlockContainer implements IBlockMulti, ILo list.add(String.format("%,d", stack.stackTagCompound.getInteger("stack")) + " / " + String.format("%,d", getCapacity(stack.getItemDamage()))); } } + + @Override + public boolean hasComparatorInputOverride() { + return true; + } + + @Override + public int getComparatorInputOverride(World world, int x, int y, int z, int side) { + return ((TileEntityMassStorage) world.getTileEntity(x, y, z)).redstone; + } } diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java index fff803ed6..1881e1019 100644 --- a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -11,6 +11,10 @@ import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.TickEvent; import cpw.mods.fml.common.gameevent.TickEvent.Phase; import cpw.mods.fml.relauncher.Side; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.attributes.AttributeModifier; +import net.minecraft.entity.monster.IMob; import net.minecraft.nbt.CompressedStreamTools; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; @@ -18,6 +22,7 @@ import net.minecraft.util.MathHelper; import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; import net.minecraft.world.WorldServer; +import net.minecraftforge.event.entity.living.LivingSpawnEvent; import net.minecraftforge.event.world.WorldEvent; public class PollutionHandler { @@ -25,6 +30,9 @@ public class PollutionHandler { public static final String fileName = "hbmpollution.dat"; public static HashMap perWorld = new HashMap(); + /** Baserate of soot generation for a furnace-equivalent machine per second */ + public static final float SOOT_PER_SECOND = 1F / 25F; + /////////////////////// /// UTILITY METHODS /// /////////////////////// @@ -145,8 +153,52 @@ public class PollutionHandler { eggTimer++; if(eggTimer < 60) return; eggTimer = 0; + - // TBI + for(Entry entry : perWorld.entrySet()) { + HashMap newPollution = new HashMap(); + + for(Entry chunk : entry.getValue().pollution.entrySet()) { + int x = chunk.getKey().chunkXPos; + int z = chunk.getKey().chunkZPos; + PollutionData data = chunk.getValue(); + + float[] pollutionForNeightbors = new float[PollutionType.values().length]; + int S = PollutionType.SOOT.ordinal(); + int H = PollutionType.HEAVYMETAL.ordinal(); + + /* CALCULATION */ + if(data.pollution[S] > 15) { + pollutionForNeightbors[S] = data.pollution[S] * 0.05F; + data.pollution[S] *= 0.8F; + } else { + data.pollution[S] *= 0.99F; + } + + data.pollution[H] *= 0.999F; + + /* SPREADING */ + //apply new data to self + PollutionData newData = newPollution.get(chunk.getKey()); + if(newData == null) newData = new PollutionData(); + + for(int i = 0; i < newData.pollution.length; i++) newData.pollution[i] += data.pollution[i]; + newPollution.put(chunk.getKey(), newData); + + //apply neighbor data to neighboring chunks + int[][] offsets = new int[][] {{1, 0}, {-1, 0}, {0, 1}, {0, -1}}; + for(int[] offset : offsets) { + ChunkCoordIntPair offPos = new ChunkCoordIntPair(x + offset[0], z + offset[1]); + PollutionData offsetData = newPollution.get(offPos); + if(offsetData == null) offsetData = new PollutionData(); + + for(int i = 0; i < offsetData.pollution.length; i++) offsetData.pollution[i] += pollutionForNeightbors[i]; + newPollution.put(offPos, offsetData); + } + } + + entry.getValue().pollution = newPollution; + } } } @@ -213,4 +265,28 @@ public class PollutionHandler { public static enum PollutionType { SOOT, POISON, HEAVYMETAL, FALLOUT; } + + /////////////////// + /// MOB EFFECTS /// + /////////////////// + + + @SubscribeEvent + public void decorateMob(LivingSpawnEvent event) { + + World world = event.world; + if(world.isRemote) return; + EntityLivingBase living = event.entityLiving; + + PollutionData data = getPollutionData(world, (int) Math.floor(event.x), (int) Math.floor(event.y), (int) Math.floor(event.z)); + if(data == null) return; + + if(living instanceof IMob) { + + if(data.pollution[PollutionType.SOOT.ordinal()] > 15) { + if(living.getEntityAttribute(SharedMonsterAttributes.maxHealth) != null) living.getEntityAttribute(SharedMonsterAttributes.maxHealth).applyModifier(new AttributeModifier("Soot Anger Health Increase", 2D, 1)); + if(living.getEntityAttribute(SharedMonsterAttributes.attackDamage) != null) living.getEntityAttribute(SharedMonsterAttributes.attackDamage).applyModifier(new AttributeModifier("Soot Anger Damage Increase", 1.5D, 1)); + } + } + } } diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 09b4a3f1e..319bf0e9d 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -295,6 +295,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 0), new Object[] { "ICI", "CLC", "ICI", 'I', TI.ingot(), 'C', ModBlocks.crate_steel, 'L', ModItems.circuit_copper }); addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 1), new Object[] { "PCP", "PMP", "PPP", 'P', DESH.ingot(), 'C', ModItems.circuit_red_copper, 'M', new ItemStack(ModBlocks.mass_storage, 1, 0) }); addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 2), new Object[] { "PCP", "PMP", "PPP", 'P', ANY_RESISTANTALLOY.ingot(), 'C', ModItems.circuit_gold, 'M', new ItemStack(ModBlocks.mass_storage, 1, 1) }); + addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 2), new Object[] { "PPP", "PIP", "PPP", 'P', KEY_PLANKS, 'I', IRON.plate() }); addRecipeAuto(new ItemStack(ModBlocks.machine_autocrafter, 1), new Object[] { "SCS", "MWM", "SCS", 'S', STEEL.plate(), 'C', ModItems.circuit_copper, 'M', ModItems.motor, 'W', Blocks.crafting_table }); addRecipeAuto(new ItemStack(ModBlocks.machine_waste_drum, 1), new Object[] { "LRL", "BRB", "LRL", 'L', PB.ingot(), 'B', Blocks.iron_bars, 'R', ModItems.rod_quad_empty }); addRecipeAuto(new ItemStack(ModBlocks.machine_press, 1), new Object[] { "IRI", "IPI", "IBI", 'I', IRON.ingot(), 'R', Blocks.furnace, 'B', IRON.block(), 'P', Blocks.piston }); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 2f1baa02a..19c93acf9 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -905,9 +905,9 @@ public class MainRegistry { MinecraftForge.EVENT_BUS.register(radiationSystem); FMLCommonHandler.instance().bus().register(radiationSystem); - /*PollutionHandler pollution = new PollutionHandler(); + PollutionHandler pollution = new PollutionHandler(); MinecraftForge.EVENT_BUS.register(pollution); - FMLCommonHandler.instance().bus().register(pollution);*/ + FMLCommonHandler.instance().bus().register(pollution); if(event.getSide() == Side.CLIENT) { HbmKeybinds.register(); diff --git a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java index 1c629ee3f..85e7544e4 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java +++ b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java @@ -3,14 +3,17 @@ package com.hbm.main; import org.lwjgl.opengl.GL11; import com.hbm.blocks.ICustomBlockHighlight; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.items.armor.IArmorDisableModel; import com.hbm.items.armor.IArmorDisableModel.EnumPlayerPart; import com.hbm.packet.PermaSyncHandler; import com.hbm.render.model.ModelMan; +import cpw.mods.fml.common.eventhandler.Event.Result; import cpw.mods.fml.common.eventhandler.EventPriority; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import net.minecraft.block.Block; +import net.minecraft.client.Minecraft; import net.minecraft.client.model.ModelRenderer; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.entity.RenderManager; @@ -23,6 +26,9 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.MathHelper; import net.minecraft.util.MovingObjectPosition; import net.minecraftforge.client.event.DrawBlockHighlightEvent; +import net.minecraftforge.client.event.EntityViewRenderEvent.FogColors; +import net.minecraftforge.client.event.EntityViewRenderEvent.FogDensity; +import net.minecraftforge.client.event.EntityViewRenderEvent.RenderFogEvent; import net.minecraftforge.client.event.RenderPlayerEvent; public class ModEventHandlerRenderer { @@ -318,4 +324,30 @@ public class ModEventHandlerRenderer { GL11.glPopMatrix(); } }*/ + + @SubscribeEvent + public void setupFog(RenderFogEvent event) { + } + + @SubscribeEvent(priority = EventPriority.LOW) + public void thickenFog(FogDensity event) { + float soot = PermaSyncHandler.pollution[PollutionType.SOOT.ordinal()]; + if(soot > 10) { + //event.density = Math.min((soot - 5) * 0.01F, 0.5F); + GL11.glFogf(GL11.GL_FOG_START, 0.0F); + float farPlaneDistance = (float) (Minecraft.getMinecraft().gameSettings.renderDistanceChunks * 16); + GL11.glFogf(GL11.GL_FOG_END, Math.max(farPlaneDistance * 0.8F / (soot * 0.05F), 5F)); + event.setCanceled(true); + } + } + + @SubscribeEvent(priority = EventPriority.LOW) + public void tintFog(FogColors event) { + float soot = PermaSyncHandler.pollution[PollutionType.SOOT.ordinal()]; + if(soot > 10) { + event.red = 0.15F; + event.green = 0.15F; + event.blue = 0.15F; + } + } } diff --git a/src/main/java/com/hbm/packet/PermaSyncHandler.java b/src/main/java/com/hbm/packet/PermaSyncHandler.java index 6d15243be..bcd566e72 100644 --- a/src/main/java/com/hbm/packet/PermaSyncHandler.java +++ b/src/main/java/com/hbm/packet/PermaSyncHandler.java @@ -5,6 +5,9 @@ import java.util.HashSet; import java.util.List; import com.hbm.handler.ImpactWorldHandler; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionData; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.potion.HbmPotion; import com.hbm.saveddata.TomSaveData; @@ -21,6 +24,7 @@ import net.minecraft.world.World; public class PermaSyncHandler { public static HashSet boykissers = new HashSet(); + public static float[] pollution = new float[PollutionType.values().length]; public static void writePacket(ByteBuf buf, World world, EntityPlayerMP player) { @@ -42,6 +46,14 @@ public class PermaSyncHandler { buf.writeShort((short) ids.size()); for(Integer i : ids) buf.writeInt(i); /// SHITTY MEMES /// + + /// POLLUTION /// + PollutionData pollution = PollutionHandler.getPollutionData(world, (int) Math.floor(player.posX), (int) Math.floor(player.posY), (int) Math.floor(player.posZ)); + if(pollution == null) pollution = new PollutionData(); + for(int i = 0; i < PollutionType.values().length; i++) { + buf.writeFloat(pollution.pollution[i]); + } + /// POLLUTION /// } public static void readPacket(ByteBuf buf, World world, EntityPlayer player) { @@ -58,5 +70,11 @@ public class PermaSyncHandler { int ids = buf.readShort(); for(int i = 0; i < ids; i++) boykissers.add(buf.readInt()); /// SHITTY MEMES /// + + /// POLLUTION /// + for(int i = 0; i < PollutionType.values().length; i++) { + pollution[i] = buf.readFloat(); + } + /// POLLUTION /// } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java index a35eaa70d..aeb9e670c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java @@ -2,6 +2,8 @@ package com.hbm.tileentity.machine; import java.util.List; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.inventory.FluidStack; import com.hbm.inventory.container.ContainerFurnaceCombo; import com.hbm.inventory.fluid.Fluids; @@ -119,6 +121,8 @@ public class TileEntityFurnaceCombination extends TileEntityMachineBase implemen if(worldObj.getTotalWorldTime() % 10 == 0) this.worldObj.playSoundEffect(this.xCoord, this.yCoord + 1, this.zCoord, "hbm:weapon.flamethrowerShoot", 0.25F, 0.5F); } + + if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 3); } else { this.progress = 0; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java index 2fde9b86e..0a5dfbd92 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java @@ -1,5 +1,7 @@ package com.hbm.tileentity.machine; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerFurnaceIron; import com.hbm.inventory.gui.GUIFurnaceIron; @@ -104,6 +106,7 @@ public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUI this.progress = 0; this.markDirty(); } + if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND); } else { this.progress = 0; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceSteel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceSteel.java index ff6bffa73..77d212d9e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceSteel.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceSteel.java @@ -2,6 +2,8 @@ package com.hbm.tileentity.machine; import java.util.List; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.inventory.container.ContainerFurnaceSteel; import com.hbm.inventory.gui.GUIFurnaceSteel; import com.hbm.tileentity.IGUIProvider; @@ -67,6 +69,7 @@ public class TileEntityFurnaceSteel extends TileEntityMachineBase implements IGU progress[i] += burn; this.heat -= burn; this.wasOn = true; + if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 2); } lastItems[i] = slots[i]; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCoker.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCoker.java index 65db88540..f2adcb771 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCoker.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCoker.java @@ -1,5 +1,7 @@ package com.hbm.tileentity.machine.oil; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.inventory.FluidStack; import com.hbm.inventory.container.ContainerMachineCoker; import com.hbm.inventory.fluid.Fluids; @@ -98,6 +100,8 @@ public class TileEntityMachineCoker extends TileEntityMachineBase implements IFl tanks[0].setFill(tanks[0].getFill() - fillReq); } } + + if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 20); } for(DirPos pos : getConPos()) { diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java index e340df841..d305dc9b9 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java @@ -2,6 +2,8 @@ package com.hbm.tileentity.machine.oil; import java.util.List; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.interfaces.IControlReceiver; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; @@ -157,6 +159,8 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements if(worldObj.getTotalWorldTime() % 3 == 0) this.worldObj.playSoundEffect(this.xCoord, this.yCoord + 11, this.zCoord, "hbm:weapon.flamethrowerShoot", 1.5F, 0.75F); + + if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 5); } } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java index ee2d7b79a..d36a3370d 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java @@ -7,6 +7,8 @@ import java.util.Random; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.handler.MultiblockHandlerXR; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.interfaces.IControlReceiver; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; @@ -319,6 +321,8 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements this.markDirty(); } + + if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 5); this.power -= 5; } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java index 2b38ee9a0..61af46838 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java @@ -21,6 +21,7 @@ public class TileEntityMassStorage extends TileEntityCrateBase implements INBTPa private int stack = 0; public boolean output = false; private int capacity; + public int redstone = 0; @SideOnly(Side.CLIENT) public ItemStack type; @@ -43,6 +44,13 @@ public class TileEntityMassStorage extends TileEntityCrateBase implements INBTPa if(!worldObj.isRemote) { + int newRed = this.getStockpile() * 15 / this.capacity; + + if(newRed != this.redstone) { + this.redstone = newRed; + this.markDirty(); + } + if(slots[0] != null && slots[0].getItem() == ModItems.fluid_barrel_infinite) { this.stack = this.getCapacity(); } @@ -132,6 +140,7 @@ public class TileEntityMassStorage extends TileEntityCrateBase implements INBTPa this.stack = nbt.getInteger("stack"); this.output = nbt.getBoolean("output"); this.capacity = nbt.getInteger("capacity"); + this.redstone = nbt.getByte("redstone"); if(this.capacity <= 0) { this.capacity = 10_000; @@ -144,6 +153,7 @@ public class TileEntityMassStorage extends TileEntityCrateBase implements INBTPa nbt.setInteger("stack", stack); nbt.setBoolean("output", output); nbt.setInteger("capacity", capacity); + nbt.setByte("redstone", (byte) redstone); } @Override diff --git a/src/main/resources/assets/hbm/textures/blocks/mass_storage_side_wood.png b/src/main/resources/assets/hbm/textures/blocks/mass_storage_side_wood.png new file mode 100644 index 0000000000000000000000000000000000000000..d71ef7d610b6ae2c8afbaff54700d92b6ba38866 GIT binary patch literal 526 zcmV+p0`dKcP)FnlHvx!;Nv^=R9pYhvZ#$T#$;;P2G6I18AjGn+u^)s0 zl&vKIJ_TJis;dBq{wdX4D*y!T7=Xgg_U6nXi)nL;!b)Kdv0LFB}ll#jw!&AB+#rX)W@F!40N|`GHP)Y&d*(Ks(f*6kg zGJ=Zdvr&cJdW7q`x$bjh(+L&NXEX$eGJ>}szS8apz|{(*lo*CFN1~L%vrFv0J4B8Z zaOT0|dus&k_(}z)X~J~ER&8D5ivY*Hm}nq$=f(LKJ-CQ3LUtg+Qh>TtfhL_!=I}*; zy~dHA=`s&4D%firanc_FZbq zz_;)Pd;=d~+zoC7DU^{}C^I0K>7v$5Ei~yg*YuAeo4N?OZHb`xtuB}EoP6hZPYU~c zyL0|iQ52y8yr`FmtULgId(k& zO6D2>pWHt8w{8LujxN}`vjKqH4FD+Y@9oYlJp9p=(J%Y2u`SDD!LY|Wb|f%0gOzH6r!(mZJcs5c(Skm&? Date: Tue, 6 Jun 2023 23:01:51 +0200 Subject: [PATCH 042/109] minor fixes --- src/main/java/com/hbm/blocks/machine/BlockMassStorage.java | 6 +++--- src/main/java/com/hbm/inventory/OreDictManager.java | 4 ++-- src/main/java/com/hbm/main/CraftingManager.java | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java b/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java index a86b9a8db..d8e2f6773 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java +++ b/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java @@ -56,8 +56,8 @@ public class BlockMassStorage extends BlockContainer implements IBlockMulti, ILo this.iconSide[1] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_side_desh"); this.iconTop[2] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_top"); this.iconSide[2] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_side"); - this.iconTop[2] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_top_wood"); - this.iconSide[2] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_side_wood"); + this.iconTop[3] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_top_wood"); + this.iconSide[3] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_side_wood"); } @Override @@ -245,7 +245,7 @@ public class BlockMassStorage extends BlockContainer implements IBlockMulti, ILo @Override public int getSubCount() { - return 3; + return 4; } @Override diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 53138c7ee..c6d7d5e5a 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -346,8 +346,8 @@ public class OreDictManager { W .ingot(ingot_tungsten) .dust(powder_tungsten) .block(block_tungsten) .ore(ore_tungsten, ore_nether_tungsten, ore_meteor_tungsten) .oreNether(ore_nether_tungsten); AL .ingot(ingot_aluminium) .dust(powder_aluminium) .plate(plate_aluminium) .block(block_aluminium) .ore(ore_aluminium, ore_meteor_aluminium); STEEL .ingot(ingot_steel) .dustSmall(powder_steel_tiny) .dust(powder_steel) .plate(plate_steel) .block(block_steel); - TCALLOY .ingot(ingot_tcalloy) .dust(powder_tcalloy); - CDALLOY .ingot(ingot_cdalloy); + TCALLOY .ingot(ingot_tcalloy) .dust(powder_tcalloy) .block(block_tcalloy); + CDALLOY .ingot(ingot_cdalloy) .block(block_cdalloy); PB .nugget(nugget_lead) .ingot(ingot_lead) .dust(powder_lead) .plate(plate_lead) .block(block_lead) .ore(ore_lead, ore_meteor_lead); BI .nugget(nugget_bismuth) .ingot(ingot_bismuth) .dust(powder_bismuth); AS .nugget(nugget_arsenic) .ingot(ingot_arsenic); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 319bf0e9d..4a3b9778d 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -295,7 +295,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 0), new Object[] { "ICI", "CLC", "ICI", 'I', TI.ingot(), 'C', ModBlocks.crate_steel, 'L', ModItems.circuit_copper }); addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 1), new Object[] { "PCP", "PMP", "PPP", 'P', DESH.ingot(), 'C', ModItems.circuit_red_copper, 'M', new ItemStack(ModBlocks.mass_storage, 1, 0) }); addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 2), new Object[] { "PCP", "PMP", "PPP", 'P', ANY_RESISTANTALLOY.ingot(), 'C', ModItems.circuit_gold, 'M', new ItemStack(ModBlocks.mass_storage, 1, 1) }); - addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 2), new Object[] { "PPP", "PIP", "PPP", 'P', KEY_PLANKS, 'I', IRON.plate() }); + addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 3), new Object[] { "PPP", "PIP", "PPP", 'P', KEY_PLANKS, 'I', IRON.plate() }); addRecipeAuto(new ItemStack(ModBlocks.machine_autocrafter, 1), new Object[] { "SCS", "MWM", "SCS", 'S', STEEL.plate(), 'C', ModItems.circuit_copper, 'M', ModItems.motor, 'W', Blocks.crafting_table }); addRecipeAuto(new ItemStack(ModBlocks.machine_waste_drum, 1), new Object[] { "LRL", "BRB", "LRL", 'L', PB.ingot(), 'B', Blocks.iron_bars, 'R', ModItems.rod_quad_empty }); addRecipeAuto(new ItemStack(ModBlocks.machine_press, 1), new Object[] { "IRI", "IPI", "IBI", 'I', IRON.ingot(), 'R', Blocks.furnace, 'B', IRON.block(), 'P', Blocks.piston }); From 1a9da01d74f897fbe450c2c508338d98d1aa3802 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 7 Jun 2023 16:36:26 +0200 Subject: [PATCH 043/109] pollution stuff --- changelog | 1 + .../java/com/hbm/handler/pollution/PollutionHandler.java | 3 ++- .../java/com/hbm/tileentity/machine/TileEntityCrucible.java | 6 ++++++ .../com/hbm/tileentity/machine/TileEntityDiFurnace.java | 4 ++++ .../com/hbm/tileentity/machine/TileEntityFireboxBase.java | 3 +++ .../hbm/tileentity/machine/TileEntityHeaterOilburner.java | 4 ++++ .../com/hbm/tileentity/machine/TileEntityMachineCoal.java | 4 ++++ .../machine/TileEntityMachineCombustionEngine.java | 4 ++++ 8 files changed, 28 insertions(+), 1 deletion(-) diff --git a/changelog b/changelog index 2fdd4c818..f3f78f256 100644 --- a/changelog +++ b/changelog @@ -6,6 +6,7 @@ * Chlorocalcite * A new bedrock ore, the powder can be heated in the combination furnace to make calcium and chlorine * Blocks for cadmium, TC and CD alloy +* Machines now emit soot. Soot collects in units of 4x4 chunks, and spreads into neighboring regions. High levels of soot cause visible smog. ## Changed * Updated russian localization diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java index 1881e1019..e1bdbf7cd 100644 --- a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -197,7 +197,8 @@ public class PollutionHandler { } } - entry.getValue().pollution = newPollution; + entry.getValue().pollution.clear(); + entry.getValue().pollution.putAll(newPollution); } } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java index 3581d35b4..a6ee9501c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java @@ -7,6 +7,8 @@ import java.util.List; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.blocks.BlockDummyable; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.inventory.container.ContainerCrucible; import com.hbm.inventory.gui.GUICrucible; import com.hbm.inventory.material.MaterialShapes; @@ -169,6 +171,8 @@ public class TileEntityCrucible extends TileEntityMachineBase implements IGUIPro PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, xCoord + 0.5D + dir.offsetX * 1.875D, yCoord, zCoord + 0.5D + dir.offsetZ * 1.875D), new TargetPoint(worldObj.provider.dimensionId, xCoord + 0.5, yCoord + 1, zCoord + 0.5, 50)); } + + PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND / 2F); } /* pour recipe stack */ @@ -207,6 +211,8 @@ public class TileEntityCrucible extends TileEntityMachineBase implements IGUIPro PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, xCoord + 0.5D + dir.offsetX * 1.875D, yCoord, zCoord + 0.5D + dir.offsetZ * 1.875D), new TargetPoint(worldObj.provider.dimensionId, xCoord + 0.5, yCoord + 1, zCoord + 0.5, 50)); } + + PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND / 2F); } /* clean up stacks */ diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnace.java index a2da04057..57aa32c9c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnace.java @@ -2,6 +2,8 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.MachineDiFurnace; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.inventory.container.ContainerDiFurnace; import com.hbm.inventory.gui.GUIDiFurnace; import com.hbm.inventory.recipes.BlastFurnaceRecipes; @@ -211,6 +213,8 @@ public class TileEntityDiFurnace extends TileEntityMachineBase implements IGUIPr if(fuel < 0) { fuel = 0; } + + if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * (extension ? 3 : 1)); } else { progress = 0; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java index 9fb40234e..b4d5a109c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java @@ -1,6 +1,8 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.BlockDummyable; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.module.ModuleBurnTime; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; @@ -74,6 +76,7 @@ public abstract class TileEntityFireboxBase extends TileEntityMachineBase implem if(this.heatEnergy < getMaxHeat()) { burnTime--; + if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 3); } this.wasOn = true; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java index 535d5939b..a4ba8adab 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java @@ -1,5 +1,7 @@ package com.hbm.tileentity.machine; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.interfaces.IControlReceiver; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.container.ContainerOilburner; @@ -70,6 +72,8 @@ public class TileEntityHeaterOilburner extends TileEntityMachineBase implements int heat = (int)(type.getHeatEnergy() / 1000); this.heatEnergy += heat * toBurn; + + if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * burnRate * 0.5F); shouldCool = false; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java index 3abf74d1f..449e3aea4 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java @@ -5,6 +5,8 @@ import java.io.IOException; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.blocks.machine.MachineCoal; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.FluidContainerRegistry; @@ -290,6 +292,8 @@ public class TileEntityMachineCoal extends TileEntityLoadedBase implements ISide if(burnTime > 0) { burnTime--; + if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND); + if(tank.getFill() > 0) { tank.setFill(tank.getFill() - 1); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java index 18d48904a..64ea819ff 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java @@ -1,6 +1,8 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.BlockDummyable; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.container.ContainerCombustionEngine; import com.hbm.inventory.fluid.FluidType; @@ -84,6 +86,8 @@ public class TileEntityMachineCombustionEngine extends TileEntityMachineBase imp this.power += toBurn * (trait.getCombustionEnergy() / 10_000D) * eff; fill -= toBurn; + if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * setting * 0.1F); + if(toBurn > 0) { wasOn = true; } From b08a2bd6b7222fd6614809e8253f37d4a33a21af Mon Sep 17 00:00:00 2001 From: Doctor17-git <60807716+Doctor17-git@users.noreply.github.com> Date: Wed, 7 Jun 2023 18:03:24 +0300 Subject: [PATCH 044/109] Updated ru_RU.lang updated russian localization --- src/main/resources/assets/hbm/lang/ru_RU.lang | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/resources/assets/hbm/lang/ru_RU.lang b/src/main/resources/assets/hbm/lang/ru_RU.lang index 31f1280a6..a4786659c 100644 --- a/src/main/resources/assets/hbm/lang/ru_RU.lang +++ b/src/main/resources/assets/hbm/lang/ru_RU.lang @@ -2814,6 +2814,9 @@ tile.block_smore.name=Блок с'мора tile.block_niobium.name=Блок ниобия tile.block_bakelite.name=Блок бакелита tile.block_rubber.name=Блок резины +tile.block_cadmium.name=Кадмиевый блок +tile.block_cdalloy.name=Блок кадмиевой стали +tile.block_tcalloy.name=Блок технециевой стали tile.block_ra226.name=Блок радия-226 tile.block_u233.name=Блок урана-233 @@ -2915,6 +2918,7 @@ tile.ore_bedrock.name=Бедроковая руда item.ore.asbestos=Асбестовая item.ore.borax=Буровая +item.ore.chlorocalcite=Хлоркальцитовая item.ore.copper=Медная item.ore.gold=Золотая item.ore.iron=Железная @@ -3015,6 +3019,9 @@ tile.plant_tall.weed.name=Конопля tile.stone_cracked.name=Треснутый камень tile.reinforced_brick.name=Усиленный камень tile.reinforced_glass.name=Усиленное стекло +tile.reinforced_glass_pane.name=Усиленная стеклянная панель +tile.reinforced_laminate.name=Усиленный ламинат +tile.reinforced_laminate_pane.name=Усиленная ламинатная панель tile.reinforced_sand.name=Усиленный песчаник tile.reinforced_light.name=Усиленный светящийся камень tile.reinforced_lamp_off.name=Усиленная лампа @@ -3256,6 +3263,7 @@ item.fallout.name=Куча радиоактивных осадков item.powder_zirconium.name=Циркониевый порошок item.powder_boron.name=Борный порошок item.powder_borax.name=Бура +item.powder_chlorocalcite.name=Хлоркальцит item.powder_boron_tiny.name=Кучка борного порошка item.powder_at209.name=Порошок астата-209 item.powder_au198.name=Порошок золота-198 @@ -3395,6 +3403,7 @@ item.tank_steel.name=Стальной бак tile.barrel_tcalloy.name=Бочка из технециевой стали item.motor.name=Мотор item.motor_desh.name=Деш-мотор +item.motor_bismuth.name=Висмутовый мотор item.centrifuge_element.name=Элемент центрифуги item.centrifuge_tower.name=Башня центрифуги item.reactor_core.name=Активная зона реактора-размножителя From 1c27afbd739b8038075e22ad07f4b1cce1210c5a Mon Sep 17 00:00:00 2001 From: UFFR Date: Wed, 7 Jun 2023 18:10:01 -0400 Subject: [PATCH 045/109] Euphemium capacitor lmao Finally added it as it's own thing. Hopefully has a reasonable recipe. --- .gitignore | 18 ++++++++++++++++++ .../inventory/recipes/AssemblerRecipes.java | 9 +++++++++ src/main/java/com/hbm/items/ModItems.java | 3 +++ ...leEntityMachineSchrabidiumTransmutator.java | 12 +++++++----- src/main/resources/assets/hbm/lang/en_US.lang | 2 ++ 5 files changed, 39 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 22222fc39..776998c18 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,21 @@ run # Changelog backup /changelog.bak + +screenshots/ + +saves/ + +usernamecache.json + +options.txt + +logs/ + +doc/ + +crash-reports/ + +config/ + +asm/ diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index f93ba08bc..818f2b000 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -985,6 +985,15 @@ public class AssemblerRecipes { new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit_red_copper, 3) }, 200); + + makeRecipe(new ComparableStack(ModItems.euphemium_capacitor, 1), new AStack[] + { + new OreDictStack(NB.ingot(), 4), + new ComparableStack(ModItems.redcoil_capacitor, 1), + new ComparableStack(ModItems.ingot_euphemium, 4), + new ComparableStack(ModItems.circuit_tantalium, 6), + new ComparableStack(ModItems.powder_nitan_mix, 18), + }, 600); makeRecipe(new ComparableStack(ModBlocks.block_cap_nuka, 1), new AStack[] { new ComparableStack(ModItems.cap_nuka, 128) }, 10); makeRecipe(new ComparableStack(ModBlocks.block_cap_quantum, 1), new AStack[] { new ComparableStack(ModItems.cap_quantum, 128) }, 10); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 816ecdfe4..e4b0ec747 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1799,6 +1799,7 @@ public class ModItems { public static Item energy_core; public static Item fuse; public static Item redcoil_capacitor; + public static Item euphemium_capacitor; public static Item titanium_filter; //by using these in crafting table recipes, i'm running the risk of making my recipes too greg-ian (which i don't like) //in the event that i forget about the meaning of the word "sparingly", please throw a brick at my head @@ -4410,6 +4411,7 @@ public class ModItems { energy_core = new ItemBattery(10000000, 0, 1000).setUnlocalizedName("energy_core").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":energy_core"); fuse = new ItemCustomLore().setUnlocalizedName("fuse").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fuse"); redcoil_capacitor = new ItemCapacitor(10).setUnlocalizedName("redcoil_capacitor").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":redcoil_capacitor"); + euphemium_capacitor = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("euphemium_capacitor").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":redcoil_capacitor_euphemium"); titanium_filter = new ItemCapacitor(6 * 60 * 60 * 20).setUnlocalizedName("titanium_filter").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":titanium_filter"); screwdriver = new ItemTooling(ToolType.SCREWDRIVER, 100).setUnlocalizedName("screwdriver"); screwdriver_desh = new ItemTooling(ToolType.SCREWDRIVER, 0).setUnlocalizedName("screwdriver_desh"); @@ -6437,6 +6439,7 @@ public class ModItems { //Machine Items GameRegistry.registerItem(fuse, fuse.getUnlocalizedName()); GameRegistry.registerItem(redcoil_capacitor, redcoil_capacitor.getUnlocalizedName()); + GameRegistry.registerItem(euphemium_capacitor, euphemium_capacitor.getUnlocalizedName()); GameRegistry.registerItem(titanium_filter, titanium_filter.getUnlocalizedName()); GameRegistry.registerItem(screwdriver, screwdriver.getUnlocalizedName()); GameRegistry.registerItem(screwdriver_desh, screwdriver_desh.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java index 12bdd43ec..ba08db645 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java @@ -55,7 +55,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB return true; break; case 2: - if (stack.getItem() == ModItems.redcoil_capacitor) + if (stack.getItem() == ModItems.redcoil_capacitor || stack.getItem() == ModItems.euphemium_capacitor) return true; break; case 3: @@ -89,7 +89,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB @Override public boolean canExtractItem(int i, ItemStack stack, int j) { - if (i == 2 && stack.getItem() != null && stack.getItem() == ModItems.redcoil_capacitor && ItemCapacitor.getDura(stack) <= 0) { + if (i == 2 && stack.getItem() != null && (stack.getItem() == ModItems.redcoil_capacitor && ItemCapacitor.getDura(stack) <= 0) || stack.getItem() == ModItems.euphemium_capacitor) { return true; } @@ -115,8 +115,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB public boolean canProcess() { if (power >= 4990000 && slots[0] != null && MachineRecipes.mODE(slots[0], OreDictManager.U.ingot()) && slots[2] != null - && slots[2].getItem() == ModItems.redcoil_capacitor - && ItemCapacitor.getDura(slots[2]) > 0 + && (slots[2].getItem() == ModItems.redcoil_capacitor && ItemCapacitor.getDura(slots[2]) > 0 || slots[2].getItem() == ModItems.euphemium_capacitor) && (slots[1] == null || (slots[1] != null && slots[1].getItem() == VersatileConfig.getTransmutatorItem() && slots[1].stackSize < slots[1].getMaxStackSize()))) { return true; @@ -146,7 +145,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB } else { slots[1].stackSize++; } - if (slots[2] != null) { + if (slots[2] != null && slots[2].getItem() == ModItems.redcoil_capacitor) { ItemCapacitor.setDura(slots[2], ItemCapacitor.getDura(slots[2]) - 1); } @@ -195,6 +194,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB } } + @Override public AudioWrapper createAudioLoop() { return MainRegistry.proxy.getLoopedSound("hbm:weapon.tauChargeLoop", xCoord, yCoord, zCoord, 1.0F, 10F, 1.0F); } @@ -205,6 +205,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); } + @Override public void onChunkUnload() { if(audio != null) { @@ -213,6 +214,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB } } + @Override public void invalidate() { super.invalidate(); diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index c5d2f90be..7a80609d0 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -2305,6 +2305,8 @@ item.energy_core.name=Makeshift Energy Core item.entanglement_kit.name=Entanglement Kit item.entanglement_kit.desc=Teleporter crafting item.$Enables dimension-shifting via a$beryllium-enhanced resource scanner. item.euphemium_boots.name=Euphemium Boots +item.euphemium_capacitor.name=Euphemium Capacitor +item.euphemium_capacitor.desc=Permits passive dispersion of accumulated positive energy. item.euphemium_helmet.name=Euphemium Helmet item.euphemium_kit.name=Euphemium Kit item.euphemium_legs.name=Euphemium Leggings From 447cb061f294f98d530eb13a0856b28ead903f77 Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 8 Jun 2023 16:51:54 +0200 Subject: [PATCH 046/109] artillery gas shells --- changelog | 24 ++---- .../java/com/hbm/crafting/ArmorRecipes.java | 14 ++-- .../java/com/hbm/entity/EntityMappings.java | 2 +- .../com/hbm/entity/effect/EntityMist.java | 27 ++++++- .../standard/BlockMutatorDebris.java | 2 +- .../standard/BlockProcessorStandard.java | 2 + .../com/hbm/inventory/SlotCraftingOutput.java | 4 - .../java/com/hbm/inventory/fluid/Fluids.java | 2 +- .../hbm/inventory/fluid/trait/FT_Toxin.java | 2 + .../java/com/hbm/inventory/gui/GUIMixer.java | 1 - .../inventory/recipes/ChemplantRecipes.java | 18 +++++ .../java/com/hbm/items/tool/ItemWandD.java | 21 ------ .../com/hbm/items/weapon/ItemAmmoArty.java | 69 +++++++++++++++++- .../com/hbm/items/weapon/ItemAmmoHIMARS.java | 4 +- .../java/com/hbm/main/CraftingManager.java | 2 +- .../com/hbm/main/ModEventHandlerRenderer.java | 50 ++++++++++--- .../render/tileentity/RendererObjTester.java | 2 - .../TileEntityMachineChemplantBase.java | 2 - .../machine/pile/TileEntityPileBase.java | 2 - .../java/com/hbm/world/feature/BiomeCave.java | 2 - src/main/resources/assets/hbm/lang/de_DE.lang | 3 + src/main/resources/assets/hbm/lang/en_US.lang | 3 + .../items/chem_icon_SHELL_CHLORINE.png | Bin 0 -> 523 bytes .../items/chem_icon_SHELL_MUSTARD.png | Bin 0 -> 494 bytes .../items/chem_icon_SHELL_PHOSGENE.png | Bin 0 -> 491 bytes 25 files changed, 178 insertions(+), 80 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/items/chem_icon_SHELL_CHLORINE.png create mode 100644 src/main/resources/assets/hbm/textures/items/chem_icon_SHELL_MUSTARD.png create mode 100644 src/main/resources/assets/hbm/textures/items/chem_icon_SHELL_PHOSGENE.png diff --git a/changelog b/changelog index f3f78f256..d773337ea 100644 --- a/changelog +++ b/changelog @@ -1,22 +1,14 @@ ## Added -* Laminate glass - * A new variant of reinforced glass with higher blast resistance - * Also comes in pane shape -* Reinforced glass panes -* Chlorocalcite - * A new bedrock ore, the powder can be heated in the combination furnace to make calcium and chlorine -* Blocks for cadmium, TC and CD alloy * Machines now emit soot. Soot collects in units of 4x4 chunks, and spreads into neighboring regions. High levels of soot cause visible smog. +* Gas artillery shells + * Chlorine + * Phosgene + * Mustard gas ## Changed -* Updated russian localization -* Rebalanced some powder recipes like meteorite powder, spark blend and energy powder -* Changed spark battery recipes, the total cost and crafting steps for higher tier batteries should no longer be as insane as before -* Technetium steel and ferrouranium drillbits are now craftable -* The vacuum refinery now requires a bismuth chipset -* Paraffin wax can now also be used to make chlorated petroleum wax -* Retextured schrabidium batteries, the cap is now black instead of red +* Mist now spawns cloud particles with the correct color instead of standard white +* HE artillery shells and rockets now turn blocks into slag ## Fixed -* Fixed hydroreactive stat not applying when an item is dropped in the rain -* Fixed the liquefactor not working with ore dictionary recipes +* Fixed the TOXIC trait not respecting protection when applying potion effects +* Fixed some armor recipes only accepting polymer and not bakelite \ No newline at end of file diff --git a/src/main/java/com/hbm/crafting/ArmorRecipes.java b/src/main/java/com/hbm/crafting/ArmorRecipes.java index 40a284856..96b9543b8 100644 --- a/src/main/java/com/hbm/crafting/ArmorRecipes.java +++ b/src/main/java/com/hbm/crafting/ArmorRecipes.java @@ -54,8 +54,8 @@ public class ArmorRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.robes_boots, 1), new Object[] { "R R", "P P", 'R', ModItems.rag, 'P', ModItems.plate_polymer }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.security_helmet, 1), new Object[] { "SSS", "IGI", 'S', STEEL.plate(), 'I', ModItems.plate_polymer, 'G', KEY_ANYPANE }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.security_plate, 1), new Object[] { "KWK", "IKI", "WKW", 'K', ModItems.plate_kevlar, 'I', POLYMER.ingot(), 'W', new ItemStack(Blocks.wool, 1, OreDictionary.WILDCARD_VALUE) }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.security_legs, 1), new Object[] { "IWI", "K K", "W W", 'K', ModItems.plate_kevlar, 'I', POLYMER.ingot(), 'W', new ItemStack(Blocks.wool, 1, OreDictionary.WILDCARD_VALUE) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.security_plate, 1), new Object[] { "KWK", "IKI", "WKW", 'K', ModItems.plate_kevlar, 'I', ANY_PLASTIC.ingot(), 'W', new ItemStack(Blocks.wool, 1, OreDictionary.WILDCARD_VALUE) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.security_legs, 1), new Object[] { "IWI", "K K", "W W", 'K', ModItems.plate_kevlar, 'I', ANY_PLASTIC.ingot(), 'W', new ItemStack(Blocks.wool, 1, OreDictionary.WILDCARD_VALUE) }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.security_boots, 1), new Object[] { "P P", "I I", 'P', STEEL.plate(), 'I', ModItems.plate_polymer }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.dnt_helmet, 1), new Object[] { "EEE", "EE ", 'E', DNT.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.dnt_plate, 1), new Object[] { "EE ", "EEE", "EEE", 'E', DNT.ingot() }); @@ -68,7 +68,7 @@ public class ArmorRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.t45_plate, 1), new Object[] { "MPM", "TBT", "PPP", 'M', ModItems.motor, 'P', ModItems.plate_armor_titanium, 'T', ModItems.gas_empty, 'B', ModItems.titanium_plate }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.t45_legs, 1), new Object[] { "MPM", "PBP", "P P", 'M', ModItems.motor, 'P', ModItems.plate_armor_titanium, 'B', ModItems.titanium_legs }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.t45_boots, 1), new Object[] { "P P", "PBP", 'P', ModItems.plate_armor_titanium, 'B', ModItems.titanium_boots }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ajr_helmet, 1), new Object[] { "PPC", "PBP", "IXI", 'P', ModItems.plate_armor_ajr, 'C', ModItems.circuit_targeting_tier4, 'I', POLYMER.ingot(), 'X', ModItems.gas_mask_m65, 'B', ModItems.alloy_helmet }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ajr_helmet, 1), new Object[] { "PPC", "PBP", "IXI", 'P', ModItems.plate_armor_ajr, 'C', ModItems.circuit_targeting_tier4, 'I', ANY_PLASTIC.ingot(), 'X', ModItems.gas_mask_m65, 'B', ModItems.alloy_helmet }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ajr_plate, 1), new Object[] { "MPM", "TBT", "PPP", 'M', ModItems.motor_desh, 'P', ModItems.plate_armor_ajr, 'T', ModItems.gas_empty, 'B', ModItems.alloy_plate }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ajr_legs, 1), new Object[] { "MPM", "PBP", "P P", 'M', ModItems.motor_desh, 'P', ModItems.plate_armor_ajr, 'B', ModItems.alloy_legs }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ajr_boots, 1), new Object[] { "P P", "PBP", 'P', ModItems.plate_armor_ajr, 'B', ModItems.alloy_boots }); @@ -81,9 +81,9 @@ public class ArmorRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.bj_plate_jetpack, 1), new Object[] { "NFN", "TPT", "ICI", 'N', ModItems.plate_armor_lunar, 'F', ModItems.fins_quad_titanium, 'T', new ItemStack(ModItems.fluid_tank_full, 1, Fluids.XENON.getID()), 'P', ModItems.bj_plate, 'I', ModItems.mp_thruster_10_xenon, 'C', ModItems.crystal_phosphorus }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.bj_legs, 1), new Object[] { "MBM", "NSN", "N N", 'N', ModItems.plate_armor_lunar, 'M', ModItems.motor_desh, 'S', ModItems.starmetal_legs, 'B', ModBlocks.block_starmetal }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.bj_boots, 1), new Object[] { "N N", "BSB", 'N', ModItems.plate_armor_lunar, 'S', ModItems.starmetal_boots, 'B', ModBlocks.block_starmetal }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.hev_helmet, 1), new Object[] { "PPC", "PBP", "IFI", 'P', ModItems.plate_armor_hev, 'C', ModItems.circuit_targeting_tier4, 'B', ModItems.titanium_helmet, 'I', ModItems.plate_polymer, 'F', ModItems.gas_mask_filter }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.hev_plate, 1), new Object[] { "MPM", "IBI", "PPP", 'P', ModItems.plate_armor_hev, 'B', ModItems.titanium_plate, 'I', POLYMER.ingot(), 'M', ModItems.motor_desh }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.hev_legs, 1), new Object[] { "MPM", "IBI", "P P", 'P', ModItems.plate_armor_hev, 'B', ModItems.titanium_legs, 'I', POLYMER.ingot(), 'M', ModItems.motor_desh }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.hev_helmet, 1), new Object[] { "PPC", "PBP", "IFI", 'P', ModItems.plate_armor_hev, 'C', ModItems.circuit_targeting_tier4, 'B', ModItems.titanium_helmet, 'I', ANY_PLASTIC.ingot(), 'F', ModItems.gas_mask_filter }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.hev_plate, 1), new Object[] { "MPM", "IBI", "PPP", 'P', ModItems.plate_armor_hev, 'B', ModItems.titanium_plate, 'I', ANY_PLASTIC.ingot(), 'M', ModItems.motor_desh }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.hev_legs, 1), new Object[] { "MPM", "IBI", "P P", 'P', ModItems.plate_armor_hev, 'B', ModItems.titanium_legs, 'I', ANY_PLASTIC.ingot(), 'M', ModItems.motor_desh }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.hev_boots, 1), new Object[] { "P P", "PBP", 'P', ModItems.plate_armor_hev, 'B', ModItems.titanium_boots }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.fau_helmet, 1), new Object[] { "PWP", "PBP", "FSF", 'P', ModItems.plate_armor_fau, 'W', new ItemStack(Blocks.wool, 1, 14), 'B', ModItems.starmetal_helmet, 'F', ModItems.gas_mask_filter, 'S', ModItems.pipes_steel }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.fau_plate, 1), new Object[] { "MCM", "PBP", "PSP", 'M', ModItems.motor_desh, 'C', ModItems.demon_core_closed, 'P', ModItems.plate_armor_fau, 'B', ModItems.starmetal_plate, 'S', ModBlocks.ancient_scrap }); @@ -162,7 +162,7 @@ public class ArmorRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gas_mask_olde, 1), new Object[] { "PPP", "GPG", " F ", 'G', KEY_ANYPANE, 'P', Items.leather, 'F', IRON.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gas_mask_mono, 1), new Object[] { " P ", "PPP", " F ", 'P', ModItems.plate_polymer, 'F', IRON.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.mask_of_infamy, 1), new Object[] { "III", "III", " I ", 'I', IRON.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ashglasses, 1), new Object[] { "I I", "GPG", 'I', ModItems.plate_polymer, 'G', ModBlocks.glass_ash, 'P', POLYMER.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ashglasses, 1), new Object[] { "I I", "GPG", 'I', ModItems.plate_polymer, 'G', ModBlocks.glass_ash, 'P', ANY_PLASTIC.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.mask_rag, 1), new Object[] { "RRR", 'R', ModItems.rag_damp }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.mask_piss, 1), new Object[] { "RRR", 'R', ModItems.rag_piss }); diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index fee770026..797097dfc 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -210,7 +210,7 @@ public class EntityMappings { addEntity(EntityCog.class, "entity_stray_cog", 1000); addEntity(EntitySawblade.class, "entity_stray_saw", 1000); addEntity(EntityChemical.class, "entity_chemthrower_splash", 1000); - addEntity(EntityMist.class, "entity_mist", 1000); + addEntity(EntityMist.class, "entity_mist", 250, false); addEntity(EntityItemWaste.class, "entity_item_waste", 100); addEntity(EntityItemBuoyant.class, "entity_item_buoyant", 100); diff --git a/src/main/java/com/hbm/entity/effect/EntityMist.java b/src/main/java/com/hbm/entity/effect/EntityMist.java index 4150a436b..ceb2dc014 100644 --- a/src/main/java/com/hbm/entity/effect/EntityMist.java +++ b/src/main/java/com/hbm/entity/effect/EntityMist.java @@ -16,6 +16,7 @@ import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Gaseous_ART; import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Liquid; import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Viscous; import com.hbm.lib.ModDamageSource; +import com.hbm.main.MainRegistry; import com.hbm.util.ArmorUtil; import com.hbm.util.ContaminationUtil; import com.hbm.util.EntityDamageUtil; @@ -101,10 +102,21 @@ public class EntityMist extends Entity { } else { for(int i = 0; i < 2; i++) { - double x = this.boundingBox.minX + rand.nextDouble() * (this.boundingBox.maxX - this.boundingBox.minX); + double x = this.boundingBox.minX + (rand.nextDouble() - 0.5) * (this.boundingBox.maxX - this.boundingBox.minX); double y = this.boundingBox.minY + rand.nextDouble() * (this.boundingBox.maxY - this.boundingBox.minY); - double z = this.boundingBox.minZ + rand.nextDouble() * (this.boundingBox.maxZ - this.boundingBox.minZ); - worldObj.spawnParticle("cloud", x, y, z, 0, 0, 0); + double z = this.boundingBox.minZ + (rand.nextDouble() - 0.5) * (this.boundingBox.maxZ - this.boundingBox.minZ); + + NBTTagCompound fx = new NBTTagCompound(); + fx.setString("type", "tower"); + fx.setFloat("lift", 0.5F); + fx.setFloat("base", 0.75F); + fx.setFloat("max", 2F); + fx.setInteger("life", 50 + worldObj.rand.nextInt(10)); + fx.setInteger("color",this.getType().getColor()); + fx.setDouble("posX", x); + fx.setDouble("posY", y); + fx.setDouble("posZ", z); + MainRegistry.proxy.effectNT(fx); } } } @@ -192,11 +204,14 @@ public class EntityMist extends Entity { @Override protected void readEntityFromNBT(NBTTagCompound nbt) { this.setType(Fluids.fromID(nbt.getInteger("type"))); + this.setArea(nbt.getFloat("width"), nbt.getFloat("height")); } @Override protected void writeEntityToNBT(NBTTagCompound nbt) { nbt.setInteger("type", this.getType().getID()); + nbt.setFloat("width", this.dataWatcher.getWatchableObjectFloat(11)); + nbt.setFloat("height", this.dataWatcher.getWatchableObjectFloat(12)); } @Override @@ -204,6 +219,12 @@ public class EntityMist extends Entity { public boolean canRenderOnFire() { return false; } + + @Override public void moveEntity(double x, double y, double z) { } + @Override public void addVelocity(double x, double y, double z) { } + @Override public void setPosition(double x, double y, double z) { + if(this.ticksExisted == 0) super.setPosition(x, y, z); //honest to fucking god mojang suck my fucking nuts + } public static SprayStyle getStyleFromType(FluidType type) { diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorDebris.java b/src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorDebris.java index 3210eff6e..9feb9a918 100644 --- a/src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorDebris.java +++ b/src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorDebris.java @@ -27,7 +27,7 @@ public class BlockMutatorDebris implements IBlockMutator { World world = explosion.world; for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { Block b = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ); - if(b.isNormalCube()) { + if(b.isNormalCube() && (b != metaBlock.block || world.getBlockMetadata(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ) != metaBlock.meta)) { world.setBlock(x, y, z, metaBlock.block, metaBlock.meta, 3); return; } diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/BlockProcessorStandard.java b/src/main/java/com/hbm/explosion/vanillant/standard/BlockProcessorStandard.java index a6da1e153..8d76b9d9a 100644 --- a/src/main/java/com/hbm/explosion/vanillant/standard/BlockProcessorStandard.java +++ b/src/main/java/com/hbm/explosion/vanillant/standard/BlockProcessorStandard.java @@ -64,6 +64,8 @@ public class BlockProcessorStandard implements IBlockProcessor { block.onBlockExploded(world, blockX, blockY, blockZ, explosion.compat); if(this.convert != null) this.convert.mutatePre(explosion, block, world.getBlockMetadata(blockX, blockY, blockZ), blockX, blockY, blockZ); + } else { + iterator.remove(); } } diff --git a/src/main/java/com/hbm/inventory/SlotCraftingOutput.java b/src/main/java/com/hbm/inventory/SlotCraftingOutput.java index 5095f2b7e..46770d660 100644 --- a/src/main/java/com/hbm/inventory/SlotCraftingOutput.java +++ b/src/main/java/com/hbm/inventory/SlotCraftingOutput.java @@ -1,14 +1,10 @@ package com.hbm.inventory; -import com.hbm.blocks.ModBlocks; -import com.hbm.items.ModItems; -import com.hbm.main.MainRegistry; import com.hbm.util.AchievementHandler; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; public class SlotCraftingOutput extends Slot { diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index b1b4a9ad4..c62591afc 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -254,7 +254,7 @@ public class Fluids { SYNGAS = new FluidType("SYNGAS", 0x131313, 1, 4, 2, EnumSymbol.NONE).addContainers(new CD_Gastank(0xFFFFFF, 0x131313)).addTraits(GASEOUS); OXYHYDROGEN = new FluidType("OXYHYDROGEN", 0x483FC1, 0, 4, 2, EnumSymbol.NONE).addTraits(GASEOUS); RADIOSOLVENT = new FluidType("RADIOSOLVENT", 0xA4D7DD, 3, 3, 0, EnumSymbol.NONE).addTraits(LIQUID, LEADCON, new FT_Corrosive(50), new FT_VentRadiation(0.01F)); - CHLORINE = new FluidType("CHLORINE", 0xBAB572, 3, 0, 0, EnumSymbol.OXIDIZER).addContainers(new CD_Gastank(0xBAB572, 0x887B34)).addTraits(GASEOUS, new FT_Corrosive(25), new FT_Poison(true, 1)); + CHLORINE = new FluidType("CHLORINE", 0xBAB572, 3, 0, 0, EnumSymbol.OXIDIZER).addContainers(new CD_Gastank(0xBAB572, 0x887B34)).addTraits(GASEOUS, new FT_Corrosive(25)); HEAVYOIL_VACUUM = new FluidType("HEAVYOIL_VACUUM", 0x131214, 2, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS).addContainers(new CD_Canister(0x513F39)); REFORMATE = new FluidType("REFORMATE", 0x835472, 2, 2, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS).addContainers(new CD_Canister(0xD180D6)); LIGHTOIL_VACUUM = new FluidType("LIGHTOIL_VACUUM", 0x8C8851, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID).addContainers(new CD_Canister(0xB46B52)); diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java index 456b8e0a8..fc759219b 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java @@ -116,6 +116,8 @@ public class FT_Toxin extends FluidTrait { @Override public void poison(EntityLivingBase entity, double intensity) { + if(isProtected(entity)) return; + for(PotionEffect eff : effects) { entity.addPotionEffect(new PotionEffect(eff.getPotionID(), (int) (eff.getDuration() * intensity), eff.getAmplifier())); } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMixer.java b/src/main/java/com/hbm/inventory/gui/GUIMixer.java index 9d082bbfe..15dd31b72 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMixer.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMixer.java @@ -9,7 +9,6 @@ import com.hbm.inventory.container.ContainerMixer; import com.hbm.inventory.recipes.MixerRecipes; import com.hbm.inventory.recipes.MixerRecipes.MixerRecipe; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.machine.TileEntityMachineMixer; diff --git a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java index f482f0a3c..f05689475 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java @@ -380,6 +380,24 @@ public class ChemplantRecipes extends SerializableRecipe { .inputItems(new OreDictStack(DIAMOND.dust(), 1)) .inputFluids(new FluidStack(Fluids.XPJUICE, 500)) .outputFluids(new FluidStack(Fluids.ENDERJUICE, 100))); + recipes.add(new ChemRecipe(98, "SHELL_CHLORINE", 100) + .inputItems( + new ComparableStack(ModItems.ammo_arty, 1, 0), + new OreDictStack(ANY_PLASTIC.ingot(), 1)) + .inputFluids(new FluidStack(Fluids.CHLORINE, 4000)) + .outputItems(new ItemStack(ModItems.ammo_arty, 1, 9))); + recipes.add(new ChemRecipe(99, "SHELL_PHOSGENE", 100) + .inputItems( + new ComparableStack(ModItems.ammo_arty, 1, 0), + new OreDictStack(ANY_PLASTIC.ingot(), 1)) + .inputFluids(new FluidStack(Fluids.PHOSGENE, 4000)) + .outputItems(new ItemStack(ModItems.ammo_arty, 1, 10))); + recipes.add(new ChemRecipe(100, "SHELL_MUSTARD", 100) + .inputItems( + new ComparableStack(ModItems.ammo_arty, 1, 0), + new OreDictStack(ANY_PLASTIC.ingot(), 1)) + .inputFluids(new FluidStack(Fluids.MUSTARDGAS, 4000)) + .outputItems(new ItemStack(ModItems.ammo_arty, 1, 11))); } public static void registerFuelProcessing() { diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index b165bae10..06b5fe384 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -2,35 +2,14 @@ package com.hbm.items.tool; import java.util.List; -import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.rail.IRailNTM; -import com.hbm.blocks.rail.IRailNTM.RailContext; -import com.hbm.explosion.vanillant.ExplosionVNT; -import com.hbm.explosion.vanillant.standard.BlockAllocatorBulkie; -import com.hbm.explosion.vanillant.standard.BlockMutatorBulkie; -import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; -import com.hbm.explosion.vanillant.standard.EntityProcessorStandard; -import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard; -import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.lib.Library; -import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.PlayerInformPacket; -import com.hbm.util.ParticleUtil; -import com.hbm.util.fauxpointtwelve.BlockPos; -import com.hbm.world.feature.OilSpot; -import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; import net.minecraft.world.World; public class ItemWandD extends Item { diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java index 8a96ce169..40efef4ce 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java @@ -3,7 +3,9 @@ package com.hbm.items.weapon; import java.util.List; import java.util.Random; +import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; +import com.hbm.entity.effect.EntityMist; import com.hbm.entity.effect.EntityNukeCloudSmall; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.entity.projectile.EntityArtilleryShell; @@ -12,10 +14,12 @@ import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionNukeSmall; import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; +import com.hbm.explosion.vanillant.standard.BlockMutatorDebris; import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; import com.hbm.explosion.vanillant.standard.EntityProcessorCross; import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard; import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; +import com.hbm.inventory.fluid.Fluids; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.packet.AuxParticlePacketNT; @@ -46,8 +50,7 @@ import net.minecraft.util.MovingObjectPosition.MovingObjectType; public class ItemAmmoArty extends Item { public static Random rand = new Random(); - public static ArtilleryShell[] itemTypes = new ArtilleryShell[ /* >>> */ 9 /* <<< */ ]; - //public static ArtilleryShell[] shellTypes = new ArtilleryShell[ /* >>> */ 8 /* <<< */ ]; + public static ArtilleryShell[] itemTypes = new ArtilleryShell[ /* >>> */ 12 /* <<< */ ]; /* item types */ public final int NORMAL = 0; public final int CLASSIC = 1; @@ -58,6 +61,9 @@ public class ItemAmmoArty extends Item { public final int MINI_NUKE_MULTI = 6; public final int PHOSPHORUS_MULTI = 7; public final int CARGO = 8; + public final int CHLORINE = 9; + public final int PHOSGENE = 10; + public final int MUSTARD = 11; /* non-item shell types */ public ItemAmmoArty() { @@ -78,6 +84,9 @@ public class ItemAmmoArty extends Item { list.add(new ItemStack(item, 1, MINI_NUKE_MULTI)); list.add(new ItemStack(item, 1, NUKE)); list.add(new ItemStack(item, 1, CARGO)); + list.add(new ItemStack(item, 1, CHLORINE)); + list.add(new ItemStack(item, 1, PHOSGENE)); + list.add(new ItemStack(item, 1, MUSTARD)); } @Override @@ -195,7 +204,7 @@ public class ItemAmmoArty extends Item { ExplosionVNT xnt = new ExplosionVNT(shell.worldObj, mop.hitVec.xCoord - vec.xCoord, mop.hitVec.yCoord - vec.yCoord, mop.hitVec.zCoord - vec.zCoord, size); if(breaksBlocks) { xnt.setBlockAllocator(new BlockAllocatorStandard(48)); - xnt.setBlockProcessor(new BlockProcessorStandard().setNoDrop()); + xnt.setBlockProcessor(new BlockProcessorStandard().setNoDrop().withBlockEffect(new BlockMutatorDebris(ModBlocks.block_slag, 1))); } xnt.setEntityProcessor(new EntityProcessorCross(7.5D).withRangeMod(rangeMod)); xnt.setPlayerProcessor(new PlayerProcessorStandard()); @@ -298,6 +307,60 @@ public class ItemAmmoArty extends Item { } }}; + /* GAS */ + this.itemTypes[CHLORINE] = new ArtilleryShell("ammo_arty_chlorine", SpentCasing.COLOR_CASE_16INCH) { + public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { + shell.killAndClear(); + Vec3 vec = Vec3.createVectorHelper(shell.motionX, shell.motionY, shell.motionZ).normalize(); + shell.worldObj.createExplosion(shell, mop.hitVec.xCoord - vec.xCoord, mop.hitVec.yCoord - vec.yCoord, mop.hitVec.zCoord - vec.zCoord, 5F, false); + EntityMist mist = new EntityMist(shell.worldObj); + mist.setType(Fluids.CHLORINE); + mist.setPosition(mop.hitVec.xCoord - vec.xCoord, mop.hitVec.yCoord - vec.yCoord - 3, mop.hitVec.zCoord - vec.zCoord); + mist.setArea(15, 7.5F); + shell.worldObj.spawnEntityInWorld(mist); + } + }; + this.itemTypes[PHOSGENE] = new ArtilleryShell("ammo_arty_phosgene", SpentCasing.COLOR_CASE_16INCH_NUKE) { + public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { + shell.killAndClear(); + Vec3 vec = Vec3.createVectorHelper(shell.motionX, shell.motionY, shell.motionZ).normalize(); + shell.worldObj.createExplosion(shell, mop.hitVec.xCoord - vec.xCoord, mop.hitVec.yCoord - vec.yCoord, mop.hitVec.zCoord - vec.zCoord, 5F, false); + for(int i = 0; i < 3; i++) { + EntityMist mist = new EntityMist(shell.worldObj); + mist.setType(Fluids.PHOSGENE); + double x = mop.hitVec.xCoord - vec.xCoord; + double z = mop.hitVec.zCoord - vec.zCoord; + if(i > 0) { + x += rand.nextGaussian() * 15; + z += rand.nextGaussian() * 15; + } + mist.setPosition(x, mop.hitVec.yCoord - vec.yCoord - 5, z); + mist.setArea(15, 10); + shell.worldObj.spawnEntityInWorld(mist); + } + } + }; + this.itemTypes[MUSTARD] = new ArtilleryShell("ammo_arty_mustard_gas", SpentCasing.COLOR_CASE_16INCH_NUKE) { + public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { + shell.killAndClear(); + Vec3 vec = Vec3.createVectorHelper(shell.motionX, shell.motionY, shell.motionZ).normalize(); + shell.worldObj.createExplosion(shell, mop.hitVec.xCoord - vec.xCoord, mop.hitVec.yCoord - vec.yCoord, mop.hitVec.zCoord - vec.zCoord, 5F, false); + for(int i = 0; i < 5; i++) { + EntityMist mist = new EntityMist(shell.worldObj); + mist.setType(Fluids.MUSTARDGAS); + double x = mop.hitVec.xCoord - vec.xCoord; + double z = mop.hitVec.zCoord - vec.zCoord; + if(i > 0) { + x += rand.nextGaussian() * 25; + z += rand.nextGaussian() * 25; + } + mist.setPosition(x, mop.hitVec.yCoord - vec.yCoord - 5, z); + mist.setArea(20, 10); + shell.worldObj.spawnEntityInWorld(mist); + } + } + }; + /* CLUSTER SHELLS */ this.itemTypes[PHOSPHORUS_MULTI] = new ArtilleryShell("ammo_arty_phosphorus_multi", SpentCasing.COLOR_CASE_16INCH_PHOS) { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { ItemAmmoArty.this.itemTypes[PHOSPHORUS].onImpact(shell, mop); } diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java b/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java index 9d2b1dba1..b3d26faf8 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java @@ -2,12 +2,14 @@ package com.hbm.items.weapon; import java.util.List; +import com.hbm.blocks.ModBlocks; import com.hbm.entity.projectile.EntityArtilleryRocket; import com.hbm.explosion.ExplosionChaos; import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionNukeSmall; import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; +import com.hbm.explosion.vanillant.standard.BlockMutatorDebris; import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; import com.hbm.explosion.vanillant.standard.EntityProcessorCross; import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard; @@ -143,7 +145,7 @@ public class ItemAmmoHIMARS extends Item { ExplosionVNT xnt = new ExplosionVNT(rocket.worldObj, mop.hitVec.xCoord - vec.xCoord, mop.hitVec.yCoord - vec.yCoord, mop.hitVec.zCoord - vec.zCoord, size); if(breaksBlocks) { xnt.setBlockAllocator(new BlockAllocatorStandard(48)); - xnt.setBlockProcessor(new BlockProcessorStandard().setNoDrop()); + xnt.setBlockProcessor(new BlockProcessorStandard().setNoDrop().withBlockEffect(new BlockMutatorDebris(ModBlocks.block_slag, 1))); } xnt.setEntityProcessor(new EntityProcessorCross(7.5).withRangeMod(rangeMod)); xnt.setPlayerProcessor(new PlayerProcessorStandard()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 4a3b9778d..99ca2d9be 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -189,7 +189,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.motor, 2), new Object[] { " R ", "ICI", "ITI", 'R', ModItems.wire_red_copper, 'T', ModItems.coil_copper_torus, 'I', IRON.plate(), 'C', ModItems.coil_copper }); addRecipeAuto(new ItemStack(ModItems.motor, 2), new Object[] { " R ", "ICI", " T ", 'R', ModItems.wire_red_copper, 'T', ModItems.coil_copper_torus, 'I', STEEL.plate(), 'C', ModItems.coil_copper }); addRecipeAuto(new ItemStack(ModItems.motor_desh, 1), new Object[] { "PCP", "DMD", "PCP", 'P', ANY_PLASTIC.ingot(), 'C', ModItems.coil_gold_torus, 'D', DESH.ingot(), 'M', ModItems.motor }); - addRecipeAuto(new ItemStack(ModItems.motor_bismuth, 1), new Object[] { "BCB", "SBS", "BCB", 'B', BI.nugget(), 'C', ModBlocks.hadron_coil_alloy, 'S', STEEL.plateCast(), 'B', DURA.ingot() }); + addRecipeAuto(new ItemStack(ModItems.motor_bismuth, 1), new Object[] { "BCB", "SDS", "BCB", 'B', BI.nugget(), 'C', ModBlocks.hadron_coil_alloy, 'S', STEEL.plateCast(), 'D', DURA.ingot() }); //addRecipeAuto(new ItemStack(ModItems.centrifuge_element, 1), new Object[] { " T ", "WTW", "RMR", 'R', ModItems.wire_red_copper, 'T', ModItems.tank_steel, 'M', ModItems.motor, 'W', ModItems.coil_tungsten }); //addRecipeAuto(new ItemStack(ModItems.centrifuge_tower, 1), new Object[] { "LL", "EE", "EE", 'E', ModItems.centrifuge_element, 'L', KEY_BLUE }); //addRecipeAuto(new ItemStack(ModItems.reactor_core, 1), new Object[] { "LNL", "N N", "LNL", 'N', getReflector(), 'L', PB.plate() }); diff --git a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java index 85e7544e4..e01007977 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java +++ b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java @@ -1,6 +1,7 @@ package com.hbm.main; import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GLContext; import com.hbm.blocks.ICustomBlockHighlight; import com.hbm.handler.pollution.PollutionHandler.PollutionType; @@ -9,9 +10,9 @@ import com.hbm.items.armor.IArmorDisableModel.EnumPlayerPart; import com.hbm.packet.PermaSyncHandler; import com.hbm.render.model.ModelMan; -import cpw.mods.fml.common.eventhandler.Event.Result; import cpw.mods.fml.common.eventhandler.EventPriority; import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.common.gameevent.TickEvent.WorldTickEvent; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.client.model.ModelRenderer; @@ -28,7 +29,6 @@ import net.minecraft.util.MovingObjectPosition; import net.minecraftforge.client.event.DrawBlockHighlightEvent; import net.minecraftforge.client.event.EntityViewRenderEvent.FogColors; import net.minecraftforge.client.event.EntityViewRenderEvent.FogDensity; -import net.minecraftforge.client.event.EntityViewRenderEvent.RenderFogEvent; import net.minecraftforge.client.event.RenderPlayerEvent; public class ModEventHandlerRenderer { @@ -325,29 +325,55 @@ public class ModEventHandlerRenderer { } }*/ + float renderSoot = 0; + @SubscribeEvent - public void setupFog(RenderFogEvent event) { + public void worldTick(WorldTickEvent event) { + + if(event.phase == event.phase.START) { + + float step = 0.05F; + float soot = PermaSyncHandler.pollution[PollutionType.SOOT.ordinal()]; + + if(Math.abs(renderSoot - soot) < step) { + renderSoot = soot; + } else if(renderSoot < soot) { + renderSoot += step; + } else if(renderSoot > soot) { + renderSoot -= step; + } + } } @SubscribeEvent(priority = EventPriority.LOW) public void thickenFog(FogDensity event) { - float soot = PermaSyncHandler.pollution[PollutionType.SOOT.ordinal()]; - if(soot > 10) { + float soot = renderSoot - 35; + if(soot > 0) { //event.density = Math.min((soot - 5) * 0.01F, 0.5F); - GL11.glFogf(GL11.GL_FOG_START, 0.0F); float farPlaneDistance = (float) (Minecraft.getMinecraft().gameSettings.renderDistanceChunks * 16); - GL11.glFogf(GL11.GL_FOG_END, Math.max(farPlaneDistance * 0.8F / (soot * 0.05F), 5F)); + float fogDist = farPlaneDistance / (1 + soot * 0.05F); + GL11.glFogf(GL11.GL_FOG_START, 0); + GL11.glFogf(GL11.GL_FOG_END, fogDist); + + if(GLContext.getCapabilities().GL_NV_fog_distance) { + GL11.glFogi(34138, 34139); + } + //GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); + //GL11.glFogf(GL11.GL_FOG_DENSITY, 2F); event.setCanceled(true); } } @SubscribeEvent(priority = EventPriority.LOW) public void tintFog(FogColors event) { - float soot = PermaSyncHandler.pollution[PollutionType.SOOT.ordinal()]; - if(soot > 10) { - event.red = 0.15F; - event.green = 0.15F; - event.blue = 0.15F; + float soot = renderSoot - 35; + float sootColor = 0.15F; + float sootReq = 100F; + if(soot > 0) { + float interp = Math.min(soot / sootReq, 1F); + event.red = event.red * (1 - interp) + sootColor * interp; + event.green = event.green * (1 - interp) + sootColor * interp; + event.blue = event.blue * (1 - interp) + sootColor * interp; } } } diff --git a/src/main/java/com/hbm/render/tileentity/RendererObjTester.java b/src/main/java/com/hbm/render/tileentity/RendererObjTester.java index 49ef618d6..7c8eebb57 100644 --- a/src/main/java/com/hbm/render/tileentity/RendererObjTester.java +++ b/src/main/java/com/hbm/render/tileentity/RendererObjTester.java @@ -20,8 +20,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.model.AdvancedModelLoader; -import net.minecraftforge.client.model.IModelCustom; public class RendererObjTester extends TileEntitySpecialRenderer { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java index 9956e1810..6d2501a7e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java @@ -3,8 +3,6 @@ package com.hbm.tileentity.machine; import java.util.ArrayList; import java.util.List; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; diff --git a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileBase.java b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileBase.java index 30d6c3552..8c06fd658 100644 --- a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileBase.java +++ b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileBase.java @@ -4,7 +4,6 @@ import java.util.List; import java.util.Random; import com.hbm.blocks.ModBlocks; -import com.hbm.main.MainRegistry; import com.hbm.util.ContaminationUtil; import com.hbm.util.ContaminationUtil.ContaminationType; import com.hbm.util.ContaminationUtil.HazardType; @@ -12,7 +11,6 @@ import com.hbm.util.ContaminationUtil.HazardType; import api.hbm.block.IPileNeutronReceiver; import net.minecraft.block.Block; import net.minecraft.entity.EntityLivingBase; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.Vec3; diff --git a/src/main/java/com/hbm/world/feature/BiomeCave.java b/src/main/java/com/hbm/world/feature/BiomeCave.java index 9d297778e..0add71808 100644 --- a/src/main/java/com/hbm/world/feature/BiomeCave.java +++ b/src/main/java/com/hbm/world/feature/BiomeCave.java @@ -4,11 +4,9 @@ import java.util.Random; import com.hbm.blocks.BlockEnums.EnumBiomeType; import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.generic.BlockStalagmite; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import net.minecraft.block.Block; -import net.minecraft.block.material.Material; import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.biome.BiomeGenBase.TempCategory; diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 3667c7753..6d02868f9 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -942,11 +942,14 @@ item.ammo_9mm_du.name=9mm Patrone (DU) item.ammo_9mm_rocket.name=9mm Rakete item.ammo_arty.name=16" Artilleriegranate item.ammo_arty_cargo.name=16" Artilleriegranate (Expresslieferung) +item.ammo_arty_chlorine.name=16" Artilleriegranate (Chlorgas) item.ammo_arty_classic.name=16" Artilleriegranate (Das Factorio-Spezial) item.ammo_arty_he.name=16" Artilleriegranate (HE) item.ammo_arty_mini_nuke.name=16" Mikroatomgranate item.ammo_arty_mini_nuke_multi.name=16" Mehrfach-Mikroatomgranate +item.ammo_arty_mustard_gas.name=16" Artilleriegranate (Senfgas) item.ammo_arty_nuke.name=16" Atomare Artilleriegranate +item.ammo_arty_phosgene.name=16" Artilleriegranate (Phosgen) item.ammo_arty_phosphorus.name=16" Phosphor-Artilleriegranate item.ammo_arty_phosphorus_multi.name=16" Mehrfach-Phosphor-Artilleriegranate item.ammo_cell.name=Energiezelle diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index c5d2f90be..94ee5060f 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1522,11 +1522,14 @@ item.ammo_9mm_du.name=9mm Round (DU) item.ammo_9mm_rocket.name=9mm Rocket item.ammo_arty.name=16" Artillery Shell item.ammo_arty_cargo.name=16" Express Delivery Artillery Shell +item.ammo_arty_chlorine.name=16" Chlorine Gas Artillery Shell item.ammo_arty_classic.name=16" Artillery Shell (The Factorio Special) item.ammo_arty_he.name=16" High Explosive Artillery Shell item.ammo_arty_mini_nuke.name=16" Micro Nuclear Artillery Shell item.ammo_arty_mini_nuke_multi.name=16" Multi Micro Nuclear Artillery Shell +item.ammo_arty_mustard_gas.name=16" Mustard Gas Artillery Shell item.ammo_arty_nuke.name=16" Nuclear Artillery Shell +item.ammo_arty_phosgene.name=16" Phosgene Artillery Shell item.ammo_arty_phosphorus.name=16" Phosphorus Shell item.ammo_arty_phosphorus_multi.name=16" Multi Phosphorus Shell item.ammo_cell.name=Energy Cell diff --git a/src/main/resources/assets/hbm/textures/items/chem_icon_SHELL_CHLORINE.png b/src/main/resources/assets/hbm/textures/items/chem_icon_SHELL_CHLORINE.png new file mode 100644 index 0000000000000000000000000000000000000000..21ce59d8289dcd9319cd9e135aa4682680053c06 GIT binary patch literal 523 zcmV+m0`&cfP)t<6rmzgi^K>S2*O1K4}w9a z7DWWDf;J^MI@%_%jS$iwD8iK>ErKD45L!tDMYSFVT?Fz>WVr8Tdfha4eDj=`v%2uz z^PS&!E?4lcE_+!GFgNp;bb3k9Vp+ArZ-0Y8g-Cgb;gKO-sa({p7#!$3e_8{~Ot+Cr zwc+JAaohw_+6<2jX@HOKJ~bt>>XQ}MZd3tyGiNh;`wxzr0N`$Zpec=5Sm@HJl*9Eq z+q`<(4#0z{gQgjvH|f*g5t5tu86&YgZ$;E5OR2c`aGO8{1S&L_9D9e1)Xa~ciIG^f z{Ex=A@ba5RsF|EQzDDk3NO8GyUlW6rKGmTC9M|De-%)cR*P|#dck<-IDgb^cC|8Av zW6@B73V8o*ox$#a!R~-^RYc-6l0=qrHG9n9<$4rbN4kvm>~j*wO+-lMzq`b?`uOHy zy|<}w#Wh++YLbci3SRzj;}PyZ-!P`P&iWMIDx;OF0za(JbnKlt!G0tesUvYRQd6qf zOwN84|NS(LCQIulj5hoFivXGvG&3nxY+fv`nZB03?cUc}{O~K%vkR6OskNzo?c)Fd N002ovPDHLkV1kGj?eqWu literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/chem_icon_SHELL_MUSTARD.png b/src/main/resources/assets/hbm/textures/items/chem_icon_SHELL_MUSTARD.png new file mode 100644 index 0000000000000000000000000000000000000000..dd8ee6c2a0fb3243e7e5d4c20a29501c136139cb GIT binary patch literal 494 zcmV9oCiUT2NDzQDV5tB~R zg_Nmdd#zY1Hi2zZssuzqB}IyGLO?w55|uMK4%yi|Wzu9v*Y(6#&G2~N```O#4F1Pl z`LzOAtK3j5el>Vz^u&k1S50IX;W#;F=BHJy_DVem&^u8YQvj8f48EVCywpP2Ssce= zW`0@$?0nhns;K9#bI8KmYXCOaEEbpB2s;bF#LMxnYK$NlR=zKI^X``Q)dBz?Kbg81 z;PQ6^)9Ph^`zWQv04RH zB-`}$yKMR=lz$GTAo@@o9aOrrX={jA$PUdi+biS~<9r@F$1%->lE%dqsjbGN#6=%klZl-?bSE`J z?f935E>s7oxZjfFg^|8nSu3sJF(twlkGiwBbznUCX&yrEyYv0$N_@$pWzO?8#U)mhYEzu_$=?>M!r#765qtCS!^L zeqFZ7*l7+weM=~@0Lt@oS~vo~=~COW0T7Nbkk0QeSz)6Bm4H|PzF*Q&XD{!Wq;LeG z>N7p-ve&SwY;+S4b12WxY12957>HNM<2PN_YkdGz5XK Date: Thu, 8 Jun 2023 21:58:09 +0200 Subject: [PATCH 047/109] rail ramps, some performance stuff, fixes --- changelog | 3 + gradle.properties | 8 +- src/main/java/com/hbm/blocks/ModBlocks.java | 4 + .../com/hbm/blocks/rail/RailStandardRamp.java | 133 +++ .../hbm/entity/train/EntityRailCarBase.java | 5 +- .../com/hbm/handler/EntityEffectHandler.java | 10 +- .../handler/pollution/PollutionHandler.java | 17 +- src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/ModEventHandler.java | 6 +- .../com/hbm/main/ModEventHandlerClient.java | 5 + .../java/com/hbm/main/ResourceManager.java | 1 + .../render/block/RenderStandardRampRail.java | 80 ++ .../TileEntityMachineElectricFurnace.java | 2 +- src/main/resources/META-INF/HBM_at.cfg | 3 + .../hbm/models/blocks/rail_standard_ramp.obj | 759 ++++++++++++++++++ 15 files changed, 1017 insertions(+), 20 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/rail/RailStandardRamp.java create mode 100644 src/main/java/com/hbm/render/block/RenderStandardRampRail.java create mode 100644 src/main/resources/assets/hbm/models/blocks/rail_standard_ramp.obj diff --git a/changelog b/changelog index d773337ea..5060b78ac 100644 --- a/changelog +++ b/changelog @@ -4,8 +4,11 @@ * Chlorine * Phosgene * Mustard gas +* Euphemium capacitor + * Used for schrabidium transmutation, has infinite durability ## Changed +* Updated russian localization * Mist now spawns cloud particles with the correct color instead of standard white * HE artillery shells and rockets now turn blocks into slag diff --git a/gradle.properties b/gradle.properties index c314b14dd..4c35fac9e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,10 +4,10 @@ mod_build_number=4621 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ - \ porting), UFFR (RTGs, guns, casings), Pu-238 (Tom impact effects), Bismarck (chinese localization),\ - \ Frooz (models), Minecreep (models), VT-6/24 (models, textures), Pheo (textures, various machines,\ - \ models, weapons), Vr (gas centrifuges, better worldgen, ZIRNOX, CP-1 parts, starter guide), Adam29\ - \ (liquid petroleum, ethanol, electric furnace), Pashtet (russian localization), MartinTheDragon\ + \ porting), UFFR (RTGs, guns, casings, euphemium capacitor), Pu-238 (Tom impact effects), Bismarck\ + \ (chinese localization), Frooz (models), Minecreep (models), VT-6/24 (models, textures), Pheo (textures,\ + \ various machines, models, weapons), Vr (gas centrifuges, better worldgen, ZIRNOX, CP-1 parts, starter guide),\ + \ Adam29 (liquid petroleum, ethanol, electric furnace), Pashtet (russian localization), MartinTheDragon\ \ (calculator, chunk-based fallout), haru315 (spiral point algorithm), Sten89 (models), Pixelguru26\ \ (textures), TheBlueHat (textures), Alcater (GUI textures, porting), impbk2002 (project settings),\ \ Burningwater202 (laminate glass), OvermindDL1 (project settings), TehTemmie (reacher radiation function),\ diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 006621f66..75e59d0a7 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -15,6 +15,7 @@ import com.hbm.blocks.rail.RailNarrowCurve; import com.hbm.blocks.rail.RailNarrowStraight; import com.hbm.blocks.rail.RailStandardBuffer; import com.hbm.blocks.rail.RailStandardCurve; +import com.hbm.blocks.rail.RailStandardRamp; import com.hbm.blocks.rail.RailStandardStraight; import com.hbm.blocks.siege.*; import com.hbm.blocks.test.*; @@ -1107,6 +1108,7 @@ public class ModBlocks { public static Block rail_narrow_curve; public static Block rail_large_straight; public static Block rail_large_curve; + public static Block rail_large_ramp; public static Block rail_large_buffer; public static Block statue_elb; @@ -2142,6 +2144,7 @@ public class ModBlocks { rail_narrow_curve = new RailNarrowCurve().setBlockName("rail_narrow_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_narrow_neo"); rail_large_straight = new RailStandardStraight().setBlockName("rail_large_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); rail_large_curve = new RailStandardCurve().setBlockName("rail_large_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_ramp = new RailStandardRamp().setBlockName("rail_large_ramp").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); rail_large_buffer = new RailStandardBuffer().setBlockName("rail_large_buffer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); crate = new BlockCrate(Material.wood).setBlockName("crate").setStepSound(Block.soundTypeWood).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate"); @@ -3378,6 +3381,7 @@ public class ModBlocks { register(rail_narrow_curve); register(rail_large_straight); register(rail_large_curve); + register(rail_large_ramp); register(rail_large_buffer); //Crate diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java b/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java new file mode 100644 index 000000000..d8cd3fdff --- /dev/null +++ b/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java @@ -0,0 +1,133 @@ +package com.hbm.blocks.rail; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.handler.MultiblockHandlerXR; +import com.hbm.lib.Library; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import cpw.mods.fml.client.registry.RenderingRegistry; +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class RailStandardRamp extends BlockDummyable implements IRailNTM { + + public RailStandardRamp() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return null; + } + + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + + @Override + public int getRenderType() { + return renderID; + } + + @Override + public int[] getDimensions() { + return new int[] {0, 0, 2, 2, 1, 0}; + } + + @Override + public int getOffset() { + return 2; + } + + @Override + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { + this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + } + + @Override + public Vec3 getSnappingPos(World world, int x, int y, int z, double trainX, double trainY, double trainZ) { + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, 0, 0, 0, 0, new RailContext()); + } + + @Override + public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info, MoveContext context) { + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, motionX, motionY, motionZ, speed, info); + } + + /* Very simple function determining the snapping position and adding the motion value to it, if desired. */ + public Vec3 snapAndMove(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info) { + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return Vec3.createVectorHelper(trainX, trainY, trainZ); + int cX = pos[0]; + int cY = pos[1]; + int cZ = pos[2]; + int meta = world.getBlockMetadata(cX, cY, cZ) - this.offset; + ForgeDirection dir = ForgeDirection.getOrientation(meta); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + Vec3 vec = Vec3.createVectorHelper(trainX, trainY, trainZ); + + if(speed == 0) { + //return vec; + } + + if(dir == Library.POS_X || dir == Library.NEG_X) { + double targetX = trainX; + if(motionX > 0) { + targetX += speed; + info.yaw(-90F); + } else { + targetX -= speed; + info.yaw(90F); + } + double dist = (cX + 0.5 - targetX + 2.5) / 5; + vec.xCoord = MathHelper.clamp_double(targetX, cX - 2, cX + 3); + vec.yCoord = MathHelper.clamp_double(dir == Library.POS_X ? cY + dist : cY + 1 - dist, cY, cY + 1); + vec.zCoord = cZ + 0.5 + rot.offsetZ * 0.5; + info.dist(Math.abs(targetX - vec.xCoord) * Math.signum(speed)); + info.pos(new BlockPos(cX + (motionX * speed > 0 ? 3 : -3), cY + (motionX * speed > 0 ^ dir == Library.POS_X ? 1 : 0), cZ)); + } else { + double targetZ = trainZ; + if(motionZ > 0) { + targetZ += speed; + info.yaw(0F); + } else { + targetZ -= speed; + info.yaw(180F); + } + double dist = (cZ + 0.5 - targetZ + 2.5) / 5; + vec.xCoord = cX + 0.5 + rot.offsetX * 0.5; + vec.yCoord = MathHelper.clamp_double(dir == Library.POS_Z ? cY + dist : cY + 1 - dist, cY, cY + 1); + vec.zCoord = MathHelper.clamp_double(targetZ, cZ - 2,cZ + 3); + info.dist(Math.abs(targetZ - vec.zCoord) * Math.signum(speed)); + info.pos(new BlockPos(cX, cY + (motionZ * speed > 0 ^ dir == Library.POS_Z ? 1 : 0), cZ + (motionZ * speed > 0 ? 3 : -3))); + } + + return vec; + } + + @Override + public TrackGauge getGauge(World world, int x, int y, int z) { + return TrackGauge.STANDARD; + } + + protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { + return MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, getDimensions(), x, y, z, dir) && + MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {1, -1, 2, 2, 1, 0}, x, y, z, dir); + } + + protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, getDimensions(), this, dir); + MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {1, -1, 2, 2, 1, 0}, this, dir); + } +} diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index e5e21d817..7b39c014b 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -207,6 +207,8 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { double y = posY + rot.yCoord; double z = posZ + rot.zCoord; dummy.setPosition(x, y, z); + dummy.setSize(def.width, def.height); + dummy.velocityChanged = true; worldObj.spawnEntityInWorld(dummy); this.dummies[i] = dummy; } @@ -222,7 +224,6 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { double x = renderX + rot.xCoord; double y = renderY + rot.yCoord; double z = renderZ + rot.zCoord; - dummy.setSize(def.width, def.height); // TEMP dummy.setPosition(x, y, z); } } @@ -372,7 +373,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { /** Returns the "true" position of the train, i.e. the block it wants to snap to */ public BlockPos getCurrentAnchorPos() { - return new BlockPos(posX, posY, posZ); + return new BlockPos(posX, posY + 0.25, posZ); } public void derail() { diff --git a/src/main/java/com/hbm/handler/EntityEffectHandler.java b/src/main/java/com/hbm/handler/EntityEffectHandler.java index 2ccce3b4a..6d6f29d5c 100644 --- a/src/main/java/com/hbm/handler/EntityEffectHandler.java +++ b/src/main/java/com/hbm/handler/EntityEffectHandler.java @@ -122,13 +122,13 @@ public class EntityEffectHandler { private static void handleRadiation(EntityLivingBase entity) { - if(ContaminationUtil.isRadImmune(entity)) - return; - World world = entity.worldObj; if(!world.isRemote) { + if(ContaminationUtil.isRadImmune(entity)) + return; + int ix = (int)MathHelper.floor_double(entity.posX); int iy = (int)MathHelper.floor_double(entity.posY); int iz = (int)MathHelper.floor_double(entity.posZ); @@ -416,6 +416,10 @@ public class EntityEffectHandler { } private static void handleOil(EntityLivingBase entity) { + + if(entity.worldObj.isRemote) + return; + int oil = HbmLivingProps.getOil(entity); if(oil > 0) { diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java index e1bdbf7cd..16d91da8d 100644 --- a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -153,7 +153,6 @@ public class PollutionHandler { eggTimer++; if(eggTimer < 60) return; eggTimer = 0; - for(Entry entry : perWorld.entrySet()) { HashMap newPollution = new HashMap(); @@ -182,8 +181,12 @@ public class PollutionHandler { PollutionData newData = newPollution.get(chunk.getKey()); if(newData == null) newData = new PollutionData(); - for(int i = 0; i < newData.pollution.length; i++) newData.pollution[i] += data.pollution[i]; - newPollution.put(chunk.getKey(), newData); + boolean shouldPut = false; + for(int i = 0; i < newData.pollution.length; i++) { + newData.pollution[i] += data.pollution[i]; + if(newData.pollution[i] > 0) shouldPut = true; + } + if(shouldPut) newPollution.put(chunk.getKey(), newData); //apply neighbor data to neighboring chunks int[][] offsets = new int[][] {{1, 0}, {-1, 0}, {0, 1}, {0, -1}}; @@ -192,8 +195,12 @@ public class PollutionHandler { PollutionData offsetData = newPollution.get(offPos); if(offsetData == null) offsetData = new PollutionData(); - for(int i = 0; i < offsetData.pollution.length; i++) offsetData.pollution[i] += pollutionForNeightbors[i]; - newPollution.put(offPos, offsetData); + shouldPut = false; + for(int i = 0; i < offsetData.pollution.length; i++) { + offsetData.pollution[i] += pollutionForNeightbors[i]; + if(offsetData.pollution[i] > 0) shouldPut = true; + } + if(shouldPut) newPollution.put(offPos, offsetData); } } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 3cd7392bc..64ad4bffe 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -788,6 +788,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerBlockHandler(new RenderNarrowCurveRail()); RenderingRegistry.registerBlockHandler(new RenderStandardStraightRail()); RenderingRegistry.registerBlockHandler(new RenderStandardCurveRail()); + RenderingRegistry.registerBlockHandler(new RenderStandardRampRail()); RenderingRegistry.registerBlockHandler(new RenderBlockRotated(ModBlocks.charge_dynamite.getRenderType(), ResourceManager.charge_dynamite)); RenderingRegistry.registerBlockHandler(new RenderBlockRotated(ModBlocks.charge_c4.getRenderType(), ResourceManager.charge_c4)); diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index c7554d48d..69a28216f 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -478,11 +478,7 @@ public class ModEventHandler { @SubscribeEvent public void onLivingUpdate(LivingUpdateEvent event) { - ItemStack[] prevArmor = null; - - try { - prevArmor = (ItemStack[]) ReflectionHelper.findField(EntityLivingBase.class, "field_82180_bT", "previousEquipment").get(event.entityLiving); - } catch(Exception e) { } + ItemStack[] prevArmor = event.entityLiving.previousEquipment; if(event.entityLiving instanceof EntityPlayer && prevArmor != null && event.entityLiving.getHeldItem() != null && (prevArmor[0] == null || prevArmor[0].getItem() != event.entityLiving.getHeldItem().getItem()) diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 4a7bbe41f..31ef5a08e 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -13,6 +13,10 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockAshes; +import com.hbm.blocks.rail.IRailNTM; +import com.hbm.blocks.rail.IRailNTM.MoveContext; +import com.hbm.blocks.rail.IRailNTM.RailCheckType; +import com.hbm.blocks.rail.IRailNTM.RailContext; import com.hbm.config.GeneralConfig; import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.mob.EntityHunterChopper; @@ -66,6 +70,7 @@ import com.hbm.tileentity.machine.TileEntityNukeFurnace; import com.hbm.util.I18nUtil; import com.hbm.util.ItemStackUtil; import com.hbm.util.LoggingUtil; +import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.wiaj.GuiWorldInAJar; import com.hbm.wiaj.cannery.CanneryBase; import com.hbm.wiaj.cannery.Jars; diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 1bd34ccdb..c573f1b49 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1333,6 +1333,7 @@ public class ResourceManager { public static final IModelCustom rail_narrow_curve = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_narrow_bend.obj")); public static final IModelCustom rail_standard_straight = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard.obj")); public static final IModelCustom rail_standard_curve = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_bend.obj")); + public static final IModelCustom rail_standard_ramp = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_ramp.obj")); public static final IModelCustom charge_dynamite = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/charge_dynamite.obj")); public static final IModelCustom charge_c4 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/charge_c4.obj")); diff --git a/src/main/java/com/hbm/render/block/RenderStandardRampRail.java b/src/main/java/com/hbm/render/block/RenderStandardRampRail.java new file mode 100644 index 000000000..eb1e245fd --- /dev/null +++ b/src/main/java/com/hbm/render/block/RenderStandardRampRail.java @@ -0,0 +1,80 @@ +package com.hbm.render.block; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.rail.RailStandardRamp; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.client.model.obj.WavefrontObject; + +public class RenderStandardRampRail implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + + GL11.glPushMatrix(); + Tessellator tessellator = Tessellator.instance; + + GL11.glTranslated(0, -0.0625, 0); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(0.3, 0.3, 0.3); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_ramp, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + + GL11.glPopMatrix(); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + + int meta = world.getBlockMetadata(x, y, z); + if(meta < 12) return true; + + Tessellator tessellator = Tessellator.instance; + + tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); + tessellator.setColorOpaque_F(1, 1, 1); + + float rotation = 0; + + if(meta == 15) + rotation = 90F / 180F * (float) Math.PI; + if(meta == 12) + rotation = 180F / 180F * (float) Math.PI; + if(meta == 14) + rotation = 270F / 180F * (float) Math.PI; + + if(meta == 12) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, -0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, 0.5F); + + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_ramp, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + + if(meta == 12) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, 0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, -0.5F); + + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return RailStandardRamp.renderID; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java index 3a51328b0..53e8c3f74 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java @@ -166,7 +166,7 @@ public class TileEntityMachineElectricFurnace extends TileEntityMachineBase impl power = Library.chargeTEFromItems(slots, 0, power, maxPower); - this.updateConnections(); + if(worldObj.getTotalWorldTime() % 40 == 0) this.updateConnections(); this.consumption = 50; this.maxProgress = 100; diff --git a/src/main/resources/META-INF/HBM_at.cfg b/src/main/resources/META-INF/HBM_at.cfg index ab5149f2d..7fa1a50fe 100644 --- a/src/main/resources/META-INF/HBM_at.cfg +++ b/src/main/resources/META-INF/HBM_at.cfg @@ -18,3 +18,6 @@ public net.minecraft.client.settings.KeyBinding field_151474_i # pr # GuiMainMenu public net.minecraft.client.gui.GuiMainMenu field_73975_c # splashText + +# EntityLivingBase +public net.minecraft.entity.EntityLivingBase field_82180_bT # previousEquipment diff --git a/src/main/resources/assets/hbm/models/blocks/rail_standard_ramp.obj b/src/main/resources/assets/hbm/models/blocks/rail_standard_ramp.obj new file mode 100644 index 000000000..2dec4fc8c --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/rail_standard_ramp.obj @@ -0,0 +1,759 @@ +# Blender v2.79 (sub 0) OBJ File: 'rail_standard_ramp.blend' +# www.blender.org +o Plane.001 +v 1.000000 0.562500 -0.187500 +v 1.000000 0.562500 0.187500 +v -1.000000 0.562500 0.187500 +v -1.000000 0.562500 -0.187500 +v -1.000000 0.500000 0.187500 +v 1.000000 0.500000 0.187500 +v -1.000000 0.500000 -0.187500 +v 1.000000 0.500000 -0.187500 +v -1.000000 0.700000 -0.812500 +v 1.000000 0.700000 -0.812500 +v -1.000000 0.700000 -1.187500 +v 1.000000 0.700000 -1.187500 +v -1.000000 0.800000 -1.812500 +v 1.000000 0.800000 -1.812500 +v -1.000000 0.800000 -2.187500 +v 1.000000 0.800000 -2.187500 +v -1.000000 0.100000 2.187500 +v 1.000000 0.100000 2.187500 +v -1.000000 0.100000 1.812500 +v 1.000000 0.100000 1.812500 +v -1.000000 0.300000 1.187500 +v 1.000000 0.300000 1.187500 +v -1.000000 0.300000 0.812500 +v 1.000000 0.300000 0.812500 +v -1.000000 0.762500 -1.187500 +v -1.000000 0.762500 -0.812500 +v 1.000000 0.762500 -0.812500 +v 1.000000 0.762500 -1.187500 +v -1.000000 0.862500 -2.187500 +v -1.000000 0.862500 -1.812500 +v 1.000000 0.862500 -1.812500 +v 1.000000 0.862500 -2.187500 +v -1.000000 0.162500 1.812500 +v -1.000000 0.162500 2.187500 +v 1.000000 0.162500 2.187500 +v 1.000000 0.162500 1.812500 +v -1.000000 0.362500 0.812500 +v -1.000000 0.362500 1.187500 +v 1.000000 0.362500 1.187500 +v 1.000000 0.362500 0.812500 +v -0.812500 0.062500 2.500000 +v 0.812500 0.062500 2.500000 +v -0.812500 1.062500 -2.500000 +v 0.812500 1.062500 -2.500000 +v -0.812500 0.187500 2.500000 +v 0.812500 0.187500 2.500000 +v -0.812500 1.187500 -2.500000 +v 0.812500 1.187500 -2.500000 +v 0.750000 0.062500 2.500000 +v 0.750000 1.062500 -2.500000 +v 0.750000 0.187500 2.500000 +v 0.750000 1.187500 -2.500000 +v -0.750000 1.062500 -2.500000 +v -0.750000 0.062500 2.500000 +v -0.750000 1.187500 -2.500000 +v -0.750000 0.187500 2.500000 +v 0.625000 0.162500 2.062500 +v 0.937500 0.162500 2.062500 +v 0.625000 0.162500 1.937500 +v 0.937500 0.162500 1.937500 +v 0.625000 0.225000 2.062500 +v 0.937500 0.225000 2.062500 +v 0.625000 0.225000 1.937500 +v 0.937500 0.225000 1.937500 +v -0.937500 0.162500 2.062500 +v -0.625000 0.162500 2.062500 +v -0.937500 0.162500 1.937500 +v -0.625000 0.162500 1.937500 +v -0.937500 0.225000 2.062500 +v -0.625000 0.225000 2.062500 +v -0.937500 0.225000 1.937500 +v -0.625000 0.225000 1.937500 +v 0.625000 0.362500 1.062500 +v 0.937500 0.362500 1.062500 +v 0.625000 0.362500 0.937500 +v 0.937500 0.362500 0.937500 +v 0.625000 0.425000 1.062500 +v 0.937500 0.425000 1.062500 +v 0.625000 0.425000 0.937500 +v 0.937500 0.425000 0.937500 +v -0.937500 0.362500 1.062500 +v -0.625000 0.362500 1.062500 +v -0.937500 0.362500 0.937500 +v -0.625000 0.362500 0.937500 +v -0.937500 0.425000 1.062500 +v -0.625000 0.425000 1.062500 +v -0.937500 0.425000 0.937500 +v -0.625000 0.425000 0.937500 +v 0.625000 0.562500 0.062500 +v 0.937500 0.562500 0.062500 +v 0.625000 0.562500 -0.062500 +v 0.937500 0.562500 -0.062500 +v 0.625000 0.625000 0.062500 +v 0.937500 0.625000 0.062500 +v 0.625000 0.625000 -0.062500 +v 0.937500 0.625000 -0.062500 +v -0.937500 0.562500 0.062500 +v -0.625000 0.562500 0.062500 +v -0.937500 0.562500 -0.062500 +v -0.625000 0.562500 -0.062500 +v -0.937500 0.625000 0.062500 +v -0.625000 0.625000 0.062500 +v -0.937500 0.625000 -0.062500 +v -0.625000 0.625000 -0.062500 +v 0.625000 0.762500 -0.937500 +v 0.937500 0.762500 -0.937500 +v 0.625000 0.762500 -1.062500 +v 0.937500 0.762500 -1.062500 +v 0.625000 0.825000 -0.937500 +v 0.937500 0.825000 -0.937500 +v 0.625000 0.825000 -1.062500 +v 0.937500 0.825000 -1.062500 +v -0.937500 0.762500 -0.937500 +v -0.625000 0.762500 -0.937500 +v -0.937500 0.762500 -1.062500 +v -0.625000 0.762500 -1.062500 +v -0.937500 0.825000 -0.937500 +v -0.625000 0.825000 -0.937500 +v -0.937500 0.825000 -1.062500 +v -0.625000 0.825000 -1.062500 +v 0.625000 0.862500 -1.937500 +v 0.937500 0.862500 -1.937500 +v 0.625000 0.862500 -2.062500 +v 0.937500 0.862500 -2.062500 +v 0.625000 0.925000 -1.937500 +v 0.937500 0.925000 -1.937500 +v 0.625000 0.925000 -2.062500 +v 0.937500 0.925000 -2.062500 +v -0.937500 0.862500 -1.937500 +v -0.625000 0.862500 -1.937500 +v -0.937500 0.862500 -2.062500 +v -0.625000 0.862500 -2.062500 +v -0.937500 0.925000 -1.937500 +v -0.625000 0.925000 -1.937500 +v -0.937500 0.925000 -2.062500 +v -0.625000 0.925000 -2.062500 +v -0.812500 0.862500 -1.500000 +v -0.812500 0.662500 -0.500000 +v -0.812500 0.462500 0.500000 +v -0.812500 0.262500 1.500000 +v 0.812500 0.262500 1.500000 +v 0.812500 0.462500 0.500000 +v 0.812500 0.662500 -0.500000 +v 0.812500 0.862500 -1.500000 +v -0.812500 0.987500 -1.500000 +v -0.812500 0.787500 -0.500000 +v -0.812500 0.587500 0.500000 +v -0.812500 0.387500 1.500000 +v 0.812500 0.387500 1.500000 +v 0.812500 0.587500 0.500000 +v 0.812500 0.787500 -0.500000 +v 0.812500 0.987500 -1.500000 +v 0.750000 0.262500 1.500000 +v 0.750000 0.462500 0.500000 +v 0.750000 0.662500 -0.500000 +v 0.750000 0.862500 -1.500000 +v 0.750000 0.387500 1.500000 +v 0.750000 0.587500 0.500000 +v 0.750000 0.787500 -0.500000 +v 0.750000 0.987500 -1.500000 +v -0.750000 0.862500 -1.500000 +v -0.750000 0.662500 -0.500000 +v -0.750000 0.462500 0.500000 +v -0.750000 0.262500 1.500000 +v -0.750000 0.987500 -1.500000 +v -0.750000 0.787500 -0.500000 +v -0.750000 0.587500 0.500000 +v -0.750000 0.387500 1.500000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.406250 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.718750 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.718750 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.156250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.593750 0.656250 +vt 0.500000 0.718750 +vt 0.406250 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.718750 +vt 0.531250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +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.0000 0.0000 -1.0000 +vn 0.0000 0.9806 0.1961 +vn 0.0000 -0.9806 -0.1961 +s off +f 2/1/1 4/2/1 3/3/1 +f 7/4/2 6/5/2 5/6/2 +f 11/7/2 10/8/2 9/9/2 +f 15/10/2 14/11/2 13/12/2 +f 19/13/2 18/14/2 17/15/2 +f 23/16/2 22/17/2 21/18/2 +f 27/19/1 25/20/1 26/21/1 +f 31/22/1 29/23/1 30/24/1 +f 35/25/1 33/26/1 34/27/1 +f 39/28/1 37/29/1 38/30/1 +f 17/31/3 33/32/3 19/33/3 +f 10/34/4 26/35/4 9/36/4 +f 18/37/4 34/38/4 17/39/4 +f 12/40/5 27/41/5 10/8/5 +f 20/42/5 35/43/5 18/14/5 +f 11/7/6 28/44/6 12/45/6 +f 5/46/3 4/47/3 7/48/3 +f 19/13/6 36/49/6 20/50/6 +f 13/51/3 29/52/3 15/53/3 +f 6/54/4 3/55/4 5/56/4 +f 21/57/3 37/58/3 23/59/3 +f 14/60/4 30/61/4 13/62/4 +f 8/63/5 2/64/5 6/5/5 +f 22/65/4 38/66/4 21/67/4 +f 16/68/5 31/69/5 14/11/5 +f 7/4/6 1/70/6 8/71/6 +f 24/72/5 39/73/5 22/17/5 +f 15/10/6 32/74/6 16/75/6 +f 9/76/3 25/77/3 11/78/3 +f 23/16/6 40/79/6 24/80/6 +f 141/81/5 46/82/5 42/83/5 +f 145/84/3 43/85/3 137/86/3 +f 153/87/3 51/88/3 157/89/3 +f 46/90/4 49/91/4 42/92/4 +f 48/93/7 160/94/7 152/95/7 +f 42/83/8 153/96/8 141/81/8 +f 44/97/6 52/98/6 48/99/6 +f 53/100/5 165/101/5 161/102/5 +f 45/103/7 168/104/7 148/105/7 +f 43/106/8 161/102/8 137/107/8 +f 47/108/6 53/109/6 43/110/6 +f 41/111/4 56/112/4 45/113/4 +f 61/114/3 59/115/3 57/116/3 +f 63/117/6 60/118/6 59/119/6 +f 62/120/4 57/121/4 58/122/4 +f 64/123/5 58/124/5 60/125/5 +f 61/114/1 64/123/1 63/117/1 +f 69/126/3 67/127/3 65/128/3 +f 71/129/6 68/130/6 67/131/6 +f 70/132/4 65/133/4 66/134/4 +f 72/135/5 66/136/5 68/137/5 +f 69/126/1 72/135/1 71/129/1 +f 77/138/3 75/139/3 73/140/3 +f 79/141/6 76/142/6 75/143/6 +f 78/144/4 73/145/4 74/146/4 +f 80/147/5 74/148/5 76/149/5 +f 77/138/1 80/147/1 79/141/1 +f 85/150/3 83/151/3 81/152/3 +f 87/153/6 84/154/6 83/155/6 +f 86/156/4 81/157/4 82/158/4 +f 88/159/5 82/160/5 84/161/5 +f 85/150/1 88/159/1 87/153/1 +f 93/162/3 91/163/3 89/164/3 +f 95/165/6 92/166/6 91/167/6 +f 94/168/4 89/169/4 90/170/4 +f 96/171/5 90/172/5 92/173/5 +f 93/162/1 96/171/1 95/165/1 +f 101/174/3 99/175/3 97/176/3 +f 103/177/6 100/178/6 99/179/6 +f 102/180/4 97/181/4 98/182/4 +f 104/183/5 98/184/5 100/185/5 +f 101/174/1 104/183/1 103/177/1 +f 109/186/3 107/187/3 105/188/3 +f 111/189/6 108/190/6 107/191/6 +f 110/192/4 105/193/4 106/194/4 +f 112/195/5 106/196/5 108/197/5 +f 109/186/1 112/195/1 111/189/1 +f 117/198/3 115/199/3 113/200/3 +f 119/201/6 116/202/6 115/203/6 +f 118/204/4 113/205/4 114/206/4 +f 120/207/5 114/208/5 116/209/5 +f 117/198/1 120/207/1 119/201/1 +f 125/210/3 123/211/3 121/212/3 +f 127/213/6 124/214/6 123/215/6 +f 126/216/4 121/217/4 122/218/4 +f 128/219/5 122/220/5 124/221/5 +f 125/210/1 128/219/1 127/213/1 +f 133/222/3 131/223/3 129/224/3 +f 135/225/6 132/226/6 131/227/6 +f 134/228/4 129/229/4 130/230/4 +f 136/231/5 130/232/5 132/233/5 +f 133/222/1 136/231/1 135/225/1 +f 140/234/8 54/235/8 41/236/8 +f 139/237/8 164/238/8 140/239/8 +f 138/240/8 163/241/8 139/242/8 +f 137/243/8 162/244/8 138/245/8 +f 145/84/7 55/246/7 47/247/7 +f 146/248/7 165/249/7 145/250/7 +f 147/251/7 166/252/7 146/253/7 +f 148/254/7 167/255/7 147/256/7 +f 164/257/5 56/258/5 54/235/5 +f 163/259/5 168/260/5 164/238/5 +f 162/261/5 167/262/5 163/241/5 +f 161/263/5 166/264/5 162/244/5 +f 144/265/8 50/266/8 44/267/8 +f 143/268/8 156/269/8 144/270/8 +f 142/271/8 155/272/8 143/273/8 +f 141/274/8 154/275/8 142/276/8 +f 149/277/7 51/88/7 46/82/7 +f 150/278/7 157/279/7 149/280/7 +f 151/281/7 158/282/7 150/283/7 +f 152/284/7 159/285/7 151/286/7 +f 50/287/3 160/94/3 52/288/3 +f 156/289/3 159/285/3 160/290/3 +f 155/291/3 158/282/3 159/292/3 +f 154/293/3 157/279/3 158/294/3 +f 45/103/3 140/295/3 41/296/3 +f 148/254/3 139/297/3 140/298/3 +f 147/251/3 138/299/3 139/300/3 +f 146/248/3 137/301/3 138/302/3 +f 44/267/5 152/95/5 144/265/5 +f 144/270/5 151/286/5 143/268/5 +f 143/273/5 150/283/5 142/271/5 +f 142/276/5 149/280/5 141/274/5 +f 2/1/1 1/70/1 4/2/1 +f 7/4/2 8/71/2 6/5/2 +f 11/7/2 12/45/2 10/8/2 +f 15/10/2 16/75/2 14/11/2 +f 19/13/2 20/50/2 18/14/2 +f 23/16/2 24/80/2 22/17/2 +f 27/19/1 28/44/1 25/20/1 +f 31/22/1 32/74/1 29/23/1 +f 35/25/1 36/49/1 33/26/1 +f 39/28/1 40/79/1 37/29/1 +f 17/31/3 34/303/3 33/32/3 +f 10/34/4 27/304/4 26/35/4 +f 18/37/4 35/305/4 34/38/4 +f 12/40/5 28/306/5 27/41/5 +f 20/42/5 36/307/5 35/43/5 +f 11/7/6 25/20/6 28/44/6 +f 5/46/3 3/308/3 4/47/3 +f 19/13/6 33/26/6 36/49/6 +f 13/51/3 30/309/3 29/52/3 +f 6/54/4 2/310/4 3/55/4 +f 21/57/3 38/311/3 37/58/3 +f 14/60/4 31/312/4 30/61/4 +f 8/63/5 1/313/5 2/64/5 +f 22/65/4 39/314/4 38/66/4 +f 16/68/5 32/315/5 31/69/5 +f 7/4/6 4/2/6 1/70/6 +f 24/72/5 40/316/5 39/73/5 +f 15/10/6 29/23/6 32/74/6 +f 9/76/3 26/317/3 25/77/3 +f 23/16/6 37/29/6 40/79/6 +f 141/81/5 149/277/5 46/82/5 +f 145/84/3 47/247/3 43/85/3 +f 153/87/3 49/318/3 51/88/3 +f 46/90/4 51/319/4 49/91/4 +f 48/93/7 52/288/7 160/94/7 +f 42/83/8 49/320/8 153/96/8 +f 44/97/6 50/321/6 52/98/6 +f 53/100/5 55/246/5 165/101/5 +f 45/103/7 56/258/7 168/104/7 +f 43/106/8 53/100/8 161/102/8 +f 47/108/6 55/322/6 53/109/6 +f 41/111/4 54/323/4 56/112/4 +f 61/114/3 63/117/3 59/115/3 +f 63/117/6 64/123/6 60/118/6 +f 62/120/4 61/114/4 57/121/4 +f 64/123/5 62/120/5 58/124/5 +f 61/114/1 62/120/1 64/123/1 +f 69/126/3 71/129/3 67/127/3 +f 71/129/6 72/135/6 68/130/6 +f 70/132/4 69/126/4 65/133/4 +f 72/135/5 70/132/5 66/136/5 +f 69/126/1 70/132/1 72/135/1 +f 77/138/3 79/141/3 75/139/3 +f 79/141/6 80/147/6 76/142/6 +f 78/144/4 77/138/4 73/145/4 +f 80/147/5 78/144/5 74/148/5 +f 77/138/1 78/144/1 80/147/1 +f 85/150/3 87/153/3 83/151/3 +f 87/153/6 88/159/6 84/154/6 +f 86/156/4 85/150/4 81/157/4 +f 88/159/5 86/156/5 82/160/5 +f 85/150/1 86/156/1 88/159/1 +f 93/162/3 95/165/3 91/163/3 +f 95/165/6 96/171/6 92/166/6 +f 94/168/4 93/162/4 89/169/4 +f 96/171/5 94/168/5 90/172/5 +f 93/162/1 94/168/1 96/171/1 +f 101/174/3 103/177/3 99/175/3 +f 103/177/6 104/183/6 100/178/6 +f 102/180/4 101/174/4 97/181/4 +f 104/183/5 102/180/5 98/184/5 +f 101/174/1 102/180/1 104/183/1 +f 109/186/3 111/189/3 107/187/3 +f 111/189/6 112/195/6 108/190/6 +f 110/192/4 109/186/4 105/193/4 +f 112/195/5 110/192/5 106/196/5 +f 109/186/1 110/192/1 112/195/1 +f 117/198/3 119/201/3 115/199/3 +f 119/201/6 120/207/6 116/202/6 +f 118/204/4 117/198/4 113/205/4 +f 120/207/5 118/204/5 114/208/5 +f 117/198/1 118/204/1 120/207/1 +f 125/210/3 127/213/3 123/211/3 +f 127/213/6 128/219/6 124/214/6 +f 126/216/4 125/210/4 121/217/4 +f 128/219/5 126/216/5 122/220/5 +f 125/210/1 126/216/1 128/219/1 +f 133/222/3 135/225/3 131/223/3 +f 135/225/6 136/231/6 132/226/6 +f 134/228/4 133/222/4 129/229/4 +f 136/231/5 134/228/5 130/232/5 +f 133/222/1 134/228/1 136/231/1 +f 140/234/8 164/257/8 54/235/8 +f 139/237/8 163/259/8 164/238/8 +f 138/240/8 162/261/8 163/241/8 +f 137/243/8 161/263/8 162/244/8 +f 145/84/7 165/101/7 55/246/7 +f 146/248/7 166/264/7 165/249/7 +f 147/251/7 167/262/7 166/252/7 +f 148/254/7 168/260/7 167/255/7 +f 164/257/5 168/104/5 56/258/5 +f 163/259/5 167/255/5 168/260/5 +f 162/261/5 166/252/5 167/262/5 +f 161/263/5 165/249/5 166/264/5 +f 144/265/8 156/324/8 50/266/8 +f 143/268/8 155/325/8 156/269/8 +f 142/271/8 154/326/8 155/272/8 +f 141/274/8 153/327/8 154/275/8 +f 149/277/7 157/89/7 51/88/7 +f 150/278/7 158/294/7 157/279/7 +f 151/281/7 159/292/7 158/282/7 +f 152/284/7 160/290/7 159/285/7 +f 50/287/3 156/328/3 160/94/3 +f 156/289/3 155/329/3 159/285/3 +f 155/291/3 154/330/3 158/282/3 +f 154/293/3 153/331/3 157/279/3 +f 45/103/3 148/105/3 140/295/3 +f 148/254/3 147/256/3 139/297/3 +f 147/251/3 146/253/3 138/299/3 +f 146/248/3 145/250/3 137/301/3 +f 44/267/5 48/93/5 152/95/5 +f 144/270/5 152/284/5 151/286/5 +f 143/273/5 151/281/5 150/283/5 +f 142/276/5 150/278/5 149/280/5 From 4846313b06855d0710d30153f9b1c006961bb5eb Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 8 Jun 2023 22:32:27 +0200 Subject: [PATCH 048/109] can't forget this thing --- .../assets/hbm/models/weapons/coilgun.obj | 5594 +++++++++-------- 1 file changed, 2910 insertions(+), 2684 deletions(-) diff --git a/src/main/resources/assets/hbm/models/weapons/coilgun.obj b/src/main/resources/assets/hbm/models/weapons/coilgun.obj index 2bf0c74b4..50e810e4b 100644 --- a/src/main/resources/assets/hbm/models/weapons/coilgun.obj +++ b/src/main/resources/assets/hbm/models/weapons/coilgun.obj @@ -1,256 +1,256 @@ # Blender v2.79 (sub 0) OBJ File: 'coilgun.blend' # www.blender.org o Coils_Cylinder.012 -v -0.463562 0.524760 -0.428106 -v -0.237813 0.524760 -0.428106 -v -0.237813 0.222044 -0.302716 -v -0.463562 0.222044 -0.302716 -v -0.237813 0.096655 0.000000 -v -0.463562 0.096655 0.000000 -v -0.237813 0.222044 0.302716 -v -0.463562 0.222044 0.302716 -v -0.237813 0.524760 0.428106 -v -0.463562 0.524760 0.428106 -v -0.237813 0.827477 0.302716 -v -0.463562 0.827477 0.302716 -v -0.237813 0.952866 0.000000 -v -0.463562 0.952866 0.000000 -v -0.237813 0.827477 -0.302716 -v -0.463562 0.827477 -0.302716 -v -0.170088 0.524760 -0.428106 -v 0.055660 0.524760 -0.428106 -v 0.055660 0.222044 -0.302716 -v -0.170088 0.222044 -0.302716 -v 0.055660 0.096655 0.000000 -v -0.170088 0.096655 0.000000 -v 0.055660 0.222044 0.302716 -v -0.170088 0.222044 0.302716 -v 0.055660 0.524760 0.428106 -v -0.170088 0.524760 0.428106 -v 0.055660 0.827477 0.302716 -v -0.170088 0.827477 0.302716 -v 0.055660 0.952866 0.000000 -v -0.170088 0.952866 0.000000 -v 0.055660 0.827477 -0.302716 -v -0.170088 0.827477 -0.302716 -v 0.123385 0.524760 -0.428106 -v 0.349134 0.524760 -0.428106 -v 0.349134 0.222044 -0.302716 -v 0.123385 0.222044 -0.302716 -v 0.349134 0.096655 0.000000 -v 0.123385 0.096655 0.000000 -v 0.349134 0.222044 0.302716 -v 0.123385 0.222044 0.302716 -v 0.349134 0.524760 0.428106 -v 0.123385 0.524760 0.428106 -v 0.349134 0.827477 0.302716 -v 0.123385 0.827477 0.302716 -v 0.349134 0.952866 0.000000 -v 0.123385 0.952866 0.000000 -v 0.349134 0.827477 -0.302716 -v 0.123385 0.827477 -0.302716 -v 0.416858 0.524760 -0.428106 -v 0.642607 0.524760 -0.428106 -v 0.642607 0.222044 -0.302716 -v 0.416858 0.222044 -0.302716 -v 0.642607 0.096655 0.000000 -v 0.416858 0.096655 0.000000 -v 0.642607 0.222044 0.302716 -v 0.416858 0.222044 0.302716 -v 0.642607 0.524760 0.428106 -v 0.416858 0.524760 0.428106 -v 0.642607 0.827477 0.302716 -v 0.416858 0.827477 0.302716 -v 0.642607 0.952866 0.000000 -v 0.416858 0.952866 0.000000 -v 0.642607 0.827477 -0.302716 -v 0.416858 0.827477 -0.302716 -v 0.710331 0.524760 -0.428106 -v 0.936080 0.524760 -0.428106 -v 0.936080 0.222044 -0.302716 -v 0.710331 0.222044 -0.302716 -v 0.936080 0.096655 0.000000 -v 0.710331 0.096655 0.000000 -v 0.936080 0.222044 0.302716 -v 0.710331 0.222044 0.302716 -v 0.936080 0.524760 0.428106 -v 0.710331 0.524760 0.428106 -v 0.936080 0.827477 0.302716 -v 0.710331 0.827477 0.302716 -v 0.936080 0.952866 0.000000 -v 0.710331 0.952866 0.000000 -v 0.936080 0.827477 -0.302716 -v 0.710331 0.827477 -0.302716 -vt 1.000000 0.500000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.875000 0.500000 -vt 0.750000 1.000000 -vt 0.750000 0.500000 -vt 0.625000 1.000000 -vt 0.625000 0.500000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.375000 1.000000 -vt 0.375000 0.500000 -vt 0.250000 1.000000 -vt 0.250000 0.500000 -vt 0.419706 0.419706 -vt 0.250000 0.490000 -vt 0.080294 0.419706 -vt 0.010000 0.250000 -vt 0.080294 0.080294 -vt 0.250000 0.010000 -vt 0.419706 0.080294 -vt 0.490000 0.250000 -vt 0.125000 1.000000 -vt 0.125000 0.500000 -vt 0.000000 1.000000 -vt 0.000000 0.500000 -vt 0.750000 0.490000 -vt 0.919706 0.419706 -vt 0.990000 0.250000 -vt 0.919706 0.080294 -vt 0.750000 0.010000 -vt 0.580294 0.080294 -vt 0.510000 0.250000 -vt 0.580294 0.419706 -vt 1.000000 0.500000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.875000 0.500000 -vt 0.750000 1.000000 -vt 0.750000 0.500000 -vt 0.625000 1.000000 -vt 0.625000 0.500000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.375000 1.000000 -vt 0.375000 0.500000 -vt 0.250000 1.000000 -vt 0.250000 0.500000 -vt 0.419706 0.419706 -vt 0.250000 0.490000 -vt 0.080294 0.419706 -vt 0.010000 0.250000 -vt 0.080294 0.080294 -vt 0.250000 0.010000 -vt 0.419706 0.080294 -vt 0.490000 0.250000 -vt 0.125000 1.000000 -vt 0.125000 0.500000 -vt 0.000000 1.000000 -vt 0.000000 0.500000 -vt 0.750000 0.490000 -vt 0.919706 0.419706 -vt 0.990000 0.250000 -vt 0.919706 0.080294 -vt 0.750000 0.010000 -vt 0.580294 0.080294 -vt 0.510000 0.250000 -vt 0.580294 0.419706 -vt 1.000000 0.500000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.875000 0.500000 -vt 0.750000 1.000000 -vt 0.750000 0.500000 -vt 0.625000 1.000000 -vt 0.625000 0.500000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.375000 1.000000 -vt 0.375000 0.500000 -vt 0.250000 1.000000 -vt 0.250000 0.500000 -vt 0.419706 0.419706 -vt 0.250000 0.490000 -vt 0.080294 0.419706 -vt 0.010000 0.250000 -vt 0.080294 0.080294 -vt 0.250000 0.010000 -vt 0.419706 0.080294 -vt 0.490000 0.250000 -vt 0.125000 1.000000 -vt 0.125000 0.500000 -vt 0.000000 1.000000 -vt 0.000000 0.500000 -vt 0.750000 0.490000 -vt 0.919706 0.419706 -vt 0.990000 0.250000 -vt 0.919706 0.080294 -vt 0.750000 0.010000 -vt 0.580294 0.080294 -vt 0.510000 0.250000 -vt 0.580294 0.419706 -vt 1.000000 0.500000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.875000 0.500000 -vt 0.750000 1.000000 -vt 0.750000 0.500000 -vt 0.625000 1.000000 -vt 0.625000 0.500000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.375000 1.000000 -vt 0.375000 0.500000 -vt 0.250000 1.000000 -vt 0.250000 0.500000 -vt 0.419706 0.419706 -vt 0.250000 0.490000 -vt 0.080294 0.419706 -vt 0.010000 0.250000 -vt 0.080294 0.080294 -vt 0.250000 0.010000 -vt 0.419706 0.080294 -vt 0.490000 0.250000 -vt 0.125000 1.000000 -vt 0.125000 0.500000 -vt 0.000000 1.000000 -vt 0.000000 0.500000 -vt 0.750000 0.490000 -vt 0.919706 0.419706 -vt 0.990000 0.250000 -vt 0.919706 0.080294 -vt 0.750000 0.010000 -vt 0.580294 0.080294 -vt 0.510000 0.250000 -vt 0.580294 0.419706 -vt 1.000000 0.500000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.875000 0.500000 -vt 0.750000 1.000000 -vt 0.750000 0.500000 -vt 0.625000 1.000000 -vt 0.625000 0.500000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.375000 1.000000 -vt 0.375000 0.500000 -vt 0.250000 1.000000 -vt 0.250000 0.500000 -vt 0.419706 0.419706 -vt 0.250000 0.490000 -vt 0.080294 0.419706 -vt 0.010000 0.250000 -vt 0.080294 0.080294 -vt 0.250000 0.010000 -vt 0.419706 0.080294 -vt 0.490000 0.250000 -vt 0.125000 1.000000 -vt 0.125000 0.500000 -vt 0.000000 1.000000 -vt 0.000000 0.500000 -vt 0.750000 0.490000 -vt 0.919706 0.419706 -vt 0.990000 0.250000 -vt 0.919706 0.080294 -vt 0.750000 0.010000 -vt 0.580294 0.080294 -vt 0.510000 0.250000 -vt 0.580294 0.419706 +v -0.463562 0.524760 2.571894 +v -0.237813 0.524760 2.571894 +v -0.237813 0.222044 2.697284 +v -0.463562 0.222044 2.697284 +v -0.237813 0.096655 3.000000 +v -0.463562 0.096655 3.000000 +v -0.237813 0.222044 3.302716 +v -0.463562 0.222044 3.302716 +v -0.237813 0.524760 3.428106 +v -0.463562 0.524760 3.428106 +v -0.237813 0.827477 3.302716 +v -0.463562 0.827477 3.302716 +v -0.237813 0.952866 3.000000 +v -0.463562 0.952866 3.000000 +v -0.237813 0.827477 2.697284 +v -0.463562 0.827477 2.697284 +v -0.170088 0.524760 2.571894 +v 0.055660 0.524760 2.571894 +v 0.055660 0.222044 2.697284 +v -0.170088 0.222044 2.697284 +v 0.055660 0.096655 3.000000 +v -0.170088 0.096655 3.000000 +v 0.055660 0.222044 3.302716 +v -0.170088 0.222044 3.302716 +v 0.055660 0.524760 3.428106 +v -0.170088 0.524760 3.428106 +v 0.055660 0.827477 3.302716 +v -0.170088 0.827477 3.302716 +v 0.055660 0.952866 3.000000 +v -0.170088 0.952866 3.000000 +v 0.055660 0.827477 2.697284 +v -0.170088 0.827477 2.697284 +v 0.123385 0.524760 2.571894 +v 0.349134 0.524760 2.571894 +v 0.349134 0.222044 2.697284 +v 0.123385 0.222044 2.697284 +v 0.349134 0.096655 3.000000 +v 0.123385 0.096655 3.000000 +v 0.349134 0.222044 3.302716 +v 0.123385 0.222044 3.302716 +v 0.349134 0.524760 3.428106 +v 0.123385 0.524760 3.428106 +v 0.349134 0.827477 3.302716 +v 0.123385 0.827477 3.302716 +v 0.349134 0.952866 3.000000 +v 0.123385 0.952866 3.000000 +v 0.349134 0.827477 2.697284 +v 0.123385 0.827477 2.697284 +v 0.416858 0.524760 2.571894 +v 0.642607 0.524760 2.571894 +v 0.642607 0.222044 2.697284 +v 0.416858 0.222044 2.697284 +v 0.642607 0.096655 3.000000 +v 0.416858 0.096655 3.000000 +v 0.642607 0.222044 3.302716 +v 0.416858 0.222044 3.302716 +v 0.642607 0.524760 3.428106 +v 0.416858 0.524760 3.428106 +v 0.642607 0.827477 3.302716 +v 0.416858 0.827477 3.302716 +v 0.642607 0.952866 3.000000 +v 0.416858 0.952866 3.000000 +v 0.642607 0.827477 2.697284 +v 0.416858 0.827477 2.697284 +v 0.710331 0.524760 2.571894 +v 0.936080 0.524760 2.571894 +v 0.936080 0.222044 2.697284 +v 0.710331 0.222044 2.697284 +v 0.936080 0.096655 3.000000 +v 0.710331 0.096655 3.000000 +v 0.936080 0.222044 3.302716 +v 0.710331 0.222044 3.302716 +v 0.936080 0.524760 3.428106 +v 0.710331 0.524760 3.428106 +v 0.936080 0.827477 3.302716 +v 0.710331 0.827477 3.302716 +v 0.936080 0.952866 3.000000 +v 0.710331 0.952866 3.000000 +v 0.936080 0.827477 2.697284 +v 0.710331 0.827477 2.697284 +vt 0.781097 0.399443 +vt 0.718903 0.399443 +vt 0.718903 0.309173 +vt 0.781097 0.309173 +vt 0.718903 0.218903 +vt 0.781097 0.218903 +vt 0.781097 0.941064 +vt 0.718903 0.941064 +vt 0.718903 0.850794 +vt 0.781097 0.850794 +vt 0.718903 0.760524 +vt 0.781097 0.760524 +vt 0.718903 0.670254 +vt 0.781097 0.670254 +vt 0.718903 0.579984 +vt 0.781097 0.579984 +vt 0.218903 0.282734 +vt 0.282733 0.218903 +vt 0.373004 0.218903 +vt 0.436834 0.282734 +vt 0.436834 0.373004 +vt 0.373003 0.436835 +vt 0.282733 0.436834 +vt 0.218903 0.373004 +vt 0.718903 0.489714 +vt 0.781097 0.489714 +vt 0.064155 0.437482 +vt 0.154425 0.437483 +vt 0.218255 0.501313 +vt 0.218255 0.591583 +vt 0.154425 0.655414 +vt 0.064154 0.655414 +vt 0.000324 0.591583 +vt 0.000324 0.501313 +vt 0.999676 0.180864 +vt 0.937482 0.180864 +vt 0.937482 0.090594 +vt 0.999676 0.090594 +vt 0.937482 0.000324 +vt 0.999676 0.000324 +vt 0.999676 0.722485 +vt 0.937482 0.722485 +vt 0.937482 0.632215 +vt 0.999676 0.632215 +vt 0.937482 0.541944 +vt 0.999676 0.541944 +vt 0.937482 0.451674 +vt 0.999676 0.451674 +vt 0.937482 0.361404 +vt 0.999676 0.361404 +vt 0.000324 0.282734 +vt 0.064154 0.218903 +vt 0.154425 0.218903 +vt 0.218255 0.282734 +vt 0.218255 0.373004 +vt 0.154424 0.436835 +vt 0.064154 0.436834 +vt 0.000324 0.373004 +vt 0.937482 0.271134 +vt 0.999676 0.271134 +vt 0.501313 0.218903 +vt 0.591583 0.218903 +vt 0.655413 0.282734 +vt 0.655413 0.373004 +vt 0.591583 0.436835 +vt 0.501313 0.436834 +vt 0.437482 0.373004 +vt 0.437482 0.282734 +vt 0.718255 0.399443 +vt 0.656061 0.399443 +vt 0.656061 0.309173 +vt 0.718255 0.309173 +vt 0.656061 0.218903 +vt 0.718255 0.218903 +vt 0.718255 0.941064 +vt 0.656061 0.941064 +vt 0.656061 0.850794 +vt 0.718255 0.850794 +vt 0.656061 0.760524 +vt 0.718255 0.760524 +vt 0.656061 0.670254 +vt 0.718255 0.670254 +vt 0.656061 0.579984 +vt 0.718255 0.579984 +vt 0.218903 0.501313 +vt 0.282733 0.437482 +vt 0.373004 0.437483 +vt 0.436834 0.501313 +vt 0.436834 0.591583 +vt 0.373003 0.655414 +vt 0.282733 0.655414 +vt 0.218903 0.591583 +vt 0.656061 0.489714 +vt 0.718255 0.489714 +vt 0.501313 0.437482 +vt 0.591583 0.437483 +vt 0.655413 0.501313 +vt 0.655413 0.591583 +vt 0.591583 0.655414 +vt 0.501313 0.655414 +vt 0.437482 0.591583 +vt 0.437482 0.501313 +vt 0.936834 0.180864 +vt 0.874640 0.180864 +vt 0.874640 0.090594 +vt 0.936834 0.090594 +vt 0.874640 0.000324 +vt 0.936834 0.000324 +vt 0.936834 0.722484 +vt 0.874640 0.722484 +vt 0.874640 0.632214 +vt 0.936834 0.632214 +vt 0.874640 0.541944 +vt 0.936834 0.541944 +vt 0.874640 0.451674 +vt 0.936834 0.451674 +vt 0.874640 0.361404 +vt 0.936834 0.361404 +vt 0.656061 0.064155 +vt 0.719891 0.000324 +vt 0.810162 0.000324 +vt 0.873992 0.064155 +vt 0.873992 0.154425 +vt 0.810162 0.218255 +vt 0.719891 0.218255 +vt 0.656061 0.154425 +vt 0.874640 0.271134 +vt 0.936834 0.271134 +vt 0.501313 0.000324 +vt 0.591583 0.000324 +vt 0.655413 0.064155 +vt 0.655413 0.154425 +vt 0.591583 0.218255 +vt 0.501313 0.218255 +vt 0.437482 0.154425 +vt 0.437482 0.064155 +vt 0.873992 0.399443 +vt 0.811798 0.399443 +vt 0.811798 0.309173 +vt 0.873992 0.309173 +vt 0.811798 0.218903 +vt 0.873992 0.218903 +vt 0.873992 0.941064 +vt 0.811798 0.941064 +vt 0.811798 0.850794 +vt 0.873992 0.850794 +vt 0.811798 0.760524 +vt 0.873992 0.760524 +vt 0.811798 0.670253 +vt 0.873992 0.670253 +vt 0.811798 0.579983 +vt 0.873992 0.579983 +vt 0.218903 0.064155 +vt 0.282733 0.000324 +vt 0.373004 0.000324 +vt 0.436834 0.064155 +vt 0.436834 0.154425 +vt 0.373003 0.218255 +vt 0.282733 0.218255 +vt 0.218903 0.154425 +vt 0.811798 0.489713 +vt 0.873992 0.489713 +vt 0.064155 0.000324 +vt 0.154425 0.000324 +vt 0.218255 0.064155 +vt 0.218255 0.154425 +vt 0.154425 0.218255 +vt 0.064154 0.218255 +vt 0.000324 0.154425 +vt 0.000324 0.064155 vn 0.0000 -0.3827 -0.9239 vn 0.0000 -0.9239 -0.3827 vn 0.0000 -0.9239 0.3827 @@ -261,56 +261,56 @@ vn 1.0000 0.0000 0.0000 vn 0.0000 0.9239 -0.3827 vn 0.0000 0.3827 -0.9239 vn -1.0000 0.0000 0.0000 -s 1 +s off f 1/1/1 2/2/1 3/3/1 4/4/1 f 4/4/2 3/3/2 5/5/2 6/6/2 -f 6/6/3 5/5/3 7/7/3 8/8/3 -f 8/8/4 7/7/4 9/9/4 10/10/4 -f 10/10/5 9/9/5 11/11/5 12/12/5 -f 12/12/6 11/11/6 13/13/6 14/14/6 -f 3/15/7 2/16/7 15/17/7 13/18/7 11/19/7 9/20/7 7/21/7 5/22/7 -f 14/14/8 13/13/8 15/23/8 16/24/8 -f 16/24/9 15/23/9 2/25/9 1/26/9 +f 6/7/3 5/8/3 7/9/3 8/10/3 +f 8/10/4 7/9/4 9/11/4 10/12/4 +f 10/12/5 9/11/5 11/13/5 12/14/5 +f 12/14/6 11/13/6 13/15/6 14/16/6 +f 3/17/7 2/18/7 15/19/7 13/20/7 11/21/7 9/22/7 7/23/7 5/24/7 +f 14/16/8 13/15/8 15/25/8 16/26/8 +f 16/26/9 15/25/9 2/2/9 1/1/9 f 1/27/10 4/28/10 6/29/10 8/30/10 10/31/10 12/32/10 14/33/10 16/34/10 f 17/35/1 18/36/1 19/37/1 20/38/1 f 20/38/2 19/37/2 21/39/2 22/40/2 -f 22/40/3 21/39/3 23/41/3 24/42/3 -f 24/42/4 23/41/4 25/43/4 26/44/4 -f 26/44/5 25/43/5 27/45/5 28/46/5 -f 28/46/6 27/45/6 29/47/6 30/48/6 -f 19/49/7 18/50/7 31/51/7 29/52/7 27/53/7 25/54/7 23/55/7 21/56/7 -f 30/48/8 29/47/8 31/57/8 32/58/8 -f 32/58/9 31/57/9 18/59/9 17/60/9 +f 22/41/3 21/42/3 23/43/3 24/44/3 +f 24/44/4 23/43/4 25/45/4 26/46/4 +f 26/46/5 25/45/5 27/47/5 28/48/5 +f 28/48/6 27/47/6 29/49/6 30/50/6 +f 19/51/7 18/52/7 31/53/7 29/54/7 27/55/7 25/56/7 23/57/7 21/58/7 +f 30/50/8 29/49/8 31/59/8 32/60/8 +f 32/60/9 31/59/9 18/36/9 17/35/9 f 17/61/10 20/62/10 22/63/10 24/64/10 26/65/10 28/66/10 30/67/10 32/68/10 f 33/69/1 34/70/1 35/71/1 36/72/1 f 36/72/2 35/71/2 37/73/2 38/74/2 -f 38/74/3 37/73/3 39/75/3 40/76/3 -f 40/76/4 39/75/4 41/77/4 42/78/4 -f 42/78/5 41/77/5 43/79/5 44/80/5 -f 44/80/6 43/79/6 45/81/6 46/82/6 -f 35/83/7 34/84/7 47/85/7 45/86/7 43/87/7 41/88/7 39/89/7 37/90/7 -f 46/82/8 45/81/8 47/91/8 48/92/8 -f 48/92/9 47/91/9 34/93/9 33/94/9 +f 38/75/3 37/76/3 39/77/3 40/78/3 +f 40/78/4 39/77/4 41/79/4 42/80/4 +f 42/80/5 41/79/5 43/81/5 44/82/5 +f 44/82/6 43/81/6 45/83/6 46/84/6 +f 35/85/7 34/86/7 47/87/7 45/88/7 43/89/7 41/90/7 39/91/7 37/92/7 +f 46/84/8 45/83/8 47/93/8 48/94/8 +f 48/94/9 47/93/9 34/70/9 33/69/9 f 33/95/10 36/96/10 38/97/10 40/98/10 42/99/10 44/100/10 46/101/10 48/102/10 f 49/103/1 50/104/1 51/105/1 52/106/1 f 52/106/2 51/105/2 53/107/2 54/108/2 -f 54/108/3 53/107/3 55/109/3 56/110/3 -f 56/110/4 55/109/4 57/111/4 58/112/4 -f 58/112/5 57/111/5 59/113/5 60/114/5 -f 60/114/6 59/113/6 61/115/6 62/116/6 -f 51/117/7 50/118/7 63/119/7 61/120/7 59/121/7 57/122/7 55/123/7 53/124/7 -f 62/116/8 61/115/8 63/125/8 64/126/8 -f 64/126/9 63/125/9 50/127/9 49/128/9 +f 54/109/3 53/110/3 55/111/3 56/112/3 +f 56/112/4 55/111/4 57/113/4 58/114/4 +f 58/114/5 57/113/5 59/115/5 60/116/5 +f 60/116/6 59/115/6 61/117/6 62/118/6 +f 51/119/7 50/120/7 63/121/7 61/122/7 59/123/7 57/124/7 55/125/7 53/126/7 +f 62/118/8 61/117/8 63/127/8 64/128/8 +f 64/128/9 63/127/9 50/104/9 49/103/9 f 49/129/10 52/130/10 54/131/10 56/132/10 58/133/10 60/134/10 62/135/10 64/136/10 f 65/137/1 66/138/1 67/139/1 68/140/1 f 68/140/2 67/139/2 69/141/2 70/142/2 -f 70/142/3 69/141/3 71/143/3 72/144/3 -f 72/144/4 71/143/4 73/145/4 74/146/4 -f 74/146/5 73/145/5 75/147/5 76/148/5 -f 76/148/6 75/147/6 77/149/6 78/150/6 -f 67/151/7 66/152/7 79/153/7 77/154/7 75/155/7 73/156/7 71/157/7 69/158/7 -f 78/150/8 77/149/8 79/159/8 80/160/8 -f 80/160/9 79/159/9 66/161/9 65/162/9 +f 70/143/3 69/144/3 71/145/3 72/146/3 +f 72/146/4 71/145/4 73/147/4 74/148/4 +f 74/148/5 73/147/5 75/149/5 76/150/5 +f 76/150/6 75/149/6 77/151/6 78/152/6 +f 67/153/7 66/154/7 79/155/7 77/156/7 75/157/7 73/158/7 71/159/7 69/160/7 +f 78/152/8 77/151/8 79/161/8 80/162/8 +f 80/162/9 79/161/9 66/138/9 65/137/9 f 65/163/10 68/164/10 70/165/10 72/166/10 74/167/10 76/168/10 78/169/10 80/170/10 o Tech_thingy_Cylinder.011 v -1.457017 0.997796 0.139627 @@ -3054,420 +3054,533 @@ f 700/1212/367 693/1203/400 695/1205/400 701/1213/368 f 691/1201/364 697/1207/364 723/1237/401 698/1208/401 f 716/1228/396 717/1229/402 730/1254/402 729/1253/397 o AmmunitionCan_Cylinder.007 -v -1.114931 0.645018 -0.394257 -v -0.705608 0.645018 -0.392564 -v -0.705608 0.367434 -0.277584 -v -1.115595 0.367434 -0.277584 -v -0.705608 0.252454 0.000000 -v -1.115595 0.252454 0.000000 -v -0.705608 0.367434 0.277584 -v -1.115595 0.367434 0.277584 -v -0.705608 0.645018 0.392564 -v -1.115595 0.645018 0.392564 -v -0.705608 0.922602 0.277584 -v -1.115595 0.922602 0.277584 -v -0.705608 1.037581 0.000000 -v -1.115595 1.037581 0.000000 -v -0.705608 0.922602 -0.277584 -v -1.115595 0.922602 -0.277584 -v -1.680468 0.367434 -0.277584 -v -1.680468 0.252454 0.000000 -v -1.696762 0.326183 0.000000 -v -1.696762 0.419567 -0.225451 -v -1.696762 0.645018 0.318835 -v -1.696762 0.870468 0.225451 -v -1.717499 0.922175 0.277157 -v -1.717499 0.645018 0.391959 -v -1.680468 0.645018 0.392564 -v -1.680468 0.922602 0.277584 -v -1.680468 0.922602 -0.277584 -v -1.680468 0.645018 -0.392564 -v -1.696762 0.645018 -0.318835 -v -1.696762 0.870469 -0.225450 -v -1.680468 0.367434 0.277584 -v -1.696762 0.419567 0.225451 -v -1.680468 1.037582 0.000000 -v -1.696762 0.963853 0.000000 -v -1.717499 1.036977 0.000000 -v -1.717499 0.922175 -0.277157 -v -1.807855 0.922175 -0.277157 -v -1.807855 1.036977 0.000000 -v -1.717499 0.367861 0.277157 -v -1.717499 0.253059 0.000000 -v -1.717499 0.367861 -0.277157 -v -1.717499 0.645018 -0.391959 -v -1.807855 0.922175 0.277157 -v -1.827112 0.964049 0.000000 -v -1.827112 0.870607 0.225589 -v -1.807856 0.645018 0.391959 -v -1.807856 0.367861 0.277157 -v -1.807856 0.253059 0.000000 -v -1.807856 0.367861 -0.277157 -v -1.807856 0.645018 -0.391959 -v -1.827112 0.645018 -0.319031 -v -1.827112 0.419429 -0.225589 -v -1.850272 0.367220 -0.277798 -v -1.850272 0.645018 -0.392866 -v -1.827112 0.645018 0.319031 -v -1.827112 0.419429 0.225589 -v -1.827112 0.325987 0.000000 -v -1.827112 0.870607 -0.225589 -v -1.850272 1.037884 0.000000 -v -1.850272 0.922816 -0.277798 -v -1.929992 0.922816 -0.277798 -v -1.929992 1.037884 0.000000 -v -1.850272 0.922816 0.277798 -v -1.850272 0.645018 0.392866 -v -1.850272 0.367220 0.277798 -v -1.850272 0.252152 0.000000 -v -1.929992 0.367220 -0.277798 -v -1.929992 0.252152 0.000000 -v -2.043752 0.321683 0.000000 -v -2.043752 0.416385 -0.228633 -v -1.929992 0.922816 0.277798 -v -1.929992 0.645018 0.392866 -v -1.929992 0.367220 0.277798 -v -1.929992 0.645018 -0.392866 -v -2.043752 0.873651 -0.228633 -v -2.043752 0.645018 -0.323335 -v -2.121962 0.645018 -0.225354 -v -2.121962 0.804367 -0.159349 -v -2.043752 0.968353 0.000000 -v -2.043752 0.873651 0.228633 -v -2.043752 0.645018 0.323335 -v -2.043752 0.416385 0.228633 -v -2.121962 0.870372 0.000000 -v -2.179800 0.787147 -0.142129 -v -2.179800 0.846019 0.000000 -v -2.121962 0.804367 0.159349 -v -2.121962 0.645018 0.225354 -v -2.121962 0.485669 0.159349 -v -2.121962 0.419664 0.000000 -v -2.121962 0.485669 -0.159349 -v -2.179800 0.787147 0.142129 -v -2.179800 0.817735 0.000000 -v -2.179800 0.767148 0.122130 -v -2.179800 0.645018 0.201001 -v -2.179800 0.502889 0.142129 -v -2.179800 0.444017 0.000000 -v -2.179800 0.502889 -0.142129 -v -2.179800 0.645018 -0.201001 -v -2.179800 0.645018 -0.172717 -v -2.179800 0.522888 -0.122130 -v -2.139229 0.522888 -0.122130 -v -2.139229 0.645018 -0.172717 -v -2.179800 0.645018 0.172717 -v -2.179800 0.522888 0.122130 -v -2.179800 0.472301 0.000000 -v -2.179800 0.767148 -0.122130 -v -2.139229 0.472301 0.000000 -v -2.139229 0.522888 0.122130 -v -2.139229 0.645018 0.172717 -v -2.139229 0.767148 0.122130 -v -2.139229 0.817735 0.000000 -v -2.139229 0.767148 -0.122130 -v -1.416219 0.923800 -0.278782 -v -1.416219 0.645018 -0.394257 -v -1.415588 1.037581 0.000000 -v -1.416219 0.923800 0.278782 -v -1.416219 0.645018 0.394257 -v -1.416219 0.366236 0.278782 -v -1.415589 0.252454 0.000000 -v -1.416219 0.366236 -0.278782 -v -1.161507 0.923800 -0.278782 -v -1.161507 0.645018 -0.394257 -v -1.161507 1.039275 0.000000 -v -1.161507 0.923800 0.278782 -v -1.161507 0.645018 0.394257 -v -1.161507 0.366236 0.278782 -v -1.161507 0.250761 0.000000 -v -1.161507 0.366236 -0.278782 -v -1.379544 0.645018 -0.394257 -v -1.379545 0.366236 -0.278782 -v -1.379545 1.039275 0.000000 -v -1.379545 0.923800 0.278782 -v -1.382795 0.953877 0.308859 -v -1.382795 1.081811 0.000000 -v -1.319287 0.645018 -0.409318 -v -1.221764 0.645018 -0.409318 -v -1.221764 0.355586 -0.289432 -v -1.319287 0.355586 -0.289432 -v -1.158621 0.950501 -0.305483 -v -1.158621 1.077036 0.000000 -v -1.379545 0.250761 0.000000 -v -1.319287 0.235700 0.000000 -v -1.316037 0.208225 0.000000 -v -1.316037 0.336159 -0.308859 -v -1.221764 0.235700 0.000000 -v -1.158621 0.950501 0.305483 -v -1.158621 0.645018 0.432019 -v -1.379545 0.366236 0.278782 -v -1.379545 0.645018 0.394257 -v -1.382795 0.336159 0.308859 -v -1.382795 0.645018 0.436793 -v -1.221764 0.355586 0.289432 -v -1.319287 0.355586 0.289432 -v -1.221764 0.934450 -0.289432 -v -1.221764 1.054336 0.000000 -v -1.224650 1.077036 0.000000 -v -1.224650 0.950501 -0.305483 -v -1.382795 0.336159 -0.308859 -v -1.382795 0.208225 0.000000 -v -1.221764 0.645018 0.409318 -v -1.319287 0.645018 0.409318 -v -1.158621 0.339535 0.305483 -v -1.158621 0.212999 0.000000 -v -1.319287 1.054336 0.000000 -v -1.319287 0.934450 -0.289432 -v -1.316037 0.953877 -0.308859 -v -1.316037 1.081811 0.000000 -v -1.221764 0.934450 0.289432 -v -1.319287 0.934450 0.289432 -v -1.224650 0.645018 0.432019 -v -1.224650 0.950501 0.305483 -v -1.316037 0.953877 0.308859 -v -1.316037 0.645018 0.436793 -v -1.158621 0.339535 -0.305483 -v -1.158621 0.645018 -0.432019 -v -1.379545 0.923800 -0.278782 -v -1.382795 0.953877 -0.308859 -v -1.224650 0.212999 0.000000 -v -1.224650 0.339535 0.305483 -v -1.316037 0.336159 0.308859 -v -1.224650 0.645018 -0.432019 -v -1.224650 0.339535 -0.305483 -v -1.382795 0.645018 -0.436793 -v -1.316036 0.645018 -0.436793 -vt 1.000000 0.825168 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.875000 0.825168 -vt 0.750000 1.000000 -vt 0.750000 0.825168 -vt 0.625000 1.000000 -vt 0.625000 0.825168 -vt 0.500000 1.000000 -vt 0.500000 0.825168 -vt 0.375000 1.000000 -vt 0.375000 0.825168 -vt 0.250000 1.000000 -vt 0.250000 0.825168 -vt 0.419706 0.419706 -vt 0.250000 0.490000 -vt 0.080294 0.419706 -vt 0.010000 0.250000 -vt 0.080294 0.080294 -vt 0.250000 0.010000 -vt 0.419706 0.080294 -vt 0.490000 0.250000 -vt 0.125000 1.000000 -vt 0.125000 0.825168 -vt 0.000000 1.000000 -vt 0.000000 0.825168 -vt 0.875000 0.500000 -vt 0.750000 0.500000 -vt 0.750000 0.500000 -vt 0.875000 0.500000 -vt 0.500000 0.500000 -vt 0.375000 0.500000 -vt 0.375000 0.500000 -vt 0.500000 0.500000 -vt 0.500000 0.500000 -vt 0.375000 0.500000 -vt 0.125000 0.500000 -vt 0.000000 0.500000 -vt 0.000000 0.500000 -vt 0.125000 0.500000 -vt 1.000000 0.500000 -vt 1.000000 0.500000 -vt 0.625000 0.500000 -vt 0.625000 0.500000 -vt 0.250000 0.500000 -vt 0.250000 0.500000 -vt 0.250000 0.500000 -vt 0.125000 0.500000 -vt 0.125000 0.500000 -vt 0.250000 0.500000 -vt 0.625000 0.500000 -vt 0.750000 0.500000 -vt 0.875000 0.500000 -vt 1.000000 0.500000 -vt 0.000000 0.500000 -vt 0.375000 0.500000 -vt 0.250000 0.500000 -vt 0.375000 0.500000 -vt 0.500000 0.500000 -vt 0.625000 0.500000 -vt 0.750000 0.500000 -vt 0.875000 0.500000 -vt 1.000000 0.500000 -vt 0.000000 0.500000 -vt 1.000000 0.500000 -vt 0.875000 0.500000 -vt 0.875000 0.500000 -vt 1.000000 0.500000 -vt 0.500000 0.500000 -vt 0.625000 0.500000 -vt 0.750000 0.500000 -vt 0.125000 0.500000 -vt 0.000000 0.500000 -vt 0.250000 0.500000 -vt 0.125000 0.500000 -vt 0.125000 0.500000 -vt 0.250000 0.500000 -vt 0.000000 0.500000 -vt 0.375000 0.500000 -vt 0.500000 0.500000 -vt 0.625000 0.500000 -vt 0.750000 0.500000 -vt 0.875000 0.500000 -vt 0.750000 0.500000 -vt 0.750000 0.500000 -vt 0.875000 0.500000 -vt 0.375000 0.500000 -vt 0.500000 0.500000 -vt 0.625000 0.500000 -vt 1.000000 0.500000 -vt 0.000000 0.500000 -vt 0.125000 0.500000 -vt 0.000000 0.500000 -vt 0.000000 0.500000 -vt 0.125000 0.500000 -vt 0.250000 0.500000 -vt 0.375000 0.500000 -vt 0.500000 0.500000 -vt 0.625000 0.500000 -vt 1.000000 0.500000 -vt 0.250000 0.500000 -vt 0.125000 0.500000 -vt 0.250000 0.500000 -vt 0.375000 0.500000 -vt 0.500000 0.500000 -vt 0.625000 0.500000 -vt 0.750000 0.500000 -vt 0.875000 0.500000 -vt 1.000000 0.500000 -vt 0.375000 0.500000 -vt 0.250000 0.500000 -vt 0.375000 0.500000 -vt 0.500000 0.500000 -vt 0.625000 0.500000 -vt 0.750000 0.500000 -vt 0.875000 0.500000 -vt 1.000000 0.500000 -vt 0.000000 0.500000 -vt 1.000000 0.500000 -vt 0.875000 0.500000 -vt 0.875000 0.500000 -vt 1.000000 0.500000 -vt 0.500000 0.500000 -vt 0.625000 0.500000 -vt 0.750000 0.500000 -vt 0.125000 0.500000 -vt 0.000000 0.500000 -vt 0.750000 0.490000 -vt 0.919706 0.419706 -vt 0.990000 0.250000 -vt 0.919706 0.080294 -vt 0.750000 0.010000 -vt 0.580294 0.080294 -vt 0.510000 0.250000 -vt 0.580294 0.419706 -vt 0.000000 0.500000 -vt 0.125000 0.500000 -vt 0.250000 0.500000 -vt 0.375000 0.500000 -vt 0.500000 0.500000 -vt 0.625000 0.500000 -vt 0.750000 0.500000 -vt 0.125000 0.658502 -vt 0.000000 0.658502 -vt 0.250000 0.658502 -vt 0.375000 0.658502 -vt 0.500000 0.658502 -vt 0.625000 0.658502 -vt 0.750000 0.658502 -vt 0.875000 0.658502 -vt 1.000000 0.658502 -vt 0.125000 0.790724 -vt 0.000000 0.790724 -vt 0.250000 0.790724 -vt 0.375000 0.790724 -vt 0.500000 0.790724 -vt 0.625000 0.790724 -vt 0.750000 0.790724 -vt 0.875000 0.790724 -vt 1.000000 0.790724 -vt 1.000000 0.690724 -vt 0.875000 0.690724 -vt 0.250000 0.690724 -vt 0.375000 0.690724 -vt 0.375000 0.690724 -vt 0.250000 0.690724 -vt 1.000000 0.724057 -vt 1.000000 0.757391 -vt 0.875000 0.757391 -vt 0.875000 0.724057 -vt 0.125000 0.790724 -vt 0.250000 0.790724 -vt 0.750000 0.690724 -vt 0.750000 0.724057 -vt 0.750000 0.724057 -vt 0.875000 0.724057 -vt 0.750000 0.757391 -vt 0.375000 0.790724 -vt 0.500000 0.790724 -vt 0.625000 0.690724 -vt 0.500000 0.690724 -vt 0.625000 0.690724 -vt 0.500000 0.690724 -vt 0.625000 0.757391 -vt 0.625000 0.724057 -vt 0.125000 0.757391 -vt 0.250000 0.757391 -vt 0.250000 0.757391 -vt 0.125000 0.757391 -vt 0.875000 0.690724 -vt 0.750000 0.690724 -vt 0.500000 0.757391 -vt 0.500000 0.724057 -vt 0.625000 0.790724 -vt 0.750000 0.790724 -vt 0.250000 0.724057 -vt 0.125000 0.724057 -vt 0.125000 0.724057 -vt 0.250000 0.724057 -vt 0.375000 0.757391 -vt 0.375000 0.724057 -vt 0.500000 0.757391 -vt 0.375000 0.757391 -vt 0.375000 0.724057 -vt 0.500000 0.724057 -vt 0.875000 0.790724 -vt 1.000000 0.790724 -vt 0.125000 0.690724 -vt 0.125000 0.690724 -vt 0.750000 0.757391 -vt 0.625000 0.757391 -vt 0.000000 0.690724 -vt 0.625000 0.724057 -vt 0.000000 0.757391 -vt 0.000000 0.724057 -vt 1.000000 0.757391 -vt 0.875000 0.757391 -vt 0.000000 0.790724 -vt 0.000000 0.757391 -vt 1.000000 0.690724 -vt 1.000000 0.724057 -vt 0.000000 0.724057 -vt 0.000000 0.690724 +v -1.114931 0.645018 2.605743 +v -0.705608 0.645018 2.607436 +v -0.705608 0.367434 2.722416 +v -1.115595 0.367434 2.722416 +v -0.705608 0.252454 3.000000 +v -1.115595 0.252454 3.000000 +v -0.705608 0.367434 3.277584 +v -1.115595 0.367434 3.277584 +v -0.705608 0.645018 3.392564 +v -1.115595 0.645018 3.392564 +v -0.705608 0.922602 3.277584 +v -1.115595 0.922602 3.277584 +v -0.705608 1.037581 3.000000 +v -1.115595 1.037581 3.000000 +v -0.705608 0.922602 2.722416 +v -1.115595 0.922602 2.722416 +v -1.680468 0.367434 2.722416 +v -1.680468 0.252454 3.000000 +v -1.696762 0.326183 3.000000 +v -1.696762 0.419567 2.774549 +v -1.696762 0.645018 3.318835 +v -1.696762 0.870468 3.225451 +v -1.717499 0.922175 3.277157 +v -1.717499 0.645018 3.391959 +v -1.680468 0.645018 3.392564 +v -1.680468 0.922602 3.277584 +v -1.680468 0.922602 2.722416 +v -1.680468 0.645018 2.607436 +v -1.696762 0.645018 2.681165 +v -1.696762 0.870469 2.774550 +v -1.680468 0.367434 3.277584 +v -1.696762 0.419567 3.225451 +v -1.680468 1.037582 3.000000 +v -1.696762 0.963853 3.000000 +v -1.717499 1.036977 3.000000 +v -1.717499 0.922175 2.722843 +v -1.807855 0.922175 2.722843 +v -1.807855 1.036977 3.000000 +v -1.717499 0.367861 3.277157 +v -1.717499 0.253059 3.000000 +v -1.717499 0.367861 2.722843 +v -1.717499 0.645018 2.608041 +v -1.807855 0.922175 3.277157 +v -1.827112 0.964049 3.000000 +v -1.827112 0.870607 3.225589 +v -1.807856 0.645018 3.391959 +v -1.807856 0.367861 3.277157 +v -1.807856 0.253059 3.000000 +v -1.807856 0.367861 2.722843 +v -1.807856 0.645018 2.608041 +v -1.827112 0.645018 2.680969 +v -1.827112 0.419429 2.774411 +v -1.850272 0.367220 2.722202 +v -1.850272 0.645018 2.607134 +v -1.827112 0.645018 3.319031 +v -1.827112 0.419429 3.225589 +v -1.827112 0.325987 3.000000 +v -1.827112 0.870607 2.774411 +v -1.850272 1.037884 3.000000 +v -1.850272 0.922816 2.722202 +v -1.929992 0.922816 2.722202 +v -1.929992 1.037884 3.000000 +v -1.850272 0.922816 3.277798 +v -1.850272 0.645018 3.392866 +v -1.850272 0.367220 3.277798 +v -1.850272 0.252152 3.000000 +v -1.929992 0.367220 2.722202 +v -1.929992 0.252152 3.000000 +v -2.043752 0.321683 3.000000 +v -2.043752 0.416385 2.771367 +v -1.929992 0.922816 3.277798 +v -1.929992 0.645018 3.392866 +v -1.929992 0.367220 3.277798 +v -1.929992 0.645018 2.607134 +v -2.043752 0.873651 2.771367 +v -2.043752 0.645018 2.676665 +v -2.121962 0.645018 2.774646 +v -2.121962 0.804367 2.840651 +v -2.043752 0.968353 3.000000 +v -2.043752 0.873651 3.228633 +v -2.043752 0.645018 3.323335 +v -2.043752 0.416385 3.228633 +v -2.121962 0.870372 3.000000 +v -2.179800 0.787147 2.857871 +v -2.179800 0.846019 3.000000 +v -2.121962 0.804367 3.159349 +v -2.121962 0.645018 3.225354 +v -2.121962 0.485669 3.159349 +v -2.121962 0.419664 3.000000 +v -2.121962 0.485669 2.840651 +v -2.179800 0.787147 3.142129 +v -2.179800 0.817735 3.000000 +v -2.179800 0.767148 3.122130 +v -2.179800 0.645018 3.201001 +v -2.179800 0.502889 3.142129 +v -2.179800 0.444017 3.000000 +v -2.179800 0.502889 2.857871 +v -2.179800 0.645018 2.798999 +v -2.179800 0.645018 2.827283 +v -2.179800 0.522888 2.877870 +v -2.139229 0.522888 2.877870 +v -2.139229 0.645018 2.827283 +v -2.179800 0.645018 3.172717 +v -2.179800 0.522888 3.122130 +v -2.179800 0.472301 3.000000 +v -2.179800 0.767148 2.877870 +v -2.139229 0.472301 3.000000 +v -2.139229 0.522888 3.122130 +v -2.139229 0.645018 3.172717 +v -2.139229 0.767148 3.122130 +v -2.139229 0.817735 3.000000 +v -2.139229 0.767148 2.877870 +v -1.416219 0.923800 2.721218 +v -1.416219 0.645018 2.605743 +v -1.415588 1.037581 3.000000 +v -1.416219 0.923800 3.278782 +v -1.416219 0.645018 3.394257 +v -1.416219 0.366236 3.278782 +v -1.415589 0.252454 3.000000 +v -1.416219 0.366236 2.721218 +v -1.161507 0.923800 2.721218 +v -1.161507 0.645018 2.605743 +v -1.161507 1.039275 3.000000 +v -1.161507 0.923800 3.278782 +v -1.161507 0.645018 3.394257 +v -1.161507 0.366236 3.278782 +v -1.161507 0.250761 3.000000 +v -1.161507 0.366236 2.721218 +v -1.379544 0.645018 2.605743 +v -1.379545 0.366236 2.721218 +v -1.379545 1.039275 3.000000 +v -1.379545 0.923800 3.278782 +v -1.382795 0.953877 3.308859 +v -1.382795 1.081811 3.000000 +v -1.319287 0.645018 2.590682 +v -1.221764 0.645018 2.590682 +v -1.221764 0.355586 2.710568 +v -1.319287 0.355586 2.710568 +v -1.158621 0.950501 2.694517 +v -1.158621 1.077036 3.000000 +v -1.379545 0.250761 3.000000 +v -1.319287 0.235700 3.000000 +v -1.316037 0.208225 3.000000 +v -1.316037 0.336159 2.691141 +v -1.221764 0.235700 3.000000 +v -1.158621 0.950501 3.305483 +v -1.158621 0.645018 3.432019 +v -1.379545 0.366236 3.278782 +v -1.379545 0.645018 3.394257 +v -1.382795 0.336159 3.308859 +v -1.382795 0.645018 3.436793 +v -1.221764 0.355586 3.289432 +v -1.319287 0.355586 3.289432 +v -1.221764 0.934450 2.710568 +v -1.221764 1.054336 3.000000 +v -1.224650 1.077036 3.000000 +v -1.224650 0.950501 2.694517 +v -1.382795 0.336159 2.691141 +v -1.382795 0.208225 3.000000 +v -1.221764 0.645018 3.409318 +v -1.319287 0.645018 3.409318 +v -1.158621 0.339535 3.305483 +v -1.158621 0.212999 3.000000 +v -1.319287 1.054336 3.000000 +v -1.319287 0.934450 2.710568 +v -1.316037 0.953877 2.691141 +v -1.316037 1.081811 3.000000 +v -1.221764 0.934450 3.289432 +v -1.319287 0.934450 3.289432 +v -1.224650 0.645018 3.432019 +v -1.224650 0.950501 3.305483 +v -1.316037 0.953877 3.308859 +v -1.316037 0.645018 3.436793 +v -1.158621 0.339535 2.694517 +v -1.158621 0.645018 2.567981 +v -1.379545 0.923800 2.721218 +v -1.382795 0.953877 2.691141 +v -1.224650 0.212999 3.000000 +v -1.224650 0.339535 3.305483 +v -1.316037 0.336159 3.308859 +v -1.224650 0.645018 2.567981 +v -1.224650 0.339535 2.694517 +v -1.382795 0.645018 2.563207 +v -1.316036 0.645018 2.563207 +vt 0.333771 0.122601 +vt 0.250827 0.123696 +vt 0.249913 0.062860 +vt 0.333162 0.061441 +vt 0.248762 0.002028 +vt 0.331770 0.000458 +vt 0.331178 0.489363 +vt 0.248762 0.487236 +vt 0.250204 0.426885 +vt 0.333040 0.428574 +vt 0.251228 0.366447 +vt 0.334273 0.367529 +vt 0.251779 0.305898 +vt 0.334946 0.306336 +vt 0.251870 0.245242 +vt 0.335158 0.245008 +vt 0.387778 0.000111 +vt 0.448672 0.000111 +vt 0.491729 0.043169 +vt 0.491729 0.104062 +vt 0.448671 0.147120 +vt 0.387778 0.147120 +vt 0.344720 0.104062 +vt 0.344720 0.043169 +vt 0.251510 0.184543 +vt 0.334843 0.183746 +vt 0.184792 0.411952 +vt 0.180019 0.475285 +vt 0.164389 0.467565 +vt 0.169068 0.411085 +vt 0.171376 0.116511 +vt 0.173907 0.173123 +vt 0.158223 0.172770 +vt 0.156306 0.116051 +vt 0.187710 0.116136 +vt 0.188188 0.173263 +vt 0.187862 0.290744 +vt 0.187045 0.350935 +vt 0.169556 0.350164 +vt 0.173074 0.290555 +vt 0.169093 0.410760 +vt 0.169539 0.350497 +vt 0.182936 0.002420 +vt 0.185636 0.059963 +vt 0.171429 0.060361 +vt 0.168682 0.009053 +vt 0.188834 0.231566 +vt 0.171901 0.231236 +vt 0.173902 0.173419 +vt 0.171377 0.116200 +vt 0.171433 0.060647 +vt 0.173086 0.290248 +vt 0.171893 0.231559 +vt 0.156248 0.230716 +vt 0.156867 0.289505 +vt 0.136903 0.289718 +vt 0.137407 0.231137 +vt 0.156897 0.060302 +vt 0.156891 0.004402 +vt 0.151894 0.409417 +vt 0.153421 0.349240 +vt 0.147572 0.472946 +vt 0.138952 0.173384 +vt 0.121938 0.230032 +vt 0.123479 0.172751 +vt 0.138214 0.116866 +vt 0.138770 0.061156 +vt 0.138353 0.003891 +vt 0.132267 0.409089 +vt 0.134072 0.349295 +vt 0.126815 0.471069 +vt 0.118159 0.348200 +vt 0.116549 0.407518 +vt 0.099353 0.406365 +vt 0.101957 0.346731 +vt 0.123291 0.116133 +vt 0.123243 0.060809 +vt 0.114079 0.464786 +vt 0.116522 0.407844 +vt 0.120912 0.288422 +vt 0.121921 0.230342 +vt 0.123493 0.172442 +vt 0.123281 0.116431 +vt 0.123249 0.060512 +vt 0.123844 0.009530 +vt 0.118183 0.347881 +vt 0.120892 0.288742 +vt 0.106188 0.229161 +vt 0.104711 0.287384 +vt 0.088322 0.287014 +vt 0.090113 0.228932 +vt 0.107837 0.171744 +vt 0.108130 0.115645 +vt 0.108841 0.060451 +vt 0.096873 0.470749 +vt 0.108910 0.003319 +vt 0.083013 0.405933 +vt 0.079907 0.469925 +vt 0.052378 0.462912 +vt 0.054935 0.410246 +vt 0.092029 0.171671 +vt 0.092656 0.115769 +vt 0.093106 0.060660 +vt 0.092149 0.003387 +vt 0.085408 0.346282 +vt 0.062313 0.290993 +vt 0.059914 0.339771 +vt 0.036698 0.331221 +vt 0.038369 0.297224 +vt 0.063245 0.281096 +vt 0.064719 0.233294 +vt 0.067796 0.166452 +vt 0.068312 0.120444 +vt 0.068137 0.056008 +vt 0.067350 0.008871 +vt 0.057308 0.399614 +vt 0.059278 0.350520 +vt 0.065403 0.223033 +vt 0.066980 0.175906 +vt 0.068752 0.110697 +vt 0.069122 0.065341 +vt 0.041387 0.239824 +vt 0.040360 0.273141 +vt 0.028428 0.270971 +vt 0.029344 0.241254 +vt 0.042861 0.215130 +vt 0.043960 0.182284 +vt 0.046882 0.103646 +vt 0.047140 0.072034 +vt 0.027306 0.453697 +vt 0.029088 0.416990 +vt 0.045633 0.159231 +vt 0.045993 0.127165 +vt 0.045231 0.049246 +vt 0.044683 0.016394 +vt 0.033874 0.391223 +vt 0.035247 0.357006 +vt 0.032082 0.183664 +vt 0.031102 0.212960 +vt 0.026194 0.210732 +vt 0.027037 0.185558 +vt 0.034115 0.157369 +vt 0.034435 0.128769 +vt 0.033381 0.047668 +vt 0.032891 0.018366 +vt 0.021636 0.388880 +vt 0.022861 0.358361 +vt 0.024556 0.328782 +vt 0.026047 0.298459 +vt 0.035522 0.101845 +vt 0.035752 0.073650 +vt 0.014195 0.451072 +vt 0.015784 0.418332 +vt 0.017591 0.360300 +vt 0.016539 0.386525 +vt 0.008490 0.386202 +vt 0.009543 0.359977 +vt 0.030749 0.099822 +vt 0.030947 0.075594 +vt 0.008745 0.448499 +vt 0.010111 0.420366 +vt 0.023445 0.268724 +vt 0.024232 0.243190 +vt 0.029279 0.155303 +vt 0.029555 0.130726 +vt 0.028369 0.045690 +vt 0.027949 0.020511 +vt 0.019510 0.326396 +vt 0.020791 0.300340 +vt 0.363665 0.147342 +vt 0.390456 0.147342 +vt 0.409400 0.166287 +vt 0.409400 0.193078 +vt 0.390456 0.212022 +vt 0.363664 0.212022 +vt 0.344720 0.193078 +vt 0.344720 0.166286 +vt 0.011513 0.326003 +vt 0.012794 0.299946 +vt 0.018468 0.210474 +vt 0.019311 0.185300 +vt 0.023313 0.099761 +vt 0.023511 0.075533 +vt 0.000111 0.448080 +vt 0.001477 0.419947 +vt 0.015608 0.268483 +vt 0.016395 0.242948 +vt 0.021737 0.155218 +vt 0.022012 0.130642 +vt 0.020642 0.045819 +vt 0.020221 0.020640 +vt 0.241179 0.291205 +vt 0.241048 0.352210 +vt 0.241424 0.231328 +vt 0.239656 0.172428 +vt 0.238302 0.114877 +vt 0.236112 0.057792 +vt 0.234041 0.000494 +vt 0.239378 0.414394 +vt 0.236869 0.477863 +vt 0.344164 0.183645 +vt 0.343181 0.122473 +vt 0.344498 0.244994 +vt 0.344304 0.306406 +vt 0.343563 0.367674 +vt 0.342352 0.428813 +vt 0.340421 0.489783 +vt 0.342493 0.061278 +vt 0.341044 0.000111 +vt 0.248540 0.352310 +vt 0.247025 0.414653 +vt 0.518660 0.274425 +vt 0.518660 0.335581 +vt 0.510669 0.338880 +vt 0.510669 0.271126 +vt 0.618935 0.542365 +vt 0.618935 0.562130 +vt 0.555443 0.562130 +vt 0.555443 0.542365 +vt 0.518975 0.265234 +vt 0.518996 0.204078 +vt 0.526092 0.201151 +vt 0.526069 0.268165 +vt 0.244474 0.478305 +vt 0.491952 0.065734 +vt 0.491951 0.002242 +vt 0.497138 0.000111 +vt 0.497138 0.067865 +vt 0.491951 0.562130 +vt 0.491951 0.542365 +vt 0.518929 0.399261 +vt 0.518950 0.338104 +vt 0.526046 0.335178 +vt 0.526022 0.402192 +vt 0.240901 0.000111 +vt 0.243075 0.057522 +vt 0.518660 0.409933 +vt 0.518660 0.471090 +vt 0.510668 0.474388 +vt 0.510668 0.406634 +vt 0.999889 0.542365 +vt 0.999889 0.562130 +vt 0.936397 0.562130 +vt 0.936397 0.542365 +vt 0.543764 0.202918 +vt 0.543742 0.266410 +vt 0.539451 0.268169 +vt 0.539474 0.201156 +vt 0.245271 0.114659 +vt 0.518659 0.003410 +vt 0.518659 0.064565 +vt 0.510668 0.067865 +vt 0.510667 0.000111 +vt 0.872904 0.562130 +vt 0.872904 0.542365 +vt 0.518882 0.533287 +vt 0.518903 0.472131 +vt 0.525999 0.469205 +vt 0.525976 0.536218 +vt 0.246721 0.172240 +vt 0.491952 0.268995 +vt 0.491952 0.205503 +vt 0.497139 0.203372 +vt 0.497139 0.271126 +vt 0.809412 0.562130 +vt 0.809412 0.542365 +vt 0.543718 0.336945 +vt 0.543696 0.400437 +vt 0.539405 0.402196 +vt 0.539428 0.335183 +vt 0.248540 0.231225 +vt 0.491952 0.404503 +vt 0.491952 0.341011 +vt 0.497139 0.338880 +vt 0.497138 0.406634 +vt 0.745919 0.562130 +vt 0.745919 0.542365 +vt 0.519021 0.131207 +vt 0.519042 0.070051 +vt 0.526138 0.067125 +vt 0.526115 0.134138 +vt 0.248518 0.291219 +vt 0.518660 0.206671 +vt 0.518660 0.267827 +vt 0.510668 0.203372 +vt 0.682427 0.562130 +vt 0.682427 0.542365 +vt 0.543671 0.470972 +vt 0.543649 0.534464 +vt 0.539358 0.536223 +vt 0.539381 0.469210 +vt 0.491951 0.540012 +vt 0.491952 0.476519 +vt 0.497138 0.474388 +vt 0.497138 0.542143 +vt 0.543810 0.068891 +vt 0.543788 0.132383 +vt 0.539497 0.134142 +vt 0.539520 0.067129 +vt 0.526161 0.000111 +vt 0.539543 0.000116 +vt 0.543833 0.001878 +vt 0.543811 0.065370 +vt 0.543695 0.403959 +vt 0.543672 0.467451 +vt 0.519044 0.064193 +vt 0.519065 0.003037 +vt 0.543741 0.269931 +vt 0.543719 0.333424 +vt 0.518906 0.466274 +vt 0.518927 0.405118 +vt 0.543787 0.135905 +vt 0.543765 0.199397 +vt 0.518952 0.332247 +vt 0.518973 0.271091 +vt 0.518998 0.198220 +vt 0.519019 0.137064 +vt 0.510668 0.135618 +vt 0.497138 0.135618 +vt 0.510668 0.542143 +vt 0.491952 0.472258 +vt 0.491952 0.408765 +vt 0.518660 0.138917 +vt 0.518660 0.200073 +vt 0.491952 0.336749 +vt 0.491952 0.273257 +vt 0.491952 0.201241 +vt 0.491952 0.137749 +vt 0.518660 0.071163 +vt 0.518660 0.132319 +vt 0.518660 0.477687 +vt 0.518660 0.538844 +vt 0.491952 0.133487 +vt 0.491952 0.069996 +vt 0.518660 0.342179 +vt 0.518660 0.403335 vn 0.0019 -0.3851 -0.9229 vn 0.0000 -0.9239 -0.3827 vn 0.0000 -0.9239 0.3827 vn 0.0000 -0.3827 0.9239 vn 0.0000 0.3827 0.9239 vn 0.0000 0.9239 0.3827 -vn 1.0000 -0.0000 0.0000 +vn 1.0000 0.0000 0.0000 vn 0.0000 0.9239 -0.3827 vn 0.0019 0.3851 -0.9229 vn -0.9726 -0.2149 -0.0890 @@ -3530,17 +3643,13 @@ vn -0.3625 0.8610 0.3567 vn -0.3625 -0.3567 0.8610 vn -0.3625 -0.8610 -0.3567 vn -0.0059 0.3827 -0.9239 -vn -0.0030 0.3827 -0.9239 vn -0.0030 0.9249 -0.3803 vn -0.0030 0.9249 0.3803 vn -0.0059 0.3827 0.9239 -vn -0.0030 0.3827 0.9239 vn -0.0059 -0.3827 0.9239 -vn -0.0030 -0.3827 0.9239 vn -0.0030 -0.9249 0.3803 vn -0.0030 -0.9249 -0.3803 vn -0.0059 -0.3827 -0.9239 -vn -0.0030 -0.3827 -0.9239 vn 0.0169 0.3850 -0.9227 vn 0.0341 0.9233 -0.3825 vn 0.0341 0.9233 0.3825 @@ -3560,20 +3669,20 @@ vn -0.9907 -0.1260 0.0522 vn -0.9966 0.0761 0.0315 vn 0.9966 0.0762 -0.0316 vn 0.9919 -0.1173 0.0486 -vn -0.9907 -0.0522 -0.1260 +vn -0.9907 -0.0522 -0.1259 vn -0.0215 0.9247 0.3802 vn 0.9919 -0.0486 -0.1173 -vn 0.9966 0.0315 0.0762 +vn 0.9966 0.0316 0.0762 vn -0.0215 0.9247 -0.3802 vn -0.9966 -0.0761 0.0315 vn -0.9907 0.1260 -0.0522 vn 0.9919 0.1173 -0.0486 vn -0.9907 0.0522 0.1260 -vn -0.9907 0.1259 0.0522 +vn -0.9907 0.1260 0.0522 vn -0.9907 0.0522 -0.1260 vn 0.9966 0.0762 0.0316 vn -0.9907 -0.1260 -0.0522 -vn 0.9966 0.0315 -0.0762 +vn 0.9966 0.0316 -0.0762 vn -0.9907 -0.0522 0.1260 vn 0.9966 -0.0762 -0.0316 vn 0.9966 -0.0316 0.0762 @@ -3585,422 +3694,464 @@ vn -0.9966 0.0315 0.0762 vn -0.9966 0.0761 -0.0315 vn 0.9919 0.0486 0.1173 vn -0.9966 -0.0315 -0.0761 -s 1 +s off f 733/1257/403 734/1258/403 735/1259/403 736/1260/403 f 736/1260/404 735/1259/404 737/1261/404 738/1262/404 -f 738/1262/405 737/1261/405 739/1263/405 740/1264/405 -f 740/1264/406 739/1263/406 741/1265/406 742/1266/406 -f 742/1266/407 741/1265/407 743/1267/407 744/1268/407 -f 744/1268/408 743/1267/408 745/1269/408 746/1270/408 -f 735/1271/409 734/1272/409 747/1273/409 745/1274/409 743/1275/409 741/1276/409 739/1277/409 737/1278/409 -f 746/1270/410 745/1269/410 747/1279/410 748/1280/410 -f 748/1280/411 747/1279/411 734/1281/411 733/1282/411 +f 738/1263/405 737/1264/405 739/1265/405 740/1266/405 +f 740/1266/406 739/1265/406 741/1267/406 742/1268/406 +f 742/1268/407 741/1267/407 743/1269/407 744/1270/407 +f 744/1270/408 743/1269/408 745/1271/408 746/1272/408 +f 735/1273/409 734/1274/409 747/1275/409 745/1276/409 743/1277/409 741/1278/409 739/1279/409 737/1280/409 +f 746/1272/410 745/1271/410 747/1281/410 748/1282/410 +f 748/1282/411 747/1281/411 734/1258/411 733/1257/411 f 749/1283/412 750/1284/412 751/1285/412 752/1286/412 f 753/1287/413 754/1288/413 755/1289/413 756/1290/413 f 757/1291/414 758/1292/414 754/1288/414 753/1287/414 f 759/1293/415 760/1294/415 761/1295/415 762/1296/415 -f 760/1297/416 749/1283/416 752/1286/416 761/1298/416 -f 750/1284/417 763/1299/417 764/1300/417 751/1285/417 -f 758/1292/418 765/1301/418 766/1302/418 754/1288/418 -f 763/1299/419 757/1291/419 753/1287/419 764/1300/419 -f 765/1301/420 759/1293/420 762/1296/420 766/1302/420 -f 767/1303/410 768/1304/410 769/1305/410 770/1306/410 -f 751/1285/421 764/1300/421 771/1307/421 772/1308/421 -f 761/1298/422 752/1286/422 773/1309/422 774/1310/422 -f 762/1296/423 761/1295/423 774/1311/423 768/1304/423 -f 754/1288/424 766/1302/424 767/1303/424 755/1289/424 -f 764/1300/425 753/1287/425 756/1290/425 771/1307/425 -f 752/1286/426 751/1285/426 772/1308/426 773/1309/426 -f 766/1302/427 762/1296/427 768/1304/427 767/1303/427 -f 775/1312/428 770/1306/428 776/1313/428 777/1314/428 -f 756/1290/407 755/1289/407 775/1312/407 778/1315/407 -f 772/1308/405 771/1307/405 779/1316/405 780/1317/405 -f 774/1310/429 773/1309/429 781/1318/429 782/1319/429 -f 768/1304/430 774/1311/430 782/1320/430 769/1305/430 -f 755/1289/408 767/1303/408 770/1306/408 775/1312/408 -f 771/1307/406 756/1290/406 778/1315/406 779/1316/406 -f 773/1309/404 772/1308/404 780/1317/404 781/1318/404 -f 783/1321/431 784/1322/431 785/1323/431 786/1324/431 -f 779/1316/432 778/1315/432 787/1325/432 788/1326/432 -f 781/1318/433 780/1317/433 789/1327/433 784/1322/433 -f 770/1306/434 769/1305/434 790/1328/434 776/1313/434 -f 778/1315/435 775/1312/435 777/1314/435 787/1325/435 -f 780/1317/436 779/1316/436 788/1326/436 789/1327/436 -f 782/1319/437 781/1318/437 784/1322/437 783/1321/437 -f 769/1305/438 782/1320/438 783/1329/438 790/1328/438 -f 791/1330/410 792/1331/410 793/1332/410 794/1333/410 -f 790/1328/439 783/1329/439 786/1334/439 792/1331/439 -f 777/1314/440 776/1313/440 791/1330/440 795/1335/440 -f 788/1326/441 787/1325/441 796/1336/441 797/1337/441 -f 784/1322/442 789/1327/442 798/1338/442 785/1323/442 -f 776/1313/443 790/1328/443 792/1331/443 791/1330/443 -f 787/1325/444 777/1314/444 795/1335/444 796/1336/444 -f 789/1327/445 788/1326/445 797/1337/445 798/1338/445 -f 799/1339/446 800/1340/446 801/1341/446 802/1342/446 -f 796/1336/407 795/1335/407 803/1343/407 804/1344/407 -f 798/1338/405 797/1337/405 805/1345/405 800/1340/405 -f 786/1324/429 785/1323/429 799/1339/429 806/1346/429 -f 792/1331/430 786/1334/430 806/1347/430 793/1332/430 -f 795/1335/408 791/1330/408 794/1333/408 803/1343/408 -f 797/1337/406 796/1336/406 804/1344/406 805/1345/406 -f 785/1323/404 798/1338/404 800/1340/404 799/1339/404 -f 807/1348/447 808/1349/447 809/1350/447 810/1351/447 -f 794/1333/448 793/1332/448 807/1348/448 811/1352/448 -f 804/1344/449 803/1343/449 812/1353/449 813/1354/449 -f 800/1340/450 805/1345/450 814/1355/450 801/1341/450 -f 806/1346/451 799/1339/451 802/1342/451 808/1356/451 -f 793/1332/452 806/1347/452 808/1349/452 807/1348/452 -f 803/1343/453 794/1333/453 811/1352/453 812/1353/453 -f 805/1345/454 804/1344/454 813/1354/454 814/1355/454 -f 815/1357/455 810/1351/455 816/1358/455 817/1359/455 -f 812/1353/456 811/1352/456 815/1357/456 818/1360/456 -f 814/1355/457 813/1354/457 819/1361/457 820/1362/457 -f 802/1342/458 801/1341/458 821/1363/458 822/1364/458 -f 811/1352/459 807/1348/459 810/1351/459 815/1357/459 -f 813/1354/460 812/1353/460 818/1360/460 819/1361/460 -f 801/1341/461 814/1355/461 820/1362/461 821/1363/461 -f 808/1356/462 802/1342/462 822/1364/462 809/1365/462 -f 823/1366/463 817/1359/463 824/1367/463 825/1368/463 -f 819/1361/464 818/1360/464 823/1366/464 826/1369/464 -f 821/1363/465 820/1362/465 827/1370/465 828/1371/465 -f 809/1365/466 822/1364/466 829/1372/466 830/1373/466 -f 810/1351/467 809/1350/467 830/1374/467 816/1358/467 -f 818/1360/468 815/1357/468 817/1359/468 823/1366/468 -f 820/1362/469 819/1361/469 826/1369/469 827/1370/469 -f 822/1364/470 821/1363/470 828/1371/470 829/1372/470 -f 831/1375/407 832/1376/407 833/1377/407 834/1378/407 -f 827/1370/463 826/1369/463 835/1379/463 836/1380/463 -f 829/1372/463 828/1371/463 837/1381/463 832/1376/463 -f 817/1359/463 816/1358/463 838/1382/463 824/1367/463 -f 826/1369/463 823/1366/463 825/1368/463 835/1379/463 -f 828/1371/463 827/1370/463 836/1380/463 837/1381/463 -f 830/1373/463 829/1372/463 832/1376/463 831/1375/463 -f 816/1358/463 830/1374/463 831/1383/463 838/1382/463 -f 834/1384/463 833/1385/463 839/1386/463 840/1387/463 841/1388/463 842/1389/463 843/1390/463 844/1391/463 -f 838/1382/406 831/1383/406 834/1392/406 844/1393/406 -f 825/1368/404 824/1367/404 843/1394/404 842/1395/404 -f 836/1380/430 835/1379/430 841/1396/430 840/1397/430 -f 832/1376/408 837/1381/408 839/1398/408 833/1377/408 -f 824/1367/405 838/1382/405 844/1393/405 843/1394/405 -f 835/1379/429 825/1368/429 842/1395/429 841/1396/429 -f 837/1381/410 836/1380/410 840/1397/410 839/1398/410 -f 759/1293/471 845/1399/472 846/1400/472 760/1294/471 -f 765/1301/473 847/1401/473 845/1399/473 759/1293/473 -f 758/1292/474 848/1402/474 847/1401/474 765/1301/474 -f 757/1291/475 849/1403/476 848/1402/476 758/1292/475 -f 763/1299/477 850/1404/478 849/1403/478 757/1291/477 -f 750/1284/479 851/1405/479 850/1404/479 763/1299/479 -f 749/1283/480 852/1406/480 851/1405/480 750/1284/480 -f 760/1297/481 846/1407/482 852/1406/482 749/1283/481 -f 853/1408/483 748/1280/483 733/1282/483 854/1409/483 -f 855/1410/484 746/1270/484 748/1280/484 853/1408/484 -f 856/1411/485 744/1268/485 746/1270/485 855/1410/485 -f 857/1412/486 742/1266/486 744/1268/486 856/1411/486 -f 858/1413/487 740/1264/487 742/1266/487 857/1412/487 -f 859/1414/488 738/1262/488 740/1264/488 858/1413/488 -f 860/1415/489 736/1260/489 738/1262/489 859/1414/489 -f 854/1416/490 733/1257/490 736/1260/490 860/1415/490 -f 846/1407/482 861/1417/429 862/1418/429 852/1406/482 -f 863/1419/491 864/1420/491 865/1421/491 866/1422/491 -f 867/1423/429 868/1424/429 869/1425/429 870/1426/429 -f 855/1410/492 853/1408/492 871/1427/492 872/1428/492 -f 852/1406/493 862/1418/493 873/1429/493 851/1405/493 -f 870/1426/494 874/1430/494 875/1431/494 876/1432/494 -f 870/1426/404 869/1425/404 877/1433/404 874/1430/404 -f 857/1412/495 856/1411/495 878/1434/495 879/1435/495 -f 851/1405/496 873/1429/496 880/1436/496 850/1404/496 -f 881/1437/497 880/1436/497 882/1438/497 883/1439/497 -f 874/1430/405 877/1433/405 884/1440/405 885/1441/405 -f 886/1442/498 887/1443/498 888/1444/498 889/1445/498 -f 850/1404/478 880/1436/406 881/1437/406 849/1403/478 -f 873/1429/499 862/1418/499 890/1446/499 891/1447/499 -f 885/1441/406 884/1440/406 892/1448/406 893/1449/406 -f 859/1414/500 858/1413/500 894/1450/500 895/1451/500 -f 849/1403/476 881/1437/407 864/1420/407 848/1402/476 -f 896/1452/501 897/1453/501 898/1454/501 899/1455/501 -f 893/1449/407 892/1448/407 900/1456/407 901/1457/407 -f 900/1456/502 892/1448/502 902/1458/502 903/1459/502 -f 848/1402/503 864/1420/503 863/1419/503 847/1401/503 -f 893/1449/504 901/1457/504 904/1460/504 905/1461/504 -f 901/1457/408 900/1456/408 887/1443/408 896/1452/408 -f 854/1416/505 860/1415/505 906/1462/505 907/1463/505 -f 847/1401/506 863/1419/506 908/1464/506 845/1399/506 -f 908/1464/507 863/1419/507 866/1422/507 909/1465/507 -f 896/1452/410 887/1443/410 886/1442/410 897/1453/410 -f 884/1440/508 877/1433/508 910/1466/508 911/1467/508 -f 845/1399/472 908/1464/430 861/1468/430 846/1400/472 -f 874/1430/509 885/1441/509 912/1469/509 875/1431/509 -f 897/1453/430 886/1442/430 868/1470/430 867/1471/430 -f 869/1425/510 868/1424/510 913/1472/510 914/1473/510 -f 913/1472/429 907/1463/429 906/1462/429 914/1473/429 -f 914/1473/404 906/1462/404 895/1451/404 910/1466/404 -f 910/1466/405 895/1451/405 894/1450/405 911/1467/405 -f 911/1467/406 894/1450/406 879/1435/406 902/1458/406 -f 902/1458/407 879/1435/407 878/1434/407 903/1459/407 -f 903/1459/408 878/1434/408 872/1428/408 888/1444/408 -f 888/1444/410 872/1428/410 871/1427/410 889/1445/410 -f 889/1445/430 871/1427/430 907/1474/430 913/1475/430 -f 877/1433/511 869/1425/511 914/1473/511 910/1466/511 -f 892/1448/512 884/1440/512 911/1467/512 902/1458/512 -f 860/1415/513 859/1414/513 895/1451/513 906/1462/513 -f 887/1443/514 900/1456/514 903/1459/514 888/1444/514 -f 858/1413/515 857/1412/515 879/1435/515 894/1450/515 -f 868/1470/516 886/1442/516 889/1445/516 913/1475/516 -f 856/1411/517 855/1410/517 872/1428/517 878/1434/517 -f 853/1408/518 854/1409/518 907/1474/518 871/1427/518 -f 915/1476/429 916/1477/429 876/1432/429 890/1446/429 -f 890/1446/404 876/1432/404 875/1431/404 891/1447/404 -f 891/1447/405 875/1431/405 912/1469/405 882/1438/405 -f 882/1438/406 912/1469/406 905/1461/406 883/1439/406 -f 883/1439/407 905/1461/407 904/1460/407 865/1421/407 -f 865/1421/408 904/1460/408 899/1455/408 866/1422/408 -f 866/1422/410 899/1455/410 898/1454/410 909/1465/410 -f 909/1465/430 898/1454/430 916/1478/430 915/1479/430 -f 885/1441/519 893/1449/519 905/1461/519 912/1469/519 -f 861/1468/520 908/1464/520 909/1465/520 915/1479/520 -f 901/1457/521 896/1452/521 899/1455/521 904/1460/521 -f 897/1453/522 867/1471/522 916/1478/522 898/1454/522 -f 862/1418/523 861/1417/523 915/1476/523 890/1446/523 -f 880/1436/524 873/1429/524 891/1447/524 882/1438/524 -f 867/1423/525 870/1426/525 876/1432/525 916/1477/525 -f 864/1420/526 881/1437/526 883/1439/526 865/1421/526 +f 760/1294/416 749/1283/416 752/1297/416 761/1298/416 +f 750/1299/417 763/1300/417 764/1301/417 751/1302/417 +f 758/1292/418 765/1303/418 766/1304/418 754/1305/418 +f 763/1300/419 757/1291/419 753/1306/419 764/1307/419 +f 765/1303/420 759/1293/420 762/1308/420 766/1309/420 +f 767/1310/410 768/1311/410 769/1312/410 770/1313/410 +f 751/1302/421 764/1301/421 771/1314/421 772/1315/421 +f 761/1298/422 752/1297/422 773/1316/422 774/1317/422 +f 762/1296/423 761/1295/423 774/1317/423 768/1311/423 +f 754/1305/424 766/1304/424 767/1310/424 755/1289/424 +f 764/1307/425 753/1306/425 756/1290/425 771/1314/425 +f 752/1286/426 751/1285/426 772/1318/426 773/1316/426 +f 766/1309/427 762/1308/427 768/1311/427 767/1310/427 +f 775/1319/428 770/1313/428 776/1320/428 777/1321/428 +f 756/1290/407 755/1289/407 775/1319/407 778/1322/407 +f 772/1315/405 771/1314/405 779/1323/405 780/1324/405 +f 774/1317/429 773/1316/429 781/1325/429 782/1326/429 +f 768/1311/430 774/1317/430 782/1326/430 769/1312/430 +f 755/1289/408 767/1310/408 770/1313/408 775/1319/408 +f 771/1314/406 756/1290/406 778/1322/406 779/1323/406 +f 773/1316/404 772/1318/404 780/1327/404 781/1325/404 +f 783/1328/431 784/1329/431 785/1330/431 786/1331/431 +f 779/1323/432 778/1322/432 787/1332/432 788/1333/432 +f 781/1325/433 780/1327/433 789/1334/433 784/1335/433 +f 770/1313/434 769/1312/434 790/1336/434 776/1337/434 +f 778/1322/435 775/1319/435 777/1338/435 787/1339/435 +f 780/1324/436 779/1323/436 788/1340/436 789/1341/436 +f 782/1326/437 781/1325/437 784/1329/437 783/1328/437 +f 769/1312/438 782/1326/438 783/1342/438 790/1343/438 +f 791/1344/410 792/1345/410 793/1346/410 794/1347/410 +f 790/1343/439 783/1342/439 786/1331/439 792/1345/439 +f 777/1321/440 776/1320/440 791/1344/440 795/1348/440 +f 788/1333/441 787/1332/441 796/1349/441 797/1350/441 +f 784/1335/442 789/1334/442 798/1351/442 785/1330/442 +f 776/1337/443 790/1336/443 792/1345/443 791/1344/443 +f 787/1339/444 777/1338/444 795/1348/444 796/1349/444 +f 789/1341/445 788/1340/445 797/1350/445 798/1352/445 +f 799/1353/446 800/1354/446 801/1355/446 802/1356/446 +f 796/1349/407 795/1348/407 803/1357/407 804/1358/407 +f 798/1352/405 797/1350/405 805/1359/405 800/1360/405 +f 786/1331/429 785/1330/429 799/1353/429 806/1361/429 +f 792/1345/430 786/1331/430 806/1361/430 793/1346/430 +f 795/1348/408 791/1344/408 794/1347/408 803/1357/408 +f 797/1350/406 796/1349/406 804/1358/406 805/1359/406 +f 785/1330/404 798/1351/404 800/1354/404 799/1353/404 +f 807/1362/447 808/1363/447 809/1364/447 810/1365/447 +f 794/1347/448 793/1346/448 807/1366/448 811/1367/448 +f 804/1358/449 803/1357/449 812/1368/449 813/1369/449 +f 800/1360/450 805/1359/450 814/1370/450 801/1371/450 +f 806/1361/451 799/1353/451 802/1372/451 808/1373/451 +f 793/1346/452 806/1361/452 808/1363/452 807/1362/452 +f 803/1357/453 794/1347/453 811/1374/453 812/1375/453 +f 805/1359/454 804/1358/454 813/1376/454 814/1377/454 +f 815/1378/455 810/1379/455 816/1380/455 817/1381/455 +f 812/1375/456 811/1374/456 815/1382/456 818/1383/456 +f 814/1377/457 813/1376/457 819/1384/457 820/1385/457 +f 802/1356/458 801/1355/458 821/1386/458 822/1387/458 +f 811/1367/459 807/1366/459 810/1379/459 815/1378/459 +f 813/1369/460 812/1368/460 818/1388/460 819/1389/460 +f 801/1371/461 814/1370/461 820/1390/461 821/1391/461 +f 808/1373/462 802/1372/462 822/1392/462 809/1393/462 +f 823/1394/463 817/1395/463 824/1396/463 825/1397/463 +f 819/1389/464 818/1388/464 823/1398/464 826/1399/464 +f 821/1391/465 820/1390/465 827/1400/465 828/1401/465 +f 809/1393/466 822/1392/466 829/1402/466 830/1403/466 +f 810/1365/467 809/1364/467 830/1404/467 816/1405/467 +f 818/1383/468 815/1382/468 817/1395/468 823/1394/468 +f 820/1385/469 819/1384/469 826/1406/469 827/1407/469 +f 822/1387/470 821/1386/470 828/1408/470 829/1409/470 +f 831/1410/407 832/1411/407 833/1412/407 834/1413/407 +f 827/1407/463 826/1406/463 835/1414/463 836/1415/463 +f 829/1409/463 828/1408/463 837/1416/463 832/1417/463 +f 817/1381/463 816/1380/463 838/1418/463 824/1419/463 +f 826/1399/463 823/1398/463 825/1420/463 835/1421/463 +f 828/1401/463 827/1400/463 836/1422/463 837/1423/463 +f 830/1403/463 829/1402/463 832/1411/463 831/1410/463 +f 816/1405/463 830/1404/463 831/1424/463 838/1425/463 +f 834/1426/463 833/1427/463 839/1428/463 840/1429/463 841/1430/463 842/1431/463 843/1432/463 844/1433/463 +f 838/1425/406 831/1424/406 834/1434/406 844/1435/406 +f 825/1397/404 824/1396/404 843/1436/404 842/1437/404 +f 836/1415/430 835/1414/430 841/1438/430 840/1439/430 +f 832/1417/408 837/1416/408 839/1440/408 833/1441/408 +f 824/1419/405 838/1418/405 844/1442/405 843/1443/405 +f 835/1421/429 825/1420/429 842/1444/429 841/1445/429 +f 837/1423/410 836/1422/410 840/1446/410 839/1447/410 +f 759/1293/471 845/1448/471 846/1449/471 760/1294/471 +f 765/1303/472 847/1450/472 845/1448/472 759/1293/472 +f 758/1292/473 848/1451/473 847/1450/473 765/1303/473 +f 757/1291/474 849/1452/474 848/1451/474 758/1292/474 +f 763/1300/475 850/1453/475 849/1452/475 757/1291/475 +f 750/1299/476 851/1454/476 850/1453/476 763/1300/476 +f 749/1283/477 852/1455/477 851/1456/477 750/1284/477 +f 760/1294/478 846/1449/478 852/1455/478 749/1283/478 +f 853/1457/479 748/1282/479 733/1257/479 854/1458/479 +f 855/1459/480 746/1272/480 748/1282/480 853/1457/480 +f 856/1460/481 744/1270/481 746/1272/481 855/1459/481 +f 857/1461/482 742/1268/482 744/1270/482 856/1460/482 +f 858/1462/483 740/1266/483 742/1268/483 857/1461/483 +f 859/1463/484 738/1263/484 740/1266/484 858/1462/484 +f 860/1464/485 736/1260/485 738/1262/485 859/1465/485 +f 854/1458/486 733/1257/486 736/1260/486 860/1464/486 +f 846/1449/429 861/1466/429 862/1467/429 852/1455/429 +f 863/1468/487 864/1469/487 865/1470/487 866/1471/487 +f 867/1472/429 868/1473/429 869/1474/429 870/1475/429 +f 855/1476/488 853/1477/488 871/1478/488 872/1479/488 +f 852/1455/489 862/1467/489 873/1480/489 851/1456/489 +f 870/1481/490 874/1482/490 875/1483/490 876/1484/490 +f 870/1475/404 869/1474/404 877/1485/404 874/1486/404 +f 857/1487/491 856/1488/491 878/1489/491 879/1490/491 +f 851/1454/492 873/1491/492 880/1492/492 850/1453/492 +f 881/1493/493 880/1494/493 882/1495/493 883/1496/493 +f 874/1497/405 877/1498/405 884/1499/405 885/1500/405 +f 886/1501/494 887/1502/494 888/1503/494 889/1504/494 +f 850/1453/406 880/1492/406 881/1505/406 849/1452/406 +f 873/1506/495 862/1507/495 890/1508/495 891/1509/495 +f 885/1500/406 884/1499/406 892/1510/406 893/1511/406 +f 859/1512/496 858/1513/496 894/1514/496 895/1515/496 +f 849/1452/407 881/1505/407 864/1516/407 848/1451/407 +f 896/1517/497 897/1518/497 898/1519/497 899/1520/497 +f 893/1511/407 892/1510/407 900/1521/407 901/1522/407 +f 900/1523/498 892/1524/498 902/1525/498 903/1526/498 +f 848/1451/499 864/1516/499 863/1527/499 847/1450/499 +f 893/1528/500 901/1529/500 904/1530/500 905/1531/500 +f 901/1522/408 900/1521/408 887/1532/408 896/1533/408 +f 854/1534/501 860/1535/501 906/1536/501 907/1537/501 +f 847/1450/502 863/1527/502 908/1538/502 845/1448/502 +f 908/1539/503 863/1540/503 866/1471/503 909/1541/503 +f 896/1533/410 887/1532/410 886/1542/410 897/1543/410 +f 884/1544/504 877/1545/504 910/1546/504 911/1547/504 +f 845/1448/430 908/1538/430 861/1466/430 846/1449/430 +f 874/1548/505 885/1549/505 912/1550/505 875/1551/505 +f 897/1543/430 886/1542/430 868/1473/430 867/1472/430 +f 869/1552/506 868/1553/506 913/1554/506 914/1555/506 +f 913/1554/429 907/1537/429 906/1536/429 914/1555/429 +f 914/1555/404 906/1536/404 895/1556/404 910/1557/404 +f 910/1546/405 895/1515/405 894/1514/405 911/1547/405 +f 911/1547/406 894/1514/406 879/1490/406 902/1525/406 +f 902/1525/407 879/1490/407 878/1489/407 903/1526/407 +f 903/1526/408 878/1489/408 872/1479/408 888/1503/408 +f 888/1503/410 872/1479/410 871/1478/410 889/1504/410 +f 889/1504/430 871/1478/430 907/1537/430 913/1554/430 +f 877/1558/507 869/1559/507 914/1555/507 910/1557/507 +f 892/1560/508 884/1561/508 911/1547/508 902/1525/508 +f 860/1562/509 859/1563/509 895/1556/509 906/1536/509 +f 887/1564/510 900/1565/510 903/1526/510 888/1503/510 +f 858/1566/511 857/1567/511 879/1490/511 894/1514/511 +f 868/1568/512 886/1569/512 889/1504/512 913/1554/512 +f 856/1570/513 855/1571/513 872/1479/513 878/1489/513 +f 853/1572/514 854/1573/514 907/1537/514 871/1478/514 +f 915/1574/429 916/1575/429 876/1484/429 890/1508/429 +f 890/1508/404 876/1484/404 875/1483/404 891/1509/404 +f 891/1576/405 875/1551/405 912/1550/405 882/1495/405 +f 882/1495/406 912/1550/406 905/1531/406 883/1496/406 +f 883/1496/407 905/1531/407 904/1530/407 865/1470/407 +f 865/1470/408 904/1530/408 899/1520/408 866/1471/408 +f 866/1471/410 899/1520/410 898/1519/410 909/1541/410 +f 909/1541/430 898/1519/430 916/1575/430 915/1574/430 +f 885/1577/515 893/1578/515 905/1531/515 912/1550/515 +f 861/1579/516 908/1580/516 909/1541/516 915/1574/516 +f 901/1581/517 896/1582/517 899/1520/517 904/1530/517 +f 897/1583/518 867/1584/518 916/1575/518 898/1519/518 +f 862/1585/519 861/1586/519 915/1574/519 890/1508/519 +f 880/1587/520 873/1588/520 891/1576/520 882/1495/520 +f 867/1589/521 870/1590/521 876/1484/521 916/1575/521 +f 864/1591/522 881/1592/522 883/1496/522 865/1470/522 o SideScrews_Cylinder.005 -v -0.436383 0.265019 0.509254 -v 1.004741 0.265019 0.509254 -v 1.004741 0.179718 0.544586 -v -0.436383 0.179718 0.544586 -v 1.004741 0.144386 0.629887 -v -0.436383 0.144385 0.629887 -v 1.004741 0.179718 0.715187 -v -0.436383 0.179718 0.715187 -v 1.004741 0.265019 0.750520 -v -0.436383 0.265019 0.750520 -v 1.004741 0.350319 0.715187 -v -0.436383 0.350319 0.715187 -v 1.004741 0.385652 0.629887 -v -0.436383 0.385652 0.629887 -v 1.088061 0.265019 0.750520 -v 1.088061 0.350319 0.715187 -v 1.004741 0.350319 0.544586 -v -0.436383 0.350319 0.544586 -v -0.513171 0.364069 0.629887 -v -0.513171 0.335058 0.699926 -v -0.513171 0.265019 0.530836 -v -0.513171 0.194979 0.559848 -v -0.513171 0.165968 0.629887 -v -0.513171 0.194979 0.699926 -v -0.513171 0.265019 0.728937 -v -0.513171 0.335058 0.559848 -v 1.088061 0.265019 0.509254 -v 1.088061 0.350319 0.544586 -v 1.100404 0.336110 0.558795 -v 1.100404 0.265019 0.529348 -v 1.088061 0.179718 0.544586 -v 1.088061 0.144386 0.629887 -v 1.088061 0.179718 0.715187 -v 1.088061 0.385652 0.629887 -v 1.100404 0.336110 0.700979 -v 1.100404 0.365558 0.629887 -v 1.100404 0.193927 0.700979 -v 1.100404 0.265019 0.730426 -v 1.100404 0.193927 0.558795 -v 1.100404 0.164480 0.629887 -v 1.127149 0.181939 0.629887 -v 1.127149 0.206273 0.688633 -v 1.127149 0.206273 0.571141 -v 1.127149 0.265019 0.546807 -v 1.127149 0.323765 0.571141 -v 1.127149 0.348098 0.629887 -v 1.127149 0.323765 0.688633 -v 1.127149 0.265019 0.712966 -v -0.436384 0.265019 -0.509254 -v -0.436384 0.179718 -0.544586 -v 1.004741 0.179718 -0.544586 -v 1.004741 0.265019 -0.509254 -v -0.436384 0.144385 -0.629887 -v 1.004741 0.144386 -0.629887 -v -0.436384 0.179718 -0.715187 -v 1.004741 0.179718 -0.715187 -v -0.436384 0.265019 -0.750520 -v 1.004741 0.265019 -0.750520 -v -0.436384 0.350319 -0.715187 -v 1.004741 0.350319 -0.715187 -v -0.436384 0.385652 -0.629887 -v 1.004741 0.385652 -0.629887 -v 1.088061 0.350319 -0.715187 -v 1.088061 0.265019 -0.750520 -v -0.436384 0.350319 -0.544586 -v 1.004741 0.350319 -0.544586 -v -0.513171 0.335058 -0.699926 -v -0.513171 0.364069 -0.629887 -v -0.513171 0.265019 -0.530836 -v -0.513171 0.335058 -0.559848 -v -0.513171 0.265019 -0.728937 -v -0.513171 0.194979 -0.699926 -v -0.513171 0.165968 -0.629887 -v -0.513171 0.194979 -0.559848 -v 1.088061 0.265019 -0.509254 -v 1.100404 0.265019 -0.529348 -v 1.100404 0.336111 -0.558795 -v 1.088061 0.350319 -0.544586 -v 1.088061 0.179718 -0.544586 -v 1.088061 0.179718 -0.715187 -v 1.088061 0.144386 -0.629887 -v 1.088061 0.385652 -0.629887 -v 1.100404 0.365558 -0.629887 -v 1.100404 0.336110 -0.700979 -v 1.100404 0.265019 -0.730426 -v 1.100404 0.193927 -0.700979 -v 1.100404 0.164480 -0.629887 -v 1.100404 0.193927 -0.558795 -v 1.127149 0.206273 -0.688633 -v 1.127149 0.181939 -0.629887 -v 1.127149 0.206273 -0.571141 -v 1.127149 0.265019 -0.712966 -v 1.127149 0.323765 -0.688633 -v 1.127149 0.348098 -0.629887 -v 1.127149 0.323765 -0.571141 -v 1.127149 0.265019 -0.546807 -vt 1.000000 0.500000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.875000 0.500000 -vt 0.750000 1.000000 -vt 0.750000 0.500000 -vt 0.625000 1.000000 -vt 0.625000 0.500000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.375000 1.000000 -vt 0.375000 0.500000 -vt 0.250000 1.000000 -vt 0.250000 0.500000 -vt 0.500000 1.000000 -vt 0.375000 1.000000 -vt 0.125000 1.000000 -vt 0.125000 0.500000 -vt 0.000000 1.000000 -vt 0.000000 0.500000 -vt 0.250000 0.500000 -vt 0.375000 0.500000 -vt 0.750000 0.490000 -vt 0.919706 0.419706 -vt 0.990000 0.250000 -vt 0.919706 0.080294 -vt 0.750000 0.010000 -vt 0.580294 0.080294 -vt 0.510000 0.250000 -vt 0.580294 0.419706 -vt 0.500000 0.500000 -vt 0.625000 0.500000 -vt 0.125000 0.500000 -vt 0.750000 0.500000 -vt 0.875000 0.500000 -vt 0.000000 0.500000 -vt 1.000000 0.500000 -vt 0.000000 1.000000 -vt 0.125000 1.000000 -vt 0.125000 1.000000 -vt 0.000000 1.000000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.750000 1.000000 -vt 0.625000 1.000000 -vt 0.250000 1.000000 -vt 0.375000 1.000000 -vt 0.250000 1.000000 -vt 0.625000 1.000000 -vt 0.500000 1.000000 -vt 0.875000 1.000000 -vt 0.750000 1.000000 -vt 1.000000 1.000000 -vt 0.750000 1.000000 -vt 0.625000 1.000000 -vt 0.419706 0.419706 -vt 0.250000 0.490000 -vt 0.080294 0.419706 -vt 0.010000 0.250000 -vt 0.080294 0.080294 -vt 0.250000 0.010000 -vt 0.419706 0.080294 -vt 0.490000 0.250000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.125000 1.000000 -vt 0.000000 1.000000 -vt 0.375000 1.000000 -vt 0.250000 1.000000 -vt 0.500000 1.000000 -vt 1.000000 0.500000 -vt 0.875000 0.500000 -vt 0.875000 1.000000 -vt 1.000000 1.000000 -vt 0.750000 0.500000 -vt 0.750000 1.000000 -vt 0.625000 0.500000 -vt 0.625000 1.000000 -vt 0.500000 0.500000 -vt 0.500000 1.000000 -vt 0.375000 0.500000 -vt 0.375000 1.000000 -vt 0.250000 0.500000 -vt 0.250000 1.000000 -vt 0.375000 1.000000 -vt 0.500000 1.000000 -vt 0.125000 0.500000 -vt 0.125000 1.000000 -vt 0.000000 0.500000 -vt 0.000000 1.000000 -vt 0.375000 0.500000 -vt 0.250000 0.500000 -vt 0.750000 0.490000 -vt 0.580294 0.419706 -vt 0.510000 0.250000 -vt 0.580294 0.080294 -vt 0.750000 0.010000 -vt 0.919706 0.080294 -vt 0.990000 0.250000 -vt 0.919706 0.419706 -vt 0.625000 0.500000 -vt 0.500000 0.500000 -vt 0.125000 0.500000 -vt 0.875000 0.500000 -vt 0.750000 0.500000 -vt 0.000000 0.500000 -vt 1.000000 0.500000 -vt 0.000000 1.000000 -vt 0.000000 1.000000 -vt 0.125000 1.000000 -vt 0.125000 1.000000 -vt 0.875000 1.000000 -vt 1.000000 1.000000 -vt 0.625000 1.000000 -vt 0.750000 1.000000 -vt 0.250000 1.000000 -vt 0.250000 1.000000 -vt 0.375000 1.000000 -vt 0.500000 1.000000 -vt 0.625000 1.000000 -vt 0.750000 1.000000 -vt 0.875000 1.000000 -vt 1.000000 1.000000 -vt 0.625000 1.000000 -vt 0.750000 1.000000 -vt 0.419706 0.419706 -vt 0.490000 0.250000 -vt 0.419706 0.080294 -vt 0.250000 0.010000 -vt 0.080294 0.080294 -vt 0.010000 0.250000 -vt 0.080294 0.419706 -vt 0.250000 0.490000 -vt 0.875000 1.000000 -vt 1.000000 1.000000 -vt 0.000000 1.000000 -vt 0.125000 1.000000 -vt 0.250000 1.000000 -vt 0.375000 1.000000 -vt 0.500000 1.000000 +v -0.436383 0.265019 3.509254 +v 1.004741 0.265019 3.509254 +v 1.004741 0.179718 3.544586 +v -0.436383 0.179718 3.544586 +v 1.004741 0.144386 3.629887 +v -0.436383 0.144385 3.629887 +v 1.004741 0.179718 3.715187 +v -0.436383 0.179718 3.715187 +v 1.004741 0.265019 3.750520 +v -0.436383 0.265019 3.750520 +v 1.004741 0.350319 3.715187 +v -0.436383 0.350319 3.715187 +v 1.004741 0.385652 3.629887 +v -0.436383 0.385652 3.629887 +v 1.088061 0.265019 3.750520 +v 1.088061 0.350319 3.715187 +v 1.004741 0.350319 3.544586 +v -0.436383 0.350319 3.544586 +v -0.513171 0.364069 3.629887 +v -0.513171 0.335058 3.699926 +v -0.513171 0.265019 3.530836 +v -0.513171 0.194979 3.559848 +v -0.513171 0.165968 3.629887 +v -0.513171 0.194979 3.699926 +v -0.513171 0.265019 3.728937 +v -0.513171 0.335058 3.559848 +v 1.088061 0.265019 3.509254 +v 1.088061 0.350319 3.544586 +v 1.100404 0.336110 3.558795 +v 1.100404 0.265019 3.529348 +v 1.088061 0.179718 3.544586 +v 1.088061 0.144386 3.629887 +v 1.088061 0.179718 3.715187 +v 1.088061 0.385652 3.629887 +v 1.100404 0.336110 3.700979 +v 1.100404 0.365558 3.629887 +v 1.100404 0.193927 3.700979 +v 1.100404 0.265019 3.730426 +v 1.100404 0.193927 3.558795 +v 1.100404 0.164480 3.629887 +v 1.127149 0.181939 3.629887 +v 1.127149 0.206273 3.688633 +v 1.127149 0.206273 3.571141 +v 1.127149 0.265019 3.546807 +v 1.127149 0.323765 3.571141 +v 1.127149 0.348098 3.629887 +v 1.127149 0.323765 3.688633 +v 1.127149 0.265019 3.712966 +v -0.436384 0.265019 2.490746 +v -0.436384 0.179718 2.455414 +v 1.004741 0.179718 2.455414 +v 1.004741 0.265019 2.490746 +v -0.436384 0.144385 2.370113 +v 1.004741 0.144386 2.370113 +v -0.436384 0.179718 2.284813 +v 1.004741 0.179718 2.284813 +v -0.436384 0.265019 2.249480 +v 1.004741 0.265019 2.249480 +v -0.436384 0.350319 2.284813 +v 1.004741 0.350319 2.284813 +v -0.436384 0.385652 2.370113 +v 1.004741 0.385652 2.370113 +v 1.088061 0.350319 2.284813 +v 1.088061 0.265019 2.249480 +v -0.436384 0.350319 2.455414 +v 1.004741 0.350319 2.455414 +v -0.513171 0.335058 2.300074 +v -0.513171 0.364069 2.370113 +v -0.513171 0.265019 2.469164 +v -0.513171 0.335058 2.440152 +v -0.513171 0.265019 2.271063 +v -0.513171 0.194979 2.300074 +v -0.513171 0.165968 2.370113 +v -0.513171 0.194979 2.440152 +v 1.088061 0.265019 2.490746 +v 1.100404 0.265019 2.470652 +v 1.100404 0.336111 2.441205 +v 1.088061 0.350319 2.455414 +v 1.088061 0.179718 2.455414 +v 1.088061 0.179718 2.284813 +v 1.088061 0.144386 2.370113 +v 1.088061 0.385652 2.370113 +v 1.100404 0.365558 2.370113 +v 1.100404 0.336110 2.299021 +v 1.100404 0.265019 2.269574 +v 1.100404 0.193927 2.299021 +v 1.100404 0.164480 2.370113 +v 1.100404 0.193927 2.441205 +v 1.127149 0.206273 2.311367 +v 1.127149 0.181939 2.370113 +v 1.127149 0.206273 2.428859 +v 1.127149 0.265019 2.287034 +v 1.127149 0.323765 2.311367 +v 1.127149 0.348098 2.370113 +v 1.127149 0.323765 2.428859 +v 1.127149 0.265019 2.453193 +vt 0.047908 0.778254 +vt 0.915002 0.778254 +vt 0.915002 0.833806 +vt 0.047908 0.833806 +vt 0.915002 0.889359 +vt 0.047908 0.889358 +vt 0.047908 0.444941 +vt 0.915002 0.444941 +vt 0.915002 0.500493 +vt 0.047908 0.500493 +vt 0.915002 0.556045 +vt 0.047908 0.556045 +vt 0.915002 0.611597 +vt 0.047908 0.611598 +vt 0.915002 0.667149 +vt 0.047908 0.667150 +vt 0.965134 0.556045 +vt 0.965134 0.611597 +vt 0.915002 0.722702 +vt 0.047908 0.722702 +vt 0.000174 0.662180 +vt 0.000174 0.616567 +vt 0.188508 0.999826 +vt 0.142894 0.999826 +vt 0.110641 0.967572 +vt 0.110641 0.921959 +vt 0.142895 0.889706 +vt 0.188508 0.889706 +vt 0.220761 0.921959 +vt 0.220761 0.967572 +vt 0.000174 0.551076 +vt 0.000174 0.505463 +vt 0.000174 0.717732 +vt 0.000174 0.672119 +vt 0.000174 0.884388 +vt 0.000174 0.838776 +vt 0.000174 0.606628 +vt 0.000174 0.561015 +vt 0.000174 0.773284 +vt 0.000174 0.727671 +vt 0.000174 0.828837 +vt 0.000174 0.783223 +vt 0.000174 0.495524 +vt 0.000174 0.449911 +vt 0.965134 0.778254 +vt 0.965134 0.722702 +vt 0.978548 0.727329 +vt 0.978548 0.773627 +vt 0.965134 0.833806 +vt 0.965134 0.444941 +vt 0.965134 0.500493 +vt 0.965134 0.667149 +vt 0.965134 0.889359 +vt 0.978548 0.616224 +vt 0.978548 0.662523 +vt 0.978548 0.505120 +vt 0.978548 0.551419 +vt 0.978548 0.838433 +vt 0.978548 0.884732 +vt 0.978548 0.671776 +vt 0.978548 0.718075 +vt 0.978548 0.560672 +vt 0.978548 0.606970 +vt 0.978548 0.449567 +vt 0.978548 0.495866 +vt 0.978548 0.782880 +vt 0.978548 0.829179 +vt 0.997340 0.453587 +vt 0.997340 0.491846 +vt 0.313821 0.916759 +vt 0.340874 0.889706 +vt 0.379132 0.889706 +vt 0.406185 0.916760 +vt 0.406185 0.955018 +vt 0.379132 0.982071 +vt 0.340873 0.982071 +vt 0.313820 0.955018 +vt 0.997340 0.786900 +vt 0.997340 0.825159 +vt 0.997340 0.731349 +vt 0.997339 0.769607 +vt 0.997340 0.620244 +vt 0.997340 0.658502 +vt 0.997340 0.509140 +vt 0.997340 0.547398 +vt 0.997340 0.842454 +vt 0.997340 0.880712 +vt 0.997340 0.675796 +vt 0.997340 0.714055 +vt 0.997340 0.564692 +vt 0.997340 0.602951 +vt 0.047908 0.111279 +vt 0.047908 0.055726 +vt 0.915003 0.055729 +vt 0.915003 0.111281 +vt 0.047908 0.000174 +vt 0.915003 0.000177 +vt 0.047907 0.444592 +vt 0.047907 0.389040 +vt 0.915002 0.389041 +vt 0.915002 0.444593 +vt 0.047907 0.333487 +vt 0.915002 0.333489 +vt 0.047907 0.277935 +vt 0.915002 0.277937 +vt 0.047908 0.222383 +vt 0.915002 0.222385 +vt 0.965134 0.277937 +vt 0.965134 0.333489 +vt 0.047908 0.166830 +vt 0.915003 0.166833 +vt 0.000174 0.272966 +vt 0.000174 0.227352 +vt 0.032427 0.889706 +vt 0.078041 0.889706 +vt 0.110294 0.921960 +vt 0.110294 0.967573 +vt 0.078041 0.999826 +vt 0.032427 0.999826 +vt 0.000174 0.967573 +vt 0.000174 0.921960 +vt 0.000174 0.384070 +vt 0.000174 0.338457 +vt 0.000174 0.217413 +vt 0.000174 0.171800 +vt 0.000175 0.050756 +vt 0.000175 0.005143 +vt 0.000174 0.328517 +vt 0.000174 0.282904 +vt 0.000174 0.161861 +vt 0.000175 0.116248 +vt 0.000175 0.106309 +vt 0.000175 0.060695 +vt 0.000174 0.439622 +vt 0.000174 0.394009 +vt 0.965135 0.111281 +vt 0.978548 0.115908 +vt 0.978548 0.162207 +vt 0.965135 0.166833 +vt 0.965135 0.055729 +vt 0.965134 0.389041 +vt 0.965134 0.444593 +vt 0.965134 0.222385 +vt 0.965135 0.000177 +vt 0.978548 0.227012 +vt 0.978548 0.273311 +vt 0.978547 0.338116 +vt 0.978547 0.384414 +vt 0.978548 0.004803 +vt 0.978548 0.051102 +vt 0.978547 0.171460 +vt 0.978547 0.217759 +vt 0.978547 0.282564 +vt 0.978547 0.328863 +vt 0.978548 0.393668 +vt 0.978548 0.439967 +vt 0.978548 0.060356 +vt 0.978548 0.106654 +vt 0.997340 0.397688 +vt 0.997340 0.435947 +vt 0.248162 0.982070 +vt 0.221109 0.955017 +vt 0.221109 0.916758 +vt 0.248162 0.889706 +vt 0.286421 0.889706 +vt 0.313473 0.916759 +vt 0.313473 0.955017 +vt 0.286420 0.982071 +vt 0.997340 0.064376 +vt 0.997340 0.102635 +vt 0.997340 0.119928 +vt 0.997341 0.158187 +vt 0.997340 0.231032 +vt 0.997340 0.269291 +vt 0.997339 0.342136 +vt 0.997339 0.380394 +vt 0.997340 0.008823 +vt 0.997340 0.047082 +vt 0.997339 0.175480 +vt 0.997339 0.213738 +vt 0.997340 0.286584 +vt 0.997340 0.324842 vn 0.0000 -0.3827 -0.9239 vn 0.0000 -0.9239 -0.3827 vn 0.0000 -0.9239 0.3827 @@ -4027,7 +4178,7 @@ vn 0.8327 0.2119 0.5115 vn 0.8327 -0.5115 0.2119 vn 0.8327 -0.2119 -0.5115 vn 0.5165 -0.7911 0.3277 -vn 1.0000 -0.0000 0.0000 +vn 1.0000 0.0000 0.0000 vn 0.5165 -0.3277 -0.7911 vn 0.5165 0.3277 -0.7911 vn 0.5165 0.7911 0.3277 @@ -4035,91 +4186,91 @@ vn 0.5165 -0.3277 0.7911 vn 0.5165 -0.7911 -0.3277 vn 0.5165 0.7911 -0.3277 vn 0.5165 0.3277 0.7911 -s 1 -f 917/1480/527 918/1481/527 919/1482/527 920/1483/527 -f 920/1483/528 919/1482/528 921/1484/528 922/1485/528 -f 922/1485/529 921/1484/529 923/1486/529 924/1487/529 -f 924/1487/530 923/1486/530 925/1488/530 926/1489/530 -f 926/1489/531 925/1488/531 927/1490/531 928/1491/531 -f 928/1491/532 927/1490/532 929/1492/532 930/1493/532 -f 927/1490/531 925/1488/531 931/1494/531 932/1495/531 -f 930/1493/533 929/1492/533 933/1496/533 934/1497/533 -f 934/1497/534 933/1496/534 918/1498/534 917/1499/534 -f 928/1491/535 930/1493/535 935/1500/535 936/1501/535 -f 937/1502/536 938/1503/536 939/1504/536 940/1505/536 941/1506/536 936/1507/536 935/1508/536 942/1509/536 -f 924/1487/537 926/1489/537 941/1510/537 940/1511/537 -f 930/1493/538 934/1497/538 942/1512/538 935/1500/538 -f 920/1483/539 922/1485/539 939/1513/539 938/1514/539 -f 926/1489/540 928/1491/540 936/1501/540 941/1510/540 -f 934/1497/541 917/1499/541 937/1515/541 942/1512/541 -f 917/1480/542 920/1483/542 938/1514/542 937/1516/542 -f 922/1485/543 924/1487/543 940/1511/543 939/1513/543 -f 943/1517/544 944/1518/544 945/1519/544 946/1520/544 -f 918/1498/534 933/1496/534 944/1518/534 943/1517/534 -f 919/1482/527 918/1481/527 943/1521/527 947/1522/527 -f 923/1486/529 921/1484/529 948/1523/529 949/1524/529 -f 929/1492/532 927/1490/532 932/1495/532 950/1525/532 -f 925/1488/530 923/1486/530 949/1524/530 931/1494/530 -f 933/1496/533 929/1492/533 950/1525/533 944/1518/533 -f 921/1484/528 919/1482/528 947/1522/528 948/1523/528 -f 950/1525/545 932/1495/545 951/1526/545 952/1527/545 -f 931/1494/546 949/1524/546 953/1528/546 954/1529/546 -f 948/1523/547 947/1522/547 955/1530/547 956/1531/547 -f 944/1518/548 950/1525/548 952/1527/548 945/1519/548 -f 932/1495/549 931/1494/549 954/1529/549 951/1526/549 -f 949/1524/550 948/1523/550 956/1531/550 953/1528/550 -f 947/1522/551 943/1521/551 946/1532/551 955/1530/551 -f 953/1528/552 956/1531/552 957/1533/552 958/1534/552 -f 959/1535/553 960/1536/553 961/1537/553 962/1538/553 963/1539/553 964/1540/553 958/1541/553 957/1542/553 -f 955/1530/554 946/1532/554 960/1543/554 959/1544/554 -f 946/1520/555 945/1519/555 961/1545/555 960/1546/555 -f 952/1527/556 951/1526/556 963/1547/556 962/1548/556 -f 954/1529/557 953/1528/557 958/1534/557 964/1549/557 -f 956/1531/558 955/1530/558 959/1544/558 957/1533/558 -f 945/1519/559 952/1527/559 962/1548/559 961/1545/559 -f 951/1526/560 954/1529/560 964/1549/560 963/1547/560 -f 965/1550/530 966/1551/530 967/1552/530 968/1553/530 -f 966/1551/529 969/1554/529 970/1555/529 967/1552/529 -f 969/1554/528 971/1556/528 972/1557/528 970/1555/528 -f 971/1556/527 973/1558/527 974/1559/527 972/1557/527 -f 973/1558/534 975/1560/534 976/1561/534 974/1559/534 -f 975/1560/533 977/1562/533 978/1563/533 976/1561/533 -f 976/1561/534 979/1564/534 980/1565/534 974/1559/534 -f 977/1562/532 981/1566/532 982/1567/532 978/1563/532 -f 981/1566/531 965/1568/531 968/1569/531 982/1567/531 -f 975/1560/538 983/1570/538 984/1571/538 977/1562/538 -f 985/1572/536 986/1573/536 984/1574/536 983/1575/536 987/1576/536 988/1577/536 989/1578/536 990/1579/536 -f 971/1556/542 988/1580/542 987/1581/542 973/1558/542 -f 977/1562/535 984/1571/535 986/1582/535 981/1566/535 -f 966/1551/543 990/1583/543 989/1584/543 969/1554/543 -f 973/1558/541 987/1581/541 983/1570/541 975/1560/541 -f 981/1566/540 986/1582/540 985/1585/540 965/1568/540 -f 965/1550/537 985/1586/537 990/1583/537 966/1551/537 -f 969/1554/539 989/1584/539 988/1580/539 971/1556/539 -f 991/1587/549 992/1588/549 993/1589/549 994/1590/549 -f 968/1569/531 991/1587/531 994/1590/531 982/1567/531 -f 967/1552/530 995/1591/530 991/1592/530 968/1553/530 -f 972/1557/528 996/1593/528 997/1594/528 970/1555/528 -f 978/1563/533 998/1595/533 979/1564/533 976/1561/533 -f 974/1559/527 980/1565/527 996/1593/527 972/1557/527 -f 982/1567/532 994/1590/532 998/1595/532 978/1563/532 -f 970/1555/529 997/1594/529 995/1591/529 967/1552/529 -f 998/1595/548 999/1596/548 1000/1597/548 979/1564/548 -f 980/1565/551 1001/1598/551 1002/1599/551 996/1593/551 -f 997/1594/550 1003/1600/550 1004/1601/550 995/1591/550 -f 994/1590/545 993/1589/545 999/1596/545 998/1595/545 -f 979/1564/544 1000/1597/544 1001/1598/544 980/1565/544 -f 996/1593/547 1002/1599/547 1003/1600/547 997/1594/547 -f 995/1591/546 1004/1601/546 992/1602/546 991/1592/546 -f 1002/1599/558 1005/1603/558 1006/1604/558 1003/1600/558 -f 1007/1605/553 1006/1606/553 1005/1607/553 1008/1608/553 1009/1609/553 1010/1610/553 1011/1611/553 1012/1612/553 -f 1004/1601/557 1007/1613/557 1012/1614/557 992/1602/557 -f 992/1588/560 1012/1615/560 1011/1616/560 993/1589/560 -f 999/1596/559 1010/1617/559 1009/1618/559 1000/1597/559 -f 1001/1598/554 1008/1619/554 1005/1603/554 1002/1599/554 -f 1003/1600/552 1006/1604/552 1007/1613/552 1004/1601/552 -f 993/1589/556 1011/1616/556 1010/1617/556 999/1596/556 -f 1000/1597/555 1009/1618/555 1008/1619/555 1001/1598/555 +s off +f 917/1593/523 918/1594/523 919/1595/523 920/1596/523 +f 920/1596/524 919/1595/524 921/1597/524 922/1598/524 +f 922/1599/525 921/1600/525 923/1601/525 924/1602/525 +f 924/1602/526 923/1601/526 925/1603/526 926/1604/526 +f 926/1604/527 925/1603/527 927/1605/527 928/1606/527 +f 928/1606/528 927/1605/528 929/1607/528 930/1608/528 +f 927/1605/527 925/1603/527 931/1609/527 932/1610/527 +f 930/1608/529 929/1607/529 933/1611/529 934/1612/529 +f 934/1612/530 933/1611/530 918/1594/530 917/1593/530 +f 928/1606/531 930/1608/531 935/1613/531 936/1614/531 +f 937/1615/532 938/1616/532 939/1617/532 940/1618/532 941/1619/532 936/1620/532 935/1621/532 942/1622/532 +f 924/1602/533 926/1604/533 941/1623/533 940/1624/533 +f 930/1608/534 934/1612/534 942/1625/534 935/1626/534 +f 920/1596/535 922/1598/535 939/1627/535 938/1628/535 +f 926/1604/536 928/1606/536 936/1629/536 941/1630/536 +f 934/1612/537 917/1593/537 937/1631/537 942/1632/537 +f 917/1593/538 920/1596/538 938/1633/538 937/1634/538 +f 922/1599/539 924/1602/539 940/1635/539 939/1636/539 +f 943/1637/540 944/1638/540 945/1639/540 946/1640/540 +f 918/1594/530 933/1611/530 944/1638/530 943/1637/530 +f 919/1595/523 918/1594/523 943/1637/523 947/1641/523 +f 923/1601/525 921/1600/525 948/1642/525 949/1643/525 +f 929/1607/528 927/1605/528 932/1610/528 950/1644/528 +f 925/1603/526 923/1601/526 949/1643/526 931/1609/526 +f 933/1611/529 929/1607/529 950/1644/529 944/1638/529 +f 921/1597/524 919/1595/524 947/1641/524 948/1645/524 +f 950/1644/541 932/1610/541 951/1646/541 952/1647/541 +f 931/1609/542 949/1643/542 953/1648/542 954/1649/542 +f 948/1645/543 947/1641/543 955/1650/543 956/1651/543 +f 944/1638/544 950/1644/544 952/1652/544 945/1653/544 +f 932/1610/545 931/1609/545 954/1654/545 951/1655/545 +f 949/1643/546 948/1642/546 956/1656/546 953/1657/546 +f 947/1641/547 943/1637/547 946/1658/547 955/1659/547 +f 953/1657/548 956/1656/548 957/1660/548 958/1661/548 +f 959/1662/549 960/1663/549 961/1664/549 962/1665/549 963/1666/549 964/1667/549 958/1668/549 957/1669/549 +f 955/1659/550 946/1658/550 960/1670/550 959/1671/550 +f 946/1640/551 945/1639/551 961/1672/551 960/1673/551 +f 952/1647/552 951/1646/552 963/1674/552 962/1675/552 +f 954/1649/553 953/1648/553 958/1676/553 964/1677/553 +f 956/1651/554 955/1650/554 959/1678/554 957/1679/554 +f 945/1653/555 952/1652/555 962/1680/555 961/1681/555 +f 951/1655/556 954/1654/556 964/1682/556 963/1683/556 +f 965/1684/526 966/1685/526 967/1686/526 968/1687/526 +f 966/1685/525 969/1688/525 970/1689/525 967/1686/525 +f 969/1690/524 971/1691/524 972/1692/524 970/1693/524 +f 971/1691/523 973/1694/523 974/1695/523 972/1692/523 +f 973/1694/530 975/1696/530 976/1697/530 974/1695/530 +f 975/1696/529 977/1698/529 978/1699/529 976/1697/529 +f 976/1697/530 979/1700/530 980/1701/530 974/1695/530 +f 977/1698/528 981/1702/528 982/1703/528 978/1699/528 +f 981/1702/527 965/1684/527 968/1687/527 982/1703/527 +f 975/1696/534 983/1704/534 984/1705/534 977/1698/534 +f 985/1706/532 986/1707/532 984/1708/532 983/1709/532 987/1710/532 988/1711/532 989/1712/532 990/1713/532 +f 971/1691/538 988/1714/538 987/1715/538 973/1694/538 +f 977/1698/531 984/1716/531 986/1717/531 981/1702/531 +f 966/1685/539 990/1718/539 989/1719/539 969/1688/539 +f 973/1694/537 987/1720/537 983/1721/537 975/1696/537 +f 981/1702/536 986/1722/536 985/1723/536 965/1684/536 +f 965/1684/533 985/1724/533 990/1725/533 966/1685/533 +f 969/1690/535 989/1726/535 988/1727/535 971/1691/535 +f 991/1728/545 992/1729/545 993/1730/545 994/1731/545 +f 968/1687/527 991/1728/527 994/1731/527 982/1703/527 +f 967/1686/526 995/1732/526 991/1728/526 968/1687/526 +f 972/1692/524 996/1733/524 997/1734/524 970/1693/524 +f 978/1699/529 998/1735/529 979/1700/529 976/1697/529 +f 974/1695/523 980/1701/523 996/1733/523 972/1692/523 +f 982/1703/528 994/1731/528 998/1735/528 978/1699/528 +f 970/1689/525 997/1736/525 995/1732/525 967/1686/525 +f 998/1735/544 999/1737/544 1000/1738/544 979/1700/544 +f 980/1701/547 1001/1739/547 1002/1740/547 996/1733/547 +f 997/1736/546 1003/1741/546 1004/1742/546 995/1732/546 +f 994/1731/541 993/1743/541 999/1744/541 998/1735/541 +f 979/1700/540 1000/1745/540 1001/1746/540 980/1701/540 +f 996/1733/543 1002/1747/543 1003/1748/543 997/1734/543 +f 995/1732/542 1004/1749/542 992/1750/542 991/1728/542 +f 1002/1747/554 1005/1751/554 1006/1752/554 1003/1748/554 +f 1007/1753/549 1006/1754/549 1005/1755/549 1008/1756/549 1009/1757/549 1010/1758/549 1011/1759/549 1012/1760/549 +f 1004/1749/553 1007/1761/553 1012/1762/553 992/1750/553 +f 992/1729/556 1012/1763/556 1011/1764/556 993/1730/556 +f 999/1737/555 1010/1765/555 1009/1766/555 1000/1738/555 +f 1001/1739/550 1008/1767/550 1005/1768/550 1002/1740/550 +f 1003/1741/548 1006/1769/548 1007/1770/548 1004/1742/548 +f 993/1743/552 1011/1771/552 1010/1772/552 999/1744/552 +f 1000/1745/551 1009/1773/551 1008/1774/551 1001/1746/551 o CoiCanon_Cylinder.004 v -0.419369 0.526526 -0.206986 v 0.947632 0.526526 -0.206986 @@ -4182,16 +4333,16 @@ vn 0.0000 0.9239 -0.3827 vn 0.0000 0.3827 -0.9239 vn -1.0000 0.0000 0.0000 s 1 -f 1013/1620/561 1014/1621/561 1015/1622/561 1016/1623/561 -f 1016/1623/562 1015/1622/562 1017/1624/562 1018/1625/562 -f 1018/1625/563 1017/1624/563 1019/1626/563 1020/1627/563 -f 1020/1627/564 1019/1626/564 1021/1628/564 1022/1629/564 -f 1022/1629/565 1021/1628/565 1023/1630/565 1024/1631/565 -f 1024/1631/566 1023/1630/566 1025/1632/566 1026/1633/566 -f 1015/1634/567 1014/1635/567 1027/1636/567 1025/1637/567 1023/1638/567 1021/1639/567 1019/1640/567 1017/1641/567 -f 1026/1633/568 1025/1632/568 1027/1642/568 1028/1643/568 -f 1028/1643/569 1027/1642/569 1014/1644/569 1013/1645/569 -f 1013/1646/570 1016/1647/570 1018/1648/570 1020/1649/570 1022/1650/570 1024/1651/570 1026/1652/570 1028/1653/570 +f 1013/1775/557 1014/1776/557 1015/1777/557 1016/1778/557 +f 1016/1778/558 1015/1777/558 1017/1779/558 1018/1780/558 +f 1018/1780/559 1017/1779/559 1019/1781/559 1020/1782/559 +f 1020/1782/560 1019/1781/560 1021/1783/560 1022/1784/560 +f 1022/1784/561 1021/1783/561 1023/1785/561 1024/1786/561 +f 1024/1786/562 1023/1785/562 1025/1787/562 1026/1788/562 +f 1015/1789/563 1014/1790/563 1027/1791/563 1025/1792/563 1023/1793/563 1021/1794/563 1019/1795/563 1017/1796/563 +f 1026/1788/564 1025/1787/564 1027/1797/564 1028/1798/564 +f 1028/1798/565 1027/1797/565 1014/1799/565 1013/1800/565 +f 1013/1801/566 1016/1802/566 1018/1803/566 1020/1804/566 1022/1805/566 1024/1806/566 1026/1807/566 1028/1808/566 o SideHolders_Cube.003 v 1.384588 0.551670 0.654257 v 1.384588 0.551670 0.449972 @@ -4292,34 +4443,34 @@ vn -0.3634 0.0000 0.9316 vn 0.4890 0.0000 -0.8723 vn -0.3635 0.0000 -0.9316 s 1 -f 1029/1654/571 1030/1655/571 1031/1656/571 1032/1657/571 -f 1033/1658/572 1030/1659/572 1034/1660/572 1035/1661/572 -f 1034/1660/573 1036/1662/573 1037/1663/573 1038/1664/573 -f 1039/1665/574 1036/1662/574 1029/1666/574 1040/1667/574 -f 1033/1668/575 1035/1661/575 1039/1665/575 1040/1669/575 -f 1034/1660/576 1030/1655/576 1029/1654/576 1036/1662/576 -f 1041/1670/577 1038/1664/577 1037/1663/577 1042/1671/577 -f 1035/1661/572 1034/1660/572 1038/1664/572 1041/1670/572 -f 1036/1662/578 1039/1665/578 1042/1671/578 1037/1663/578 -f 1039/1665/579 1035/1661/579 1041/1670/579 1042/1671/579 -f 1043/1672/580 1032/1673/580 1031/1674/580 1044/1675/580 -f 1033/1668/581 1040/1669/581 1043/1676/581 1044/1677/581 -f 1030/1659/572 1033/1658/572 1044/1675/572 1031/1674/572 -f 1040/1667/582 1029/1666/582 1032/1678/582 1043/1679/582 -f 1045/1680/571 1046/1681/571 1047/1682/571 1048/1683/571 -f 1049/1684/574 1050/1685/574 1051/1686/574 1048/1687/574 -f 1051/1686/573 1052/1688/573 1053/1689/573 1054/1690/573 -f 1055/1691/572 1056/1692/572 1045/1693/572 1054/1690/572 -f 1049/1694/575 1056/1695/575 1055/1691/575 1050/1685/575 -f 1051/1686/576 1054/1690/576 1045/1680/576 1048/1683/576 -f 1057/1696/577 1058/1697/577 1053/1689/577 1052/1688/577 -f 1050/1685/574 1057/1696/574 1052/1688/574 1051/1686/574 -f 1054/1690/583 1053/1689/583 1058/1697/583 1055/1691/583 -f 1055/1691/579 1058/1697/579 1057/1696/579 1050/1685/579 -f 1059/1698/580 1060/1699/580 1047/1700/580 1046/1701/580 -f 1049/1694/581 1060/1702/581 1059/1703/581 1056/1695/581 -f 1048/1687/574 1047/1700/574 1060/1699/574 1049/1684/574 -f 1056/1692/584 1059/1704/584 1046/1705/584 1045/1693/584 +f 1029/1809/567 1030/1810/567 1031/1811/567 1032/1812/567 +f 1033/1813/568 1030/1814/568 1034/1815/568 1035/1816/568 +f 1034/1815/569 1036/1817/569 1037/1818/569 1038/1819/569 +f 1039/1820/570 1036/1817/570 1029/1821/570 1040/1822/570 +f 1033/1823/571 1035/1816/571 1039/1820/571 1040/1824/571 +f 1034/1815/572 1030/1810/572 1029/1809/572 1036/1817/572 +f 1041/1825/573 1038/1819/573 1037/1818/573 1042/1826/573 +f 1035/1816/568 1034/1815/568 1038/1819/568 1041/1825/568 +f 1036/1817/574 1039/1820/574 1042/1826/574 1037/1818/574 +f 1039/1820/575 1035/1816/575 1041/1825/575 1042/1826/575 +f 1043/1827/576 1032/1828/576 1031/1829/576 1044/1830/576 +f 1033/1823/577 1040/1824/577 1043/1831/577 1044/1832/577 +f 1030/1814/568 1033/1813/568 1044/1830/568 1031/1829/568 +f 1040/1822/578 1029/1821/578 1032/1833/578 1043/1834/578 +f 1045/1835/567 1046/1836/567 1047/1837/567 1048/1838/567 +f 1049/1839/570 1050/1840/570 1051/1841/570 1048/1842/570 +f 1051/1841/569 1052/1843/569 1053/1844/569 1054/1845/569 +f 1055/1846/568 1056/1847/568 1045/1848/568 1054/1845/568 +f 1049/1849/571 1056/1850/571 1055/1846/571 1050/1840/571 +f 1051/1841/572 1054/1845/572 1045/1835/572 1048/1838/572 +f 1057/1851/573 1058/1852/573 1053/1844/573 1052/1843/573 +f 1050/1840/570 1057/1851/570 1052/1843/570 1051/1841/570 +f 1054/1845/579 1053/1844/579 1058/1852/579 1055/1846/579 +f 1055/1846/575 1058/1852/575 1057/1851/575 1050/1840/575 +f 1059/1853/576 1060/1854/576 1047/1855/576 1046/1856/576 +f 1049/1849/577 1060/1857/577 1059/1858/577 1056/1850/577 +f 1048/1842/570 1047/1855/570 1060/1854/570 1049/1839/570 +f 1056/1847/580 1059/1859/580 1046/1860/580 1045/1848/580 o Rail_Cube v -1.606489 0.994589 0.070837 v -1.606489 1.084445 0.070837 @@ -4572,1029 +4723,1097 @@ vn -0.0000 0.4280 -0.9038 vn 0.7944 -0.6074 0.0000 vn -0.7944 -0.6074 0.0000 s 1 -f 1061/1706/585 1062/1707/585 1063/1708/585 1064/1709/585 -f 1064/1709/586 1063/1708/586 1065/1710/586 1066/1711/586 1067/1712/586 1068/1713/586 -f 1069/1714/587 1070/1715/587 1071/1716/587 1072/1717/587 -f 1073/1718/588 1074/1719/588 1075/1720/588 1076/1721/588 1077/1722/588 1078/1723/588 -f 1079/1724/589 1080/1725/589 1081/1726/589 1082/1727/589 -f 1083/1728/589 1084/1729/589 1085/1730/589 1086/1731/589 -f 1087/1732/589 1088/1733/589 1073/1718/589 1078/1734/589 -f 1061/1735/589 1064/1736/589 1068/1737/589 1089/1738/589 -f 1090/1739/590 1091/1740/590 1092/1741/590 1093/1742/590 -f 1069/1714/591 1094/1743/591 1095/1744/591 1070/1715/591 -f 1096/1745/592 1097/1746/592 1088/1733/592 1098/1747/592 1090/1739/592 -f 1074/1719/593 1073/1718/593 1094/1743/593 1069/1714/593 1093/1742/593 -f 1073/1718/594 1088/1733/594 1097/1746/594 1094/1743/594 -f 1093/1742/595 1069/1714/595 1072/1717/595 1099/1748/595 -f 1094/1743/589 1097/1746/589 1100/1749/589 1095/1744/589 -f 1101/1750/596 1096/1745/596 1102/1751/596 1103/1752/596 -f 1097/1746/597 1096/1745/597 1101/1750/597 1100/1749/597 -f 1104/1753/598 1105/1754/598 1106/1755/598 1107/1756/598 -f 1100/1749/599 1101/1750/599 1105/1754/599 1104/1753/599 -f 1070/1715/600 1095/1744/600 1107/1756/600 1106/1755/600 -f 1095/1744/601 1100/1749/601 1104/1753/601 1107/1756/601 -f 1108/1757/602 1099/1748/602 1072/1717/602 1102/1751/602 -f 1103/1752/603 1071/1716/603 1109/1758/603 1110/1759/603 -f 1102/1751/590 1072/1717/590 1071/1716/590 1103/1752/590 -f 1070/1715/604 1106/1755/604 1109/1758/604 1071/1716/604 -f 1106/1755/605 1105/1754/605 1110/1759/605 1109/1758/605 -f 1090/1739/606 1093/1742/606 1099/1748/606 1108/1757/606 -f 1096/1745/607 1090/1739/607 1108/1757/607 1102/1751/607 -f 1105/1754/608 1101/1750/608 1103/1752/608 1110/1759/608 -f 1062/1760/609 1111/1761/609 1112/1762/609 1113/1763/609 1114/1764/609 1115/1765/609 1075/1720/609 1074/1719/609 1093/1742/609 1092/1766/609 -f 1063/1708/610 1062/1707/610 1092/1767/610 1091/1768/610 -f 1098/1747/611 1116/1769/611 1117/1770/611 1118/1771/611 1119/1772/611 1120/1773/611 1065/1710/611 1063/1708/611 1091/1768/611 1090/1739/611 -f 1066/1774/589 1121/1775/589 1122/1776/589 1123/1777/589 -f 1082/1778/585 1124/1779/585 1125/1780/585 1079/1781/585 -f 1068/1782/598 1067/1783/598 1126/1784/598 1089/1785/598 -f 1067/1786/612 1066/1774/612 1123/1777/612 1126/1787/612 -f 1122/1776/613 1121/1775/613 1125/1780/613 1124/1779/613 -f 1127/1788/589 1128/1789/589 1129/1790/589 1130/1791/589 -f 1086/1792/585 1131/1793/585 1132/1794/585 1083/1795/585 -f 1080/1796/598 1133/1797/598 1134/1798/598 1081/1799/598 -f 1133/1800/612 1127/1788/612 1130/1791/612 1134/1801/612 -f 1132/1794/613 1131/1793/613 1129/1790/613 1128/1789/613 -f 1135/1802/589 1136/1803/589 1076/1804/589 1137/1805/589 -f 1077/1806/585 1138/1807/585 1087/1808/585 1078/1809/585 -f 1084/1810/598 1139/1811/598 1140/1812/598 1085/1813/598 -f 1140/1814/612 1139/1815/612 1135/1802/612 1137/1805/612 -f 1076/1804/613 1136/1803/613 1138/1807/613 1077/1806/613 -f 1129/1816/588 1114/1764/588 1113/1763/588 1130/1817/588 -f 1137/1818/588 1115/1765/588 1114/1764/588 1129/1816/588 1131/1819/588 1086/1820/588 1085/1821/588 1140/1822/588 -f 1076/1721/588 1075/1720/588 1115/1765/588 1137/1818/588 -f 1130/1817/588 1113/1763/588 1112/1762/588 1122/1823/588 1124/1824/588 1082/1825/588 1081/1826/588 1134/1827/588 -f 1122/1823/588 1112/1762/588 1111/1761/588 1123/1828/588 -f 1123/1828/588 1111/1761/588 1062/1760/588 1061/1829/588 1089/1830/588 1126/1831/588 -f 1136/1832/586 1116/1769/586 1098/1747/586 1088/1733/586 1087/1833/586 1138/1834/586 -f 1135/1835/586 1117/1770/586 1116/1769/586 1136/1832/586 -f 1128/1836/586 1118/1771/586 1117/1770/586 1135/1835/586 1139/1837/586 1084/1838/586 1083/1839/586 1132/1840/586 -f 1127/1841/586 1119/1772/586 1118/1771/586 1128/1836/586 -f 1121/1842/586 1120/1773/586 1119/1772/586 1127/1841/586 1133/1843/586 1080/1844/586 1079/1845/586 1125/1846/586 -f 1066/1711/586 1065/1710/586 1120/1773/586 1121/1842/586 +f 1061/1861/581 1062/1862/581 1063/1863/581 1064/1864/581 +f 1064/1864/582 1063/1863/582 1065/1865/582 1066/1866/582 1067/1867/582 1068/1868/582 +f 1069/1869/583 1070/1870/583 1071/1871/583 1072/1872/583 +f 1073/1873/584 1074/1874/584 1075/1875/584 1076/1876/584 1077/1877/584 1078/1878/584 +f 1079/1879/585 1080/1880/585 1081/1881/585 1082/1882/585 +f 1083/1883/585 1084/1884/585 1085/1885/585 1086/1886/585 +f 1087/1887/585 1088/1888/585 1073/1873/585 1078/1889/585 +f 1061/1890/585 1064/1891/585 1068/1892/585 1089/1893/585 +f 1090/1894/586 1091/1895/586 1092/1896/586 1093/1897/586 +f 1069/1869/587 1094/1898/587 1095/1899/587 1070/1870/587 +f 1096/1900/588 1097/1901/588 1088/1888/588 1098/1902/588 1090/1894/588 +f 1074/1874/589 1073/1873/589 1094/1898/589 1069/1869/589 1093/1897/589 +f 1073/1873/590 1088/1888/590 1097/1901/590 1094/1898/590 +f 1093/1897/591 1069/1869/591 1072/1872/591 1099/1903/591 +f 1094/1898/585 1097/1901/585 1100/1904/585 1095/1899/585 +f 1101/1905/592 1096/1900/592 1102/1906/592 1103/1907/592 +f 1097/1901/593 1096/1900/593 1101/1905/593 1100/1904/593 +f 1104/1908/594 1105/1909/594 1106/1910/594 1107/1911/594 +f 1100/1904/595 1101/1905/595 1105/1909/595 1104/1908/595 +f 1070/1870/596 1095/1899/596 1107/1911/596 1106/1910/596 +f 1095/1899/597 1100/1904/597 1104/1908/597 1107/1911/597 +f 1108/1912/598 1099/1903/598 1072/1872/598 1102/1906/598 +f 1103/1907/599 1071/1871/599 1109/1913/599 1110/1914/599 +f 1102/1906/586 1072/1872/586 1071/1871/586 1103/1907/586 +f 1070/1870/600 1106/1910/600 1109/1913/600 1071/1871/600 +f 1106/1910/601 1105/1909/601 1110/1914/601 1109/1913/601 +f 1090/1894/602 1093/1897/602 1099/1903/602 1108/1912/602 +f 1096/1900/603 1090/1894/603 1108/1912/603 1102/1906/603 +f 1105/1909/604 1101/1905/604 1103/1907/604 1110/1914/604 +f 1062/1915/605 1111/1916/605 1112/1917/605 1113/1918/605 1114/1919/605 1115/1920/605 1075/1875/605 1074/1874/605 1093/1897/605 1092/1921/605 +f 1063/1863/606 1062/1862/606 1092/1922/606 1091/1923/606 +f 1098/1902/607 1116/1924/607 1117/1925/607 1118/1926/607 1119/1927/607 1120/1928/607 1065/1865/607 1063/1863/607 1091/1923/607 1090/1894/607 +f 1066/1929/585 1121/1930/585 1122/1931/585 1123/1932/585 +f 1082/1933/581 1124/1934/581 1125/1935/581 1079/1936/581 +f 1068/1937/594 1067/1938/594 1126/1939/594 1089/1940/594 +f 1067/1941/608 1066/1929/608 1123/1932/608 1126/1942/608 +f 1122/1931/609 1121/1930/609 1125/1935/609 1124/1934/609 +f 1127/1943/585 1128/1944/585 1129/1945/585 1130/1946/585 +f 1086/1947/581 1131/1948/581 1132/1949/581 1083/1950/581 +f 1080/1951/594 1133/1952/594 1134/1953/594 1081/1954/594 +f 1133/1955/608 1127/1943/608 1130/1946/608 1134/1956/608 +f 1132/1949/609 1131/1948/609 1129/1945/609 1128/1944/609 +f 1135/1957/585 1136/1958/585 1076/1959/585 1137/1960/585 +f 1077/1961/581 1138/1962/581 1087/1963/581 1078/1964/581 +f 1084/1965/594 1139/1966/594 1140/1967/594 1085/1968/594 +f 1140/1969/608 1139/1970/608 1135/1957/608 1137/1960/608 +f 1076/1959/609 1136/1958/609 1138/1962/609 1077/1961/609 +f 1129/1971/584 1114/1919/584 1113/1918/584 1130/1972/584 +f 1137/1973/584 1115/1920/584 1114/1919/584 1129/1971/584 1131/1974/584 1086/1975/584 1085/1976/584 1140/1977/584 +f 1076/1876/584 1075/1875/584 1115/1920/584 1137/1973/584 +f 1130/1972/584 1113/1918/584 1112/1917/584 1122/1978/584 1124/1979/584 1082/1980/584 1081/1981/584 1134/1982/584 +f 1122/1978/584 1112/1917/584 1111/1916/584 1123/1983/584 +f 1123/1983/584 1111/1916/584 1062/1915/584 1061/1984/584 1089/1985/584 1126/1986/584 +f 1136/1987/582 1116/1924/582 1098/1902/582 1088/1888/582 1087/1988/582 1138/1989/582 +f 1135/1990/582 1117/1925/582 1116/1924/582 1136/1987/582 +f 1128/1991/582 1118/1926/582 1117/1925/582 1135/1990/582 1139/1992/582 1084/1993/582 1083/1994/582 1132/1995/582 +f 1127/1996/582 1119/1927/582 1118/1926/582 1128/1991/582 +f 1121/1997/582 1120/1928/582 1119/1927/582 1127/1996/582 1133/1998/582 1080/1999/582 1079/2000/582 1125/2001/582 +f 1066/1866/582 1065/1865/582 1120/1928/582 1121/1997/582 o CanonBody_Cylinder.002 -v 1.103664 0.525584 -0.500000 -v 1.292985 0.525584 -0.500000 -v 1.292985 0.172030 -0.353553 -v 1.103664 0.172030 -0.353553 -v 1.103664 0.525584 0.500000 -v 1.292985 0.525584 0.500000 -v 1.292985 0.879137 0.353553 -v 1.103664 0.879137 0.353553 -v 1.292985 1.025584 0.000000 -v 1.103664 1.025584 0.000000 -v 1.503651 1.012795 0.000000 -v 1.503651 0.870094 -0.344510 -v 1.509822 0.895986 -0.370402 -v 1.509822 1.049411 0.000000 -v 1.080568 0.851567 0.325983 -v 1.080568 0.525584 0.461010 -v 1.292985 0.879137 -0.353553 -v 1.286814 0.905708 -0.380125 -v 1.286814 0.525584 -0.537577 -v 1.286814 0.525584 0.537577 -v 1.286814 0.905708 0.380125 -v 1.503651 0.038372 0.000000 -v 1.503651 0.181073 0.344510 -v 1.509822 0.155181 0.370402 -v 1.509822 0.001756 0.000000 -v 1.503651 0.870094 0.344510 -v 1.509822 0.895986 0.370402 -v 1.503651 0.525584 0.487211 -v 1.669294 0.525584 0.401911 -v 1.669294 0.809777 0.284194 -v 1.503651 0.181073 -0.344510 -v 1.503651 0.525584 -0.487211 -v 1.669294 0.525584 -0.401911 -v 1.669294 0.241390 -0.284194 -v 1.669294 0.809777 -0.284194 -v 1.669294 0.927494 0.000000 -v 1.669294 0.241390 0.284194 -v -0.603601 0.525584 -0.500000 -v 1.044523 0.525584 -0.500000 -v 1.044523 0.172030 -0.353553 -v -0.603601 0.172030 -0.353553 -v -0.603601 0.025584 0.000000 -v 1.044523 0.025584 0.000000 -v 1.044523 0.172030 0.353553 -v -0.603601 0.172030 0.353553 -v 0.951045 0.197436 0.364077 -v -0.460212 0.197436 0.364077 -v 1.044523 0.879137 0.353553 -v 0.899442 0.953734 0.173461 -v 0.899442 0.879137 0.353553 -v 1.044523 0.525584 0.500000 -v 1.068921 0.199748 0.325836 -v 1.068921 0.525584 0.460801 -v 1.044523 0.879137 -0.353553 -v 0.899442 0.735289 -0.413137 -v 0.899442 0.879137 -0.353553 -v 1.068921 0.986385 0.000000 -v 1.068921 0.851420 -0.325836 -v 1.044523 0.998052 -0.066468 -v 1.044523 1.025584 0.000000 -v 0.985768 0.843292 0.316901 -v 0.899442 0.843292 0.316901 -v 0.899442 0.918248 0.161081 -v 0.968182 0.918248 0.161081 -v 1.068921 0.525584 -0.460801 -v 1.044523 0.655732 -0.446091 -v 1.068921 0.199748 -0.325836 -v 1.068921 0.851420 0.325836 -v 1.044523 0.998052 0.066468 -v 1.080568 0.851567 -0.325983 -v 1.080568 0.525584 -0.461010 -v 1.080568 0.199600 -0.325983 -v 1.080568 0.064574 0.000000 -v 1.080568 0.199600 0.325983 -v 1.080568 0.986594 0.000000 -v 1.103664 0.172030 0.353553 -v 1.068921 0.064782 0.000000 -v -0.603601 0.997972 -0.066659 -v -0.603601 1.025584 0.000000 -v 0.810528 0.997935 -0.101577 -v -0.388078 0.997935 -0.101577 -v 0.810528 0.952228 0.101577 -v 0.969099 0.952228 0.101577 -v 0.988155 0.719760 0.368080 -v 0.899442 0.719760 0.368080 -v 0.810528 0.997935 0.101577 -v -0.603601 0.997968 0.066670 -v -0.388078 0.997935 0.101577 -v 0.810528 0.655494 -0.446189 -v 1.286814 1.063161 0.000000 -v 1.320923 0.951339 0.425755 -v 1.320923 1.127692 0.000000 -v 1.286814 0.145459 -0.380125 -v 1.320923 0.525584 -0.602109 -v 1.320923 0.099829 -0.425755 -v 1.509822 0.525584 -0.523828 -v 1.475712 0.525584 -0.586708 -v 1.475712 0.940449 -0.414865 -v 1.286814 -0.011994 -0.000000 -v 1.320923 -0.076525 -0.000000 -v 1.509822 0.525584 0.523828 -v 1.475712 0.940449 0.414865 -v 1.475712 0.525584 0.586708 -v 1.509822 0.155181 -0.370402 -v 1.320923 0.525584 0.602109 -v 1.320923 0.951339 -0.425755 -v 1.475712 0.110718 -0.414866 -v 1.475712 1.112292 0.000000 -v 1.475712 0.110718 0.414866 -v 1.669294 0.271118 -0.254466 -v 1.669294 0.525584 -0.359869 -v 1.423236 0.525584 -0.300328 -v 1.423236 0.313220 -0.212364 -v 1.669294 0.780049 -0.254466 -v 1.669294 0.885452 0.000000 -v 1.669294 0.525584 0.359869 -v 1.669294 0.780049 0.254466 -v 1.669294 0.271118 0.254466 -v 1.423236 0.737947 -0.212364 -v 1.423236 0.825911 0.000000 -v 1.657500 0.838523 0.000000 -v 1.657500 0.746865 -0.221281 -v 1.423236 0.525584 0.300328 -v 1.423236 0.737947 0.212364 -v 1.657500 0.746865 0.221281 -v 1.657500 0.525584 0.312939 -v 1.657500 0.525584 0.252281 -v 1.657500 0.703973 0.178389 -v 1.657500 0.525584 -0.312939 -v 1.657500 0.304302 -0.221282 -v 1.423236 0.313220 0.212364 -v 1.657500 0.304302 0.221282 -v 1.657500 0.703973 -0.178389 -v 1.657500 0.525584 -0.252281 -v 1.657500 0.347194 -0.178389 -v 1.657500 0.347194 0.178389 -v 1.432520 0.525584 -0.169385 -v 1.432520 0.645357 -0.119773 -v 1.651829 0.645357 -0.119773 -v 1.651829 0.525584 -0.169385 -v 1.657500 0.777864 0.000000 -v 1.432520 0.645357 0.119773 -v 1.432520 0.694968 0.000000 -v 1.432520 0.405810 -0.119773 -v 1.432520 0.405810 0.119773 -v 1.432520 0.525584 0.169385 -v 1.657500 0.273303 0.000000 -v 1.432520 0.356199 0.000000 -v 1.651829 0.431184 0.000000 -v 1.651829 0.356199 0.000000 -v 1.651829 0.405810 -0.119773 -v 1.651829 0.525394 -0.094211 -v 1.651829 0.458777 -0.066617 -v 1.651829 0.405810 0.119773 -v 1.651829 0.525584 0.169385 -v 1.651829 0.645357 0.119773 -v 1.127542 0.525394 -0.094211 -v 1.127542 0.458777 -0.066617 -v 1.127542 0.431184 0.000000 -v 1.127542 0.525394 0.094211 -v 1.127542 0.592011 0.066617 -v 1.651829 0.592011 0.066617 -v 1.651829 0.525394 0.094211 -v 1.651829 0.619605 0.000000 -v 1.127542 0.619605 0.000000 -v 1.127542 0.592011 -0.066617 -v 1.651829 0.592011 -0.066617 -v 1.127542 0.458777 0.066617 -v -0.476991 0.837264 -0.291860 -v -0.476991 0.714942 -0.357372 -v -0.476991 0.735289 -0.413137 -v -0.476991 0.879137 -0.353553 -v -0.476991 0.879137 0.353553 -v -0.476991 0.953734 0.173461 -v -0.603601 0.879137 0.353553 -v 0.899442 0.735289 0.413137 -v -0.603601 0.879137 -0.353553 -v -0.724548 0.869896 -0.337068 -v 1.044523 0.655732 0.446091 -v -0.476991 0.953734 -0.173461 -v -0.476991 0.735289 0.413137 -v -0.388078 0.655494 0.446189 -v -0.603601 0.655322 0.446261 -v -0.388078 0.655494 -0.446189 -v -0.603601 0.658327 -0.445016 -v 0.810528 0.655494 0.446189 -v -0.603601 0.525584 0.500000 -v 1.651829 0.458777 0.066617 -v -0.388078 0.633076 0.392654 -v -0.476991 0.714942 0.357372 -v -0.476991 0.837264 0.291860 -v -0.388078 0.944133 0.101577 -v -0.388078 0.944133 -0.101577 -v 0.810528 0.952228 -0.101577 -v 1.657500 0.212644 0.000000 -v 1.651829 0.694968 0.000000 -v -0.476991 0.926475 0.173461 -v 0.899442 0.843292 -0.316901 -v 0.899442 0.918248 -0.161081 -v 0.899442 0.953734 -0.173461 -v 0.899442 0.719760 -0.368080 -v 0.810528 0.655494 -0.378684 -v 0.810528 0.655494 0.378684 -v -0.388078 0.633076 -0.392654 -v 1.669294 0.123673 0.000000 -v 1.669294 0.165715 0.000000 -v 0.985768 0.843292 -0.316901 -v 0.968182 0.918248 -0.161081 -v 0.969099 0.952228 -0.101577 -v 0.988155 0.719760 -0.368080 -v 1.475712 -0.061125 -0.000000 -v 1.423236 0.225256 0.000000 -v 0.984259 0.655494 -0.391440 -v 0.984259 0.528318 -0.436781 -v 0.984259 0.228435 -0.325032 -v 0.984259 0.095638 0.005025 -v 0.984259 0.228435 0.325032 -v 0.984259 0.528318 0.436781 -v 0.984259 0.655494 0.391440 -v 1.103664 0.025584 0.000000 -v -0.534084 0.903408 0.173461 -v -0.534084 0.903408 -0.173461 -v -0.476991 0.926475 -0.173461 -v -0.548068 0.837264 0.291860 -v -0.551352 0.714942 0.357372 -v -0.550334 0.633076 0.392654 -v -0.548068 0.837264 -0.291860 -v -0.551352 0.714942 -0.357372 -v -0.550334 0.633076 -0.392654 -v 1.292985 0.025584 0.000000 -v -0.550334 0.529772 0.433593 -v -0.550334 0.236472 0.339820 -v -0.550334 0.062663 0.005342 -v -0.550334 0.236472 -0.339820 -v -0.550334 0.529772 -0.433593 -v -0.388078 0.540720 0.422003 -v -0.388078 0.540720 -0.422003 -v 0.810528 0.526819 -0.419828 -v 0.810528 0.526819 0.419828 -v -0.388078 0.088709 0.007100 -v -0.388078 0.229035 -0.323350 -v -0.388078 0.229035 0.323350 -v 0.810528 0.240010 -0.300109 -v 0.810528 0.100279 0.006216 -v 0.810528 0.240010 0.300109 -v -0.460212 0.500178 0.489476 -v -0.460212 0.155552 0.465195 -v -0.460212 0.458293 0.590595 -v 0.641563 0.500178 0.489476 -v 0.674042 0.500178 0.489476 -v 0.951045 0.500178 0.489476 -v 0.951045 0.458293 0.590595 -v 0.674638 0.458293 0.590595 -v 0.676644 0.321964 0.818654 -v 0.948697 0.323297 0.818799 -v 0.951045 0.155552 0.465195 -v 0.678557 0.155552 0.465195 -v 0.649846 0.155552 0.465195 -v -0.059018 0.088623 0.724480 -v -0.004002 0.088898 0.724510 -v -0.004015 0.318594 0.818287 -v -0.060217 0.318313 0.818256 -v 0.645678 0.092117 0.724860 -v 0.346592 0.090651 0.724701 -v 0.275455 0.090295 0.724662 -v 0.190590 0.089871 0.724616 -v 0.128016 0.089558 0.724582 -v 0.053442 0.089185 0.724541 -v 0.949896 0.093608 0.725023 -v 0.051715 0.318872 0.818317 -v 0.044163 0.311789 0.796066 -v 0.045414 0.108104 0.712906 -v 0.127999 0.319254 0.818359 -v 0.188876 0.319558 0.818392 -v 0.137105 0.309206 0.794886 -v 0.180025 0.309468 0.794915 -v 0.273733 0.319982 0.818438 -v 0.346589 0.320346 0.818478 -v 0.285150 0.311362 0.795548 -v 0.335438 0.311680 0.795582 -v 0.643209 0.321800 0.818636 -v 0.137117 0.111516 0.714176 -v 0.181234 0.111785 0.714205 -v 0.286340 0.110829 0.713675 -v 0.335441 0.111139 0.713708 -v 0.003776 0.311542 0.796039 -v 0.003785 0.107850 0.712878 -v 0.671568 0.425284 0.596467 -v 0.673140 0.318430 0.775219 -v 0.641987 0.458293 0.590595 -v 0.648869 0.138277 0.701704 -v 0.646934 0.318302 0.775205 -v 0.678212 0.092276 0.724878 -v 0.674369 0.138402 0.701718 -v 0.645976 0.425284 0.596467 -v 0.645644 0.458113 0.517211 -v 0.671101 0.458113 0.517211 -v 0.652136 0.187997 0.498180 -v 0.674639 0.187997 0.498180 -v 1.292985 0.172030 0.353553 -v 1.103664 0.879137 -0.353553 -v -0.460212 0.197436 -0.364077 -v 0.951045 0.197436 -0.364077 -v 1.286814 0.145459 0.380125 -v 1.320923 0.099829 0.425755 -v -0.460212 0.500178 -0.489476 -v -0.460212 0.458293 -0.590595 -v -0.460212 0.155552 -0.465195 -v 0.951045 0.500178 -0.489476 -v 0.674042 0.500178 -0.489476 -v 0.641563 0.500178 -0.489476 -v 0.951045 0.458293 -0.590595 -v 0.948697 0.323297 -0.818799 -v 0.676644 0.321964 -0.818654 -v 0.674638 0.458293 -0.590595 -v 0.951045 0.155552 -0.465195 -v 0.649846 0.155552 -0.465195 -v 0.678557 0.155552 -0.465195 -v -0.059018 0.088623 -0.724480 -v -0.060217 0.318313 -0.818256 -v -0.004015 0.318594 -0.818287 -v -0.004002 0.088898 -0.724510 -v 0.053442 0.089185 -0.724541 -v 0.128016 0.089558 -0.724582 -v 0.190590 0.089871 -0.724616 -v 0.275455 0.090295 -0.724662 -v 0.346592 0.090651 -0.724701 -v 0.645678 0.092117 -0.724860 -v 0.949896 0.093608 -0.725023 -v 0.045414 0.108104 -0.712906 -v 0.044163 0.311789 -0.796066 -v 0.051715 0.318872 -0.818317 -v 0.127999 0.319254 -0.818359 -v 0.188876 0.319558 -0.818392 -v 0.180025 0.309468 -0.794915 -v 0.137105 0.309206 -0.794886 -v 0.273733 0.319982 -0.818438 -v 0.346589 0.320346 -0.818478 -v 0.335438 0.311680 -0.795582 -v 0.285150 0.311362 -0.795548 -v 0.643209 0.321800 -0.818636 -v 0.181234 0.111785 -0.714205 -v 0.137117 0.111516 -0.714176 -v 0.335441 0.111139 -0.713708 -v 0.286340 0.110829 -0.713675 -v 0.003776 0.311542 -0.796039 -v 0.003785 0.107850 -0.712878 -v 0.673140 0.318430 -0.775219 -v 0.671568 0.425284 -0.596467 -v 0.641987 0.458293 -0.590595 -v 0.646934 0.318302 -0.775205 -v 0.648869 0.138277 -0.701704 -v 0.678212 0.092276 -0.724878 -v 0.674369 0.138402 -0.701718 -v 0.645644 0.458113 -0.517211 -v 0.645976 0.425284 -0.596467 -v 0.671101 0.458113 -0.517211 -v 0.674639 0.187997 -0.498180 -v 0.652136 0.187997 -0.498180 -v -0.724548 0.532825 -0.476687 -v -0.724548 0.195753 -0.337068 -v -0.724548 0.056134 0.000004 -v -0.724548 0.195753 0.337075 -v -0.724548 0.532825 0.476694 -v -0.724548 0.869896 0.337075 -v -0.724548 1.009515 0.000004 -vt 1.000000 0.500000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.875000 0.500000 -vt 0.500000 0.500000 -vt 0.500000 1.000000 -vt 0.375000 1.000000 -vt 0.375000 0.500000 -vt 0.250000 1.000000 -vt 0.250000 0.500000 -vt 0.250000 1.000000 -vt 0.125000 1.000000 -vt 0.125000 1.000000 -vt 0.250000 1.000000 -vt 0.375000 0.500000 -vt 0.500000 0.500000 -vt 0.000000 1.000000 -vt 0.125000 1.000000 -vt 0.125000 1.000000 -vt 0.000000 1.000000 -vt 0.500000 1.000000 -vt 0.375000 1.000000 -vt 0.750000 1.000000 -vt 0.625000 1.000000 -vt 0.625000 1.000000 -vt 0.750000 1.000000 -vt 0.375000 1.000000 -vt 0.375000 1.000000 -vt 0.500000 1.000000 -vt 0.500000 1.000000 -vt 0.375000 1.000000 -vt 0.875000 1.000000 -vt 1.000000 1.000000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.000000 1.000000 -vt 0.125000 1.000000 -vt 0.000000 1.000000 -vt 0.250000 1.000000 -vt 0.625000 1.000000 -vt 1.000000 0.500000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.875000 0.500000 -vt 0.750000 0.500000 -vt 0.750000 1.000000 -vt 0.625000 1.000000 -vt 0.625000 0.500000 -vt 0.625000 1.000000 -vt 0.625000 0.500000 -vt 0.311328 0.973144 -vt 0.273600 0.943506 -vt 0.273532 1.000000 -vt 0.375000 1.000000 -vt 0.375000 0.973144 -vt 0.500000 1.000000 -vt 0.625000 1.000000 -vt 0.500000 1.000000 -vt 0.074142 0.973144 -vt 0.045930 0.943506 -vt 0.045816 1.000000 -vt 0.125000 1.000000 -vt 0.125000 0.973144 -vt 0.250000 1.000000 -vt 0.125000 1.000000 -vt 0.125000 1.000000 -vt 0.226500 1.000000 -vt 0.250000 1.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 1.000000 -vt 0.000000 1.000000 -vt 0.045816 1.000000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.375000 1.000000 -vt 0.273532 1.000000 -vt 0.375000 1.000000 -vt 0.580294 0.419706 -vt 0.750000 0.490000 -vt 0.919706 0.419706 -vt 0.990000 0.250000 -vt 0.919706 0.080294 -vt 0.750000 0.010000 -vt 0.580294 0.080294 -vt 0.510000 0.250000 -vt 0.625000 0.500000 -vt 0.625000 0.500000 -vt 0.419706 0.419706 -vt 0.250000 0.490000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.226429 0.500000 -vt 0.250000 0.500000 -vt 0.226400 0.943506 -vt 0.226400 0.560020 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.273568 0.500000 -vt 0.273600 0.560020 -vt 0.273600 0.943506 -vt 0.250000 1.000000 -vt 0.375000 1.000000 -vt 0.250000 1.000000 -vt 0.875000 1.000000 -vt 1.000000 1.000000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.000000 1.000000 -vt 0.000000 1.000000 -vt 0.125000 1.000000 -vt 0.750000 1.000000 -vt 0.750000 1.000000 -vt 0.500000 1.000000 -vt 0.375000 1.000000 -vt 0.500000 1.000000 -vt 0.875000 1.000000 -vt 1.000000 1.000000 -vt 0.500000 1.000000 -vt 0.000000 1.000000 -vt 0.125000 1.000000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.250000 1.000000 -vt 0.625000 1.000000 -vt 0.875000 1.000000 -vt 1.000000 1.000000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.125000 1.000000 -vt 0.000000 1.000000 -vt 0.250000 1.000000 -vt 0.500000 1.000000 -vt 0.375000 1.000000 -vt 0.625000 1.000000 -vt 0.125000 1.000000 -vt 0.250000 1.000000 -vt 0.250000 1.000000 -vt 0.125000 1.000000 -vt 0.500000 1.000000 -vt 0.375000 1.000000 -vt 0.000000 1.000000 -vt 0.375000 1.000000 -vt 0.500000 1.000000 -vt 0.500000 1.000000 -vt 0.375000 1.000000 -vt 0.000000 1.000000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.625000 1.000000 -vt 0.625000 1.000000 -vt 0.125000 1.000000 -vt 0.000000 1.000000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.625000 1.000000 -vt 0.000000 1.000000 -vt 0.125000 1.000000 -vt 0.125000 1.000000 -vt 0.000000 1.000000 -vt 0.250000 1.000000 -vt 0.375000 1.000000 -vt 0.250000 1.000000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.625000 1.000000 -vt 0.500000 1.000000 -vt 0.750000 1.000000 -vt 0.750000 1.000000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.625000 1.000000 -vt 0.500000 1.000000 -vt 0.375000 1.000000 -vt 1.000000 0.728416 -vt 1.000000 0.500000 -vt 0.875000 0.500000 -vt 0.875000 0.728416 -vt 0.750000 0.500000 -vt 0.750000 0.728416 -vt 0.500000 0.500000 -vt 0.375000 0.500000 -vt 0.375000 0.728416 -vt 0.500000 0.728416 -vt 0.250000 0.728416 -vt 0.250000 0.500000 -vt 0.125000 0.500000 -vt 0.125000 0.728416 -vt 0.000000 0.500000 -vt 0.000000 0.728416 -vt 0.990000 0.250000 -vt 0.919706 0.419706 -vt 0.750000 0.490000 -vt 0.580294 0.419706 -vt 0.510000 0.250000 -vt 0.580294 0.080294 -vt 0.750000 0.010000 -vt 0.919706 0.080294 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.074142 0.530382 -vt 0.125000 0.530382 -vt 0.454131 0.500000 -vt 0.125000 0.500000 -vt 0.425858 0.530382 -vt 0.454070 0.560020 -vt 0.311328 0.973144 -vt 0.375000 0.973144 -vt 0.125000 0.500000 -vt 0.125000 0.500000 -vt 0.000000 0.500000 -vt 0.000000 0.500000 -vt 0.046932 0.500000 -vt 0.125000 1.000000 -vt 0.000000 1.000000 -vt 0.000000 1.000000 -vt 0.273568 0.500000 -vt 0.375000 0.500000 -vt 0.375000 0.500000 -vt 0.250000 0.500000 -vt 0.454070 0.943506 -vt 0.453986 1.000000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.045930 0.560020 -vt 0.344657 0.155611 -vt 0.383755 0.250000 -vt 0.490000 0.250000 -vt 0.419706 0.080294 -vt 1.000000 0.728416 -vt 0.875000 0.728416 -vt 0.875000 0.500000 -vt 1.000000 0.500000 -vt 0.074142 0.530382 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.125000 0.530382 -vt 0.226400 0.560020 -vt 0.000000 0.000000 -vt 0.226400 0.943506 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.750000 1.000000 -vt 0.875000 1.000000 -vt 0.875000 1.000000 -vt 0.125000 1.000000 -vt 0.125000 1.000000 -vt 0.250000 1.000000 -vt 0.188672 0.530382 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.074142 0.973144 -vt 0.000000 0.000000 -vt 0.750000 1.000000 -vt 0.045930 0.943506 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.045930 0.560020 -vt 0.000000 0.000000 -vt 0.750000 1.000000 -vt 0.750000 1.000000 -vt 0.875000 1.000000 -vt 0.875000 1.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.625000 1.000000 -vt 0.625000 1.000000 -vt 0.750000 1.000000 -vt 0.625000 1.000000 -vt 0.625000 1.000000 -vt 0.750000 1.000000 -vt 0.375000 1.000000 -vt 0.375000 1.000000 -vt 0.500000 1.000000 -vt 0.500000 1.000000 -vt 0.875000 1.000000 -vt 0.875000 1.000000 -vt 0.000000 0.000000 -vt 0.625000 1.000000 -vt 0.625000 1.000000 -vt 0.625000 1.000000 -vt 0.750000 0.490000 -vt 0.250000 0.490000 -vt 0.419706 0.419706 -vt 0.919706 0.419706 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.875000 1.000000 -vt 1.000000 1.000000 -vt 1.000000 1.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.875000 0.500000 -vt 0.875000 0.500000 -vt 0.750000 0.500000 -vt 0.750000 0.500000 -vt 0.125000 1.000000 -vt 0.125000 1.000000 -vt 0.250000 0.500000 -vt 0.125000 0.500000 -vt 0.125000 0.500000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.750000 1.000000 -vt 0.125000 1.000000 -vt 0.125000 1.000000 -vt 0.625000 1.000000 -vt 0.625000 1.000000 -vt 0.750000 1.000000 -vt 0.344657 0.155611 -vt 0.419706 0.080294 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.750000 0.490000 -vt 0.919706 0.419706 -vt 0.919706 0.419706 -vt 0.750000 0.490000 -vt 0.000000 0.500000 -vt 0.000000 0.890352 -vt 0.000000 0.901860 -vt 0.000000 1.000000 -vt 0.500000 1.000000 -vt 0.750000 0.490000 -vt 0.919706 0.419706 -vt 0.000000 1.000000 -vt 0.000000 0.902071 -vt 0.000000 0.866263 -vt 0.000000 1.000000 -vt 0.625000 1.000000 -vt 0.625000 0.903459 -vt 0.625000 0.893287 -vt 0.625000 0.500000 -vt 0.625000 0.500000 -vt 0.625000 0.527590 -vt 0.500000 0.528185 -vt 0.500000 0.500000 -vt 0.625000 0.850445 -vt 0.625000 0.703414 -vt 0.625000 0.667738 -vt 0.625000 0.625178 -vt 0.625000 0.593798 -vt 0.625000 0.556398 -vt 0.919706 0.419706 -vt 0.750000 0.490000 -vt 0.500000 0.556134 -vt 0.500000 0.556134 -vt 0.625000 0.556398 -vt 0.500000 0.594391 -vt 0.000000 0.624920 -vt 0.000000 0.594391 -vt 0.000000 0.594391 -vt 0.000000 0.624920 -vt 0.500000 0.624920 -vt 0.500000 0.667476 -vt 0.000000 0.704013 -vt 0.000000 0.667476 -vt 0.000000 0.667476 -vt 0.000000 0.704013 -vt 0.500000 0.704013 -vt 0.500000 0.849827 -vt 0.500000 0.594391 -vt 0.625000 0.593798 -vt 0.625000 0.625178 -vt 0.500000 0.624920 -vt 0.500000 0.667476 -vt 0.625000 0.667738 -vt 0.625000 0.703414 -vt 0.500000 0.704013 -vt 0.500000 0.528185 -vt 0.625000 0.527590 -vt 0.000000 0.556134 -vt 0.000000 0.528185 -vt 0.000000 0.528185 -vt 0.000000 0.556134 -vt 0.000000 0.902071 -vt 0.000000 0.866263 -vt 0.000000 0.849827 -vt 0.000000 0.890503 -vt 0.000000 0.500000 -vt 0.000000 0.500000 -vt 0.625000 0.850445 -vt 0.500000 0.849827 -vt 0.625000 0.866439 -vt 0.500000 0.866263 -vt 0.500000 0.866263 -vt 0.625000 0.866439 -vt 0.625000 1.000000 -vt 0.500000 1.000000 -vt 0.000000 0.890503 -vt 0.000000 0.890352 -vt 0.000000 0.849827 -vt 0.000000 0.901860 -vt 0.625000 0.893287 -vt 0.625000 0.903459 -vt 1.000000 0.500000 -vt 0.875000 1.000000 -vt 1.000000 1.000000 -vt 0.500000 0.500000 -vt 0.375000 0.500000 -vt 0.375000 1.000000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.375000 0.500000 -vt 1.000000 0.500000 -vt 0.875000 0.500000 -vt 0.875000 1.000000 -vt 1.000000 1.000000 -vt 0.625000 0.500000 -vt 0.625000 0.500000 -vt 0.625000 1.000000 -vt 0.625000 1.000000 -vt 0.625000 1.000000 -vt 0.500000 1.000000 -vt 0.500000 1.000000 -vt 0.500000 1.000000 -vt 0.625000 0.500000 -vt 0.625000 0.500000 -vt 0.875000 1.000000 -vt 0.875000 1.000000 -vt 1.000000 1.000000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 1.000000 1.000000 -vt 0.125000 1.000000 -vt 0.125000 1.000000 -vt 0.125000 1.000000 -vt 0.125000 0.728416 -vt 0.125000 0.500000 -vt 0.188672 0.530382 -vt 0.625000 1.000000 -vt 0.875000 0.500000 -vt 0.125000 0.500000 -vt 0.125000 0.500000 -vt 0.750000 0.490000 -vt 0.750000 0.490000 -vt 0.919706 0.419706 -vt 0.919706 0.419706 -vt 0.000000 1.000000 -vt 0.000000 0.901860 -vt 0.000000 0.890352 -vt 0.000000 0.500000 -vt 0.000000 0.500000 -vt 0.750000 0.490000 -vt 0.919706 0.419706 -vt 0.000000 1.000000 -vt 0.000000 1.000000 -vt 0.000000 0.866263 -vt 0.000000 0.902071 -vt 0.500000 1.000000 -vt 0.625000 0.500000 -vt 0.625000 0.893287 -vt 0.625000 0.903459 -vt 0.625000 0.500000 -vt 0.500000 0.500000 -vt 0.500000 0.528185 -vt 0.625000 0.527590 -vt 0.625000 0.556398 -vt 0.625000 0.593798 -vt 0.625000 0.625178 -vt 0.625000 0.667738 -vt 0.625000 0.703414 -vt 0.625000 0.850445 -vt 0.750000 0.490000 -vt 0.919706 0.419706 -vt 0.625000 0.556398 -vt 0.500000 0.556134 -vt 0.500000 0.556134 -vt 0.500000 0.594391 -vt 0.000000 0.624920 -vt 0.000000 0.624920 -vt 0.000000 0.594391 -vt 0.000000 0.594391 -vt 0.500000 0.624920 -vt 0.500000 0.667476 -vt 0.000000 0.704013 -vt 0.000000 0.704013 -vt 0.000000 0.667476 -vt 0.000000 0.667476 -vt 0.500000 0.704013 -vt 0.500000 0.849827 -vt 0.500000 0.594391 -vt 0.500000 0.624920 -vt 0.625000 0.625178 -vt 0.625000 0.593798 -vt 0.500000 0.667476 -vt 0.500000 0.704013 -vt 0.625000 0.703414 -vt 0.625000 0.667738 -vt 0.500000 0.528185 -vt 0.625000 0.527590 -vt 0.000000 0.556134 -vt 0.000000 0.556134 -vt 0.000000 0.528185 -vt 0.000000 0.528185 -vt 0.000000 0.866263 -vt 0.000000 0.902071 -vt 0.000000 0.849827 -vt 0.000000 0.500000 -vt 0.000000 0.500000 -vt 0.000000 0.890503 -vt 0.500000 0.849827 -vt 0.625000 0.850445 -vt 0.625000 0.866439 -vt 0.625000 0.866439 -vt 0.500000 0.866263 -vt 0.500000 0.866263 -vt 0.000000 0.890352 -vt 0.000000 0.890503 -vt 0.000000 0.849827 -vt 0.000000 0.901860 -vt 0.625000 0.903459 -vt 0.625000 0.893287 -vt 0.580294 0.080294 -vt 0.750000 0.010000 -vt 0.919706 0.080294 -vt 0.990000 0.250000 -vt 0.919706 0.419706 -vt 0.750000 0.490000 -vt 0.580294 0.419706 -vt 0.510000 0.250000 -vt 0.750000 0.500000 -vt 0.625000 0.500000 -vt 0.226429 0.500000 -vt 0.273600 0.560020 -vt 0.311328 0.530382 -vt 0.375000 0.530382 -vt 0.625000 0.500000 -vt 0.875000 0.500000 -vt 1.000000 0.500000 -vt 0.500000 0.500000 -vt 0.125000 0.500000 -vt 0.125000 0.973144 -vt 0.116782 0.250000 -vt 0.010000 0.250000 -vt 0.080294 0.080294 -vt 0.155879 0.155611 -vt 0.155879 0.155611 -vt 0.080294 0.080294 -vt 0.250268 0.116514 -vt 0.250000 0.010000 -vt 0.250268 0.116514 -vt 0.250000 0.010000 -vt 0.250000 0.490000 -vt 0.250268 0.383486 -vt 0.155879 0.344389 -vt 0.080294 0.419706 +v 1.103664 0.525584 2.500000 +v 1.292985 0.525584 2.500000 +v 1.292985 0.172030 2.646447 +v 1.103664 0.172030 2.646447 +v 1.103664 0.525584 3.500000 +v 1.292985 0.525584 3.500000 +v 1.292985 0.879137 3.353553 +v 1.103664 0.879137 3.353553 +v 1.292985 1.025584 3.000000 +v 1.103664 1.025584 3.000000 +v 1.503651 1.012795 3.000000 +v 1.503651 0.870094 2.655490 +v 1.509822 0.895986 2.629598 +v 1.509822 1.049411 3.000000 +v 1.080568 0.851567 3.325983 +v 1.080568 0.525584 3.461010 +v 1.292985 0.879137 2.646447 +v 1.286814 0.905708 2.619875 +v 1.286814 0.525584 2.462423 +v 1.286814 0.525584 3.537577 +v 1.286814 0.905708 3.380125 +v 1.503651 0.038372 3.000000 +v 1.503651 0.181073 3.344510 +v 1.509822 0.155181 3.370402 +v 1.509822 0.001756 3.000000 +v 1.503651 0.870094 3.344510 +v 1.509822 0.895986 3.370402 +v 1.503651 0.525584 3.487211 +v 1.669294 0.525584 3.401911 +v 1.669294 0.809777 3.284194 +v 1.503651 0.181073 2.655490 +v 1.503651 0.525584 2.512789 +v 1.669294 0.525584 2.598089 +v 1.669294 0.241390 2.715806 +v 1.669294 0.809777 2.715806 +v 1.669294 0.927494 3.000000 +v 1.669294 0.241390 3.284194 +v -0.603601 0.525584 2.500000 +v 1.044523 0.525584 2.500000 +v 1.044523 0.172030 2.646447 +v -0.603601 0.172030 2.646447 +v -0.603601 0.025584 3.000000 +v 1.044523 0.025584 3.000000 +v 1.044523 0.172030 3.353553 +v -0.603601 0.172030 3.353553 +v 0.951045 0.197436 3.364077 +v -0.460212 0.197436 3.364077 +v 1.044523 0.879137 3.353553 +v 0.899442 0.953734 3.173461 +v 0.899442 0.879137 3.353553 +v 1.044523 0.525584 3.500000 +v 1.068921 0.199748 3.325836 +v 1.068921 0.525584 3.460801 +v 1.044523 0.879137 2.646447 +v 0.899442 0.735289 2.586863 +v 0.899442 0.879137 2.646447 +v 1.068921 0.986385 3.000000 +v 1.068921 0.851420 2.674164 +v 1.044523 1.025584 3.000000 +v 0.985768 0.843292 3.316901 +v 0.899442 0.843292 3.316901 +v 0.899442 0.918248 3.161081 +v 1.068921 0.525584 2.539199 +v 1.068921 0.199748 2.674164 +v 1.068921 0.851420 3.325836 +v 1.080568 0.851567 2.674017 +v 1.080568 0.525584 2.538990 +v 1.080568 0.199600 2.674017 +v 1.080568 0.064574 3.000000 +v 1.080568 0.199600 3.325983 +v 1.080568 0.986594 3.000000 +v 1.103664 0.172030 3.353553 +v 1.068921 0.064782 3.000000 +v -0.603601 1.025584 3.000000 +v 0.810528 0.997935 2.898423 +v -0.388078 0.997935 2.898423 +v 0.810528 0.952228 3.101577 +v 0.969099 0.952228 3.101577 +v 0.899442 0.719760 3.368080 +v 0.810528 0.997935 3.101577 +v -0.388078 0.997935 3.101577 +v 0.810528 0.655494 2.553811 +v 1.286814 1.063161 3.000000 +v 1.320923 0.951339 3.425755 +v 1.320923 1.127692 3.000000 +v 1.286814 0.145459 2.619875 +v 1.320923 0.525584 2.397891 +v 1.320923 0.099829 2.574245 +v 1.509822 0.525584 2.476172 +v 1.475712 0.525584 2.413292 +v 1.475712 0.940449 2.585135 +v 1.286814 -0.011994 3.000000 +v 1.320923 -0.076525 3.000000 +v 1.509822 0.525584 3.523828 +v 1.475712 0.940449 3.414865 +v 1.475712 0.525584 3.586708 +v 1.509822 0.155181 2.629598 +v 1.320923 0.525584 3.602109 +v 1.320923 0.951339 2.574245 +v 1.475712 0.110718 2.585134 +v 1.475712 1.112292 3.000000 +v 1.475712 0.110718 3.414866 +v 1.669294 0.271118 2.745534 +v 1.669294 0.525584 2.640131 +v 1.423236 0.525584 2.699672 +v 1.423236 0.313220 2.787636 +v 1.669294 0.780049 2.745534 +v 1.669294 0.885452 3.000000 +v 1.669294 0.525584 3.359869 +v 1.669294 0.780049 3.254466 +v 1.669294 0.271118 3.254466 +v 1.423236 0.737947 2.787636 +v 1.423236 0.825911 3.000000 +v 1.657500 0.838523 3.000000 +v 1.657500 0.746865 2.778719 +v 1.423236 0.525584 3.300328 +v 1.423236 0.737947 3.212364 +v 1.657500 0.746865 3.221281 +v 1.657500 0.525584 3.312939 +v 1.657500 0.525584 3.252281 +v 1.657500 0.703973 3.178389 +v 1.657500 0.525584 2.687061 +v 1.657500 0.304302 2.778718 +v 1.423236 0.313220 3.212364 +v 1.657500 0.304302 3.221282 +v 1.657500 0.703973 2.821611 +v 1.657500 0.525584 2.747719 +v 1.657500 0.347194 2.821611 +v 1.657500 0.347194 3.178389 +v 1.432520 0.525584 2.830615 +v 1.432520 0.645357 2.880227 +v 1.651829 0.645357 2.880227 +v 1.651829 0.525584 2.830615 +v 1.657500 0.777864 3.000000 +v 1.432520 0.645357 3.119773 +v 1.432520 0.694968 3.000000 +v 1.432520 0.405810 2.880227 +v 1.432520 0.405810 3.119773 +v 1.432520 0.525584 3.169385 +v 1.657500 0.273303 3.000000 +v 1.432520 0.356199 3.000000 +v 1.651829 0.431184 3.000000 +v 1.651829 0.356199 3.000000 +v 1.651829 0.405810 2.880227 +v 1.651829 0.525394 2.905789 +v 1.651829 0.458777 2.933383 +v 1.651829 0.405810 3.119773 +v 1.651829 0.525584 3.169385 +v 1.651829 0.645357 3.119773 +v 1.127542 0.525394 2.905789 +v 1.127542 0.458777 2.933383 +v 1.127542 0.431184 3.000000 +v 1.127542 0.525394 3.094211 +v 1.127542 0.592011 3.066617 +v 1.651829 0.592011 3.066617 +v 1.651829 0.525394 3.094211 +v 1.651829 0.619605 3.000000 +v 1.127542 0.619605 3.000000 +v 1.127542 0.592011 2.933383 +v 1.651829 0.592011 2.933383 +v 1.127542 0.458777 3.066617 +v -0.476991 0.837264 2.708140 +v -0.476991 0.714942 2.642628 +v -0.476991 0.735289 2.586863 +v -0.476991 0.879137 2.646447 +v -0.476991 0.879137 3.353553 +v -0.476991 0.953734 3.173461 +v -0.603601 0.879137 3.353553 +v 0.899442 0.735289 3.413137 +v -0.603601 0.879137 2.646447 +v -0.724548 0.869896 2.662932 +v -0.476991 0.953734 2.826539 +v -0.476991 0.735289 3.413137 +v -0.388078 0.655494 3.446189 +v -0.388078 0.655494 2.553811 +v 0.810528 0.655494 3.446189 +v -0.603601 0.525584 3.500000 +v 1.651829 0.458777 3.066617 +v -0.388078 0.633076 3.392654 +v -0.476991 0.714942 3.357372 +v -0.476991 0.837264 3.291860 +v -0.388078 0.944133 3.101577 +v -0.388078 0.944133 2.898423 +v 0.810528 0.952228 2.898423 +v 1.657500 0.212644 3.000000 +v 1.651829 0.694968 3.000000 +v -0.476991 0.926475 3.173461 +v 0.899442 0.843292 2.683099 +v 0.899442 0.918248 2.838919 +v 0.899442 0.953734 2.826539 +v 0.899442 0.719760 2.631920 +v 0.810528 0.655494 2.621316 +v 0.810528 0.655494 3.378684 +v -0.388078 0.633076 2.607346 +v 1.669294 0.123673 3.000000 +v 1.669294 0.165715 3.000000 +v 0.985768 0.843292 2.683099 +v 0.969099 0.952228 2.898423 +v 1.475712 -0.061125 3.000000 +v 1.423236 0.225256 3.000000 +v 0.984259 0.528318 2.563219 +v 0.984259 0.228435 2.674968 +v 0.984259 0.095638 3.005025 +v 0.984259 0.228435 3.325032 +v 0.984259 0.528318 3.436781 +v 1.103664 0.025584 3.000000 +v -0.534084 0.903408 3.173461 +v -0.534084 0.903408 2.826539 +v -0.476991 0.926475 2.826539 +v -0.548068 0.837264 3.291860 +v -0.548068 0.837264 2.708140 +v 1.292985 0.025584 3.000000 +v -0.550334 0.529772 3.433593 +v -0.550334 0.236472 3.339820 +v -0.550334 0.062663 3.005342 +v -0.550334 0.236472 2.660180 +v -0.550334 0.529772 2.566407 +v -0.388078 0.540720 3.422003 +v -0.388078 0.540720 2.577997 +v 0.810528 0.526819 2.580172 +v 0.810528 0.526819 3.419828 +v -0.388078 0.088709 3.007100 +v -0.388078 0.229035 2.676650 +v -0.388078 0.229035 3.323350 +v 0.810528 0.240010 2.699891 +v 0.810528 0.100279 3.006216 +v 0.810528 0.240010 3.300109 +v -0.460212 0.500178 3.489476 +v 0.678212 0.092276 2.275122 +v 0.648869 0.138277 2.298296 +v 0.951045 0.500178 3.489476 +v 0.646934 0.318302 2.224795 +v 0.641987 0.458293 2.409405 +v 0.671568 0.425284 2.403533 +v 0.673140 0.318430 2.224781 +v 0.003785 0.107850 2.287122 +v 0.003776 0.311542 2.203961 +v 0.286340 0.110829 2.286325 +v 0.335441 0.111139 2.286292 +v 0.137117 0.111516 2.285824 +v 0.181234 0.111785 2.285795 +v 0.643209 0.321800 2.181364 +v 0.285150 0.311362 2.204452 +v 0.335438 0.311680 2.204418 +v 0.346589 0.320346 2.181522 +v 0.273733 0.319982 2.181562 +v 0.137105 0.309206 2.205114 +v 0.180025 0.309468 2.205085 +v 0.188876 0.319558 2.181608 +v 0.127999 0.319254 2.181641 +v 0.051715 0.318872 2.181683 +v 0.044163 0.311789 2.203934 +v 0.045414 0.108104 2.287094 +v 0.949896 0.093608 2.274977 +v 0.645678 0.092117 2.275140 +v 0.346592 0.090651 2.275299 +v 0.275455 0.090295 2.275338 +v 0.190590 0.089871 2.275384 +v 0.128016 0.089558 2.275418 +v 0.053442 0.089185 2.275459 +v -0.004002 0.088898 2.275490 +v -0.004015 0.318594 2.181713 +v -0.060217 0.318313 2.181744 +v -0.059018 0.088623 2.275520 +v 0.678557 0.155552 2.534805 +v 0.649846 0.155552 2.534805 +v 0.951045 0.155552 2.534805 +v 0.674638 0.458293 2.409405 +v 0.676644 0.321964 2.181346 +v 0.948697 0.323297 2.181201 +v 0.951045 0.458293 2.409405 +v 0.641563 0.500178 2.510524 +v 0.674042 0.500178 2.510524 +v 0.951045 0.500178 2.510524 +v -0.460212 0.155552 2.534805 +v -0.460212 0.458293 2.409405 +v -0.460212 0.500178 2.510524 +v 0.951045 0.197436 2.635923 +v -0.460212 0.197436 2.635923 +v 1.292985 0.172030 3.353553 +v 1.103664 0.879137 2.646447 +v -0.460212 0.197436 2.635923 +v 0.951045 0.197436 2.635923 +v 1.286814 0.145459 3.380125 +v 1.320923 0.099829 3.425755 +v -0.460212 0.500178 2.510524 +v 0.951045 0.500178 2.510524 +v -0.724548 0.532825 2.523313 +v -0.724548 0.195753 2.662932 +v -0.724548 0.056134 3.000004 +v -0.724548 0.195753 3.337075 +v -0.724548 0.532825 3.476694 +v -0.724548 0.869896 3.337075 +v -0.724548 1.009515 3.000004 +v 0.951045 0.197436 3.364077 +v -0.460212 0.197436 3.364077 +v -0.460212 0.500178 3.489476 +v -0.460212 0.155552 3.465195 +v -0.460212 0.458293 3.590595 +v 0.641563 0.500178 3.489476 +v 0.674042 0.500178 3.489476 +v 0.951045 0.500178 3.489476 +v 0.951045 0.458293 3.590595 +v 0.674638 0.458293 3.590595 +v 0.676644 0.321964 3.818654 +v 0.948697 0.323297 3.818799 +v 0.951045 0.155552 3.465195 +v 0.678557 0.155552 3.465195 +v 0.649846 0.155552 3.465195 +v -0.059018 0.088623 3.724480 +v -0.004002 0.088898 3.724510 +v -0.004015 0.318594 3.818287 +v -0.060217 0.318313 3.818256 +v 0.645678 0.092117 3.724860 +v 0.346592 0.090651 3.724701 +v 0.275455 0.090295 3.724662 +v 0.190590 0.089871 3.724616 +v 0.128016 0.089558 3.724582 +v 0.053442 0.089185 3.724541 +v 0.949896 0.093608 3.725023 +v 0.051715 0.318872 3.818317 +v 0.044163 0.311789 3.796066 +v 0.045414 0.108104 3.712906 +v 0.127999 0.319254 3.818359 +v 0.188876 0.319558 3.818392 +v 0.137105 0.309206 3.794886 +v 0.180025 0.309468 3.794915 +v 0.273733 0.319982 3.818438 +v 0.346589 0.320346 3.818478 +v 0.285150 0.311362 3.795548 +v 0.335438 0.311680 3.795582 +v 0.643209 0.321800 3.818636 +v 0.137117 0.111516 3.714176 +v 0.181234 0.111785 3.714205 +v 0.286340 0.110829 3.713675 +v 0.335441 0.111139 3.713708 +v 0.003776 0.311542 3.796039 +v 0.003785 0.107850 3.712878 +v 0.671568 0.425284 3.596467 +v 0.673140 0.318430 3.775219 +v 0.641987 0.458293 3.590595 +v 0.648869 0.138277 3.701704 +v 0.646934 0.318302 3.775205 +v 0.678212 0.092276 3.724878 +v 0.674369 0.138402 3.701718 +v 0.645976 0.425284 3.596467 +v 0.645644 0.458113 3.517211 +v 0.671101 0.458113 3.517211 +v 0.652136 0.187997 3.498180 +v 0.674639 0.187997 3.498180 +v 0.674369 0.138402 2.298282 +v 0.645644 0.458113 2.482789 +v 0.645976 0.425284 2.403533 +v 0.671101 0.458113 2.482789 +v 0.674639 0.187997 2.501820 +v 0.652136 0.187997 2.501820 +vt 0.444444 0.967260 +vt 0.444444 0.999701 +vt 0.378868 0.999701 +vt 0.378868 0.967260 +vt 0.706744 0.967259 +vt 0.706744 0.999701 +vt 0.641169 0.999701 +vt 0.641169 0.967260 +vt 0.575594 0.999701 +vt 0.575594 0.967260 +vt 0.250824 0.305563 +vt 0.248404 0.241712 +vt 0.254201 0.239089 +vt 0.256804 0.307740 +vt 0.643725 0.959927 +vt 0.704187 0.959927 +vt 0.301657 0.158688 +vt 0.309096 0.223840 +vt 0.303372 0.226973 +vt 0.295374 0.156925 +vt 0.309096 0.399006 +vt 0.301657 0.464157 +vt 0.295374 0.465920 +vt 0.303372 0.395872 +vt 0.207069 0.603722 +vt 0.223821 0.542059 +vt 0.230137 0.541287 +vt 0.212125 0.607583 +vt 0.248403 0.381134 +vt 0.250824 0.317282 +vt 0.256804 0.315106 +vt 0.254201 0.383756 +vt 0.247516 0.392819 +vt 0.240267 0.456304 +vt 0.209672 0.447180 +vt 0.215652 0.394810 +vt 0.226462 0.092204 +vt 0.238498 0.154958 +vt 0.206574 0.155385 +vt 0.196646 0.103618 +vt 0.240267 0.166542 +vt 0.247516 0.230027 +vt 0.215652 0.228035 +vt 0.209672 0.175665 +vt 0.217205 0.374353 +vt 0.219202 0.321681 +vt 0.238498 0.467888 +vt 0.226462 0.530642 +vt 0.196646 0.519228 +vt 0.206574 0.467461 +vt 0.313293 0.285661 +vt 0.315256 0.001710 +vt 0.381187 0.002166 +vt 0.379225 0.286117 +vt 0.385814 0.018304 +vt 0.384134 0.261443 +vt 0.541993 0.266641 +vt 0.555933 0.251561 +vt 0.573731 0.287890 +vt 0.706744 0.950449 +vt 0.772319 0.950449 +vt 0.769748 0.957931 +vt 0.709314 0.957931 +vt 0.675439 0.043014 +vt 0.700338 0.002620 +vt 0.702300 0.286572 +vt 0.678306 0.250613 +vt 0.573023 0.957932 +vt 0.512589 0.957931 +vt 0.510019 0.950449 +vt 0.575594 0.950449 +vt 0.579242 0.518640 +vt 0.567657 0.507006 +vt 0.582693 0.478078 +vt 0.507448 0.957932 +vt 0.447014 0.957931 +vt 0.444444 0.950449 +vt 0.378868 0.950449 +vt 0.441873 0.957932 +vt 0.381439 0.957932 +vt 0.638598 0.957931 +vt 0.578164 0.957931 +vt 0.641169 0.950449 +vt 0.772319 0.967259 +vt 0.709300 0.959927 +vt 0.769762 0.959927 +vt 0.441887 0.959927 +vt 0.381425 0.959928 +vt 0.447000 0.959927 +vt 0.507462 0.959927 +vt 0.643739 0.957931 +vt 0.704173 0.957931 +vt 0.315850 0.959928 +vt 0.315864 0.957932 +vt 0.376298 0.957932 +vt 0.376312 0.959928 +vt 0.662036 0.025151 +vt 0.553298 0.626937 +vt 0.568495 0.615996 +vt 0.583228 0.650081 +vt 0.568261 0.593570 +vt 0.582779 0.593348 +vt 0.637541 0.000299 +vt 0.638364 0.022418 +vt 0.306751 0.316097 +vt 0.304080 0.386550 +vt 0.292159 0.390332 +vt 0.295150 0.311423 +vt 0.280683 0.078442 +vt 0.293963 0.147683 +vt 0.283200 0.154056 +vt 0.268327 0.076503 +vt 0.253643 0.231744 +vt 0.245850 0.163488 +vt 0.256851 0.158081 +vt 0.265580 0.234531 +vt 0.260091 0.001297 +vt 0.278575 0.069334 +vt 0.247624 0.000299 +vt 0.245850 0.459358 +vt 0.253643 0.391101 +vt 0.265580 0.388314 +vt 0.256851 0.464764 +vt 0.231797 0.088736 +vt 0.244737 0.156206 +vt 0.312696 0.318788 +vt 0.310212 0.384316 +vt 0.244737 0.466639 +vt 0.231797 0.534110 +vt 0.287081 0.079724 +vt 0.299432 0.144125 +vt 0.283200 0.468789 +vt 0.292159 0.232513 +vt 0.242358 0.082512 +vt 0.268495 0.311423 +vt 0.242358 0.540334 +vt 0.190629 0.107579 +vt 0.199519 0.153931 +vt 0.156352 0.158234 +vt 0.148933 0.119551 +vt 0.208727 0.226051 +vt 0.203372 0.179159 +vt 0.217205 0.248492 +vt 0.219202 0.301165 +vt 0.212447 0.298662 +vt 0.210659 0.251499 +vt 0.203372 0.443686 +vt 0.208727 0.396794 +vt 0.190629 0.515267 +vt 0.199518 0.468915 +vt 0.167634 0.257037 +vt 0.169126 0.296397 +vt 0.128994 0.298746 +vt 0.127439 0.257734 +vt 0.160890 0.434906 +vt 0.165358 0.395772 +vt 0.212447 0.324183 +vt 0.210659 0.371346 +vt 0.167634 0.365808 +vt 0.169126 0.326448 +vt 0.165358 0.227073 +vt 0.160890 0.187940 +vt 0.125520 0.390391 +vt 0.120864 0.431168 +vt 0.111774 0.426126 +vt 0.115527 0.393253 +vt 0.127439 0.365112 +vt 0.128994 0.324099 +vt 0.125519 0.232455 +vt 0.120864 0.191677 +vt 0.117035 0.166617 +vt 0.109305 0.126309 +vt 0.156352 0.464612 +vt 0.148933 0.503295 +vt 0.109305 0.496537 +vt 0.117035 0.456229 +vt 0.115527 0.229592 +vt 0.111774 0.196719 +vt 0.106855 0.164519 +vt 0.100623 0.132025 +vt 0.100623 0.490821 +vt 0.106855 0.458327 +vt 0.071929 0.206740 +vt 0.074449 0.228811 +vt 0.037112 0.233074 +vt 0.034592 0.211003 +vt 0.119247 0.327710 +vt 0.117994 0.360773 +vt 0.077505 0.353798 +vt 0.078346 0.331599 +vt 0.065836 0.166851 +vt 0.061652 0.145034 +vt 0.061651 0.477812 +vt 0.065836 0.455995 +vt 0.093280 0.522558 +vt 0.084605 0.554487 +vt 0.046731 0.538565 +vt 0.052555 0.517127 +vt 0.071929 0.416106 +vt 0.074449 0.394034 +vt 0.028929 0.173930 +vt 0.024744 0.152113 +vt 0.024744 0.470733 +vt 0.028928 0.448916 +vt 0.034592 0.411843 +vt 0.037112 0.389771 +vt 0.673665 0.673462 +vt 0.583825 0.673463 +vt 0.583825 0.661107 +vt 0.673665 0.661107 +vt 0.583825 0.648751 +vt 0.673665 0.648751 +vt 0.583825 0.722886 +vt 0.583825 0.710530 +vt 0.673665 0.710530 +vt 0.673665 0.722885 +vt 0.673665 0.698174 +vt 0.583825 0.698174 +vt 0.583825 0.685818 +vt 0.673665 0.685818 +vt 0.674263 0.657488 +vt 0.683000 0.648751 +vt 0.695355 0.648751 +vt 0.704092 0.657488 +vt 0.704092 0.669844 +vt 0.695355 0.678581 +vt 0.682999 0.678581 +vt 0.674263 0.669844 +vt 0.003304 0.848715 +vt 0.026872 0.851863 +vt 0.026964 0.862035 +vt 0.000299 0.861133 +vt 0.591528 0.251561 +vt 0.573730 0.006258 +vt 0.592097 0.045324 +vt 0.447123 0.002620 +vt 0.509921 0.000299 +vt 0.509097 0.022418 +vt 0.485425 0.025151 +vt 0.509283 0.287766 +vt 0.508527 0.308267 +vt 0.447395 0.307129 +vt 0.445161 0.286572 +vt 0.638178 0.287766 +vt 0.636248 0.308292 +vt 0.574805 0.308410 +vt 0.664090 0.265938 +vt 0.605468 0.266641 +vt 0.637900 0.266577 +vt 0.003538 0.113914 +vt 0.000299 0.101991 +vt 0.010465 0.094133 +vt 0.016290 0.115571 +vt 0.673665 0.735241 +vt 0.583825 0.735241 +vt 0.026978 0.828506 +vt 0.048218 0.828557 +vt 0.048221 0.838503 +vt 0.026647 0.838672 +vt 0.003011 0.841266 +vt 0.000299 0.828780 +vt 0.051046 0.800371 +vt 0.050910 0.791153 +vt 0.256297 0.789503 +vt 0.256413 0.797334 +vt 0.552466 0.552854 +vt 0.344608 0.554207 +vt 0.343802 0.517193 +vt 0.552492 0.518459 +vt 0.092829 0.560843 +vt 0.103590 0.521237 +vt 0.039952 0.352375 +vt 0.040793 0.330176 +vt 0.031344 0.793088 +vt 0.031275 0.788417 +vt 0.307992 0.821098 +vt 0.302442 0.827908 +vt 0.274466 0.818149 +vt 0.275890 0.811868 +vt 0.512575 0.959927 +vt 0.573037 0.959927 +vt 0.300046 0.855841 +vt 0.274150 0.862262 +vt 0.272670 0.854230 +vt 0.294909 0.848715 +vt 0.304080 0.236296 +vt 0.306751 0.306748 +vt 0.046731 0.084281 +vt 0.052555 0.105719 +vt 0.253531 0.867360 +vt 0.253849 0.855797 +vt 0.256296 0.811837 +vt 0.256412 0.804005 +vt 0.274467 0.783191 +vt 0.275891 0.789471 +vt 0.302443 0.773432 +vt 0.307993 0.780242 +vt 0.272433 0.842081 +vt 0.274101 0.834087 +vt 0.299839 0.841114 +vt 0.294536 0.848117 +vt 0.253607 0.828505 +vt 0.253654 0.840073 +vt 0.048200 0.862482 +vt 0.048437 0.852539 +vt 0.178202 0.590083 +vt 0.172502 0.585678 +vt 0.184876 0.540132 +vt 0.192021 0.539216 +vt 0.553418 0.650133 +vt 0.568459 0.455510 +vt 0.553313 0.444607 +vt 0.583141 0.421546 +vt 0.222184 0.008257 +vt 0.184876 0.082714 +vt 0.142159 0.090273 +vt 0.131832 0.052263 +vt 0.172502 0.037168 +vt 0.010465 0.528712 +vt 0.016290 0.507275 +vt 0.553438 0.421486 +vt 0.579294 0.552649 +vt 0.207069 0.019124 +vt 0.212125 0.015262 +vt 0.230137 0.081559 +vt 0.223821 0.080787 +vt 0.192021 0.083630 +vt 0.178202 0.032763 +vt 0.835337 0.959927 +vt 0.774876 0.959927 +vt 0.774889 0.957931 +vt 0.835324 0.957931 +vt 0.119247 0.295135 +vt 0.117994 0.262072 +vt 0.073156 0.623144 +vt 0.124543 0.642293 +vt 0.147298 0.698850 +vt 0.124543 0.753685 +vt 0.073156 0.772834 +vt 0.019183 0.752292 +vt 0.000299 0.715395 +vt 0.000299 0.680584 +vt 0.019183 0.643686 +vt 0.837894 0.967259 +vt 0.131833 0.570583 +vt 0.142159 0.532572 +vt 0.578150 0.959927 +vt 0.638612 0.959927 +vt 0.316588 0.566360 +vt 0.316135 0.505151 +vt 0.327032 0.505997 +vt 0.327205 0.565445 +vt 0.325199 0.589422 +vt 0.313422 0.589890 +vt 0.325128 0.481936 +vt 0.313293 0.481323 +vt 0.328396 0.458075 +vt 0.318149 0.422764 +vt 0.344931 0.443095 +vt 0.317500 0.648537 +vt 0.328166 0.613272 +vt 0.313293 0.999701 +vt 0.313293 0.967260 +vt 0.266568 0.002090 +vt 0.283760 0.065372 +vt 0.222185 0.614589 +vt 0.103590 0.101609 +vt 0.092829 0.062002 +vt 0.093280 0.100288 +vt 0.084605 0.068358 +vt 0.313293 0.950449 +vt 0.310212 0.238529 +vt 0.312696 0.304057 +vt 0.003538 0.508931 +vt 0.000299 0.520855 +vt 0.280629 0.647431 +vt 0.292214 0.667720 +vt 0.292214 0.727167 +vt 0.280630 0.747455 +vt 0.227938 0.771742 +vt 0.177679 0.755673 +vt 0.147896 0.698358 +vt 0.177679 0.639213 +vt 0.227938 0.623144 +vt 0.344518 0.628436 +vt 0.344864 0.645367 +vt 0.567679 0.564328 +vt 0.345386 0.426160 +vt 0.321379 0.309007 +vt 0.348181 0.311072 +vt 0.346814 0.370598 +vt 0.319918 0.372352 +vt 0.319035 0.699253 +vt 0.346062 0.701099 +vt 0.578629 0.309007 +vt 0.582482 0.368090 +vt 0.552730 0.367902 +vt 0.550048 0.310686 +vt 0.578748 0.761487 +vt 0.550076 0.759426 +vt 0.552676 0.703908 +vt 0.582541 0.703747 +vt 0.347270 0.758738 +vt 0.558065 0.928960 +vt 0.550687 0.924347 +vt 0.550930 0.885091 +vt 0.558374 0.878875 +vt 0.442273 0.018695 +vt 0.440594 0.261833 +vt 0.719990 0.753760 +vt 0.711362 0.753164 +vt 0.711409 0.748802 +vt 0.720050 0.748194 +vt 0.558809 0.782594 +vt 0.553466 0.785950 +vt 0.553542 0.769874 +vt 0.558906 0.762085 +vt 0.523071 0.801651 +vt 0.527269 0.805192 +vt 0.527585 0.839077 +vt 0.523474 0.844882 +vt 0.583864 0.748194 +vt 0.591789 0.748650 +vt 0.591759 0.752506 +vt 0.583825 0.753114 +vt 0.523958 0.885237 +vt 0.530497 0.890536 +vt 0.531283 0.924612 +vt 0.524961 0.928713 +vt 0.627693 0.748375 +vt 0.627655 0.752744 +vt 0.696662 0.753087 +vt 0.696709 0.748702 +vt 0.660976 0.752977 +vt 0.661014 0.748487 +vt 0.522918 0.783847 +vt 0.527615 0.790596 +vt 0.527735 0.804551 +vt 0.609284 0.879288 +vt 0.609125 0.929342 +vt 0.558678 0.832385 +vt 0.609657 0.832799 +vt 0.551099 0.872461 +vt 0.551338 0.836023 +vt 0.529863 0.848009 +vt 0.530243 0.879639 +vt 0.343779 0.802494 +vt 0.343695 0.784690 +vt 0.475224 0.845209 +vt 0.463372 0.845290 +vt 0.449569 0.845385 +vt 0.439666 0.845452 +vt 0.427257 0.845537 +vt 0.418192 0.845599 +vt 0.409050 0.845661 +vt 0.553912 0.825721 +vt 0.554015 0.786696 +vt 0.748183 0.664506 +vt 0.743885 0.667670 +vt 0.709471 0.667342 +vt 0.704690 0.663671 +vt 0.748230 0.677708 +vt 0.743428 0.674541 +vt 0.708946 0.674384 +vt 0.704690 0.677993 +vt 0.674263 0.679178 +vt 0.678954 0.683000 +vt 0.678513 0.691305 +vt 0.674263 0.695158 +vt 0.713191 0.691406 +vt 0.717948 0.694885 +vt 0.717906 0.679285 +vt 0.713573 0.682833 +vt 0.674263 0.712333 +vt 0.679256 0.716024 +vt 0.678779 0.723450 +vt 0.674263 0.727142 +vt 0.712677 0.723401 +vt 0.717760 0.726648 +vt 0.717703 0.712821 +vt 0.713087 0.716118 +vt 0.475305 0.885568 +vt 0.463733 0.885647 +vt 0.449929 0.885741 +vt 0.439749 0.885811 +vt 0.427618 0.885894 +vt 0.331098 0.838796 +vt 0.409325 0.886018 +vt 0.331097 0.892100 +vt 0.344391 0.930068 +vt 0.418274 0.885957 +vt 0.568226 0.477860 +vt 0.610810 0.762612 +vt 0.610602 0.783121 +vt 0.313294 0.838795 +vt 0.313293 0.892100 +vt 0.772319 0.999701 +vt 0.510019 0.967260 +vt 0.510019 0.999701 +vt 0.834166 0.285661 +vt 0.768234 0.286116 +vt 0.766275 0.002164 +vt 0.832207 0.001709 +vt 0.763326 0.261444 +vt 0.761647 0.018304 +vt 0.280683 0.544403 +vt 0.268327 0.546342 +vt 0.293963 0.475162 +vt 0.260091 0.621549 +vt 0.247624 0.622547 +vt 0.278575 0.553512 +vt 0.287081 0.543122 +vt 0.299432 0.478720 +vt 0.078346 0.291246 +vt 0.077505 0.269047 +vt 0.673665 0.747597 +vt 0.583825 0.747597 +vt 0.000299 0.780763 +vt 0.010763 0.773432 +vt 0.031275 0.812923 +vt 0.010763 0.827908 +vt 0.000299 0.820577 +vt 0.031344 0.808252 +vt 0.051046 0.800969 +vt 0.050910 0.810187 +vt 0.040794 0.292669 +vt 0.039952 0.270471 +vt 0.837894 0.999701 +vt 0.266568 0.620755 +vt 0.283760 0.557474 +vt 0.837894 0.950449 +vt 0.320375 0.761358 +vt 0.705187 0.018693 +vt 0.706867 0.261833 +vt 0.658686 0.887344 +vt 0.658868 0.825939 +vt 0.679378 0.826000 +vt 0.679195 0.887405 +vt 0.690550 0.648153 +vt 0.628032 0.648153 +vt 0.583825 0.603947 +vt 0.583825 0.541429 +vt 0.628032 0.497222 +vt 0.690550 0.497222 +vt 0.734757 0.541428 +vt 0.734757 0.603946 +vt 0.832300 0.307073 +vt 0.769442 0.307507 +vt 0.606368 0.029512 +vt 0.378018 0.307507 +vt 0.315160 0.307073 +vt 0.572655 0.308410 +vt 0.511212 0.308292 +vt 0.765692 0.307390 +vt 0.702831 0.307825 +vt 0.444631 0.307825 +vt 0.381768 0.307391 +vt 0.700066 0.307129 +vt 0.638933 0.308268 +vt 0.028684 0.334662 +vt 0.028216 0.347009 +vt 0.028684 0.288183 +vt 0.028216 0.275836 +vt 0.024713 0.229498 +vt 0.023312 0.217222 +vt 0.016319 0.171298 +vt 0.013991 0.159164 +vt 0.016318 0.451548 +vt 0.013991 0.463682 +vt 0.023312 0.405623 +vt 0.024713 0.393347 +vt 0.929360 0.371663 +vt 0.949870 0.371663 +vt 0.949869 0.433068 +vt 0.929359 0.433068 +vt 0.541093 0.029512 +vt 0.555364 0.045324 +vt 0.472022 0.043014 +vt 0.469155 0.250613 +vt 0.483371 0.265938 +vt 0.509562 0.266577 +vt 0.583825 0.419180 +vt 0.583984 0.365876 +vt 0.601788 0.365929 +vt 0.601629 0.419233 +vt 0.880965 0.475742 +vt 0.829171 0.476114 +vt 0.829189 0.426323 +vt 0.880169 0.426061 +vt 0.881113 0.496251 +vt 0.829206 0.496624 +vt 0.615382 0.310197 +vt 0.879832 0.309007 +vt 0.879925 0.329517 +vt 0.828864 0.329746 +vt 0.795759 0.329895 +vt 0.615195 0.328000 +vt 0.679997 0.372243 +vt 0.688946 0.372331 +vt 0.688744 0.412689 +vt 0.679601 0.412599 +vt 0.794627 0.373366 +vt 0.745976 0.372890 +vt 0.734404 0.372777 +vt 0.720600 0.372642 +vt 0.710421 0.372542 +vt 0.698290 0.372423 +vt 0.704690 0.648751 +vt 0.748230 0.649035 +vt 0.743428 0.652203 +vt 0.708946 0.652359 +vt 0.697809 0.412778 +vt 0.710217 0.412900 +vt 0.717760 0.728233 +vt 0.717703 0.742060 +vt 0.713086 0.738763 +vt 0.712677 0.731480 +vt 0.720120 0.412997 +vt 0.733923 0.413133 +vt 0.717948 0.696029 +vt 0.717906 0.711629 +vt 0.713573 0.708081 +vt 0.713190 0.699508 +vt 0.745774 0.413249 +vt 0.794023 0.413720 +vt 0.679256 0.738857 +vt 0.678779 0.731431 +vt 0.674263 0.742548 +vt 0.674263 0.727739 +vt 0.678954 0.707914 +vt 0.678513 0.699609 +vt 0.674263 0.711736 +vt 0.674263 0.695756 +vt 0.743885 0.659074 +vt 0.709471 0.659401 +vt 0.704690 0.663073 +vt 0.748183 0.662238 +vt 0.824389 0.471998 +vt 0.824403 0.432972 +vt 0.793491 0.456950 +vt 0.614203 0.455572 +vt 0.793285 0.474753 +vt 0.614066 0.473375 +vt 0.800895 0.378983 +vt 0.800421 0.410612 +vt 0.829024 0.379832 +vt 0.821859 0.422664 +vt 0.821730 0.386224 +vt 0.879935 0.379571 +vt 0.798164 0.454064 +vt 0.798002 0.468018 +vt 0.660993 0.759351 +vt 0.627670 0.759305 +vt 0.627654 0.754935 +vt 0.660975 0.754860 +vt 0.696662 0.754919 +vt 0.696688 0.759304 +vt 0.711362 0.754912 +vt 0.711388 0.759274 +vt 0.591768 0.758859 +vt 0.591756 0.755003 +vt 0.802069 0.334014 +vt 0.801182 0.368087 +vt 0.583841 0.759277 +vt 0.583825 0.754357 +vt 0.798116 0.419538 +vt 0.797699 0.453421 +vt 0.823866 0.488818 +vt 0.823838 0.472743 +vt 0.719993 0.754357 +vt 0.720026 0.759923 +vt 0.821598 0.373594 +vt 0.821472 0.334337 +vt 0.608971 0.949851 +vt 0.344525 0.947871 vn 0.0000 -0.3827 -0.9239 vn 0.0000 0.3827 0.9239 vn 0.0000 0.9239 0.3827 @@ -5611,22 +5830,21 @@ vn 0.4296 0.8343 0.3456 vn 0.4296 -0.3456 0.8343 vn 0.0000 -0.9239 0.3827 vn 0.0000 -0.3827 0.9239 -vn 0.0161 0.9158 -0.4012 +vn -0.0913 0.8947 0.4372 vn 0.8293 -0.2138 0.5162 +vn 0.0000 0.3827 -0.9239 vn 0.8293 0.5162 -0.2138 -vn 0.0000 -0.9012 -0.4335 +vn 0.0464 -0.8899 0.4538 vn 0.8293 0.2138 -0.5162 vn 0.8293 -0.2138 -0.5162 vn 0.8293 0.5162 0.2138 -vn -1.0000 0.0000 0.0000 vn -0.8418 -0.2066 0.4987 -vn -0.0165 -0.3826 -0.9238 +vn -0.0166 -0.3826 -0.9238 vn -0.0165 0.3826 -0.9238 vn -0.0165 0.3826 0.9238 vn -0.0165 -0.9238 -0.3826 -vn -0.0000 0.9616 -0.2745 -vn 0.0000 -0.8684 -0.4959 -vn -0.0000 0.9616 0.2745 +vn 0.1008 -0.2962 -0.9498 +vn 0.0000 -0.3828 -0.9239 vn -0.8680 0.4588 0.1900 vn -0.8680 -0.1900 -0.4588 vn 0.8623 0.1938 -0.4678 @@ -5658,20 +5876,21 @@ vn -0.0497 0.3822 -0.9227 vn -0.0497 -0.3822 -0.9227 vn -0.0497 -0.3822 0.9227 vn -0.0497 0.3822 0.9227 -vn 0.0000 0.3827 -0.9239 vn 0.3223 -0.8746 -0.3623 vn 0.3223 0.3623 0.8746 vn 0.3223 0.3623 -0.8746 vn 0.3223 0.8746 -0.3623 vn 0.3223 -0.3623 -0.8746 -vn 0.0161 0.9158 0.4012 +vn 0.0000 0.9649 -0.2626 vn -0.1533 0.3782 0.9130 vn 0.8293 0.2138 0.5162 vn -0.1218 0.9170 -0.3798 +vn -0.0000 0.9239 -0.3827 vn 0.7023 0.6629 -0.2594 vn 0.0000 0.0000 1.0000 vn 0.0068 -1.0000 0.0000 vn 0.6287 0.0000 0.7776 +vn -1.0000 0.0000 0.0000 vn -0.0165 0.9238 -0.3826 vn -0.8680 0.4588 -0.1900 vn 0.0000 -0.9239 -0.3827 @@ -5681,33 +5900,34 @@ vn -0.6231 -0.1179 0.7732 vn -0.6414 0.7600 -0.1048 vn -0.0103 0.9832 -0.1821 vn -0.0103 0.9832 0.1821 -vn 0.0000 -0.9012 0.4335 -vn 0.0000 -0.8684 0.4959 +vn -0.0453 -0.3552 -0.9337 +vn 0.0951 -0.3032 -0.9482 +vn 0.1008 -0.2962 0.9498 vn 0.0915 -0.9200 -0.3811 vn 0.2182 0.9016 0.3735 vn 0.3223 -0.3623 0.8746 -vn 0.0465 -0.2865 0.9570 +vn 0.0951 -0.3032 0.9482 vn 0.0000 -1.0000 0.0000 vn 0.9838 0.1658 0.0687 vn 0.4296 -0.8343 -0.3456 -vn -0.0166 -0.3826 0.9238 +vn -0.0165 -0.3826 0.9238 vn -0.0165 -0.9238 0.3826 vn 0.8623 -0.4678 -0.1938 vn 0.2182 0.3735 -0.9016 vn 0.7023 0.6629 0.2594 -vn -0.9999 -0.0123 -0.0000 +vn -0.9999 -0.0105 0.0000 vn 0.0915 0.9200 -0.3811 -vn 0.0465 -0.2865 -0.9570 +vn -0.0453 -0.3552 0.9337 vn -0.8418 -0.4987 0.2066 vn -0.0497 -0.9227 0.3822 vn -0.8418 0.4987 0.2066 vn 0.3746 -0.9272 0.0000 vn 0.1495 -0.8307 -0.5362 -vn 0.0000 -0.4721 -0.8815 -vn 0.0000 -0.3958 -0.9183 -vn 0.1495 -0.8307 0.5362 vn 0.0000 -0.4721 0.8815 -vn 0.0000 -0.3958 0.9183 +vn 0.0120 -0.3847 0.9230 +vn 0.1495 -0.8307 0.5362 +vn 0.1144 -0.4166 0.9019 +vn 0.1144 -0.4166 -0.9019 vn -0.9846 0.1617 0.0670 vn 0.4296 -0.8343 0.3456 vn 0.0915 0.9200 0.3811 @@ -5717,11 +5937,11 @@ vn -0.0497 -0.9227 -0.3822 vn 0.3223 0.8746 0.3623 vn 0.8293 -0.5162 -0.2138 vn -0.9846 -0.1617 0.0670 -vn 0.9999 -0.0145 -0.0000 -vn -0.0222 -0.3380 -0.9409 -vn -0.0222 -0.3380 0.9409 -vn 0.0821 -0.3191 0.9441 -vn 0.0821 -0.3191 -0.9441 +vn 0.9999 -0.0151 0.0000 +vn -0.0476 -0.3025 -0.9520 +vn 0.0120 -0.3847 -0.9230 +vn 0.0000 -0.9012 -0.4335 +vn 0.0000 -0.8684 0.4959 vn -0.0053 -0.3038 0.9527 vn -0.0053 -0.3038 -0.9527 vn -0.0755 0.9042 0.4204 @@ -5734,10 +5954,71 @@ vn -0.0095 0.3428 -0.9394 vn -0.0127 0.9088 -0.4171 vn -0.0124 0.9153 0.4026 vn -0.0095 0.3428 0.9394 -vn -0.0039 0.8598 0.5107 +vn -0.9952 -0.0952 0.0245 +vn 0.0000 0.5505 -0.8349 +vn -0.9938 0.1009 -0.0476 +vn 0.9884 0.1326 -0.0741 +vn 0.0000 -0.7129 -0.7012 +vn 0.9976 -0.0694 0.0010 +vn 0.0026 -0.9715 0.2370 +vn -0.0023 0.8582 -0.5133 +vn 0.0014 -0.3780 -0.9258 +vn 0.9905 0.1284 -0.0490 +vn 0.0024 -0.9722 0.2343 +vn -0.9957 -0.0410 -0.0837 +vn 0.9959 -0.0250 -0.0874 +vn -0.0018 0.8543 -0.5198 +vn -0.9919 0.1050 -0.0715 +vn 0.9172 -0.1505 -0.3689 +vn 0.0050 -0.9531 -0.3028 +vn -0.0034 0.5235 -0.8520 +vn 0.0017 -0.3780 -0.9258 +vn -0.0031 0.4723 -0.8815 +vn -0.8491 -0.1997 -0.4891 +vn 0.8493 -0.1946 -0.4907 +vn 0.0018 -0.3780 -0.9258 +vn -0.0029 0.4287 -0.9035 +vn -0.8914 -0.1765 -0.4174 +vn 0.8917 -0.1710 -0.4191 +vn 0.0050 -0.9355 -0.3532 +vn 0.0048 -0.9190 -0.3942 +vn -0.9170 -0.1562 -0.3671 +vn -0.5510 -0.3187 -0.7712 +vn 0.0019 -0.9695 0.2450 +vn 0.0000 -0.9012 0.4335 +vn -0.0022 0.8595 -0.5111 +vn -0.8418 0.2066 -0.4987 +vn -0.8418 -0.2066 -0.4987 +vn -0.8680 -0.1900 0.4588 +vn -0.8680 -0.4588 0.1900 +vn -0.9846 0.0670 -0.1617 +vn 0.0915 -0.3811 0.9200 +vn 0.8623 0.4678 0.1938 +vn 0.3223 -0.8746 0.3623 +vn -0.0000 0.0000 -1.0000 +vn 0.6287 0.0000 -0.7776 +vn -0.0165 0.9238 0.3826 +vn 0.0915 -0.9200 0.3811 +vn 0.2182 0.9016 -0.3735 +vn 0.1948 -0.9808 0.0000 +vn -0.8418 -0.4987 -0.2066 +vn -0.8418 0.4987 -0.2066 +vn -0.9846 0.1617 -0.0670 +vn 0.8293 -0.5162 0.2138 +vn -0.0712 0.8983 -0.4336 +vn 0.1218 0.3643 0.9233 +vn -0.2273 -0.8997 -0.3727 +vn -0.0913 0.8947 -0.4372 +vn 0.0864 0.8928 -0.4421 +vn -0.2272 -0.8997 0.3727 +vn -0.1218 0.9170 0.3798 +vn -0.1970 -0.3752 -0.9058 +vn -0.1970 -0.3752 0.9058 +vn -0.1533 0.3782 -0.9130 +vn 1.0000 -0.0006 -0.0069 +vn 0.0864 0.8928 0.4421 +vn 0.0000 0.9649 0.2626 vn -0.0022 0.8595 0.5111 -vn 0.0005 0.9245 0.3812 -vn -0.0013 -0.9234 -0.3838 vn 0.0014 -0.3780 0.9258 vn 0.0019 -0.9695 -0.2450 vn -0.5510 -0.3187 0.7712 @@ -5751,7 +6032,7 @@ vn -0.0029 0.4287 0.9035 vn 0.0018 -0.3780 0.9258 vn 0.8493 -0.1946 0.4907 vn -0.8491 -0.1997 0.4891 -vn -0.0031 0.4723 0.8814 +vn -0.0031 0.4723 0.8815 vn -0.0034 0.5235 0.8520 vn 0.0050 -0.9531 0.3028 vn 0.9172 -0.1505 0.3689 @@ -5760,411 +6041,356 @@ vn -0.0018 0.8543 0.5198 vn 0.9959 -0.0250 0.0874 vn -0.9957 -0.0410 0.0837 vn 0.0024 -0.9722 -0.2343 -vn 0.0013 -0.9725 -0.2331 vn 0.9905 0.1284 0.0490 -vn 0.0013 -0.3780 0.9258 vn -0.0023 0.8582 0.5133 vn 0.0026 -0.9715 -0.2370 vn 0.9976 -0.0694 -0.0010 vn 0.0000 -0.7129 0.7012 vn 0.9884 0.1326 0.0741 -vn -0.9938 0.1009 0.0477 +vn -0.9938 0.1009 0.0476 vn 0.0000 0.5505 0.8349 vn -0.9952 -0.0952 -0.0245 -vn 0.0000 0.9239 -0.3827 -vn -0.8418 0.2066 -0.4987 -vn 1.0000 -0.0007 -0.0064 -vn 1.0000 -0.0004 -0.0047 -vn 1.0000 0.0013 -0.0051 -vn -0.8418 -0.2066 -0.4987 -vn -0.8680 -0.1900 0.4588 -vn -0.8680 -0.4588 0.1900 -vn -0.9846 0.0670 -0.1617 -vn 0.0915 -0.3811 0.9200 -vn 0.8623 0.4678 0.1938 -vn 0.3223 -0.8746 0.3623 -vn 0.0000 0.0000 -1.0000 -vn 0.6287 0.0000 -0.7776 -vn -0.0165 0.9238 0.3826 -vn 0.0915 -0.9200 0.3811 -vn 0.2182 0.9016 -0.3735 -vn 0.1948 -0.9808 0.0000 -vn -0.8418 -0.4987 -0.2066 -vn -0.8418 0.4987 -0.2066 -vn -0.9846 0.1617 -0.0670 -vn 0.8293 -0.5162 0.2138 -vn -0.0712 0.8983 -0.4336 -vn 0.1218 0.3643 0.9233 -vn -0.0007 0.8599 -0.5105 -vn -0.0022 0.8595 -0.5111 -vn 1.0000 -0.0009 0.0063 -vn 1.0000 -0.0004 0.0047 -vn 1.0000 0.0013 0.0051 -vn 0.0008 0.9233 -0.3841 -vn -0.0001 -0.9232 0.3843 -vn 0.0014 -0.3780 -0.9258 -vn 0.0019 -0.9695 0.2450 -vn -0.5510 -0.3187 -0.7712 -vn -0.9170 -0.1562 -0.3671 -vn 0.0048 -0.9190 -0.3942 -vn 0.0050 -0.9355 -0.3532 -vn 0.0017 -0.3780 -0.9258 -vn 0.8917 -0.1710 -0.4191 -vn -0.8914 -0.1765 -0.4174 -vn -0.0029 0.4287 -0.9035 -vn 0.0018 -0.3780 -0.9258 -vn 0.8493 -0.1946 -0.4907 -vn -0.8491 -0.1997 -0.4891 -vn -0.0031 0.4723 -0.8814 -vn -0.0034 0.5235 -0.8520 -vn 0.0050 -0.9531 -0.3028 -vn 0.9172 -0.1505 -0.3689 -vn -0.9919 0.1050 -0.0715 -vn -0.0018 0.8543 -0.5198 -vn 0.9959 -0.0250 -0.0874 -vn -0.9957 -0.0410 -0.0837 -vn 0.0024 -0.9722 0.2343 -vn 0.0007 -0.9722 0.2343 -vn 0.9905 0.1284 -0.0490 -vn -0.0023 0.8582 -0.5133 -vn 0.0026 -0.9715 0.2370 -vn 0.9976 -0.0694 0.0010 -vn 0.0000 -0.7129 -0.7012 -vn 0.9884 0.1326 -0.0741 -vn -0.9938 0.1009 -0.0476 -vn 0.0000 0.5505 -0.8349 -vn -0.9952 -0.0952 0.0245 -vn -0.2273 -0.8997 -0.3727 -vn -0.0182 0.9159 0.4009 -vn -0.0182 0.9159 -0.4009 -vn -0.2272 -0.8997 0.3727 -vn -0.1218 0.9170 0.3798 -vn -0.1970 -0.3752 -0.9058 -vn -0.1970 -0.3752 0.9058 -vn -0.1533 0.3782 -0.9130 +vn 1.0000 -0.0006 0.0069 +vn 0.0464 -0.8899 -0.4538 +vn 0.0000 -0.8684 -0.4959 +vn -0.0476 -0.3025 0.9520 +vn 0.0000 -0.4721 -0.8815 s off -f 1141/1847/614 1142/1848/614 1143/1849/614 1144/1850/614 -f 1145/1851/615 1146/1852/615 1147/1853/615 1148/1854/615 -f 1148/1854/616 1147/1853/616 1149/1855/616 1150/1856/616 -f 1151/1857/617 1152/1858/617 1153/1859/617 1154/1860/617 -f 1145/1851/618 1148/1854/618 1155/1861/618 1156/1862/618 -f 1142/1863/619 1157/1864/619 1158/1865/619 1159/1866/619 -f 1147/1853/620 1146/1852/620 1160/1867/620 1161/1868/620 -f 1162/1869/621 1163/1870/621 1164/1871/621 1165/1872/621 -f 1166/1873/622 1151/1857/622 1154/1860/622 1167/1874/622 -f 1166/1873/623 1168/1875/623 1169/1876/623 1170/1877/623 -f 1171/1878/624 1172/1879/624 1173/1880/624 1174/1881/624 -f 1172/1882/625 1152/1858/625 1175/1883/625 1173/1884/625 -f 1151/1857/626 1166/1873/626 1170/1877/626 1176/1885/626 -f 1168/1875/627 1163/1870/627 1177/1886/627 1169/1876/627 -f 1178/1887/614 1179/1888/614 1180/1889/614 1181/1890/614 -f 1182/1891/628 1183/1892/628 1184/1893/628 1185/1894/628 -f 1185/1894/629 1184/1893/629 1186/1895/629 1187/1896/629 -f 1340/1897/630 1220/1898/630 1199/1899/630 1194/1900/630 1196/1901/630 -f 1191/1902/631 1184/1893/631 1192/1903/631 1193/1904/631 -f 1316/1905/615 1326/1906/615 1319/1907/615 1188/1908/615 1190/1909/615 -f 1197/1910/632 1198/1911/632 1194/1912/632 1199/1913/632 1200/1914/632 -f 1201/1915/633 1202/1916/633 1203/1917/633 1204/1918/633 -f 1198/1911/634 1205/1919/634 1179/1920/634 1206/1921/634 1194/1912/634 -f 1180/1889/635 1179/1888/635 1205/1922/635 1207/1923/635 -f 1208/1924/636 1197/1910/636 1200/1914/636 1209/1925/636 1188/1926/636 -f 1210/1927/637 1211/1928/637 1212/1929/637 1213/1930/637 1214/1931/637 1156/1932/637 1155/1933/637 1215/1934/637 -f 1216/1935/638 1145/1851/638 1156/1862/638 1214/1936/638 -f 1211/1928/639 1212/1929/639 1207/1937/639 1205/1938/639 -f 1211/1939/640 1205/1940/640 1198/1941/640 1210/1942/640 -f 1155/1943/641 1208/1944/641 1193/1945/641 1156/1946/641 -f 1213/1947/642 1217/1948/642 1207/1949/642 1212/1950/642 -f 1218/1951/643 1219/1952/643 1200/1914/643 1199/1913/643 1220/1953/643 1221/1954/643 -f 1204/1918/644 1203/1917/644 1222/1955/644 1223/1956/644 -f 1201/1915/614 1224/1957/614 1225/1958/614 1202/1916/614 -f 1200/1914/645 1219/1952/645 1227/1959/645 1228/1960/645 1226/1961/645 1209/1925/645 -f 1230/1962/646 1161/1868/646 1231/1963/646 1232/1964/646 -f 1233/1965/647 1159/1966/647 1234/1967/647 1235/1968/647 -f 1153/1859/648 1236/1969/648 1237/1970/648 1238/1971/648 -f 1239/1972/649 1233/1965/649 1235/1968/649 1240/1973/649 -f 1241/1974/650 1167/1874/650 1242/1975/650 1243/1976/650 -f 1172/1879/651 1171/1878/651 1244/1977/651 1236/1978/651 -f 1149/1855/652 1147/1853/652 1161/1868/652 1230/1962/652 -f 1168/1875/653 1166/1873/653 1167/1874/653 1241/1974/653 -f 1152/1858/654 1172/1882/654 1236/1969/654 1153/1859/654 -f 1163/1870/655 1168/1875/655 1241/1974/655 1164/1871/655 -f 1143/1849/656 1142/1848/656 1159/1966/656 1233/1965/656 -f 1231/1963/657 1245/1979/657 1243/1976/657 1242/1975/657 -f 1234/1980/658 1246/1981/658 1238/1971/658 1237/1970/658 -f 1235/1968/659 1234/1967/659 1237/1982/659 1247/1983/659 -f 1159/1866/660 1158/1865/660 1246/1981/660 1234/1980/660 -f 1161/1868/661 1160/1867/661 1245/1979/661 1231/1963/661 -f 1154/1860/662 1153/1859/662 1238/1971/662 1248/1984/662 -f 1164/1871/663 1241/1974/663 1243/1976/663 1249/1985/663 -f 1236/1978/664 1244/1977/664 1247/1983/664 1237/1982/664 -f 1250/1986/665 1251/1987/665 1252/1988/665 1253/1989/665 -f 1173/1884/666 1175/1883/666 1254/1990/666 1251/1991/666 -f 1174/1881/666 1173/1880/666 1251/1987/666 1250/1986/666 -f 1175/1883/666 1176/1885/666 1255/1992/666 1254/1990/666 -f 1170/1877/666 1169/1876/666 1256/1993/666 1257/1994/666 -f 1169/1876/666 1177/1886/666 1258/1995/666 1256/1993/666 -f 1259/1996/667 1260/1997/667 1261/1998/667 1262/1999/667 -f 1257/1994/668 1256/1993/668 1263/2000/668 1264/2001/668 -f 1254/1990/669 1255/1992/669 1260/1997/669 1259/1996/669 -f 1255/1992/670 1257/1994/670 1264/2001/670 1260/1997/670 -f 1251/1991/671 1254/1990/671 1259/1996/671 1252/2002/671 -f 1265/2003/666 1266/2004/666 1267/2005/666 1268/2006/666 -f 1260/1997/672 1264/2001/672 1265/2003/672 1261/1998/672 -f 1252/2002/673 1259/1996/673 1262/1999/673 1269/2007/673 -f 1253/1989/674 1252/1988/674 1269/2008/674 1270/2009/674 -f 1263/2000/675 1271/2010/675 1272/2011/675 1266/2004/675 -f 1264/2001/676 1263/2000/676 1266/2004/676 1265/2003/676 -f 1269/2007/666 1262/1999/666 1273/2012/666 1274/2013/666 -f 1270/2009/666 1269/2008/666 1274/2014/666 1275/2015/666 -f 1266/2004/666 1272/2011/666 1276/2016/666 1267/2005/666 -f 1277/2017/677 1278/2018/677 1279/2019/677 1280/2020/677 -f 1281/2021/678 1268/2006/678 1282/2022/678 1283/2023/678 -f 1275/2015/679 1274/2014/679 1277/2024/679 1284/2025/679 -f 1267/2005/680 1276/2016/680 1285/2026/680 1286/2027/680 -f 1276/2016/681 1287/2028/681 1288/2029/681 1285/2026/681 -f 1268/2006/682 1267/2005/682 1286/2027/682 1282/2022/682 -f 1284/2025/614 1277/2024/614 1280/2030/614 1291/2031/614 -f 1286/2027/629 1285/2026/629 1294/2032/629 1295/2033/629 -f 1282/2022/615 1286/2027/615 1295/2033/615 1296/2034/615 -f 1292/2035/615 1297/2036/615 1298/2037/615 1293/2038/615 -f 1298/2037/616 1299/2039/616 1289/2040/616 1293/2038/616 -f 1300/2041/614 1301/2042/614 1302/2043/614 1303/2044/614 -f 1304/2045/628 1305/2046/628 1306/2047/628 1307/2048/628 -f 1307/2048/629 1306/2047/629 1297/2049/629 1292/2050/629 -f 1299/2051/666 1298/2052/666 1297/2053/666 1306/2054/666 1305/2055/666 1301/2056/666 1300/2057/666 1308/2058/666 -f 1309/2059/666 1310/2060/666 1311/2061/666 1312/2062/666 -f 1325/2063/677 1317/2064/677 1312/2062/677 1311/2065/677 1324/2066/677 -f 1188/1926/683 1209/1925/683 1226/1961/683 1189/2067/683 1190/2068/683 -f 1315/2069/684 1505/2070/684 1504/2071/684 1327/2072/684 1323/2073/684 -f 1208/2074/685 1188/1908/685 1319/1907/685 1191/2075/685 1193/2076/685 -f 1218/2077/686 1317/2078/686 1318/2079/686 1506/2080/686 1219/1952/686 -f 1325/2063/677 1324/2066/677 1229/2081/677 1206/2082/677 1179/2083/677 1178/2084/677 -f 1191/2075/615 1319/1907/615 1326/1906/615 1322/2085/615 1323/2073/615 1327/2072/615 -f 1293/2086/666 1289/2087/666 1290/2088/666 1291/2089/666 -f 1303/2090/677 1328/2091/677 1308/2092/677 1300/2093/677 -f 1321/2094/687 1322/2085/687 1329/2095/687 1330/2096/687 -f 1331/2097/666 1313/2098/666 1321/2094/666 1330/2096/666 -f 1228/2099/688 1332/2100/688 1222/1955/688 1226/2101/688 -f 1222/1955/689 1332/2100/689 1333/2102/689 1334/2103/689 -f 1335/2104/666 1287/2028/666 1276/2105/666 1272/2106/666 -f 1282/2107/616 1296/2108/616 1336/2109/616 1283/2023/616 -f 1228/2099/690 1314/2110/690 1337/2111/690 1332/2100/690 -f 1196/2112/637 1338/2113/637 1339/2114/637 1340/2115/637 -f 1210/1942/691 1198/1941/691 1197/2116/691 1215/2117/691 -f 1196/2112/637 1195/2118/637 1341/2119/637 1338/2113/637 -f 1158/1865/692 1230/1962/692 1232/1964/692 1246/1981/692 -f 1288/2029/693 1284/2025/693 1291/2031/693 1290/2120/693 -f 1229/2121/694 1342/2122/694 1341/2119/694 1195/2118/694 -f 1334/2103/695 1220/2123/695 1340/2115/695 1339/2114/695 -f 1203/1917/696 1189/2124/696 1226/1961/696 1222/1955/696 -f 1203/1917/637 1202/1916/637 1190/2068/637 1189/2124/637 -f 1225/1958/637 1316/2125/637 1190/2126/637 1202/1916/637 -f 1326/2127/697 1316/2125/697 1225/1958/697 1343/2128/697 -f 1329/2095/698 1322/2085/698 1326/2127/698 1343/2128/698 -f 1229/2121/699 1324/2129/699 1344/2130/699 1342/2122/699 -f 1345/2131/666 1346/2132/666 1258/2133/666 1177/2134/666 -f 1347/2135/700 1348/2136/700 1339/2114/700 1338/2113/700 -f 1348/2136/701 1349/2137/701 1334/2103/701 1339/2114/701 -f 1347/2135/629 1338/2113/629 1341/2119/629 1350/2138/629 -f 1235/2139/702 1247/2140/702 1351/2141/702 1240/1973/702 -f 1250/2142/703 1253/2143/703 1352/2144/703 1346/2132/703 -f 1273/2145/704 1278/2146/704 1277/2147/704 1274/2148/704 -f 1288/2029/628 1290/2120/628 1294/2149/628 1285/2150/628 -f 1353/2151/705 1350/2138/705 1341/2119/705 1342/2122/705 -f 1334/2103/706 1349/2137/706 1223/1956/706 1222/1955/706 -f 1162/1869/707 1165/1872/707 1244/2152/707 1171/2153/707 -f 1171/2153/708 1174/2154/708 1345/2131/708 1162/1869/708 -f 1156/2155/709 1193/2156/709 1192/2157/709 1214/2158/709 -f 1213/1947/710 1214/2159/710 1192/2160/710 1217/1948/710 -f 1165/1872/711 1351/2141/711 1247/2140/711 1244/2152/711 -f 1258/2133/712 1271/2161/712 1263/2162/712 1256/2163/712 -f 1262/1999/666 1261/1998/666 1281/2021/666 1273/2012/666 -f 1311/2061/713 1310/2060/713 1344/2130/713 1324/2129/713 -f 1354/2164/714 1355/2165/714 1356/2166/714 1357/2167/714 1358/2168/714 1359/2169/714 1224/1957/714 1201/1915/714 1204/1918/714 1223/1956/714 1349/2137/714 1348/2136/714 1347/2135/714 1350/2138/714 1353/2151/714 -f 1345/2131/666 1174/1881/666 1250/1986/666 1346/2132/666 -f 1246/1981/715 1232/1964/715 1248/1984/715 1238/1971/715 -f 1359/2169/716 1343/2128/716 1225/1958/716 1224/1957/716 -f 1216/2170/717 1214/2171/717 1213/2172/717 1360/2173/717 -f 1352/2144/718 1335/2104/718 1272/2106/718 1271/2161/718 -f 1265/2174/666 1268/2175/666 1281/2021/666 1261/1998/666 -f 1150/1856/719 1215/2176/719 1155/2177/719 1148/2178/719 -f 1361/2179/720 1362/2180/720 1363/2181/720 1337/2111/720 -f 1361/2179/721 1337/2111/721 1331/2097/721 1364/2182/721 -f 1364/2182/722 1331/2097/722 1330/2096/722 1365/2183/722 -f 1366/2184/723 1365/2183/723 1330/2096/723 1329/2095/723 -f 1363/2181/724 1362/2180/724 1367/2185/724 1309/2059/724 -f 1309/2059/725 1367/2185/725 1368/2186/725 1310/2060/725 -f 1310/2060/726 1368/2186/726 1369/2187/726 1344/2130/726 -f 1144/1850/693 1143/1849/693 1370/2188/693 1360/2173/693 -f 1370/2188/727 1143/1849/727 1233/1965/727 1239/1972/727 -f 1163/1870/728 1162/1869/728 1345/2131/728 1177/1886/728 -f 1231/2189/729 1242/2190/729 1248/1984/729 1232/1964/729 -f 1152/1858/730 1151/1857/730 1176/1885/730 1175/1883/730 -f 1165/1872/731 1164/1871/731 1249/1985/731 1351/2141/731 -f 1352/2144/732 1253/1989/732 1270/2009/732 1335/2104/732 -f 1335/2104/666 1270/2009/666 1275/2015/666 1287/2028/666 -f 1287/2028/733 1275/2015/733 1284/2025/733 1288/2029/733 -f 1180/2191/734 1207/2192/734 1217/2193/734 1183/1892/734 -f 1157/1864/735 1149/1855/735 1230/1962/735 1158/1865/735 -f 1328/2194/666 1294/2195/666 1290/2088/666 1289/2087/666 -f 1367/2185/736 1362/2180/736 1361/2179/736 1364/2182/736 1365/2183/736 1366/2184/736 1371/2196/736 1372/2197/736 1373/2198/736 1374/2199/736 1375/2200/736 1369/2187/736 1368/2186/736 -f 1376/2201/737 1371/2196/737 1366/2184/737 1329/2095/737 -f 1377/2202/738 1344/2130/738 1369/2187/738 1375/2200/738 -f 1354/2164/739 1353/2151/739 1342/2122/739 1378/2203/739 -f 1358/2168/740 1379/2204/740 1343/2128/740 1359/2169/740 -f 1342/2122/741 1344/2130/741 1377/2202/741 1378/2203/741 -f 1343/2128/742 1379/2204/742 1376/2201/742 1329/2095/742 -f 1373/2198/743 1380/2205/743 1381/2206/743 1374/2199/743 -f 1374/2199/744 1381/2206/744 1377/2202/744 1375/2200/744 -f 1372/2197/745 1371/2196/745 1376/2201/745 1382/2207/745 -f 1356/2166/746 1355/2165/746 1383/2208/746 1384/2209/746 -f 1356/2166/747 1384/2209/747 1385/2210/747 1357/2167/747 -f 1357/2167/748 1385/2210/748 1379/2204/748 1358/2168/748 -f 1379/2204/749 1385/2210/749 1382/2207/749 1376/2201/749 -f 1380/2205/750 1382/2207/750 1385/2210/750 1384/2209/750 -f 1380/2205/751 1384/2209/751 1383/2208/751 1381/2206/751 -f 1378/2203/752 1377/2202/752 1381/2206/752 1383/2208/752 -f 1386/2211/637 1187/2212/637 1387/2213/637 1388/2214/637 -f 1191/2075/629 1327/2072/629 1386/2215/629 1389/2216/629 1390/2217/629 1391/2218/629 -f 1184/1893/629 1191/1902/629 1391/2219/629 1186/1895/629 -f 1327/2220/629 1185/2221/629 1187/2212/629 1386/2211/629 -f 1392/2222/753 1393/2223/754 1394/2224/754 1395/2225/754 -f 1391/2218/616 1390/2217/616 1393/2223/616 1392/2222/755 -f 1187/1896/693 1186/1895/693 1396/2226/756 1397/2227/693 1398/2228/693 1387/2229/693 -f 1399/2230/757 1400/2231/757 1401/2232/757 1402/2233/757 -f 1387/2229/758 1398/2228/758 1403/2234/758 1404/2235/758 1405/2236/758 1406/2237/758 1407/2238/758 1408/2239/758 1400/2231/758 1399/2230/758 -f 1388/2214/759 1387/2213/759 1399/2240/759 1402/2241/759 -f 1408/2239/760 1410/2242/760 1411/2243/760 1412/2244/760 -f 1410/2242/757 1408/2239/757 1407/2238/757 1413/2245/757 -f 1414/2246/761 1413/2247/761 1415/2248/761 1416/2249/761 -f 1414/2250/757 1406/2237/757 1405/2236/757 1417/2251/757 -f 1418/2252/762 1417/2253/762 1419/2254/762 1420/2255/762 -f 1418/2256/757 1404/2235/757 1403/2234/757 1421/2257/757 -f 1415/2258/763 1422/2259/763 1423/2260/763 1416/2261/763 -f 1413/2245/764 1407/2238/764 1422/2259/764 1415/2258/764 -f 1406/2237/765 1414/2250/765 1416/2261/765 1423/2260/765 -f 1407/2238/766 1406/2237/766 1423/2260/766 1422/2259/766 -f 1419/2262/767 1424/2263/767 1425/2264/767 1420/2265/767 -f 1417/2251/768 1405/2236/768 1424/2263/768 1419/2262/768 -f 1404/2235/769 1418/2256/769 1420/2265/769 1425/2264/769 -f 1405/2236/770 1404/2235/770 1425/2264/770 1424/2263/770 -f 1426/2266/763 1427/2267/763 1412/2244/763 1411/2243/763 -f 1400/2231/771 1408/2239/771 1412/2244/771 1427/2267/771 -f 1410/2268/772 1401/2269/772 1426/2270/772 1411/2271/772 -f 1401/2232/773 1400/2231/773 1427/2267/773 1426/2266/773 -f 1394/2224/774 1393/2223/774 1428/2272/774 1429/2273/774 -f 1421/2274/775 1430/2275/775 1388/2276/775 1402/2277/775 1401/2269/775 1410/2268/775 1413/2247/775 1414/2246/775 1417/2253/775 1418/2252/775 -f 1430/2275/616 1389/2216/616 1386/2215/616 1388/2276/616 -f 1421/2257/776 1403/2234/776 1431/2278/776 1432/2279/776 -f 1433/2280/777 1394/2281/777 1429/2282/777 1434/2283/777 -f 1394/2281/757 1433/2280/757 1409/2284/757 1395/2285/757 -f 1433/2280/778 1397/2227/778 1396/2226/779 1409/2284/778 -f 1389/2216/780 1430/2275/780 1435/2286/780 1436/2287/780 -f 1432/2279/781 1431/2278/781 1434/2283/781 1429/2282/781 -f 1429/2273/782 1428/2272/782 1435/2286/782 1432/2288/782 -f 1428/2272/616 1437/2289/616 1436/2287/616 1435/2286/616 -f 1431/2278/783 1438/2290/783 1439/2291/783 1434/2283/783 -f 1403/2234/784 1398/2228/784 1438/2290/784 1431/2278/784 -f 1398/2228/785 1397/2227/785 1439/2291/785 1438/2290/785 -f 1430/2275/786 1421/2274/786 1432/2288/786 1435/2286/786 -f 1393/2223/787 1390/2217/787 1437/2289/787 1428/2272/787 -f 1390/2217/788 1389/2216/788 1436/2287/788 1437/2289/788 -f 1397/2227/789 1433/2280/789 1434/2283/789 1439/2291/789 -f 1145/2292/629 1216/2170/629 1440/2293/629 1146/2294/629 -f 1141/2295/677 1441/2296/677 1157/2297/677 1142/2298/677 -f 1441/2296/790 1150/1856/790 1149/1855/790 1157/2297/790 -f 1141/2295/791 1211/2299/791 1210/2300/791 1441/2296/791 -f 1327/2301/629 1185/2302/629 1184/2303/629 1191/2304/629 -f 1182/1891/693 1181/2305/693 1180/2191/693 1183/1892/693 -f 1181/2305/614 1442/2306/614 1443/2307/614 1180/2191/614 -f 1456/2308/792 1469/2309/793 1453/2310/793 1452/2311/794 1449/2312/793 1443/2307/793 -f 1144/2313/795 1212/2314/795 1211/2299/795 1141/2295/795 -f 1444/2315/796 1445/2316/796 1245/2317/796 1160/2318/796 -f 1239/1972/797 1240/1973/797 1445/2316/797 1444/2315/797 -f 1440/2293/798 1444/2315/798 1160/2318/798 1146/2294/798 -f 1445/2316/799 1249/2319/799 1243/2320/799 1245/2317/799 -f 1154/1860/800 1248/1984/800 1242/2190/800 1167/2321/800 -f 1170/2322/666 1257/2323/666 1255/1992/666 1176/1885/666 -f 1281/2021/801 1283/2023/801 1278/2146/801 1273/2145/801 -f 1308/2092/790 1328/2091/790 1289/2040/790 1299/2039/790 -f 1304/2045/693 1302/2324/693 1301/2325/693 1305/2046/693 -f 1337/2111/666 1314/2110/666 1313/2098/666 1331/2097/666 -f 1363/2181/666 1309/2059/666 1312/2062/666 1320/2326/666 -f 1221/1954/802 1220/1953/802 1334/2103/802 1333/2102/802 -f 1278/2018/790 1283/2023/790 1336/2109/790 1279/2019/790 -f 1221/1954/803 1333/2102/803 1363/2181/803 1320/2326/803 -f 1155/1943/804 1215/2117/804 1197/2116/804 1208/1944/804 -f 1445/2327/805 1240/1973/805 1351/2141/805 1249/1985/805 -f 1258/1995/806 1346/2132/806 1352/2144/806 1271/2010/806 -f 1333/2102/807 1332/2100/807 1337/2111/807 1363/2181/807 -f 1144/1850/808 1360/2173/808 1213/2172/808 1212/2328/808 -f 1150/1856/809 1441/2329/809 1210/2330/809 1215/2176/809 -f 1216/2170/628 1360/2173/628 1370/2188/628 1440/2293/628 -f 1370/2188/810 1239/1972/810 1444/2315/810 1440/2293/810 -f 1184/1893/811 1183/1892/811 1217/2193/811 1192/1903/811 -f 1373/2198/812 1372/2197/812 1382/2207/812 1380/2205/812 -f 1355/2165/813 1354/2164/813 1378/2203/813 1383/2208/813 -f 1446/2331/637 1447/2332/637 1448/2333/637 1442/2334/637 -f 1179/1920/614 1449/2335/614 1450/2336/614 1451/2337/614 1446/2338/614 1178/2339/614 -f 1180/2191/614 1443/2307/614 1449/2312/614 1179/2083/614 -f 1178/2340/614 1446/2331/614 1442/2334/614 1181/2341/614 -f 1452/2342/814 1453/2343/815 1454/2344/815 1455/2345/815 -f 1392/2346/816 1395/2285/817 1409/2284/817 1396/2226/818 1186/1895/817 1391/2219/817 -f 1449/2335/790 1452/2342/819 1455/2345/790 1450/2336/790 -f 1442/2306/628 1448/2347/628 1457/2348/628 1458/2349/628 1456/2308/820 1443/2307/628 -f 1459/2350/821 1460/2351/821 1461/2352/821 1462/2353/821 -f 1448/2347/822 1459/2350/822 1462/2353/822 1463/2354/822 1464/2355/822 1465/2356/822 1466/2357/822 1467/2358/822 1468/2359/822 1457/2348/822 -f 1447/2332/823 1460/2360/823 1459/2361/823 1448/2333/823 -f 1463/2354/824 1470/2362/824 1471/2363/824 1472/2364/824 -f 1472/2364/821 1473/2365/821 1464/2355/821 1463/2354/821 -f 1474/2366/825 1475/2367/825 1476/2368/825 1473/2369/825 -f 1474/2370/821 1477/2371/821 1466/2357/821 1465/2356/821 -f 1478/2372/826 1479/2373/826 1480/2374/826 1477/2375/826 -f 1478/2376/821 1481/2377/821 1468/2359/821 1467/2358/821 -f 1476/2378/827 1475/2379/827 1482/2380/827 1483/2381/827 -f 1473/2365/828 1476/2378/828 1483/2381/828 1464/2355/828 -f 1465/2356/829 1482/2380/829 1475/2379/829 1474/2370/829 -f 1464/2355/830 1483/2381/830 1482/2380/830 1465/2356/830 -f 1480/2382/831 1479/2383/831 1484/2384/831 1485/2385/831 -f 1477/2371/832 1480/2382/832 1485/2385/832 1466/2357/832 -f 1467/2358/833 1484/2384/833 1479/2383/833 1478/2376/833 -f 1466/2357/834 1485/2385/834 1484/2384/834 1467/2358/834 -f 1486/2386/827 1471/2363/827 1470/2362/827 1487/2387/827 -f 1462/2353/835 1487/2387/835 1470/2362/835 1463/2354/835 -f 1472/2388/836 1471/2389/836 1486/2390/836 1461/2391/836 -f 1461/2352/837 1486/2386/837 1487/2387/837 1462/2353/837 -f 1454/2344/838 1488/2392/838 1489/2393/838 1455/2345/838 -f 1481/2394/839 1478/2372/839 1477/2375/839 1474/2366/839 1473/2369/839 1472/2388/839 1461/2391/839 1460/2395/839 1447/2396/839 1490/2397/839 -f 1490/2397/790 1447/2396/790 1446/2338/790 1451/2337/790 -f 1481/2377/840 1491/2398/840 1492/2399/840 1468/2359/840 -f 1493/2400/841 1494/2401/841 1488/2402/841 1454/2403/841 -f 1454/2403/821 1453/2310/821 1469/2309/821 1493/2400/821 -f 1493/2400/842 1469/2309/842 1456/2308/843 1458/2349/842 -f 1451/2337/844 1495/2404/844 1496/2405/844 1490/2397/844 -f 1491/2398/821 1488/2402/821 1494/2401/821 1492/2399/821 -f 1488/2392/845 1491/2406/845 1496/2405/845 1489/2393/845 -f 1489/2393/790 1496/2405/790 1495/2404/790 1497/2407/790 -f 1492/2399/846 1494/2401/846 1498/2408/846 1499/2409/846 -f 1468/2359/847 1492/2399/847 1499/2409/847 1457/2348/847 -f 1457/2348/848 1499/2409/848 1498/2408/848 1458/2349/848 -f 1490/2397/849 1496/2405/849 1491/2406/849 1481/2394/849 -f 1455/2345/850 1489/2393/850 1497/2407/850 1450/2336/850 -f 1450/2336/851 1497/2407/851 1495/2404/851 1451/2337/851 -f 1458/2349/852 1498/2408/852 1494/2401/852 1493/2400/852 -f 1318/2410/637 1500/2411/637 1501/2412/637 1502/2413/637 1503/2414/637 1504/2415/637 1505/2416/637 1506/2417/637 -f 1181/2305/853 1182/1891/853 1502/2418/853 1501/2419/853 -f 1314/2110/854 1228/2099/854 1227/2420/854 1315/2069/854 1313/2098/854 -f 1221/2421/855 1320/2422/855 1312/2423/855 1317/2078/855 1218/2077/855 -f 1182/1891/856 1185/1894/856 1503/2424/856 1502/2418/856 -f 1315/2069/857 1227/1959/857 1219/1952/857 1506/2080/857 1505/2070/857 -f 1178/1887/858 1181/1890/858 1501/2425/858 1500/2426/858 -f 1185/2221/859 1327/2220/859 1504/2415/859 1503/2414/859 -f 1325/2063/860 1178/2084/860 1500/2427/860 1318/2428/860 1317/2064/860 -f 1194/1912/677 1206/1921/677 1229/2121/677 1195/2118/677 1196/2429/677 -f 1304/2430/666 1336/2431/666 1296/2432/666 1302/2433/666 -f 1336/2431/666 1304/2430/666 1307/2434/666 1279/2435/666 -f 1279/2435/666 1307/2434/666 1292/2436/666 1280/2437/666 -f 1280/2437/666 1292/2436/666 1293/2086/666 1291/2089/666 -f 1303/2438/666 1295/2439/666 1294/2195/666 1328/2194/666 -f 1295/2440/666 1303/2441/666 1302/2442/666 1296/2443/666 -f 1322/2085/615 1321/2094/615 1313/2098/615 1315/2069/615 1323/2073/615 +f 1141/2002/610 1142/2003/610 1143/2004/610 1144/2005/610 +f 1145/2006/611 1146/2007/611 1147/2008/611 1148/2009/611 +f 1148/2009/612 1147/2008/612 1149/2010/612 1150/2011/612 +f 1151/2012/613 1152/2013/613 1153/2014/613 1154/2015/613 +f 1145/2006/614 1148/2009/614 1155/2016/614 1156/2017/614 +f 1142/2018/615 1157/2019/615 1158/2020/615 1159/2021/615 +f 1147/2022/616 1146/2023/616 1160/2024/616 1161/2025/616 +f 1162/2026/617 1163/2027/617 1164/2028/617 1165/2029/617 +f 1166/2030/618 1151/2031/618 1154/2032/618 1167/2033/618 +f 1166/2034/619 1168/2035/619 1169/2036/619 1170/2037/619 +f 1171/2038/620 1172/2039/620 1173/2040/620 1174/2041/620 +f 1172/2042/621 1152/2043/621 1175/2044/621 1173/2045/621 +f 1151/2031/622 1166/2030/622 1170/2046/622 1176/2047/622 +f 1168/2048/623 1163/2049/623 1177/2050/623 1169/2051/623 +f 1182/2052/624 1183/2053/624 1184/2054/624 1185/2055/624 +f 1185/2055/625 1184/2054/625 1186/2056/625 1187/2057/625 +f 1307/2058/626 1221/2059/626 1214/2060/626 +f 1191/2061/627 1184/2062/627 1192/2063/627 1193/2064/627 +f 1222/2065/628 1179/2066/628 1178/2067/628 1315/2068/628 +f 1197/2069/629 1198/2070/629 1194/2071/629 1199/2072/629 +f 1338/2073/630 1329/2074/630 1337/2075/630 +f 1198/2076/631 1203/2077/631 1179/2078/631 1194/2071/631 +f 1180/2079/632 1179/2078/632 1203/2080/632 1204/2081/632 +f 1205/2082/633 1197/2083/633 1199/2072/633 1188/2084/633 +f 1212/2085/634 1145/2006/634 1156/2086/634 1210/2087/634 +f 1207/2088/635 1208/2089/635 1204/2081/635 1203/2080/635 +f 1207/2090/636 1203/2077/636 1198/2076/636 1206/2091/636 +f 1155/2016/637 1205/2092/637 1193/2093/637 1156/2017/637 +f 1209/2094/638 1213/2095/638 1204/2096/638 1208/2097/638 +f 1195/2098/628 1179/2066/628 1222/2065/628 +f 1333/2099/639 1219/2100/639 1345/2101/639 +f 1219/2100/640 1201/2102/640 1200/2103/640 +f 1194/2104/628 1179/2066/628 1195/2098/628 1196/2105/628 +f 1223/2106/641 1161/2107/641 1224/2108/641 1225/2109/641 +f 1226/2110/642 1159/2111/642 1227/2112/642 1228/2113/642 +f 1153/2114/643 1229/2115/643 1230/2116/643 1231/2117/643 +f 1232/2118/644 1226/2119/644 1228/2113/644 1233/2120/644 +f 1234/2121/645 1167/2122/645 1235/2123/645 1236/2124/645 +f 1172/2039/646 1171/2038/646 1237/2125/646 1229/2126/646 +f 1149/2127/647 1147/2128/647 1161/2107/647 1223/2106/647 +f 1168/2035/648 1166/2034/648 1167/2122/648 1234/2121/648 +f 1152/2043/649 1172/2042/649 1229/2115/649 1153/2114/649 +f 1163/2049/650 1168/2048/650 1234/2129/650 1164/2130/650 +f 1143/2131/651 1142/2132/651 1159/2111/651 1226/2110/651 +f 1224/2108/652 1238/2133/652 1236/2124/652 1235/2123/652 +f 1227/2112/653 1239/2134/653 1231/2117/653 1230/2116/653 +f 1228/2113/654 1227/2112/654 1230/2116/654 1240/2135/654 +f 1159/2021/655 1158/2020/655 1239/2134/655 1227/2112/655 +f 1161/2025/656 1160/2024/656 1238/2133/656 1224/2108/656 +f 1154/2015/657 1153/2014/657 1231/2117/657 1241/2136/657 +f 1164/2130/658 1234/2129/658 1236/2124/658 1242/2137/658 +f 1229/2126/659 1237/2125/659 1240/2135/659 1230/2116/659 +f 1243/2138/660 1244/2139/660 1245/2140/660 1246/2141/660 +f 1173/2045/661 1175/2044/661 1247/2142/661 1244/2143/661 +f 1174/2041/661 1173/2040/661 1244/2139/661 1243/2138/661 +f 1175/2144/661 1176/2145/661 1248/2146/661 1247/2147/661 +f 1170/2037/661 1169/2036/661 1249/2148/661 1250/2149/661 +f 1169/2051/661 1177/2050/661 1251/2150/661 1249/2151/661 +f 1252/2152/662 1253/2153/662 1254/2154/662 1255/2155/662 +f 1250/2149/663 1249/2148/663 1256/2156/663 1257/2157/663 +f 1247/2147/664 1248/2146/664 1253/2153/664 1252/2152/664 +f 1248/2158/665 1250/2159/665 1257/2160/665 1253/2161/665 +f 1244/2143/666 1247/2142/666 1252/2162/666 1245/2163/666 +f 1258/2164/661 1259/2165/661 1260/2166/661 1261/2167/661 +f 1253/2161/667 1257/2160/667 1258/2168/667 1254/2169/667 +f 1245/2163/668 1252/2162/668 1255/2170/668 1262/2171/668 +f 1246/2141/669 1245/2140/669 1262/2172/669 1263/2173/669 +f 1256/2174/670 1264/2175/670 1265/2176/670 1259/2177/670 +f 1257/2157/671 1256/2156/671 1259/2165/671 1258/2164/671 +f 1262/2171/661 1255/2170/661 1266/2178/661 1267/2179/661 +f 1263/2173/661 1262/2172/661 1267/2180/661 1268/2181/661 +f 1259/2177/661 1265/2176/661 1269/2182/661 1260/2183/661 +f 1270/2184/628 1271/2185/628 1272/2186/628 1273/2187/628 +f 1274/2188/672 1261/2189/672 1275/2190/672 1276/2191/672 +f 1268/2181/673 1267/2180/673 1270/2192/673 1277/2193/673 +f 1260/2183/674 1269/2182/674 1278/2194/674 1279/2195/674 +f 1269/2196/675 1280/2197/675 1281/2198/675 1278/2199/675 +f 1261/2167/676 1260/2166/676 1279/2200/676 1275/2201/676 +f 1277/2193/610 1270/2192/610 1273/2202/610 1284/2203/610 +f 1279/2195/625 1278/2194/625 1287/2204/625 1288/2205/625 +f 1275/2201/611 1279/2200/611 1288/2206/611 1289/2207/611 +f 1285/2208/611 1290/2209/611 1291/2210/611 1286/2211/611 +f 1291/2210/612 1292/2212/612 1282/2213/612 1286/2211/612 +f 1293/2214/610 1294/2215/610 1295/2216/610 1296/2217/610 +f 1297/2218/624 1298/2219/624 1299/2220/624 1300/2221/624 +f 1300/2221/625 1299/2220/625 1290/2209/625 1285/2208/625 +f 1292/2222/661 1291/2223/661 1290/2224/661 1299/2225/661 1298/2226/661 1294/2227/661 1293/2228/661 1301/2229/661 +f 1302/2230/661 1303/2231/661 1304/2232/661 1305/2233/661 +f 1216/2234/677 1214/2060/677 1199/2235/677 1215/2236/677 +f 1191/2237/611 1188/2238/611 1190/2239/611 1309/2240/611 +f 1308/2241/678 1433/2242/678 1432/2243/678 1317/2244/678 +f 1205/2092/679 1188/2084/679 1191/2061/679 1193/2093/679 +f 1214/2060/680 1310/2245/680 1311/2246/680 1434/2247/680 +f 1315/2068/628 1178/2067/628 1304/2248/628 +f 1312/2249/681 1305/2250/681 1310/2245/681 1214/2060/681 +f 1286/2251/661 1282/2252/661 1283/2253/661 1284/2254/661 +f 1296/2217/628 1318/2255/628 1301/2256/628 1293/2214/628 +f 1313/2257/682 1314/2258/682 1319/2259/682 1320/2260/682 +f 1321/2261/661 1306/2262/661 1313/2257/661 1320/2260/661 +f 1221/2263/683 1322/2264/683 1217/2265/683 1220/2266/683 +f 1217/2267/684 1322/2268/684 1323/2269/684 1324/2270/684 +f 1325/2271/661 1280/2197/661 1269/2196/661 1265/2272/661 +f 1275/2190/612 1289/2273/612 1326/2274/612 1276/2191/612 +f 1221/2263/685 1307/2275/685 1327/2276/685 1322/2264/685 +f 1196/2277/686 1328/2278/686 1329/2279/686 1330/2280/686 +f 1206/2281/687 1198/2070/687 1197/2069/687 1211/2282/687 +f 1196/2283/686 1195/2284/686 1331/2285/686 1328/2286/686 +f 1158/2287/688 1223/2288/688 1225/2109/688 1239/2134/688 +f 1281/2289/689 1277/2290/689 1284/2254/689 1283/2253/689 +f 1222/2291/690 1332/2292/690 1331/2285/690 1195/2284/690 +f 1324/2293/691 1215/2294/691 1330/2280/691 1329/2279/691 +f 1202/2295/692 1189/2296/692 1220/2266/692 1217/2265/692 +f 1202/2295/686 1201/2297/686 1190/2298/686 1189/2296/686 +f 1219/2299/686 1309/2300/686 1190/2301/686 1201/2302/686 +f 1316/2303/693 1309/2300/693 1219/2299/693 1333/2304/693 +f 1319/2259/694 1314/2258/694 1316/2303/694 1333/2304/694 +f 1222/2291/695 1315/2305/695 1334/2306/695 1332/2292/695 +f 1335/2307/661 1336/2308/661 1251/2309/661 1177/2310/661 +f 1200/2103/696 1345/2101/696 1219/2100/696 +f 1361/2311/697 1333/2099/697 1345/2101/697 +f 1331/2312/698 1332/2313/698 1341/2314/698 +f 1228/2113/699 1240/2135/699 1339/2315/699 1233/2120/699 +f 1243/2316/700 1246/2317/700 1340/2318/700 1336/2319/700 +f 1266/2178/701 1271/2185/701 1270/2184/701 1267/2179/701 +f 1281/2198/624 1283/2320/624 1287/2321/624 1278/2199/624 +f 1360/2322/702 1341/2314/702 1332/2313/702 +f 1324/2270/703 1338/2073/703 1218/2323/703 1217/2267/703 +f 1162/2324/704 1165/2325/704 1237/2326/704 1171/2327/704 +f 1171/2327/705 1174/2328/705 1335/2329/705 1162/2324/705 +f 1156/2086/706 1193/2064/706 1192/2063/706 1210/2087/706 +f 1209/2330/707 1210/2331/707 1192/2332/707 1213/2333/707 +f 1165/2325/708 1339/2315/708 1240/2135/708 1237/2326/708 +f 1251/2150/709 1264/2175/709 1256/2174/709 1249/2151/709 +f 1255/2155/661 1254/2154/661 1274/2334/661 1266/2335/661 +f 1304/2232/710 1303/2231/710 1334/2306/710 1315/2305/710 +f 1341/2336/711 1342/2337/711 1343/2338/711 1344/2339/711 1345/2340/711 1200/2341/711 1218/2342/711 1338/2343/711 1337/2344/711 +f 1335/2329/661 1174/2328/661 1243/2316/661 1336/2319/661 +f 1239/2134/712 1225/2109/712 1241/2136/712 1231/2117/712 +f 1341/2314/713 1337/2075/713 1331/2312/713 +f 1212/2085/714 1210/2331/714 1209/2330/714 1346/2345/714 +f 1340/2346/715 1325/2271/715 1265/2272/715 1264/2347/715 +f 1258/2168/661 1261/2189/661 1274/2188/661 1254/2169/661 +f 1150/2011/716 1211/2348/716 1155/2349/716 1148/2009/716 +f 1347/2350/717 1348/2351/717 1349/2352/717 1327/2353/717 +f 1347/2350/718 1327/2353/718 1321/2354/718 1350/2355/718 +f 1302/2356/719 1351/2357/719 1303/2358/719 +f 1357/2359/720 1334/2360/720 1303/2358/720 +f 1349/2352/721 1348/2351/721 1351/2357/721 1302/2356/721 +f 1351/2357/722 1357/2359/722 1303/2358/722 +f 1353/2361/723 1350/2355/723 1320/2362/723 +f 1144/2005/689 1143/2004/689 1352/2363/689 1346/2364/689 +f 1352/2365/724 1143/2366/724 1226/2119/724 1232/2118/724 +f 1163/2027/725 1162/2026/725 1335/2307/725 1177/2310/725 +f 1224/2108/726 1235/2123/726 1241/2136/726 1225/2109/726 +f 1152/2013/727 1151/2012/727 1176/2145/727 1175/2144/727 +f 1165/2029/728 1164/2028/728 1242/2137/728 1339/2367/728 +f 1340/2318/729 1246/2317/729 1263/2368/729 1325/2369/729 +f 1325/2369/661 1263/2368/661 1268/2370/661 1280/2371/661 +f 1280/2371/730 1268/2370/730 1277/2290/730 1281/2289/730 +f 1180/2079/731 1204/2096/731 1213/2095/731 1183/2372/731 +f 1157/2373/732 1149/2374/732 1223/2288/732 1158/2287/732 +f 1318/2375/661 1287/2321/661 1283/2320/661 1282/2376/661 +f 1351/2377/733 1348/2378/733 1347/2379/733 1350/2380/733 1353/2381/733 1354/2382/733 1355/2383/733 1356/2384/733 1357/2385/733 +f 1319/2386/734 1358/2387/734 1353/2361/734 +f 1320/2362/735 1319/2386/735 1353/2361/735 +f 1200/2103/736 1201/2102/736 1202/2388/736 +f 1338/2073/737 1324/2270/737 1329/2074/737 +f 1332/2313/738 1334/2360/738 1359/2389/738 1360/2322/738 +f 1333/2099/739 1361/2311/739 1358/2387/739 1319/2386/739 +f 1355/2390/740 1362/2391/740 1363/2392/740 1356/2393/740 +f 1356/2393/741 1363/2392/741 1359/2389/741 1357/2359/741 +f 1354/2394/742 1353/2361/742 1358/2387/742 1364/2395/742 +f 1343/2396/743 1342/2397/743 1365/2398/743 1366/2399/743 +f 1343/2400/744 1366/2401/744 1367/2402/744 1344/2403/744 +f 1344/2403/745 1367/2402/745 1361/2311/745 1345/2101/745 +f 1361/2311/746 1367/2402/746 1364/2395/746 1358/2387/746 +f 1362/2404/747 1364/2395/747 1367/2402/747 1366/2401/747 +f 1362/2391/748 1366/2399/748 1365/2398/748 1363/2392/748 +f 1360/2322/749 1359/2389/749 1363/2392/749 1365/2398/749 +f 1405/2405/750 1495/2406/750 1491/2407/750 1369/2408/750 +f 1184/2054/625 1191/2237/625 1371/2409/625 1186/2056/625 +f 1317/2244/625 1185/2055/625 1187/2057/625 1368/2410/625 +f 1413/2411/751 1494/2412/751 1492/2413/751 1412/2414/751 +f 1408/2415/752 1374/2416/752 1494/2417/752 1413/2418/752 +f 1373/2419/753 1493/2420/753 1372/2421/753 1382/2422/753 +f 1406/2423/754 1496/2424/754 1495/2425/754 1405/2426/754 +f 1395/2427/755 1370/2428/755 1496/2429/755 1406/2430/755 +f 1370/2431/756 1491/2432/756 1495/2425/756 1496/2424/756 +f 1374/2433/681 1493/2434/681 1492/2413/681 1494/2412/681 +f 1375/2435/757 1372/2436/757 1493/2434/757 1374/2433/757 +f 1372/2436/758 1375/2435/758 1491/2432/758 1370/2431/758 +f 1412/2437/759 1492/2438/759 1493/2439/759 1373/2419/759 +f 1369/2408/760 1394/2440/760 1407/2441/760 1405/2405/760 +f 1409/2442/758 1410/2443/758 1394/2440/758 1369/2408/758 +f 1369/2408/761 1491/2444/761 1375/2445/761 1409/2442/761 +f 1382/2422/762 1372/2446/762 1370/2447/762 1395/2427/762 +f 1373/2419/681 1416/2448/681 1417/2449/681 1412/2437/681 +f 1382/2422/763 1385/2450/763 1386/2451/763 1389/2452/763 1390/2453/763 1391/2454/763 1402/2455/763 1403/2456/763 1416/2448/763 1373/2419/763 +f 1409/2442/764 1375/2457/764 1374/2458/764 1408/2415/764 +f 1402/2459/765 1377/2460/765 1376/2461/765 1401/2462/765 +f 1391/2463/766 1392/2464/766 1377/2460/766 1402/2459/766 +f 1401/2462/767 1376/2461/767 1393/2465/767 1400/2466/767 +f 1377/2460/768 1392/2464/768 1393/2465/768 1376/2461/768 +f 1397/2467/769 1378/2468/769 1379/2469/769 1396/2470/769 +f 1396/2470/770 1379/2469/770 1384/2471/770 1385/2472/770 +f 1386/2473/771 1383/2474/771 1378/2468/771 1397/2467/771 +f 1383/2474/772 1384/2471/772 1379/2469/772 1378/2468/772 +f 1399/2475/773 1380/2476/773 1381/2477/773 1398/2478/773 +f 1398/2478/774 1381/2477/774 1388/2479/774 1389/2480/774 +f 1390/2481/775 1387/2482/775 1380/2476/775 1399/2475/775 +f 1387/2482/768 1388/2479/768 1381/2477/768 1380/2476/768 +f 1385/2450/758 1382/2422/758 1395/2427/758 1396/2483/758 +f 1385/2472/776 1384/2471/776 1383/2474/776 1386/2473/776 +f 1389/2452/758 1386/2451/758 1397/2484/758 1398/2485/758 +f 1389/2480/777 1388/2479/777 1387/2482/777 1390/2481/777 +f 1391/2454/758 1390/2453/758 1399/2486/758 1400/2487/758 +f 1400/2466/778 1393/2465/778 1392/2464/778 1391/2463/778 +f 1416/2488/779 1403/2456/779 1404/2489/779 1415/2490/779 +f 1415/2491/780 1404/2489/780 1401/2492/780 1400/2487/780 1399/2486/780 1398/2485/780 1397/2484/780 1396/2483/780 1395/2427/780 1406/2430/780 +f 1404/2489/758 1403/2456/758 1402/2455/758 1401/2492/758 +f 1329/2074/781 1328/2493/781 1337/2075/781 +f 1414/2494/681 1411/2495/681 1408/2415/681 1413/2418/681 +f 1411/2495/782 1410/2443/782 1409/2442/782 1408/2415/782 +f 1417/2496/686 1416/2488/686 1415/2490/686 1419/2497/686 +f 1145/2006/625 1212/2085/625 1420/2498/625 1146/2007/625 +f 1141/2002/628 1421/2499/628 1157/2500/628 1142/2003/628 +f 1421/2499/681 1150/2011/681 1149/2010/681 1157/2500/681 +f 1141/2002/783 1207/2090/783 1206/2091/783 1421/2499/783 +f 1182/2501/689 1181/2502/689 1180/2503/689 1183/2504/689 +f 1181/2502/610 1422/2505/610 1423/2506/610 1180/2503/610 +f 1144/2005/784 1208/2089/784 1207/2088/784 1141/2002/784 +f 1424/2507/785 1425/2508/785 1238/2133/785 1160/2509/785 +f 1232/2510/786 1233/2511/786 1425/2508/786 1424/2512/786 +f 1420/2513/787 1424/2507/787 1160/2509/787 1146/2514/787 +f 1425/2508/788 1242/2137/788 1236/2124/788 1238/2133/788 +f 1154/2032/789 1241/2136/789 1235/2123/789 1167/2033/789 +f 1170/2046/661 1250/2159/661 1248/2158/661 1176/2047/661 +f 1274/2334/790 1276/2515/790 1271/2516/790 1266/2335/790 +f 1301/2256/681 1318/2255/681 1282/2517/681 1292/2518/681 +f 1297/2218/689 1295/2216/689 1294/2215/689 1298/2219/689 +f 1327/2276/661 1307/2275/661 1306/2519/661 1321/2520/661 +f 1349/2521/661 1302/2522/661 1305/2523/661 1312/2524/661 +f 1216/2525/791 1215/2294/791 1324/2293/791 1323/2526/791 +f 1271/2516/681 1276/2515/681 1326/2527/681 1272/2528/681 +f 1216/2525/792 1323/2526/792 1349/2521/792 1312/2524/792 +f 1155/2349/793 1211/2348/793 1197/2083/793 1205/2082/793 +f 1425/2508/794 1233/2511/794 1339/2367/794 1242/2137/794 +f 1251/2309/795 1336/2308/795 1340/2346/795 1264/2347/795 +f 1323/2269/796 1322/2268/796 1327/2353/796 1349/2352/796 +f 1144/2005/797 1346/2364/797 1209/2094/797 1208/2097/797 +f 1150/2011/798 1421/2499/798 1206/2281/798 1211/2282/798 +f 1212/2085/624 1346/2345/624 1352/2529/624 1420/2498/624 +f 1352/2530/799 1232/2510/799 1424/2512/799 1420/2531/799 +f 1184/2062/800 1183/2532/800 1213/2333/800 1192/2332/800 +f 1355/2533/801 1354/2394/801 1364/2395/801 1362/2404/801 +f 1342/2397/802 1341/2314/802 1360/2322/802 1365/2398/802 +f 1179/2066/610 1427/2534/610 1426/2535/610 1178/2067/610 +f 1180/2503/610 1423/2506/610 1427/2534/610 1179/2066/610 +f 1178/2067/610 1426/2535/610 1422/2505/610 1181/2502/610 +f 1407/2536/661 1411/2537/661 1414/2538/661 1418/2539/661 +f 1311/2540/686 1428/2541/686 1429/2542/686 1430/2543/686 1431/2544/686 1432/2545/686 1433/2546/686 1434/2547/686 +f 1181/2502/803 1182/2501/803 1430/2548/803 1429/2549/803 +f 1214/2060/804 1216/2234/804 1312/2249/804 +f 1215/2236/805 1199/2235/805 1330/2550/805 +f 1182/2052/806 1185/2055/806 1431/2551/806 1430/2552/806 +f 1308/2241/807 1214/2060/807 1434/2553/807 1433/2554/807 +f 1178/2067/808 1181/2502/808 1429/2555/808 1428/2556/808 +f 1185/2055/809 1317/2244/809 1432/2557/809 1431/2558/809 +f 1178/2067/810 1428/2559/810 1311/2560/810 1310/2245/810 +f 1330/2550/681 1199/2235/681 1194/2104/681 1196/2105/681 +f 1297/2561/661 1326/2274/661 1289/2273/661 1295/2562/661 +f 1326/2527/661 1297/2563/661 1300/2564/661 1272/2528/661 +f 1272/2186/661 1300/2565/661 1285/2566/661 1273/2187/661 +f 1273/2202/661 1285/2567/661 1286/2568/661 1284/2203/661 +f 1296/2569/661 1288/2205/661 1287/2204/661 1318/2570/661 +f 1288/2206/661 1296/2571/661 1295/2572/661 1289/2207/661 +f 1447/2573/661 1435/2574/661 1442/2575/661 1443/2576/661 +f 1411/2537/811 1407/2536/811 1394/2440/811 1410/2443/811 +f 1304/2248/628 1178/2067/628 1310/2245/628 1305/2250/628 +f 1199/2235/612 1189/2577/612 1190/2239/612 1188/2238/612 +f 1189/2577/812 1199/2235/812 1220/2578/812 +f 1309/2240/611 1316/2579/611 1191/2237/611 +f 1316/2579/611 1314/2580/611 1317/2244/611 1191/2237/611 +f 1317/2244/611 1314/2580/611 1313/2581/611 +f 1313/2581/611 1306/2582/611 1308/2241/611 1317/2244/611 +f 1214/2060/813 1221/2059/813 1220/2578/813 1199/2235/813 +f 1214/2060/612 1308/2241/612 1306/2582/612 1307/2058/612 +f 1368/2410/625 1371/2409/625 1191/2237/625 1317/2244/625 +f 1437/2583/686 1436/2584/686 1438/2585/686 1439/2586/686 +f 1443/2587/814 1444/2588/814 1445/2589/814 1446/2590/814 +f 1442/2591/612 1441/2592/612 1444/2588/612 1443/2587/612 +f 1436/2593/689 1435/2594/689 1447/2595/689 1448/2596/689 1449/2597/689 1438/2598/689 +f 1450/2599/815 1451/2600/815 1452/2601/815 1453/2602/815 +f 1438/2598/816 1449/2597/816 1454/2603/816 1455/2604/816 1456/2605/816 1457/2606/816 1458/2607/816 1459/2608/816 1451/2600/816 1450/2599/816 +f 1439/2586/817 1438/2585/817 1450/2599/817 1453/2602/817 +f 1459/2609/818 1461/2610/818 1462/2611/818 1463/2612/818 +f 1461/2613/815 1459/2608/815 1458/2607/815 1464/2614/815 +f 1465/2615/819 1464/2616/819 1466/2617/819 1467/2618/819 +f 1465/2619/815 1457/2606/815 1456/2605/815 1468/2620/815 +f 1469/2621/820 1468/2622/820 1470/2623/820 1471/2624/820 +f 1469/2625/815 1455/2604/815 1454/2603/815 1472/2626/815 +f 1466/2617/821 1473/2627/821 1474/2628/821 1467/2618/821 +f 1464/2616/822 1458/2629/822 1473/2627/822 1466/2617/822 +f 1457/2630/823 1465/2615/823 1467/2618/823 1474/2628/823 +f 1458/2629/824 1457/2630/824 1474/2628/824 1473/2627/824 +f 1470/2623/825 1475/2631/825 1476/2632/825 1471/2624/825 +f 1468/2622/826 1456/2633/826 1475/2631/826 1470/2623/826 +f 1455/2634/827 1469/2621/827 1471/2624/827 1476/2632/827 +f 1456/2633/828 1455/2634/828 1476/2632/828 1475/2631/828 +f 1477/2635/821 1478/2636/821 1463/2612/821 1462/2611/821 +f 1451/2637/829 1459/2609/829 1463/2612/829 1478/2636/829 +f 1461/2610/830 1452/2638/830 1477/2635/830 1462/2611/830 +f 1452/2638/831 1451/2637/831 1478/2636/831 1477/2635/831 +f 1445/2589/832 1444/2588/832 1479/2639/832 1480/2640/832 +f 1472/2626/833 1481/2641/833 1439/2642/833 1453/2602/833 1452/2601/833 1461/2613/833 1464/2614/833 1465/2619/833 1468/2620/833 1469/2625/833 +f 1481/2641/612 1440/2643/612 1437/2644/612 1439/2642/612 +f 1472/2626/834 1454/2603/834 1482/2645/834 1483/2646/834 +f 1484/2647/835 1445/2589/835 1480/2648/835 1485/2649/835 +f 1445/2589/815 1484/2647/815 1460/2650/815 1446/2590/815 +f 1484/2647/836 1448/2596/836 1447/2595/836 1460/2650/836 +f 1440/2643/837 1481/2641/837 1486/2651/837 1487/2652/837 +f 1483/2653/815 1482/2654/815 1485/2655/815 1480/2656/815 +f 1480/2656/838 1479/2657/838 1486/2658/838 1483/2653/838 +f 1479/2657/612 1488/2659/612 1487/2660/612 1486/2658/612 +f 1482/2654/839 1489/2661/839 1490/2662/839 1485/2655/839 +f 1454/2603/840 1449/2597/840 1489/2663/840 1482/2664/840 +f 1449/2665/841 1448/2666/841 1490/2662/841 1489/2661/841 +f 1481/2641/842 1472/2626/842 1483/2667/842 1486/2668/842 +f 1444/2588/843 1441/2592/843 1488/2669/843 1479/2670/843 +f 1441/2671/844 1440/2672/844 1487/2660/844 1488/2659/844 +f 1448/2596/845 1484/2647/845 1485/2673/845 1490/2674/845 +f 1443/2576/846 1446/2590/846 1460/2650/846 1447/2573/846 +f 1337/2075/625 1328/2493/625 1331/2312/625 +f 1406/2430/624 1405/2405/624 1407/2441/624 1418/2675/624 1419/2676/624 1415/2491/624 +f 1218/2323/847 1200/2103/847 1202/2388/847 +f 1202/2388/848 1217/2267/848 1218/2323/848 +f 1357/2359/849 1359/2389/849 1334/2360/849 +f 1350/2355/850 1321/2354/850 1320/2362/850 From 30dee77dae28f82f798db5e59ee3b498f61ee5c1 Mon Sep 17 00:00:00 2001 From: UFFR Date: Thu, 8 Jun 2023 20:08:15 -0400 Subject: [PATCH 049/109] =?UTF-8?q?=F0=9F=85=B1=EF=B8=8Fesh=20gaming?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The ultimate alloy --- src/main/java/com/hbm/items/ModItems.java | 15 +++++++++++++++ src/main/java/com/hbm/main/CraftingManager.java | 5 +++++ src/main/resources/assets/hbm/lang/en_US.lang | 4 ++++ 3 files changed, 24 insertions(+) diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index e4b0ec747..35b9cb0d5 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -765,6 +765,11 @@ public class ModItems { public static Item stamp_9; public static Item stamp_50; + public static Item stamp_desh_357; + public static Item stamp_desh_44; + public static Item stamp_desh_9; + public static Item stamp_desh_50; + public static Item blades_steel; public static Item blades_titanium; public static Item blades_advanced_alloy; @@ -3224,6 +3229,11 @@ public class ModItems { stamp_9 = new ItemStamp(1000, StampType.C9).setUnlocalizedName("stamp_9").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_9"); stamp_50 = new ItemStamp(1000, StampType.C50).setUnlocalizedName("stamp_50").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_50"); + stamp_desh_357 = new ItemStamp(0, StampType.C357).setUnlocalizedName("stamp_desh_357").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_357_desh"); + stamp_desh_44 = new ItemStamp(0, StampType.C44).setUnlocalizedName("stamp_desh_44").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_44_desh"); + stamp_desh_9 = new ItemStamp(0, StampType.C9).setUnlocalizedName("stamp_desh_9").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_9_desh"); + stamp_desh_50 = new ItemStamp(0, StampType.C50).setUnlocalizedName("stamp_desh_50").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_50_desh"); + blades_steel = new ItemBlades(200).setUnlocalizedName("blades_steel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":blades_steel"); blades_titanium = new ItemBlades(350).setUnlocalizedName("blades_titanium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":blades_titanium"); blades_advanced_alloy = new ItemBlades(700).setUnlocalizedName("blades_advanced_alloy").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":blades_advanced_alloy"); @@ -6386,6 +6396,11 @@ public class ModItems { GameRegistry.registerItem(stamp_44, stamp_44.getUnlocalizedName()); GameRegistry.registerItem(stamp_9, stamp_9.getUnlocalizedName()); GameRegistry.registerItem(stamp_50, stamp_50.getUnlocalizedName()); + + GameRegistry.registerItem(stamp_desh_357, stamp_desh_357.getUnlocalizedName()); + GameRegistry.registerItem(stamp_desh_44, stamp_desh_44.getUnlocalizedName()); + GameRegistry.registerItem(stamp_desh_9, stamp_desh_9.getUnlocalizedName()); + GameRegistry.registerItem(stamp_desh_50, stamp_desh_50.getUnlocalizedName()); //Molds GameRegistry.registerItem(mold_base, mold_base.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 99ca2d9be..0e1c20035 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -482,6 +482,11 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.stamp_9, 1), new Object[] { "RSR", "III", " C ", 'R', REDSTONE.dust(), 'S', ModItems.stamp_iron_flat, 'I', ModItems.plate_polymer, 'C', ModItems.casing_9 }); addRecipeAuto(new ItemStack(ModItems.stamp_50, 1), new Object[] { "RSR", "III", " C ", 'R', REDSTONE.dust(), 'S', ModItems.stamp_iron_flat, 'I', ModItems.plate_polymer, 'C', ModItems.casing_50 }); + addRecipeAuto(new ItemStack(ModItems.stamp_desh_357, 1), new Object[] { "RSR", "III", " C ", 'R', ModItems.ingot_dura_steel, 'S', ModItems.stamp_desh_flat, 'I', ModItems.ingot_saturnite, 'C', ModItems.casing_357 }); + addRecipeAuto(new ItemStack(ModItems.stamp_desh_44, 1), new Object[] { "RSR", "III", " C ", 'R', ModItems.ingot_dura_steel, 'S', ModItems.stamp_desh_flat, 'I', ModItems.ingot_saturnite, 'C', ModItems.casing_44 }); + addRecipeAuto(new ItemStack(ModItems.stamp_desh_9, 1), new Object[] { "RSR", "III", " C ", 'R', ModItems.ingot_dura_steel, 'S', ModItems.stamp_desh_flat, 'I', ModItems.ingot_saturnite, 'C', ModItems.casing_9 }); + addRecipeAuto(new ItemStack(ModItems.stamp_desh_50, 1), new Object[] { "RSR", "III", " C ", 'R', ModItems.ingot_dura_steel, 'S', ModItems.stamp_desh_flat, 'I', ModItems.ingot_saturnite, 'C', ModItems.casing_50 }); + addRecipeAuto(new ItemStack(ModBlocks.sat_dock, 1), new Object[] { "SSS", "PCP", 'S', STEEL.ingot(), 'P', ANY_PLASTIC.ingot(), 'C', ModBlocks.crate_iron }); addRecipeAuto(new ItemStack(ModBlocks.book_guide, 1), new Object[] { "IBI", "LBL", "IBI", 'B', Items.book, 'I', KEY_BLACK, 'L', KEY_BLUE }); diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 40758ba0d..a0519159d 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -3854,6 +3854,10 @@ item.stamp_desh_circuit.name=Circuit Stamp (Desh) item.stamp_desh_flat.name=Flat Stamp (Desh) item.stamp_desh_plate.name=Plate Stamp (Desh) item.stamp_desh_wire.name=Wire Stamp (Desh) +item.stamp_desh_357.name=.357 Magnum Stamp (Desh) +item.stamp_desh_44.name=.44 Magnum Stamp (Desh) +item.stamp_desh_50.name=Large Caliber Stamp (Desh) +item.stamp_desh_9.name=Small Caliber Stamp (Desh) item.stamp_iron_circuit.name=Circuit Stamp (Iron) item.stamp_iron_flat.name=Flat Stamp (Iron) item.stamp_iron_plate.name=Plate Stamp (Iron) From 3ecc74f6db1b9aa17cf94d65f00af468059d4a16 Mon Sep 17 00:00:00 2001 From: Vaern Date: Thu, 8 Jun 2023 23:29:25 -0700 Subject: [PATCH 050/109] reactor room, meta pain --- .../world/gen/component/BunkerComponents.java | 212 +++++++++++++++++- .../hbm/world/gen/component/Component.java | 38 +++- 2 files changed, 243 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/hbm/world/gen/component/BunkerComponents.java b/src/main/java/com/hbm/world/gen/component/BunkerComponents.java index 2f14105b6..d23b1f733 100644 --- a/src/main/java/com/hbm/world/gen/component/BunkerComponents.java +++ b/src/main/java/com/hbm/world/gen/component/BunkerComponents.java @@ -35,6 +35,7 @@ public class BunkerComponents { new Weight(10, 3, FunJunction::findValidPlacement), new Weight(5, 2, BathroomL::findValidPlacement), new Weight(7, 2, Laboratory::findValidPlacement), + new Weight(5, 1, PowerRoom::findValidPlacement), }; StructureComponent starter = new StartingHub(rand, x, z); @@ -53,6 +54,7 @@ public class BunkerComponents { MapGenStructureIO.func_143031_a(FunJunction.class, "NTMBFunJunction"); MapGenStructureIO.func_143031_a(BathroomL.class, "NTMBBathroomL"); MapGenStructureIO.func_143031_a(Laboratory.class, "NTMBLaboratory"); + MapGenStructureIO.func_143031_a(PowerRoom.class, "NTMBPowerRoom"); //TODO more rooms for more variety } @@ -483,7 +485,7 @@ public class BunkerComponents { placeBlockAtCurrentPosition(world, ModBlocks.deco_tungsten, 0, 6, 1, 9, box); placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, getDecoMeta(4), 6, 2, 9, box); fillWithBlocks(world, box, 6, 3, 8, 6, 3, 9, ModBlocks.concrete_slab); - placeBlockAtCurrentPosition(world, Blocks.lever, getDecoMeta(2), 5, 1, 9, box); //double-check meta + placeLever(world, box, 2, rand.nextBoolean(), 5, 1, 9); //doors placeDoor(world, box, ModBlocks.door_bunker, 1, true, rand.nextBoolean(), 4, 1, 0); placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 5, 1, 0); @@ -565,10 +567,10 @@ public class BunkerComponents { //hand-dryers (industrial-strength) placeBlockAtCurrentPosition(world, ModBlocks.steel_beam, 3, 4, 1, 9, box); placeBlockAtCurrentPosition(world, ModBlocks.fan, getDecoMeta(2), 4, 2, 9, box); - placeBlockAtCurrentPosition(world, Blocks.stone_button, 2, 3, 2, 9, box); //TODO button meta + placeBlockAtCurrentPosition(world, Blocks.stone_button, getButtonMeta(2), 3, 2, 9, box); //TODO button meta placeBlockAtCurrentPosition(world, ModBlocks.steel_beam, 3, 6, 1, 9, box); placeBlockAtCurrentPosition(world, ModBlocks.fan, getDecoMeta(2), 6, 2, 9, box); - placeBlockAtCurrentPosition(world, Blocks.stone_button, 1, 7, 2, 9, box); + placeBlockAtCurrentPosition(world, Blocks.stone_button, getButtonMeta(1), 7, 2, 9, box); //stalls w/ toilets for(int i = 1; i <= 5; i += 2) { placeDoor(world, box, ModBlocks.door_metal, 0, false, rand.nextBoolean(), 5, 1, i); @@ -689,7 +691,7 @@ public class BunkerComponents { placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaW | 4, 7, 1, 3, box); placeBlockAtCurrentPosition(world, ModBlocks.deco_red_copper, 0, 7, 2, 3, box); placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaW, 7, 3, 3, box); - placeBlockAtCurrentPosition(world, Blocks.lever, 2, 6, 2, 3, box); //TODO lever meta + placeLever(world, box, 2, rand.nextBoolean(), 6, 2, 3); fillWithMetadataBlocks(world, box, 7, 1, 4, 7, 2, 4, ModBlocks.steel_poles, decoMetaE); placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 7, 3, 4, box); placeBlockAtCurrentPosition(world, ModBlocks.deco_tungsten, 0, 7, 1, 5, box); @@ -715,4 +717,206 @@ public class BunkerComponents { return box.minY > 10 && StructureComponent.findIntersecting(components, box) == null ? new Laboratory(type, box, coordMode) : null; } } + + public static class PowerRoom extends Component implements ProceduralComponent { + + private boolean path; + + private int powerType; + + public PowerRoom() { } + + public PowerRoom(int componentType, StructureBoundingBox box, int coordMode, Random rand) { + super(componentType); + this.boundingBox = box; + this.coordBaseMode = coordMode; + + float chance = rand.nextFloat(); + powerType = chance < 0.2 ? 2 : chance < 0.6 ? 1 : 0; + } + + /** write to nbt */ + @Override + protected void func_143012_a(NBTTagCompound nbt) { + super.func_143012_a(nbt); + nbt.setBoolean("p", path); + } + + /** read from nbt */ + @Override + protected void func_143011_b(NBTTagCompound nbt) { + super.func_143011_b(nbt); + path = nbt.getBoolean("p"); + } + + @Override + public void buildComponent(ProceduralStructureStart start, Random rand) { + path = this.getNextComponentEast(start, this, coordBaseMode, rand, 4, 1) != null; + } + + @Override + public boolean addComponentParts(World world, Random rand, StructureBoundingBox box) { + + fillWithAir(world, box, 1, 1, 1, 10, 3, 10); + //floor + fillWithMetadataBlocks(world, box, 1, 0, 1, 10, 0, 10, ModBlocks.vinyl_tile, 1); + //ceiling + fillWithBlocks(world, box, 1, 4, 1, 10, 4, 10, ModBlocks.vinyl_tile); + //upper shield + fillWithBlocks(world, box, 0, 5, 0, 11, 5, 11, ModBlocks.reinforced_stone); + //walls + fillWithRandomizedBlocks(world, box, 0, 0, 0, 11, 4, 0, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 0, 0, 1, 0, 4, 10, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 0, 0, 11, 11, 4, 11, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 11, 0, 1, 11, 4, 10, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 5, 1, 1, 5, 3, 6, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 6, 1, 6, 10, 3, 6, rand, ConcreteBricks); + + /* DECO */ + //lamps + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, 3, 5, 2, box); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, 3, 5, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, 3, 5, 8, box); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, 6, 5, 8, box); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, 9, 5, 8, box); + placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, 3, 4, 2, box); + placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, 3, 4, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, 3, 4, 8, box); + placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, 6, 4, 8, box); + placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, 9, 4, 8, box); + //power room stuff + fillWithBlocks(world, box, 7, 2, 6, 9, 2, 6, ModBlocks.reinforced_glass); + int decoMetaE = getDecoMeta(5); + int decoMetaW = getDecoMeta(4); + int decoMetaN = getDecoMeta(3); + int decoMetaS = getDecoMeta(2); + + int stairMetaS = getStairMeta(3); + int stairMetaN = getStairMeta(2); + int stairMetaW = getStairMeta(1); + int stairMetaE = getStairMeta(0); + + switch(this.powerType) { + default: + fillWithBlocks(world, box, 6, 1, 1, 6, 3, 1, ModBlocks.deco_pipe_framed_rusted); + for(int i = 7; i <= 9; i += 2) { + placeBlockAtCurrentPosition(world, ModBlocks.machine_coal_off, decoMetaN, i, 1, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.steel_beam, 2, i, 2, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.machine_coal_off, decoMetaN, i, 3, 1, box); + } + placeBlockAtCurrentPosition(world, ModBlocks.deco_red_copper, 0, 8, 1, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 5, 8, 2, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_red_copper, 0, 8, 3, 1, box); + placeLever(world, box, 3, rand.nextBoolean(), 8, 2, 2); + for(int i = 1; i <= 3; i += 2) { + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 10, i, 1, box); + fillWithMetadataBlocks(world, box, 10, i, 2, 10, i, 4, ModBlocks.deco_pipe_quad_rusted, getPillarMeta(8)); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 10, i, 5, box); + } + placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_framed_rusted, 0, 10, 2, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.fluid_duct_gauge, decoMetaW, 10, 2, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.barrel_plastic, 0, 6, 1, 5, box); + //chests + generateInvContents(world, box, rand, Blocks.chest, decoMetaS, 7, 1, 5, HbmChestContents.antenna, 4); //WIP + generateInvContents(world, box, rand, Blocks.chest, decoMetaS, 9, 1, 5, HbmChestContents.antenna, 4); + break; + case 1: + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 5, 6, 1, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.cable_detector, 0, 6, 2, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 5, 6, 3, 1, box); + placeLever(world, box, 3, false, 6, 2, 2); + for(int i = 7; i <= 9; i += 2) { + placeBlockAtCurrentPosition(world, ModBlocks.steel_scaffold, 8, i, 1, 1, box); //i'm not making another fucking meta method + placeBlockAtCurrentPosition(world, ModBlocks.machine_diesel, decoMetaE, i, 2, 1, box); + } + placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_rim_rusted, getPillarMeta(4), 8, 2, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_rim_rusted, getPillarMeta(4), 8, 2, 1, box); + fillWithMetadataBlocks(world, box, 7, 3, 1, 9, 3, 1, ModBlocks.concrete_smooth_stairs, stairMetaS); + fillWithBlocks(world, box, 10, 1, 1, 10, 1, 3, ModBlocks.deco_steel); + placeBlockAtCurrentPosition(world, ModBlocks.deco_red_copper, 0, 10, 2, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 10, 3, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.steel_grate, 7, 10, 2, 2, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(2), 10, 3, 2, box); + fillWithMetadataBlocks(world, box, 10, 2, 3, 10, 3, 3, ModBlocks.tape_recorder, decoMetaW); + fillWithMetadataBlocks(world, box, 9, 1, 2, 9, 1, 3, ModBlocks.steel_grate, 7); + fillWithBlocks(world, box, 9, 1, 5, 10, 1, 5, ModBlocks.barrel_iron); + placeBlockAtCurrentPosition(world, ModBlocks.barrel_iron, 0, 10, 2, 5, box); + fillWithBlocks(world, box, 6, 1, 5, 6, 2, 5, ModBlocks.barrel_iron); + placeBlockAtCurrentPosition(world, ModBlocks.barrel_iron, 0, 6, 1, 2, box); + break; + case 2: + for(int i = 7; i <= 9; i += 2) { + fillWithBlocks(world, box, i, 1, 2, i, 1, 4, ModBlocks.deco_lead); + fillWithBlocks(world, box, i, 2, 2, i, 2, 4, ModBlocks.block_lead); + fillWithBlocks(world, box, i, 3, 2, i, 3, 4, ModBlocks.deco_lead); + } + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 5, 8, 1, 4, box); + placeBlockAtCurrentPosition(world, ModBlocks.reactor_computer, 0, 8, 2, 4, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 5, 8, 3, 4, box); + placeLever(world, box, 3, rand.nextBoolean(), 8, 2, 5); + placeBlockAtCurrentPosition(world, ModBlocks.reactor_element, 0, 8, 1, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.reactor_control, 0, 8, 2, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.reactor_element, 0, 8, 3, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.block_copper, 0, 8, 1, 2, box); + placeBlockAtCurrentPosition(world, ModBlocks.block_lead, 0, 8, 2, 2, box); + placeBlockAtCurrentPosition(world, ModBlocks.block_copper, 0, 8, 3, 2, box); + placeBlockAtCurrentPosition(world, ModBlocks.reactor_conductor, 0, 8, 1, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.machine_turbine, 0, 8, 2, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.reactor_conductor, 0, 8, 3, 1, box); + fillWithBlocks(world, box, 9, 1, 1, 9, 3, 1, ModBlocks.deco_steel); + placeBlockAtCurrentPosition(world, ModBlocks.steel_grate, 7, 10, 1, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(1), 10, 2, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, decoMetaN, 10, 3, 1, box); + fillWithMetadataBlocks(world, box, 6, 1, 1, 7, 1, 1, ModBlocks.deco_pipe_quad_rusted, getPillarMeta(4)); + placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_quad_rusted, getPillarMeta(4), 7, 3, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.fluid_duct_gauge, decoMetaN, 6, 3, 1, box); + //chest + generateInvContents(world, box, rand, Blocks.chest, decoMetaN, 6, 1, 2, HbmChestContents.antenna, 4); //WIP + break; + } + //transformer + fillWithMetadataBlocks(world, box, 1, 1, 1, 1, 1, 5, ModBlocks.concrete_smooth_stairs, stairMetaW | 4); + fillWithBlocks(world, box, 1, 1, 6, 1, 3, 6, ModBlocks.concrete_pillar); + fillWithMetadataBlocks(world, box, 1, 3, 1, 1, 3, 5, ModBlocks.concrete_smooth_stairs, stairMetaW); + placeBlockAtCurrentPosition(world, ModBlocks.machine_transformer_20, 0, 1, 2, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.cable_diode, decoMetaN, 1, 2, 2, box); + placeBlockAtCurrentPosition(world, ModBlocks.machine_battery, decoMetaE, 1, 2, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_red_copper, 0, 1, 2, 4, box); + placeBlockAtCurrentPosition(world, ModBlocks.cable_switch, 0, 1, 2, 5, box); + //machine + for(int i = 1; i <= 5; i += 4) { + placeBlockAtCurrentPosition(world, ModBlocks.deco_beryllium, 0, i, 1, 10, box); + placeBlockAtCurrentPosition(world, ModBlocks.steel_scaffold, 0, i, 2, 10, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_beryllium, 0, i, 3, 10, box); + } + placeBlockAtCurrentPosition(world, ModBlocks.steel_scaffold, 0, 2, 1, 10, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_tungsten, 0, 3, 1, 10, box); + placeBlockAtCurrentPosition(world, ModBlocks.steel_scaffold, 0, 4, 1, 10, box); + placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, decoMetaS, 2, 2, 10, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(0), 3, 2, 10, box); + placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, decoMetaS, 4, 2, 10, box); + fillWithMetadataBlocks(world, box, 2, 3, 10, 4, 3, 10, ModBlocks.tape_recorder, decoMetaS); + //desk + fillWithMetadataBlocks(world, box, 8, 1, 10, 10, 1, 10, ModBlocks.concrete_smooth_stairs, stairMetaN | 4); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaE | 4, 10, 1, 9, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs,stairMetaS, 9, 1, 9, box); + placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 8, 2, 10, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(0), 9, 2, 10, box); + //loot + generateInvContents(world, box, rand, Blocks.chest, decoMetaE, 1, 1, 7, HbmChestContents.antenna, 4); //WIP + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 7, 1, 10, HbmChestContents.antenna, 4); + //doors + placeDoor(world, box, ModBlocks.door_bunker, 1, true, rand.nextBoolean(), 3, 1, 0); + placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 4, 1, 0); + placeDoor(world, box, ModBlocks.door_bunker, 0, false, false, 5, 1, 3); + if(path) fillWithAir(world, box, 11, 1, 7, 11, 2, 8); + + return true; + } + + public static StructureComponent findValidPlacement(List components, Random rand, int x, int y, int z, int coordMode, int type) { + StructureBoundingBox box = ProceduralStructureStart.getComponentToAddBoundingBox(x, y, z, -4, -1, 0, 12, 6, 12, coordMode); + return box.minY > 10 && StructureComponent.findIntersecting(components, box) == null ? new PowerRoom(type, box, coordMode, rand) : null; + } + } } diff --git a/src/main/java/com/hbm/world/gen/component/Component.java b/src/main/java/com/hbm/world/gen/component/Component.java index eb42dc9b7..73a1ce5f8 100644 --- a/src/main/java/com/hbm/world/gen/component/Component.java +++ b/src/main/java/com/hbm/world/gen/component/Component.java @@ -268,7 +268,7 @@ abstract public class Component extends StructureComponent { case 2: //North dirMeta ^= 2; break; //Flip second bit case 3: //East - dirMeta = (dirMeta - 1) % 4; break; + dirMeta = Math.abs(dirMeta - 1) % 4; break; //fuck you modulo } //hee hoo @@ -280,7 +280,7 @@ abstract public class Component extends StructureComponent { world.setBlock(posX, posY + 1, posZ, door, metaTop, 2); } } - + /** 1 for west face, 2 for east face, 3 for north, 4 for south*/ protected void placeLever(World world, StructureBoundingBox box, int dirMeta, boolean on, int featureX, int featureY, int featureZ) { int posX = this.getXWithOffset(featureX, featureZ); int posY = this.getYWithOffset(featureY); @@ -288,7 +288,39 @@ abstract public class Component extends StructureComponent { if(!box.isVecInside(posX, posY, posZ)) return; - //levers suck ass + if(dirMeta <= 0 || dirMeta >= 7) { //levers suck ass + switch(this.coordBaseMode) { + case 1: case 3: //west / east + dirMeta ^= 0b111; + } + } else if(dirMeta >= 5) { + switch(this.coordBaseMode) { + case 1: case 3: //west / east + dirMeta = (dirMeta + 1) % 2 + 5; + } + } else { + dirMeta = getButtonMeta(dirMeta); + } + + world.setBlock(posX, posY, posZ, Blocks.lever, on ? dirMeta | 8 : dirMeta, 2); + } + + /** pain. works for side-facing levers as well */ + protected int getButtonMeta(int dirMeta) { + switch(this.coordBaseMode) { //are you ready for the pain? + case 1: //West + if(dirMeta <= 2) return dirMeta + 2; + else if(dirMeta < 4) return dirMeta - 1; + else return dirMeta - 3;// this shit sucks ass + case 2: //North + return dirMeta + (dirMeta % 2 == 0 ? -1 : 1); + case 3: //East + if(dirMeta <= 1) return dirMeta + 3; + else if(dirMeta <= 2) return dirMeta + 1; + else return dirMeta - 2; + default: //South + return dirMeta; + } } /**N:0 W:1 S:2 E:3 */ From 31e5caa2dbffffba491049181f3ad2fe4f6e2a77 Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 9 Jun 2023 11:35:02 +0200 Subject: [PATCH 051/109] capacitor blocks --- src/main/java/com/hbm/blocks/ModBlocks.java | 18 +- .../hbm/blocks/machine/MachineCapacitor.java | 233 ++++++++++++++++++ .../blocks/machine/MachineCapacitorBus.java | 50 ++++ src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/ResourceManager.java | 1 + .../com/hbm/render/block/RenderCapacitor.java | 89 +++++++ .../assets/hbm/models/blocks/capacitor.obj | 128 ++++++++++ .../hbm/textures/blocks/capacitor_bus_out.png | Bin 0 -> 195 bytes .../textures/blocks/capacitor_bus_side.png | Bin 0 -> 187 bytes .../blocks/capacitor_copper_bottom.png | Bin 0 -> 612 bytes .../blocks/capacitor_copper_inner_side.png | Bin 0 -> 177 bytes .../blocks/capacitor_copper_inner_top.png | Bin 0 -> 276 bytes .../textures/blocks/capacitor_copper_side.png | Bin 0 -> 379 bytes .../textures/blocks/capacitor_copper_top.png | Bin 0 -> 228 bytes 14 files changed, 515 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/MachineCapacitor.java create mode 100644 src/main/java/com/hbm/blocks/machine/MachineCapacitorBus.java create mode 100644 src/main/java/com/hbm/render/block/RenderCapacitor.java create mode 100644 src/main/resources/assets/hbm/models/blocks/capacitor.obj create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_bus_out.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_bus_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_copper_bottom.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_copper_inner_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_copper_inner_top.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_copper_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_copper_top.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 75e59d0a7..0d2b78975 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -756,6 +756,9 @@ public class ModBlocks { public static Block machine_dineutronium_battery; public static Block machine_fensu; public static final int guiID_machine_fensu = 99; + + public static Block capacitor_bus; + public static Block capacitor_copper; public static Block machine_coal_off; public static Block machine_coal_on; @@ -1872,13 +1875,16 @@ public class ModBlocks { //machine_deuterium = new MachineDeuterium(Material.iron).setBlockName("machine_deuterium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_battery_potato = new MachineBattery(Material.iron, 10000).setBlockName("machine_battery_potato").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_battery = new MachineBattery(Material.iron, 1000000).setBlockName("machine_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_lithium_battery = new MachineBattery(Material.iron, 50000000).setBlockName("machine_lithium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_schrabidium_battery = new MachineBattery(Material.iron, 25000000000L).setBlockName("machine_schrabidium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_dineutronium_battery = new MachineBattery(Material.iron, 1000000000000L).setBlockName("machine_dineutronium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_battery_potato = new MachineBattery(Material.iron, 10_000).setBlockName("machine_battery_potato").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_battery = new MachineBattery(Material.iron, 1_000_000).setBlockName("machine_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_lithium_battery = new MachineBattery(Material.iron, 50_000_000).setBlockName("machine_lithium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_schrabidium_battery = new MachineBattery(Material.iron, 25_000_000_000L).setBlockName("machine_schrabidium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_dineutronium_battery = new MachineBattery(Material.iron, 1_000_000_000_000L).setBlockName("machine_dineutronium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_fensu = new MachineFENSU(Material.iron).setBlockName("machine_fensu").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_fensu"); + capacitor_bus = new MachineCapacitorBus(Material.iron).setBlockName("capacitor_bus").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + capacitor_copper = new MachineCapacitor(Material.iron, 1_000_000L).setBlockName("capacitor_copper").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_copper"); + machine_coal_off = new MachineCoal(false).setBlockName("machine_coal_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_coal_on = new MachineCoal(true).setBlockName("machine_coal_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); @@ -3192,6 +3198,8 @@ public class ModBlocks { register(machine_schrabidium_battery); register(machine_dineutronium_battery); register(machine_fensu); + register(capacitor_bus); + register(capacitor_copper); GameRegistry.registerBlock(machine_transformer, machine_transformer.getUnlocalizedName()); GameRegistry.registerBlock(machine_transformer_20, machine_transformer_20.getUnlocalizedName()); GameRegistry.registerBlock(machine_transformer_dnt, machine_transformer_dnt.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java b/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java new file mode 100644 index 000000000..ad9effd70 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java @@ -0,0 +1,233 @@ +package com.hbm.blocks.machine; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.ILookOverlay; +import com.hbm.blocks.IPersistentInfoProvider; +import com.hbm.blocks.ModBlocks; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.IPersistentNBT; +import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import api.hbm.energy.IEnergyUser; +import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.stats.StatList; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; +import net.minecraftforge.common.util.ForgeDirection; + +public class MachineCapacitor extends BlockContainer implements ILookOverlay, IPersistentInfoProvider { + + @SideOnly(Side.CLIENT) public IIcon iconTop; + @SideOnly(Side.CLIENT) public IIcon iconSide; + @SideOnly(Side.CLIENT) public IIcon iconBottom; + @SideOnly(Side.CLIENT) public IIcon iconInnerTop; + @SideOnly(Side.CLIENT) public IIcon iconInnerSide; + + protected long power; + + public MachineCapacitor(Material mat, long power) { + super(mat); + this.power = power; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + super.registerBlockIcons(iconRegister); + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":capacitor_copper_top"); + this.iconSide = iconRegister.registerIcon(RefStrings.MODID + ":capacitor_copper_side"); + this.iconBottom = iconRegister.registerIcon(RefStrings.MODID + ":capacitor_copper_bottom"); + this.iconInnerTop = iconRegister.registerIcon(RefStrings.MODID + ":capacitor_copper_inner_top"); + this.iconInnerSide = iconRegister.registerIcon(RefStrings.MODID + ":capacitor_copper_inner_side"); + } + + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + + @Override public int getRenderType() { return renderID; } + @Override public boolean isOpaqueCube() { return false; } + @Override public boolean renderAsNormalBlock() { return false; } + + @Override + public int onBlockPlaced(World world, int x, int y, int z, int side, float fX, float fY, float fZ, int meta) { + return side; + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityCapacitor(this.power); + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + + TileEntity te = world.getTileEntity(x, y, z); + + if(!(te instanceof TileEntityCapacitor)) + return; + + TileEntityCapacitor battery = (TileEntityCapacitor) te; + List text = new ArrayList(); + text.add(BobMathUtil.getShortNumber(battery.getPower()) + " / " + BobMathUtil.getShortNumber(battery.getMaxPower()) + "HE"); + + double percent = (double) battery.getPower() / (double) battery.getMaxPower(); + int charge = (int) Math.floor(percent * 10_000D); + int color = ((int) (0xFF - 0xFF * percent)) << 16 | ((int)(0xFF * percent) << 8); + text.add("&[" + color + "&]" + (charge / 100D) + "%"); + + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } + + @Override + public void addInformation(ItemStack stack, NBTTagCompound persistentTag, EntityPlayer player, List list, boolean ext) { + list.add(EnumChatFormatting.YELLOW + "" + BobMathUtil.getShortNumber(persistentTag.getLong("power")) + "/" + BobMathUtil.getShortNumber(persistentTag.getLong("maxPower")) + "HE"); + } + + @Override + public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { + return IPersistentNBT.getDrops(world, x, y, z, this); + } + + @Override + public void onBlockHarvested(World world, int x, int y, int z, int meta, EntityPlayer player) { + + if(!player.capabilities.isCreativeMode) { + harvesters.set(player); + this.dropBlockAsItem(world, x, y, z, meta, 0); + harvesters.set(null); + } + } + + @Override + public void harvestBlock(World world, EntityPlayer player, int x, int y, int z, int meta) { + player.addStat(StatList.mineBlockStatArray[getIdFromBlock(this)], 1); + player.addExhaustion(0.025F); + } + + public static class TileEntityCapacitor extends TileEntityLoadedBase implements IEnergyUser, INBTPacketReceiver, IPersistentNBT { + + public long power; + protected long maxPower; + + public TileEntityCapacitor() { } + + public TileEntityCapacitor(long maxPower) { + this.maxPower = maxPower; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + ForgeDirection opp = ForgeDirection.getOrientation(this.getBlockMetadata()); + ForgeDirection dir = opp.getOpposite(); + + BlockPos pos = new BlockPos(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); + + boolean didStep = false; + ForgeDirection last = null; + + while(worldObj.getBlock(pos.getX(), pos.getY(), pos.getZ()) == ModBlocks.capacitor_bus) { + ForgeDirection current = ForgeDirection.getOrientation(worldObj.getBlockMetadata(pos.getX(), pos.getY(), pos.getZ())); + if(!didStep) last = current; + didStep = true; + + if(last != current) { + pos = null; + break; + } + + pos = pos.offset(current); + } + + if(pos != null && last != null) { + this.tryUnsubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ()); + this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), last); + } + + this.trySubscribe(worldObj, xCoord + opp.offsetX, yCoord+ opp.offsetY, zCoord + opp.offsetZ, opp); + + NBTTagCompound data = new NBTTagCompound(); + data.setLong("power", power); + data.setLong("maxPower", maxPower); + INBTPacketReceiver.networkPack(this, data, 15); + } + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.power = nbt.getLong("power"); + } + + @Override + public long getPower() { + return power; + } + + @Override + public long getMaxPower() { + return maxPower; + } + + @Override + public ConnectionPriority getPriority() { + return ConnectionPriority.LOW; + } + + @Override + public void setPower(long power) { + this.power = power; + } + + @Override + public boolean canConnect(ForgeDirection dir) { + return dir == ForgeDirection.getOrientation(this.getBlockMetadata()); + } + + @Override + public void writeNBT(NBTTagCompound nbt) { + NBTTagCompound data = new NBTTagCompound(); + data.setLong("power", power); + data.setLong("maxPower", maxPower); + nbt.setTag(NBT_PERSISTENT_KEY, data); + } + + @Override + public void readNBT(NBTTagCompound nbt) { + NBTTagCompound data = nbt.getCompoundTag(NBT_PERSISTENT_KEY); + this.power = data.getLong("power"); + this.maxPower = data.getLong("maxPower"); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.power = nbt.getLong("power"); + this.maxPower = nbt.getLong("maxPower"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setLong("power", power); + nbt.setLong("maxPower", maxPower); + } + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineCapacitorBus.java b/src/main/java/com/hbm/blocks/machine/MachineCapacitorBus.java new file mode 100644 index 000000000..8ed5b2ed1 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineCapacitorBus.java @@ -0,0 +1,50 @@ +package com.hbm.blocks.machine; + +import com.hbm.lib.RefStrings; + +import api.hbm.energy.IEnergyConnectorBlock; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockPistonBase; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class MachineCapacitorBus extends Block implements IEnergyConnectorBlock { + + @SideOnly(Side.CLIENT) private IIcon topIcon; + + public MachineCapacitorBus(Material mat) { + super(mat); + } + + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister p_149651_1_) { + this.blockIcon = p_149651_1_.registerIcon(RefStrings.MODID + ":capacitor_bus_side"); + this.topIcon = p_149651_1_.registerIcon(RefStrings.MODID + ":capacitor_bus_out"); + } + + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return side == meta ? topIcon : blockIcon; + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { + int l = BlockPistonBase.determineOrientation(world, x, y, z, player); + world.setBlockMetadataWithNotify(x, y, z, l, 2); + } + + @Override + public boolean canConnect(IBlockAccess world, int x, int y, int z, ForgeDirection dir) { + int meta = world.getBlockMetadata(x, y, z); + ForgeDirection busDir = ForgeDirection.getOrientation(meta); + return dir == busDir; + } +} diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 64ad4bffe..492673357 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -777,6 +777,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerBlockHandler(new RenderRTTY()); RenderingRegistry.registerBlockHandler(new RenderDiFurnaceExtension()); RenderingRegistry.registerBlockHandler(new RenderSplitter()); + RenderingRegistry.registerBlockHandler(new RenderCapacitor()); RenderingRegistry.registerBlockHandler(new RenderFoundryBasin()); RenderingRegistry.registerBlockHandler(new RenderFoundryMold()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index c573f1b49..3dfe7107b 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1334,6 +1334,7 @@ public class ResourceManager { public static final IModelCustom rail_standard_straight = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard.obj")); public static final IModelCustom rail_standard_curve = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_bend.obj")); public static final IModelCustom rail_standard_ramp = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_ramp.obj")); + public static final IModelCustom capacitor = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/capacitor.obj")); public static final IModelCustom charge_dynamite = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/charge_dynamite.obj")); public static final IModelCustom charge_c4 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/charge_c4.obj")); diff --git a/src/main/java/com/hbm/render/block/RenderCapacitor.java b/src/main/java/com/hbm/render/block/RenderCapacitor.java new file mode 100644 index 000000000..227bf140c --- /dev/null +++ b/src/main/java/com/hbm/render/block/RenderCapacitor.java @@ -0,0 +1,89 @@ +package com.hbm.render.block; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.machine.MachineCapacitor; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.client.model.obj.WavefrontObject; + +public class RenderCapacitor implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + + GL11.glPushMatrix(); + Tessellator tessellator = Tessellator.instance; + tessellator.setColorOpaque_F(1, 1, 1); + + MachineCapacitor capacitor = (MachineCapacitor) block; + + tessellator.startDrawingQuads(); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.capacitor, "Top", capacitor.iconTop, tessellator, 0, false); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.capacitor, "Side", capacitor.iconSide, tessellator, 0, false); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.capacitor, "Bottom", capacitor.iconBottom, tessellator, 0, false); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.capacitor, "InnerTop", capacitor.iconInnerTop, tessellator, 0, false); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.capacitor, "InnerSide", capacitor.iconInnerSide, tessellator, 0, false); + tessellator.draw(); + + GL11.glPopMatrix(); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + + Tessellator tessellator = Tessellator.instance; + MachineCapacitor capacitor = (MachineCapacitor) block; + + tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); + tessellator.setColorOpaque_F(1, 1, 1); + + float flip = 0; + float rotation = 0; + + int meta = world.getBlockMetadata(x, y, z); + + if(meta == 0) + flip = (float)Math.PI; + + if(meta == 2) + rotation = 90F / 180F * (float) Math.PI; + + if(meta == 3) + rotation = 270F / 180F * (float) Math.PI; + + if(meta == 4) + rotation = 180F / 180F * (float)Math.PI; + + if(rotation != 0F || meta == 5) + flip = (float)Math.PI * 0.5F; + + tessellator.addTranslation(x + 0.5F, y + 0.5F, z + 0.5F); + + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.capacitor, "Top", capacitor.iconTop, tessellator, rotation, flip, true); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.capacitor, "Side", capacitor.iconSide, tessellator, rotation, flip, true); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.capacitor, "Bottom", capacitor.iconBottom, tessellator, rotation, flip, true); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.capacitor, "InnerTop", capacitor.iconInnerTop, tessellator, rotation, flip, true); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.capacitor, "InnerSide", capacitor.iconInnerSide, tessellator, rotation, flip, true); + + tessellator.addTranslation(-x - 0.5F, -y - 0.5F, -z - 0.5F); + + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return MachineCapacitor.renderID; + } +} diff --git a/src/main/resources/assets/hbm/models/blocks/capacitor.obj b/src/main/resources/assets/hbm/models/blocks/capacitor.obj new file mode 100644 index 000000000..81f79da44 --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/capacitor.obj @@ -0,0 +1,128 @@ +# Blender v2.79 (sub 0) OBJ File: 'capacitor.blend' +# www.blender.org +o InnerSide +v -0.437500 -0.250000 0.437500 +v -0.437500 -0.250000 -0.437500 +v 0.437500 -0.250000 0.437500 +v 0.437500 -0.250000 -0.437500 +v -0.437500 0.437500 0.437500 +v -0.437500 0.437500 -0.437500 +v 0.437500 0.437500 -0.437500 +v 0.437500 0.437500 0.437500 +vt 0.937500 0.250000 +vt 0.062500 0.937500 +vt 0.062500 0.250000 +vt 0.062500 0.937500 +vt 0.937500 0.250000 +vt 0.937500 0.937500 +vt 0.937500 0.250000 +vt 0.062500 0.937500 +vt 0.062500 0.250000 +vt 0.062500 0.937500 +vt 0.937500 0.250000 +vt 0.937500 0.937500 +vt 0.937500 0.937500 +vt 0.062500 0.250000 +vt 0.937500 0.937500 +vt 0.062500 0.250000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +s off +f 3/1/1 5/2/1 1/3/1 +f 2/4/2 7/5/2 4/6/2 +f 4/7/3 8/8/3 3/9/3 +f 1/10/4 6/11/4 2/12/4 +f 3/1/1 8/13/1 5/2/1 +f 2/4/2 6/14/2 7/5/2 +f 4/7/3 7/15/3 8/8/3 +f 1/10/4 5/16/4 6/11/4 +o InnerTop +v -0.437500 0.437500 0.437500 +v -0.437500 0.437500 -0.437500 +v 0.437500 0.437500 -0.437500 +v 0.437500 0.437500 0.437500 +vt 0.937500 0.937500 +vt 0.062500 0.062500 +vt 0.937500 0.062500 +vt 0.062500 0.937500 +vn 0.0000 1.0000 0.0000 +s off +f 10/17/5 12/18/5 11/19/5 +f 10/17/5 9/20/5 12/18/5 +o Side +v -0.500000 -0.500000 0.500000 +v -0.500000 0.500000 0.500000 +v -0.500000 -0.500000 -0.500000 +v -0.500000 0.500000 -0.500000 +v 0.500000 -0.500000 0.500000 +v 0.500000 0.500000 0.500000 +v 0.500000 -0.500000 -0.500000 +v 0.500000 0.500000 -0.500000 +vt 1.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 0.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 1.000000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +s off +f 14/21/6 15/22/6 13/23/6 +f 16/24/7 19/25/7 15/26/7 +f 20/27/8 17/28/8 19/29/8 +f 18/30/9 13/31/9 17/32/9 +f 14/21/6 16/33/6 15/22/6 +f 16/24/7 20/34/7 19/25/7 +f 20/27/8 18/35/8 17/28/8 +f 18/30/9 14/36/9 13/31/9 +o Top +v -0.500000 0.500000 0.500000 +v -0.500000 0.500000 -0.500000 +v 0.500000 0.500000 0.500000 +v 0.500000 0.500000 -0.500000 +vt 1.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 0.000000 1.000000 +vn 0.0000 1.0000 0.0000 +s off +f 22/37/10 23/38/10 24/39/10 +f 22/37/10 21/40/10 23/38/10 +o Bottom +v -0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 -0.500000 +v -0.500000 -0.250000 0.500000 +v -0.500000 -0.250000 -0.500000 +v 0.500000 -0.250000 0.500000 +v 0.500000 -0.250000 -0.500000 +vt 1.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 0.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 1.000000 +vt 1.000000 0.000000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +s off +f 28/41/11 25/42/11 26/43/11 +f 30/44/12 31/45/12 32/46/12 +f 28/41/11 27/47/11 25/42/11 +f 30/44/12 29/48/12 31/45/12 diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_bus_out.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_bus_out.png new file mode 100644 index 0000000000000000000000000000000000000000..c9a207e23aea062507bc44b8c20b64fa7bdda6c9 GIT binary patch literal 195 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf=FKK#%|c literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_bus_side.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_bus_side.png new file mode 100644 index 0000000000000000000000000000000000000000..ae4dbc27800f8f32b39db0885b05d1266c03f65e GIT binary patch literal 187 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf~nvU!I+n-gC}vdV95_gF}O(vorH@x0p{lC+3Lj$3568JKLsB+=G=l|3HS-0w*h= f(GI){L5vJjI-KSgN!)4&+RotV>gTe~DWM4f9#}gk literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_copper_bottom.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_copper_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..32987415c75d9d064248e0f6ba19756b7fdf6d51 GIT binary patch literal 612 zcmV-q0-ODbP)MBP~i%Kz1+qOyUZ7fd;hQ@-CCY`=^yIrHv)s4IBU(t4k zh^?n<FFtdFd7ezSQCkkD3+-Uw%dmx=wxEuxd zGiX`oEESeHJgsBSrKmMJY?ktJ6ID%d)U-Hmb`W7Wrt8?e|M82rulIoKj})Kdcs;jA z&+SofNBP5Wj1VG;J(%!h#pL7nLjdN@8~|sQ%LBy%pzGM^nod$tm^X8gyGTY1Vz=bX y3`0KvKuf6%{QxB?q~ISvg7MfELK@is0000UQk literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_copper_inner_side.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_copper_inner_side.png new file mode 100644 index 0000000000000000000000000000000000000000..554d60816ff52c64b04384a25e3a35a4aa0ba5f4 GIT binary patch literal 177 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf-A`$s96Yt^22EJ~agaT^|!-ZA6q`dfS7?TVSFbuK_g)cx@8 z`SPYWvxH1Lb?fVW-)y`0vHfA5hpnEoQH<>*!NLg}=i7GNIQb`U_VS5p8BJ780avHS+=>gaORZewpJ}ZwzMc5Y z{PepLv(-nNrzxho@gJDoGuvF9Yvw9(27%)n3pWQ@dOfq)_Lr66&&+faOJ9+PFPQ>Z z81ljcZ6lv~%zU`(oq9ME!?NOd>&RtYkL`4xY-Ko5RjogV`SqCu6P>G}Obme{j0!Cc zsqxX5*E0Jo`o`uIVxOT~a6^_;M{9j7_Y1jG50fhdEP)7xV6oo&79Y`R-2)eXYr4AkXC$V)+-<(It6Lf4l1Yw~- zAt2HrH8l`Yq29^4_W69ybwnJ;1^*}sV2n9isI|rzQv%#3z<4|sRU+%wy|7^yNsrNRbsd7>)0~JAn(H!gg&q;yP?mcekh`_$7h-nv=r}?jLSh6$O-%m zDb?<*+-%k?z7}k^1usu`KkN$tJdtyIeZ@M@0hrBayW8JB41pgYrBp;=k6~9ZnWg{? z`olfz%JY~^Q=(3U@;m_2tQ>`SeZJWZMKznumt~YryTyFD!c)ILYrftv&6f1L?b4x= Zd;=o0r-(xk=!yUU002ovPDHLkV1hf;oGt(W literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_copper_top.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_copper_top.png new file mode 100644 index 0000000000000000000000000000000000000000..42a14038a4c78297d7feaeb38df310f23324ca9f GIT binary patch literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfs@^tNt_I0~)f87p<8VZ*cr;AQ7dhU$uYBOUs>0y_AeT7^bz&x8K8S%zQw# zgL`lJssmd;3cgN}HnK3=$GXaEs>-2NUi^-#HxD|@aGbK`8k@2IB%V5xj!8fEHE(Y+ z_hkKeCavwO#nJ@X8~bltYTdZ5&DnY4!z@Xe$J-wpZr Date: Fri, 9 Jun 2023 14:11:06 +0200 Subject: [PATCH 052/109] liquefied pain --- .../assets/hbm/models/weapons/coilgun.obj | 10556 ++++++++-------- 1 file changed, 5328 insertions(+), 5228 deletions(-) diff --git a/src/main/resources/assets/hbm/models/weapons/coilgun.obj b/src/main/resources/assets/hbm/models/weapons/coilgun.obj index 50e810e4b..b24831496 100644 --- a/src/main/resources/assets/hbm/models/weapons/coilgun.obj +++ b/src/main/resources/assets/hbm/models/weapons/coilgun.obj @@ -1,4787 +1,5 @@ # Blender v2.79 (sub 0) OBJ File: 'coilgun.blend' # www.blender.org -o Coils_Cylinder.012 -v -0.463562 0.524760 2.571894 -v -0.237813 0.524760 2.571894 -v -0.237813 0.222044 2.697284 -v -0.463562 0.222044 2.697284 -v -0.237813 0.096655 3.000000 -v -0.463562 0.096655 3.000000 -v -0.237813 0.222044 3.302716 -v -0.463562 0.222044 3.302716 -v -0.237813 0.524760 3.428106 -v -0.463562 0.524760 3.428106 -v -0.237813 0.827477 3.302716 -v -0.463562 0.827477 3.302716 -v -0.237813 0.952866 3.000000 -v -0.463562 0.952866 3.000000 -v -0.237813 0.827477 2.697284 -v -0.463562 0.827477 2.697284 -v -0.170088 0.524760 2.571894 -v 0.055660 0.524760 2.571894 -v 0.055660 0.222044 2.697284 -v -0.170088 0.222044 2.697284 -v 0.055660 0.096655 3.000000 -v -0.170088 0.096655 3.000000 -v 0.055660 0.222044 3.302716 -v -0.170088 0.222044 3.302716 -v 0.055660 0.524760 3.428106 -v -0.170088 0.524760 3.428106 -v 0.055660 0.827477 3.302716 -v -0.170088 0.827477 3.302716 -v 0.055660 0.952866 3.000000 -v -0.170088 0.952866 3.000000 -v 0.055660 0.827477 2.697284 -v -0.170088 0.827477 2.697284 -v 0.123385 0.524760 2.571894 -v 0.349134 0.524760 2.571894 -v 0.349134 0.222044 2.697284 -v 0.123385 0.222044 2.697284 -v 0.349134 0.096655 3.000000 -v 0.123385 0.096655 3.000000 -v 0.349134 0.222044 3.302716 -v 0.123385 0.222044 3.302716 -v 0.349134 0.524760 3.428106 -v 0.123385 0.524760 3.428106 -v 0.349134 0.827477 3.302716 -v 0.123385 0.827477 3.302716 -v 0.349134 0.952866 3.000000 -v 0.123385 0.952866 3.000000 -v 0.349134 0.827477 2.697284 -v 0.123385 0.827477 2.697284 -v 0.416858 0.524760 2.571894 -v 0.642607 0.524760 2.571894 -v 0.642607 0.222044 2.697284 -v 0.416858 0.222044 2.697284 -v 0.642607 0.096655 3.000000 -v 0.416858 0.096655 3.000000 -v 0.642607 0.222044 3.302716 -v 0.416858 0.222044 3.302716 -v 0.642607 0.524760 3.428106 -v 0.416858 0.524760 3.428106 -v 0.642607 0.827477 3.302716 -v 0.416858 0.827477 3.302716 -v 0.642607 0.952866 3.000000 -v 0.416858 0.952866 3.000000 -v 0.642607 0.827477 2.697284 -v 0.416858 0.827477 2.697284 -v 0.710331 0.524760 2.571894 -v 0.936080 0.524760 2.571894 -v 0.936080 0.222044 2.697284 -v 0.710331 0.222044 2.697284 -v 0.936080 0.096655 3.000000 -v 0.710331 0.096655 3.000000 -v 0.936080 0.222044 3.302716 -v 0.710331 0.222044 3.302716 -v 0.936080 0.524760 3.428106 -v 0.710331 0.524760 3.428106 -v 0.936080 0.827477 3.302716 -v 0.710331 0.827477 3.302716 -v 0.936080 0.952866 3.000000 -v 0.710331 0.952866 3.000000 -v 0.936080 0.827477 2.697284 -v 0.710331 0.827477 2.697284 -vt 0.781097 0.399443 -vt 0.718903 0.399443 -vt 0.718903 0.309173 -vt 0.781097 0.309173 -vt 0.718903 0.218903 -vt 0.781097 0.218903 -vt 0.781097 0.941064 -vt 0.718903 0.941064 -vt 0.718903 0.850794 -vt 0.781097 0.850794 -vt 0.718903 0.760524 -vt 0.781097 0.760524 -vt 0.718903 0.670254 -vt 0.781097 0.670254 -vt 0.718903 0.579984 -vt 0.781097 0.579984 -vt 0.218903 0.282734 -vt 0.282733 0.218903 -vt 0.373004 0.218903 -vt 0.436834 0.282734 -vt 0.436834 0.373004 -vt 0.373003 0.436835 -vt 0.282733 0.436834 -vt 0.218903 0.373004 -vt 0.718903 0.489714 -vt 0.781097 0.489714 -vt 0.064155 0.437482 -vt 0.154425 0.437483 -vt 0.218255 0.501313 -vt 0.218255 0.591583 -vt 0.154425 0.655414 -vt 0.064154 0.655414 -vt 0.000324 0.591583 -vt 0.000324 0.501313 -vt 0.999676 0.180864 -vt 0.937482 0.180864 -vt 0.937482 0.090594 -vt 0.999676 0.090594 -vt 0.937482 0.000324 -vt 0.999676 0.000324 -vt 0.999676 0.722485 -vt 0.937482 0.722485 -vt 0.937482 0.632215 -vt 0.999676 0.632215 -vt 0.937482 0.541944 -vt 0.999676 0.541944 -vt 0.937482 0.451674 -vt 0.999676 0.451674 -vt 0.937482 0.361404 -vt 0.999676 0.361404 -vt 0.000324 0.282734 -vt 0.064154 0.218903 -vt 0.154425 0.218903 -vt 0.218255 0.282734 -vt 0.218255 0.373004 -vt 0.154424 0.436835 -vt 0.064154 0.436834 -vt 0.000324 0.373004 -vt 0.937482 0.271134 -vt 0.999676 0.271134 -vt 0.501313 0.218903 -vt 0.591583 0.218903 -vt 0.655413 0.282734 -vt 0.655413 0.373004 -vt 0.591583 0.436835 -vt 0.501313 0.436834 -vt 0.437482 0.373004 -vt 0.437482 0.282734 -vt 0.718255 0.399443 -vt 0.656061 0.399443 -vt 0.656061 0.309173 -vt 0.718255 0.309173 -vt 0.656061 0.218903 -vt 0.718255 0.218903 -vt 0.718255 0.941064 -vt 0.656061 0.941064 -vt 0.656061 0.850794 -vt 0.718255 0.850794 -vt 0.656061 0.760524 -vt 0.718255 0.760524 -vt 0.656061 0.670254 -vt 0.718255 0.670254 -vt 0.656061 0.579984 -vt 0.718255 0.579984 -vt 0.218903 0.501313 -vt 0.282733 0.437482 -vt 0.373004 0.437483 -vt 0.436834 0.501313 -vt 0.436834 0.591583 -vt 0.373003 0.655414 -vt 0.282733 0.655414 -vt 0.218903 0.591583 -vt 0.656061 0.489714 -vt 0.718255 0.489714 -vt 0.501313 0.437482 -vt 0.591583 0.437483 -vt 0.655413 0.501313 -vt 0.655413 0.591583 -vt 0.591583 0.655414 -vt 0.501313 0.655414 -vt 0.437482 0.591583 -vt 0.437482 0.501313 -vt 0.936834 0.180864 -vt 0.874640 0.180864 -vt 0.874640 0.090594 -vt 0.936834 0.090594 -vt 0.874640 0.000324 -vt 0.936834 0.000324 -vt 0.936834 0.722484 -vt 0.874640 0.722484 -vt 0.874640 0.632214 -vt 0.936834 0.632214 -vt 0.874640 0.541944 -vt 0.936834 0.541944 -vt 0.874640 0.451674 -vt 0.936834 0.451674 -vt 0.874640 0.361404 -vt 0.936834 0.361404 -vt 0.656061 0.064155 -vt 0.719891 0.000324 -vt 0.810162 0.000324 -vt 0.873992 0.064155 -vt 0.873992 0.154425 -vt 0.810162 0.218255 -vt 0.719891 0.218255 -vt 0.656061 0.154425 -vt 0.874640 0.271134 -vt 0.936834 0.271134 -vt 0.501313 0.000324 -vt 0.591583 0.000324 -vt 0.655413 0.064155 -vt 0.655413 0.154425 -vt 0.591583 0.218255 -vt 0.501313 0.218255 -vt 0.437482 0.154425 -vt 0.437482 0.064155 -vt 0.873992 0.399443 -vt 0.811798 0.399443 -vt 0.811798 0.309173 -vt 0.873992 0.309173 -vt 0.811798 0.218903 -vt 0.873992 0.218903 -vt 0.873992 0.941064 -vt 0.811798 0.941064 -vt 0.811798 0.850794 -vt 0.873992 0.850794 -vt 0.811798 0.760524 -vt 0.873992 0.760524 -vt 0.811798 0.670253 -vt 0.873992 0.670253 -vt 0.811798 0.579983 -vt 0.873992 0.579983 -vt 0.218903 0.064155 -vt 0.282733 0.000324 -vt 0.373004 0.000324 -vt 0.436834 0.064155 -vt 0.436834 0.154425 -vt 0.373003 0.218255 -vt 0.282733 0.218255 -vt 0.218903 0.154425 -vt 0.811798 0.489713 -vt 0.873992 0.489713 -vt 0.064155 0.000324 -vt 0.154425 0.000324 -vt 0.218255 0.064155 -vt 0.218255 0.154425 -vt 0.154425 0.218255 -vt 0.064154 0.218255 -vt 0.000324 0.154425 -vt 0.000324 0.064155 -vn 0.0000 -0.3827 -0.9239 -vn 0.0000 -0.9239 -0.3827 -vn 0.0000 -0.9239 0.3827 -vn 0.0000 -0.3827 0.9239 -vn 0.0000 0.3827 0.9239 -vn 0.0000 0.9239 0.3827 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.9239 -0.3827 -vn 0.0000 0.3827 -0.9239 -vn -1.0000 0.0000 0.0000 -s off -f 1/1/1 2/2/1 3/3/1 4/4/1 -f 4/4/2 3/3/2 5/5/2 6/6/2 -f 6/7/3 5/8/3 7/9/3 8/10/3 -f 8/10/4 7/9/4 9/11/4 10/12/4 -f 10/12/5 9/11/5 11/13/5 12/14/5 -f 12/14/6 11/13/6 13/15/6 14/16/6 -f 3/17/7 2/18/7 15/19/7 13/20/7 11/21/7 9/22/7 7/23/7 5/24/7 -f 14/16/8 13/15/8 15/25/8 16/26/8 -f 16/26/9 15/25/9 2/2/9 1/1/9 -f 1/27/10 4/28/10 6/29/10 8/30/10 10/31/10 12/32/10 14/33/10 16/34/10 -f 17/35/1 18/36/1 19/37/1 20/38/1 -f 20/38/2 19/37/2 21/39/2 22/40/2 -f 22/41/3 21/42/3 23/43/3 24/44/3 -f 24/44/4 23/43/4 25/45/4 26/46/4 -f 26/46/5 25/45/5 27/47/5 28/48/5 -f 28/48/6 27/47/6 29/49/6 30/50/6 -f 19/51/7 18/52/7 31/53/7 29/54/7 27/55/7 25/56/7 23/57/7 21/58/7 -f 30/50/8 29/49/8 31/59/8 32/60/8 -f 32/60/9 31/59/9 18/36/9 17/35/9 -f 17/61/10 20/62/10 22/63/10 24/64/10 26/65/10 28/66/10 30/67/10 32/68/10 -f 33/69/1 34/70/1 35/71/1 36/72/1 -f 36/72/2 35/71/2 37/73/2 38/74/2 -f 38/75/3 37/76/3 39/77/3 40/78/3 -f 40/78/4 39/77/4 41/79/4 42/80/4 -f 42/80/5 41/79/5 43/81/5 44/82/5 -f 44/82/6 43/81/6 45/83/6 46/84/6 -f 35/85/7 34/86/7 47/87/7 45/88/7 43/89/7 41/90/7 39/91/7 37/92/7 -f 46/84/8 45/83/8 47/93/8 48/94/8 -f 48/94/9 47/93/9 34/70/9 33/69/9 -f 33/95/10 36/96/10 38/97/10 40/98/10 42/99/10 44/100/10 46/101/10 48/102/10 -f 49/103/1 50/104/1 51/105/1 52/106/1 -f 52/106/2 51/105/2 53/107/2 54/108/2 -f 54/109/3 53/110/3 55/111/3 56/112/3 -f 56/112/4 55/111/4 57/113/4 58/114/4 -f 58/114/5 57/113/5 59/115/5 60/116/5 -f 60/116/6 59/115/6 61/117/6 62/118/6 -f 51/119/7 50/120/7 63/121/7 61/122/7 59/123/7 57/124/7 55/125/7 53/126/7 -f 62/118/8 61/117/8 63/127/8 64/128/8 -f 64/128/9 63/127/9 50/104/9 49/103/9 -f 49/129/10 52/130/10 54/131/10 56/132/10 58/133/10 60/134/10 62/135/10 64/136/10 -f 65/137/1 66/138/1 67/139/1 68/140/1 -f 68/140/2 67/139/2 69/141/2 70/142/2 -f 70/143/3 69/144/3 71/145/3 72/146/3 -f 72/146/4 71/145/4 73/147/4 74/148/4 -f 74/148/5 73/147/5 75/149/5 76/150/5 -f 76/150/6 75/149/6 77/151/6 78/152/6 -f 67/153/7 66/154/7 79/155/7 77/156/7 75/157/7 73/158/7 71/159/7 69/160/7 -f 78/152/8 77/151/8 79/161/8 80/162/8 -f 80/162/9 79/161/9 66/138/9 65/137/9 -f 65/163/10 68/164/10 70/165/10 72/166/10 74/167/10 76/168/10 78/169/10 80/170/10 -o Tech_thingy_Cylinder.011 -v -1.457017 0.997796 0.139627 -v -1.457017 1.110929 0.189700 -v -1.405270 1.098405 0.216824 -v -1.405270 0.985272 0.166751 -v -1.405270 1.073357 0.271072 -v -1.405270 0.960224 0.220999 -v -1.457017 1.060833 0.298196 -v -1.457017 0.947700 0.248123 -v -1.508763 1.073357 0.271072 -v -1.508763 0.960224 0.220999 -v -1.508763 1.098405 0.216824 -v -1.508763 0.985272 0.166751 -v -1.322476 0.997796 0.139627 -v -1.322476 1.110929 0.189700 -v -1.270730 1.098405 0.216824 -v -1.270730 0.985272 0.166751 -v -1.270730 1.073357 0.271072 -v -1.270730 0.960224 0.220999 -v -1.322476 1.060833 0.298196 -v -1.322476 0.947700 0.248123 -v -1.374223 1.073357 0.271072 -v -1.374223 0.960224 0.220999 -v -1.374223 1.098405 0.216824 -v -1.374223 0.985272 0.166751 -v -1.187935 0.997796 0.139627 -v -1.187935 1.110929 0.189700 -v -1.136189 1.098405 0.216824 -v -1.136189 0.985272 0.166751 -v -1.136189 1.073357 0.271072 -v -1.136189 0.960224 0.220999 -v -1.187935 1.060833 0.298196 -v -1.187935 0.947700 0.248123 -v -1.239682 1.073357 0.271072 -v -1.239682 0.960224 0.220999 -v -1.239682 1.098405 0.216824 -v -1.239682 0.985272 0.166751 -v -1.551588 0.824089 0.270719 -v -1.551588 0.906574 0.321562 -v -1.551588 1.018668 0.066710 -v -1.551588 0.936183 0.015867 -v -1.097206 1.018668 0.066710 -v -1.097206 0.936183 0.015867 -v -1.097206 0.906574 0.321562 -v -1.097206 0.824089 0.270719 -v -1.521210 0.950031 0.320343 -v -1.521210 1.047137 0.099566 -v -1.127583 1.047137 0.099566 -v -1.127583 0.950031 0.320343 -v -1.457017 0.997796 -0.139627 -v -1.405271 0.985272 -0.166751 -v -1.405271 1.098405 -0.216824 -v -1.457017 1.110929 -0.189700 -v -1.405271 0.960224 -0.220999 -v -1.405271 1.073357 -0.271072 -v -1.457017 0.947700 -0.248123 -v -1.457017 1.060833 -0.298196 -v -1.508764 0.960224 -0.220999 -v -1.508764 1.073357 -0.271072 -v -1.508764 1.098405 -0.216824 -v -1.508764 0.985272 -0.166751 -v -1.322476 0.997796 -0.139627 -v -1.270730 0.985272 -0.166751 -v -1.270730 1.098405 -0.216824 -v -1.322476 1.110929 -0.189700 -v -1.270730 0.960224 -0.220999 -v -1.270730 1.073357 -0.271072 -v -1.322476 0.947700 -0.248123 -v -1.322476 1.060833 -0.298196 -v -1.374223 0.960224 -0.220999 -v -1.374223 1.073357 -0.271072 -v -1.374223 1.098405 -0.216824 -v -1.374223 0.985272 -0.166751 -v -1.187936 0.997796 -0.139627 -v -1.136189 0.985272 -0.166751 -v -1.136189 1.098405 -0.216824 -v -1.187936 1.110929 -0.189700 -v -1.136189 0.960224 -0.220999 -v -1.136189 1.073357 -0.271072 -v -1.187936 0.947700 -0.248123 -v -1.187936 1.060833 -0.298196 -v -1.239682 0.960224 -0.220999 -v -1.239682 1.073357 -0.271072 -v -1.239682 1.098405 -0.216824 -v -1.239682 0.985272 -0.166751 -v -1.551588 0.824089 -0.270719 -v -1.551588 0.936183 -0.015867 -v -1.551588 1.018668 -0.066710 -v -1.551588 0.906574 -0.321562 -v -1.097206 0.936183 -0.015867 -v -1.097206 1.018668 -0.066710 -v -1.097206 0.824089 -0.270719 -v -1.097206 0.906574 -0.321562 -v -1.521211 1.047137 -0.099566 -v -1.521211 0.950031 -0.320343 -v -1.127584 1.047137 -0.099566 -v -1.127584 0.950031 -0.320343 -vt 1.000000 0.500000 -vt 1.000000 1.000000 -vt 0.833333 1.000000 -vt 0.833333 0.500000 -vt 0.666667 1.000000 -vt 0.666667 0.500000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.333333 1.000000 -vt 0.333333 0.500000 -vt 0.457846 0.370000 -vt 0.250000 0.490000 -vt 0.042154 0.370000 -vt 0.042154 0.130000 -vt 0.250000 0.010000 -vt 0.457846 0.130000 -vt 0.166667 1.000000 -vt 0.166667 0.500000 -vt -0.000000 1.000000 -vt -0.000000 0.500000 -vt 0.750000 0.490000 -vt 0.957846 0.370000 -vt 0.957846 0.130000 -vt 0.750000 0.010000 -vt 0.542154 0.130000 -vt 0.542154 0.370000 -vt 1.000000 0.500000 -vt 1.000000 1.000000 -vt 0.833333 1.000000 -vt 0.833333 0.500000 -vt 0.666667 1.000000 -vt 0.666667 0.500000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.333333 1.000000 -vt 0.333333 0.500000 -vt 0.457846 0.370000 -vt 0.250000 0.490000 -vt 0.042154 0.370000 -vt 0.042154 0.130000 -vt 0.250000 0.010000 -vt 0.457846 0.130000 -vt 0.166667 1.000000 -vt 0.166667 0.500000 -vt -0.000000 1.000000 -vt -0.000000 0.500000 -vt 0.750000 0.490000 -vt 0.957846 0.370000 -vt 0.957846 0.130000 -vt 0.750000 0.010000 -vt 0.542154 0.130000 -vt 0.542154 0.370000 -vt 1.000000 0.500000 -vt 1.000000 1.000000 -vt 0.833333 1.000000 -vt 0.833333 0.500000 -vt 0.666667 1.000000 -vt 0.666667 0.500000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.333333 1.000000 -vt 0.333333 0.500000 -vt 0.457846 0.370000 -vt 0.250000 0.490000 -vt 0.042154 0.370000 -vt 0.042154 0.130000 -vt 0.250000 0.010000 -vt 0.457846 0.130000 -vt 0.166667 1.000000 -vt 0.166667 0.500000 -vt -0.000000 1.000000 -vt -0.000000 0.500000 -vt 0.750000 0.490000 -vt 0.957846 0.370000 -vt 0.957846 0.130000 -vt 0.750000 0.010000 -vt 0.542154 0.130000 -vt 0.542154 0.370000 -vt 0.375000 0.000000 -vt 0.625000 0.000000 -vt 0.625000 0.250000 -vt 0.375000 0.250000 -vt 0.625000 0.500000 -vt 0.375000 0.500000 -vt 0.625000 0.750000 -vt 0.375000 0.750000 -vt 0.625000 1.000000 -vt 0.375000 1.000000 -vt 0.125000 0.500000 -vt 0.125000 0.750000 -vt 0.625000 0.000000 -vt 0.625000 0.250000 -vt 0.625000 0.500000 -vt 0.875000 0.500000 -vt 0.875000 0.750000 -vt 0.625000 0.750000 -vt 0.625000 1.000000 -vt 1.000000 0.500000 -vt 0.833333 0.500000 -vt 0.833333 1.000000 -vt 1.000000 1.000000 -vt 0.666667 0.500000 -vt 0.666667 1.000000 -vt 0.500000 0.500000 -vt 0.500000 1.000000 -vt 0.333333 0.500000 -vt 0.333333 1.000000 -vt 0.457846 0.370000 -vt 0.457846 0.130000 -vt 0.250000 0.010000 -vt 0.042154 0.130000 -vt 0.042154 0.370000 -vt 0.250000 0.490000 -vt 0.166667 0.500000 -vt 0.166667 1.000000 -vt -0.000000 0.500000 -vt -0.000000 1.000000 -vt 0.750000 0.490000 -vt 0.542154 0.370000 -vt 0.542154 0.130000 -vt 0.750000 0.010000 -vt 0.957846 0.130000 -vt 0.957846 0.370000 -vt 1.000000 0.500000 -vt 0.833333 0.500000 -vt 0.833333 1.000000 -vt 1.000000 1.000000 -vt 0.666667 0.500000 -vt 0.666667 1.000000 -vt 0.500000 0.500000 -vt 0.500000 1.000000 -vt 0.333333 0.500000 -vt 0.333333 1.000000 -vt 0.457846 0.370000 -vt 0.457846 0.130000 -vt 0.250000 0.010000 -vt 0.042154 0.130000 -vt 0.042154 0.370000 -vt 0.250000 0.490000 -vt 0.166667 0.500000 -vt 0.166667 1.000000 -vt -0.000000 0.500000 -vt -0.000000 1.000000 -vt 0.750000 0.490000 -vt 0.542154 0.370000 -vt 0.542154 0.130000 -vt 0.750000 0.010000 -vt 0.957846 0.130000 -vt 0.957846 0.370000 -vt 1.000000 0.500000 -vt 0.833333 0.500000 -vt 0.833333 1.000000 -vt 1.000000 1.000000 -vt 0.666667 0.500000 -vt 0.666667 1.000000 -vt 0.500000 0.500000 -vt 0.500000 1.000000 -vt 0.333333 0.500000 -vt 0.333333 1.000000 -vt 0.457846 0.370000 -vt 0.457846 0.130000 -vt 0.250000 0.010000 -vt 0.042154 0.130000 -vt 0.042154 0.370000 -vt 0.250000 0.490000 -vt 0.166667 0.500000 -vt 0.166667 1.000000 -vt -0.000000 0.500000 -vt -0.000000 1.000000 -vt 0.750000 0.490000 -vt 0.542154 0.370000 -vt 0.542154 0.130000 -vt 0.750000 0.010000 -vt 0.957846 0.130000 -vt 0.957846 0.370000 -vt 0.375000 0.000000 -vt 0.375000 0.250000 -vt 0.625000 0.250000 -vt 0.625000 0.000000 -vt 0.375000 0.500000 -vt 0.625000 0.500000 -vt 0.375000 0.750000 -vt 0.625000 0.750000 -vt 0.375000 1.000000 -vt 0.625000 1.000000 -vt 0.125000 0.500000 -vt 0.125000 0.750000 -vt 0.625000 0.250000 -vt 0.625000 0.000000 -vt 0.625000 0.500000 -vt 0.625000 0.750000 -vt 0.875000 0.750000 -vt 0.875000 0.500000 -vt 0.625000 1.000000 -vn 0.4999 0.3505 -0.7920 -vn 1.0000 -0.0000 0.0000 -vn 0.4999 -0.3505 0.7920 -vn -0.5000 -0.3505 0.7919 -vn 0.0000 0.9079 0.4192 -vn -1.0000 0.0000 0.0000 -vn -0.5000 0.3505 -0.7919 -vn 0.0000 -0.9079 -0.4192 -vn 0.5000 0.3505 -0.7919 -vn 0.5000 -0.3505 0.7919 -vn -0.4999 -0.3505 0.7920 -vn -0.4999 0.3505 -0.7920 -vn 0.0000 0.5247 -0.8513 -vn 0.0000 -0.5247 0.8513 -vn 0.0000 -0.9154 -0.4026 -vn -0.7911 0.5599 0.2463 -vn 0.0000 0.9154 0.4026 -vn 0.0000 0.0280 0.9996 -vn 0.0000 0.7558 -0.6548 -vn 0.7911 0.5599 0.2463 -vn 0.5000 0.3505 0.7919 -vn 0.5000 -0.3505 -0.7919 -vn -0.4999 -0.3505 -0.7920 -vn 0.0000 0.9079 -0.4192 -vn -0.4999 0.3505 0.7920 -vn 0.0000 -0.9079 0.4192 -vn 0.4999 0.3505 0.7920 -vn 0.4999 -0.3505 -0.7920 -vn -0.5000 -0.3505 -0.7919 -vn -0.5000 0.3505 0.7919 -vn 0.0000 0.5247 0.8513 -vn 0.0000 -0.5247 -0.8513 -vn 0.0000 -0.9154 0.4026 -vn -0.7911 0.5599 -0.2463 -vn 0.0000 0.9154 -0.4026 -vn 0.0000 0.0280 -0.9996 -vn 0.0000 0.7558 0.6548 -vn 0.7911 0.5599 -0.2463 -s 1 -f 81/171/11 82/172/11 83/173/11 84/174/11 -f 84/174/12 83/173/12 85/175/12 86/176/12 -f 86/176/13 85/175/13 87/177/13 88/178/13 -f 88/178/14 87/177/14 89/179/14 90/180/14 -f 83/181/15 82/182/15 91/183/15 89/184/15 87/185/15 85/186/15 -f 90/180/16 89/179/16 91/187/16 92/188/16 -f 92/188/17 91/187/17 82/189/17 81/190/17 -f 81/191/18 84/192/18 86/193/18 88/194/18 90/195/18 92/196/18 -f 93/197/19 94/198/19 95/199/19 96/200/19 -f 96/200/12 95/199/12 97/201/12 98/202/12 -f 98/202/20 97/201/20 99/203/20 100/204/20 -f 100/204/21 99/203/21 101/205/21 102/206/21 -f 95/207/15 94/208/15 103/209/15 101/210/15 99/211/15 97/212/15 -f 102/206/16 101/205/16 103/213/16 104/214/16 -f 104/214/22 103/213/22 94/215/22 93/216/22 -f 93/217/18 96/218/18 98/219/18 100/220/18 102/221/18 104/222/18 -f 105/223/19 106/224/19 107/225/19 108/226/19 -f 108/226/12 107/225/12 109/227/12 110/228/12 -f 110/228/20 109/227/20 111/229/20 112/230/20 -f 112/230/21 111/229/21 113/231/21 114/232/21 -f 107/233/15 106/234/15 115/235/15 113/236/15 111/237/15 109/238/15 -f 114/232/16 113/231/16 115/239/16 116/240/16 -f 116/240/22 115/239/22 106/241/22 105/242/22 -f 105/243/18 108/244/18 110/245/18 112/246/18 114/247/18 116/248/18 -f 117/249/16 118/250/16 119/251/16 120/252/16 -f 120/252/23 119/251/23 121/253/23 122/254/23 -f 122/254/12 121/253/12 123/255/12 124/256/12 -f 124/256/24 123/255/24 118/257/24 117/258/24 -f 120/259/25 122/254/25 124/256/25 117/260/25 -f 119/251/26 118/250/26 125/261/26 126/262/26 -f 127/263/27 126/264/27 125/265/27 128/266/27 -f 118/257/28 123/255/28 128/266/28 125/267/28 -f 121/253/29 119/251/29 126/262/29 127/263/29 -f 123/255/30 121/253/30 127/263/30 128/266/30 -f 129/268/31 130/269/31 131/270/31 132/271/31 -f 130/269/12 133/272/12 134/273/12 131/270/12 -f 133/272/32 135/274/32 136/275/32 134/273/32 -f 135/274/33 137/276/33 138/277/33 136/275/33 -f 131/278/34 134/279/34 136/280/34 138/281/34 139/282/34 132/283/34 -f 137/276/16 140/284/16 139/285/16 138/277/16 -f 140/284/35 129/286/35 132/287/35 139/285/35 -f 129/288/36 140/289/36 137/290/36 135/291/36 133/292/36 130/293/36 -f 141/294/31 142/295/31 143/296/31 144/297/31 -f 142/295/12 145/298/12 146/299/12 143/296/12 -f 145/298/32 147/300/32 148/301/32 146/299/32 -f 147/300/33 149/302/33 150/303/33 148/301/33 -f 143/304/34 146/305/34 148/306/34 150/307/34 151/308/34 144/309/34 -f 149/302/16 152/310/16 151/311/16 150/303/16 -f 152/310/35 141/312/35 144/313/35 151/311/35 -f 141/314/36 152/315/36 149/316/36 147/317/36 145/318/36 142/319/36 -f 153/320/37 154/321/37 155/322/37 156/323/37 -f 154/321/12 157/324/12 158/325/12 155/322/12 -f 157/324/38 159/326/38 160/327/38 158/325/38 -f 159/326/39 161/328/39 162/329/39 160/327/39 -f 155/330/34 158/331/34 160/332/34 162/333/34 163/334/34 156/335/34 -f 161/328/16 164/336/16 163/337/16 162/329/16 -f 164/336/40 153/338/40 156/339/40 163/337/40 -f 153/340/36 164/341/36 161/342/36 159/343/36 157/344/36 154/345/36 -f 165/346/16 166/347/16 167/348/16 168/349/16 -f 166/347/41 169/350/41 170/351/41 167/348/41 -f 169/350/12 171/352/12 172/353/12 170/351/12 -f 171/352/42 165/354/42 168/355/42 172/353/42 -f 166/356/43 165/357/43 171/352/43 169/350/43 -f 167/348/44 173/358/44 174/359/44 168/349/44 -f 175/360/45 176/361/45 174/362/45 173/363/45 -f 168/355/46 174/364/46 176/361/46 172/353/46 -f 170/351/47 175/360/47 173/358/47 167/348/47 -f 172/353/48 176/361/48 175/360/48 170/351/48 -o SideThingy_Cube.009 -v -1.552216 0.766425 0.449060 -v -1.552216 0.766425 0.324053 -v -1.613245 0.699098 0.324053 -v -1.613245 0.699098 0.449060 -v -1.552216 0.456014 0.324053 -v -1.052377 0.766425 0.324053 -v -1.052377 0.456014 0.324053 -v -1.052377 0.766425 0.449060 -v -1.048308 0.766425 0.449060 -v -1.048308 0.766425 0.324053 -v -1.052377 0.456014 0.449060 -v -1.552216 0.456014 0.449060 -v -1.048308 0.456014 0.324053 -v -1.041527 0.788142 0.315308 -v -1.041527 0.434297 0.315308 -v -1.048308 0.456014 0.449060 -v -1.041527 0.788142 0.457806 -v -1.041527 0.434297 0.457806 -v -0.900483 0.434297 0.457806 -v -0.900483 0.788142 0.457806 -v -0.900483 0.788142 0.315308 -v -0.896414 0.768510 0.449899 -v -0.896414 0.768510 0.323214 -v -0.900483 0.434297 0.315308 -v -0.896414 0.453929 0.449899 -v -0.817755 0.457256 0.449106 -v -0.817755 0.767895 0.449106 -v -0.896414 0.453929 0.323214 -v -0.817755 0.457256 0.324007 -v -0.817755 0.767895 0.324007 -v -1.613245 0.523341 0.449060 -v -1.613245 0.523341 0.324053 -v -1.552216 0.766425 -0.449060 -v -1.613245 0.699098 -0.449060 -v -1.613245 0.699098 -0.324053 -v -1.552216 0.766425 -0.324053 -v -1.552216 0.456014 -0.324053 -v -1.052377 0.456014 -0.324053 -v -1.052377 0.766425 -0.324053 -v -1.048308 0.766425 -0.324053 -v -1.048308 0.766425 -0.449060 -v -1.052377 0.766425 -0.449060 -v -1.052377 0.456014 -0.449060 -v -1.552216 0.456014 -0.449060 -v -1.048308 0.456014 -0.324053 -v -1.041528 0.434297 -0.315308 -v -1.041528 0.788142 -0.315308 -v -1.048308 0.456014 -0.449060 -v -1.041528 0.788142 -0.457806 -v -0.900483 0.788142 -0.457806 -v -0.900483 0.434297 -0.457806 -v -1.041528 0.434297 -0.457806 -v -0.900483 0.788142 -0.315308 -v -0.896414 0.768510 -0.323214 -v -0.896414 0.768510 -0.449899 -v -0.900483 0.434297 -0.315308 -v -0.817755 0.767895 -0.449106 -v -0.817755 0.457256 -0.449106 -v -0.896414 0.453929 -0.449899 -v -0.896414 0.453929 -0.323214 -v -0.817755 0.457256 -0.324007 -v -0.817755 0.767895 -0.324007 -v -1.613245 0.523341 -0.449060 -v -1.613245 0.523341 -0.324053 -vt 0.875000 0.750000 -vt 0.875000 0.500000 -vt 0.875000 0.500000 -vt 0.875000 0.750000 -vt 0.375000 0.250000 -vt 0.625000 0.250000 -vt 0.625000 0.500000 -vt 0.375000 0.500000 -vt 0.625000 0.750000 -vt 0.625000 0.750000 -vt 0.625000 0.500000 -vt 0.375000 0.750000 -vt 0.625000 1.000000 -vt 0.375000 1.000000 -vt 0.125000 0.500000 -vt 0.125000 0.750000 -vt 0.375000 0.500000 -vt 0.625000 0.500000 -vt 0.375000 0.500000 -vt 0.375000 0.750000 -vt 0.625000 0.750000 -vt 0.375000 0.750000 -vt 0.375000 0.750000 -vt 0.625000 0.750000 -vt 0.625000 0.500000 -vt 0.625000 0.750000 -vt 0.625000 0.500000 -vt 0.375000 0.500000 -vt 0.375000 0.750000 -vt 0.375000 0.750000 -vt 0.625000 0.750000 -vt 0.375000 0.500000 -vt 0.375000 0.500000 -vt 0.625000 0.500000 -vt 0.375000 0.000000 -vt 0.625000 0.000000 -vt 0.625000 0.250000 -vt 0.375000 0.250000 -vt 0.125000 0.750000 -vt 0.125000 0.500000 -vt 0.625000 1.000000 -vt 0.375000 1.000000 -vt 0.875000 0.750000 -vt 0.875000 0.750000 -vt 0.875000 0.500000 -vt 0.875000 0.500000 -vt 0.375000 0.250000 -vt 0.375000 0.500000 -vt 0.625000 0.500000 -vt 0.625000 0.250000 -vt 0.625000 0.500000 -vt 0.625000 0.750000 -vt 0.625000 0.750000 -vt 0.375000 0.750000 -vt 0.375000 1.000000 -vt 0.625000 1.000000 -vt 0.125000 0.500000 -vt 0.125000 0.750000 -vt 0.375000 0.500000 -vt 0.375000 0.500000 -vt 0.625000 0.500000 -vt 0.375000 0.750000 -vt 0.625000 0.750000 -vt 0.625000 0.750000 -vt 0.375000 0.750000 -vt 0.375000 0.750000 -vt 0.625000 0.500000 -vt 0.625000 0.500000 -vt 0.625000 0.750000 -vt 0.375000 0.500000 -vt 0.625000 0.750000 -vt 0.375000 0.750000 -vt 0.375000 0.750000 -vt 0.375000 0.500000 -vt 0.375000 0.500000 -vt 0.625000 0.500000 -vt 0.375000 0.000000 -vt 0.375000 0.250000 -vt 0.625000 0.250000 -vt 0.625000 0.000000 -vt 0.125000 0.500000 -vt 0.125000 0.750000 -vt 0.375000 1.000000 -vt 0.625000 1.000000 -vn -0.7409 0.6716 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 -1.0000 -0.0000 -vn -0.7903 0.0000 -0.6128 -vn -0.7903 0.0000 0.6127 -vn -0.9545 -0.2981 -0.0000 -vn -0.9545 0.2981 0.0000 -vn 0.9792 0.2030 0.0000 -vn 0.0101 0.0000 0.9999 -vn 0.8891 0.0000 -0.4576 -vn 0.8892 0.0000 0.4576 -vn 0.9792 -0.2030 -0.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0423 -0.9991 -0.0000 -vn 0.0078 1.0000 0.0000 -vn 0.0101 0.0000 -0.9999 -vn -1.0000 0.0000 0.0000 -vn -0.7409 -0.6716 0.0000 -vn -0.7903 0.0000 -0.6127 -vn -0.9546 -0.2980 -0.0000 -vn -0.9546 0.2980 0.0000 -vn 0.8891 0.0000 0.4576 -vn 0.8892 0.0000 -0.4576 -s 1 -f 177/365/49 178/366/49 179/367/49 180/368/49 -f 181/369/50 178/370/50 182/371/50 183/372/50 -f 182/371/51 184/373/51 185/374/51 186/375/51 -f 187/376/52 184/373/52 177/377/52 188/378/52 -f 181/379/53 183/372/53 187/376/53 188/380/53 -f 182/371/51 178/366/51 177/365/51 184/373/51 -f 189/381/54 186/375/54 190/382/54 191/383/54 -f 183/372/50 182/371/50 186/375/50 189/381/50 -f 184/373/52 187/376/52 192/384/52 185/374/52 -f 187/376/53 183/372/53 189/381/53 192/384/53 -f 193/385/52 194/386/52 195/387/52 196/388/52 -f 185/374/55 192/384/55 194/386/55 193/385/55 -f 192/384/56 189/381/56 191/383/56 194/386/56 -f 186/375/57 185/374/57 193/385/57 190/382/57 -f 197/389/58 196/388/58 198/390/58 199/391/58 -f 194/386/53 191/383/53 200/392/53 195/387/53 -f 190/382/51 193/385/51 196/388/51 197/389/51 -f 191/383/50 190/382/50 197/389/50 200/392/50 -f 198/390/59 201/393/59 202/394/59 203/395/59 -f 200/392/60 197/389/60 199/391/60 204/396/60 -f 196/388/61 195/387/61 201/393/61 198/390/61 -f 195/387/62 200/392/62 204/396/62 201/393/62 -f 205/397/63 206/398/63 203/395/63 202/394/63 -f 201/393/64 204/396/64 205/397/64 202/394/64 -f 199/391/65 198/390/65 203/395/65 206/398/65 -f 204/396/66 199/391/66 206/398/66 205/397/66 -f 207/399/67 180/400/67 179/401/67 208/402/67 -f 181/379/68 188/380/68 207/403/68 208/404/68 -f 178/370/50 181/369/50 208/402/50 179/401/50 -f 188/378/52 177/377/52 180/405/52 207/406/52 -f 209/407/49 210/408/49 211/409/49 212/410/49 -f 213/411/52 214/412/52 215/413/52 212/414/52 -f 215/413/51 216/415/51 217/416/51 218/417/51 -f 219/418/50 220/419/50 209/420/50 218/417/50 -f 213/421/53 220/422/53 219/418/53 214/412/53 -f 215/413/51 218/417/51 209/407/51 212/410/51 -f 221/423/55 222/424/55 223/425/55 216/415/55 -f 214/412/52 221/423/52 216/415/52 215/413/52 -f 218/417/50 217/416/50 224/426/50 219/418/50 -f 219/418/53 224/426/53 221/423/53 214/412/53 -f 225/427/50 226/428/50 227/429/50 228/430/50 -f 217/416/69 225/427/69 228/430/69 224/426/69 -f 224/426/70 228/430/70 222/424/70 221/423/70 -f 216/415/71 223/425/71 225/427/71 217/416/71 -f 229/431/58 230/432/58 231/433/58 226/428/58 -f 228/430/53 227/429/53 232/434/53 222/424/53 -f 223/425/51 229/431/51 226/428/51 225/427/51 -f 222/424/52 232/434/52 229/431/52 223/425/52 -f 231/433/66 233/435/66 234/436/66 235/437/66 -f 232/434/72 236/438/72 230/432/72 229/431/72 -f 226/428/73 231/433/73 235/437/73 227/429/73 -f 227/429/62 235/437/62 236/438/62 232/434/62 -f 237/439/63 234/436/63 233/435/63 238/440/63 -f 235/437/64 234/436/64 237/439/64 236/438/64 -f 230/432/65 238/440/65 233/435/65 231/433/65 -f 236/438/59 237/439/59 238/440/59 230/432/59 -f 239/441/67 240/442/67 211/443/67 210/444/67 -f 213/421/68 240/445/68 239/446/68 220/422/68 -f 212/414/52 211/443/52 240/442/52 213/411/52 -f 220/419/50 239/447/50 210/448/50 209/420/50 -o AmmoVice_Cylinder.010 -v -2.170566 0.644712 -0.108739 -v -2.102717 0.644712 -0.108739 -v -2.102717 0.567822 -0.076890 -v -2.170566 0.567822 -0.076890 -v -2.102717 0.535974 0.000000 -v -2.170566 0.535974 0.000000 -v -2.102717 0.567822 0.076890 -v -2.170566 0.567822 0.076890 -v -2.102717 0.644712 0.108739 -v -2.170566 0.644712 0.108739 -v -2.102717 0.721602 0.076890 -v -2.170566 0.721602 0.076890 -v -2.102717 0.753451 0.000000 -v -2.170566 0.753451 0.000000 -v -2.102717 0.721602 -0.076890 -v -2.170566 0.721602 -0.076890 -v -2.209619 0.644712 0.088337 -v -2.209619 0.582248 0.062464 -v -2.209619 0.644712 -0.088337 -v -2.209619 0.582248 -0.062464 -v -2.209619 0.556375 0.000000 -v -2.209619 0.707176 0.062464 -v -2.209619 0.733049 0.000000 -v -2.209619 0.707176 -0.062464 -vt 1.000000 0.500000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.875000 0.500000 -vt 0.750000 1.000000 -vt 0.750000 0.500000 -vt 0.625000 1.000000 -vt 0.625000 0.500000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.375000 1.000000 -vt 0.375000 0.500000 -vt 0.250000 1.000000 -vt 0.250000 0.500000 -vt 0.419706 0.419706 -vt 0.250000 0.490000 -vt 0.080294 0.419706 -vt 0.010000 0.250000 -vt 0.080294 0.080294 -vt 0.250000 0.010000 -vt 0.419706 0.080294 -vt 0.490000 0.250000 -vt 0.125000 1.000000 -vt 0.125000 0.500000 -vt 0.000000 1.000000 -vt 0.000000 0.500000 -vt 0.500000 0.500000 -vt 0.625000 0.500000 -vt 0.750000 0.490000 -vt 0.919706 0.419706 -vt 0.990000 0.250000 -vt 0.919706 0.080294 -vt 0.750000 0.010000 -vt 0.580294 0.080294 -vt 0.510000 0.250000 -vt 0.580294 0.419706 -vt 0.125000 0.500000 -vt 0.250000 0.500000 -vt 0.750000 0.500000 -vt 0.875000 0.500000 -vt 0.375000 0.500000 -vt 0.000000 0.500000 -vt 1.000000 0.500000 -vn 0.0000 -0.3827 -0.9239 -vn 0.0000 -0.9239 -0.3827 -vn 0.0000 -0.9239 0.3827 -vn 0.0000 -0.3827 0.9239 -vn 0.0000 0.3827 0.9239 -vn 0.0000 0.9239 0.3827 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.9239 -0.3827 -vn 0.0000 0.3827 -0.9239 -vn -0.4347 -0.3446 0.8320 -vn -1.0000 0.0000 0.0000 -vn -0.4347 0.8320 -0.3446 -vn -0.4347 -0.8320 -0.3446 -vn -0.4347 0.3446 0.8320 -vn -0.4347 0.3446 -0.8320 -vn -0.4347 -0.3446 -0.8320 -vn -0.4347 -0.8320 0.3446 -vn -0.4347 0.8320 0.3446 -s 1 -f 241/449/74 242/450/74 243/451/74 244/452/74 -f 244/452/75 243/451/75 245/453/75 246/454/75 -f 246/454/76 245/453/76 247/455/76 248/456/76 -f 248/456/77 247/455/77 249/457/77 250/458/77 -f 250/458/78 249/457/78 251/459/78 252/460/78 -f 252/460/79 251/459/79 253/461/79 254/462/79 -f 243/463/80 242/464/80 255/465/80 253/466/80 251/467/80 249/468/80 247/469/80 245/470/80 -f 254/462/81 253/461/81 255/471/81 256/472/81 -f 256/472/82 255/471/82 242/473/82 241/474/82 -f 248/456/83 250/458/83 257/475/83 258/476/83 -f 259/477/84 260/478/84 261/479/84 258/480/84 257/481/84 262/482/84 263/483/84 264/484/84 -f 254/462/85 256/472/85 264/485/85 263/486/85 -f 244/452/86 246/454/86 261/487/86 260/488/86 -f 250/458/87 252/460/87 262/489/87 257/475/87 -f 256/472/88 241/474/88 259/490/88 264/485/88 -f 241/449/89 244/452/89 260/488/89 259/491/89 -f 246/454/90 248/456/90 258/476/90 261/487/90 -f 252/460/91 254/462/91 263/486/91 262/489/91 -o UnderailBit_Cylinder.006 -v -0.166791 0.038391 -0.117032 -v -0.166791 0.038391 0.117032 -v -0.118438 0.018363 0.117032 -v -0.118438 0.018363 -0.117032 -v -0.098409 -0.029991 0.117032 -v -0.098409 -0.029991 -0.117032 -v -0.118438 -0.078344 0.117032 -v -0.118438 -0.078344 -0.117032 -v -0.166791 -0.098373 0.117032 -v -0.166791 -0.098373 -0.117032 -v -0.215145 -0.078344 0.117032 -v -0.215145 -0.078344 -0.117032 -v -0.235173 -0.029991 0.117032 -v -0.235173 -0.029991 -0.117032 -v -0.215145 0.018363 0.117032 -v -0.215145 0.018363 -0.117032 -vt 1.000000 0.500000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.875000 0.500000 -vt 0.750000 1.000000 -vt 0.750000 0.500000 -vt 0.625000 1.000000 -vt 0.625000 0.500000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.375000 1.000000 -vt 0.375000 0.500000 -vt 0.250000 1.000000 -vt 0.250000 0.500000 -vt 0.419706 0.419706 -vt 0.250000 0.490000 -vt 0.080294 0.419706 -vt 0.010000 0.250000 -vt 0.080294 0.080294 -vt 0.250000 0.010000 -vt 0.419706 0.080294 -vt 0.490000 0.250000 -vt 0.125000 1.000000 -vt 0.125000 0.500000 -vt 0.000000 1.000000 -vt 0.000000 0.500000 -vt 0.750000 0.490000 -vt 0.919706 0.419706 -vt 0.990000 0.250000 -vt 0.919706 0.080294 -vt 0.750000 0.010000 -vt 0.580294 0.080294 -vt 0.510000 0.250000 -vt 0.580294 0.419706 -vn 0.3827 0.9239 0.0000 -vn 0.9239 0.3827 0.0000 -vn 0.9239 -0.3827 -0.0000 -vn 0.3827 -0.9239 -0.0000 -vn -0.3827 -0.9239 -0.0000 -vn -0.9239 -0.3827 -0.0000 -vn 0.0000 -0.0000 1.0000 -vn -0.9239 0.3827 0.0000 -vn -0.3827 0.9239 0.0000 -vn -0.0000 0.0000 -1.0000 -s 1 -f 265/492/92 266/493/92 267/494/92 268/495/92 -f 268/495/93 267/494/93 269/496/93 270/497/93 -f 270/497/94 269/496/94 271/498/94 272/499/94 -f 272/499/95 271/498/95 273/500/95 274/501/95 -f 274/501/96 273/500/96 275/502/96 276/503/96 -f 276/503/97 275/502/97 277/504/97 278/505/97 -f 267/506/98 266/507/98 279/508/98 277/509/98 275/510/98 273/511/98 271/512/98 269/513/98 -f 278/505/99 277/504/99 279/514/99 280/515/99 -f 280/515/100 279/514/100 266/516/100 265/517/100 -f 265/518/101 268/519/101 270/520/101 272/521/101 274/522/101 276/523/101 278/524/101 280/525/101 -o Underail_Cube.004 -v -0.033837 0.094104 -0.072767 -v -0.033837 -0.016338 -0.072767 -v -0.115306 -0.142061 -0.072767 -v -0.115306 0.094104 -0.072767 -v 0.797049 0.094104 -0.072767 -v 0.797049 -0.016338 -0.072767 -v 0.796577 -0.079782 0.048582 -v 0.796577 -0.079782 -0.048582 -v 0.886076 -0.258069 -0.048582 -v 0.886076 -0.258069 0.048582 -v 0.797049 -0.016338 0.072767 -v 0.797049 0.094104 0.072767 -v -0.033837 0.094104 0.072767 -v -0.033837 -0.016338 0.072767 -v -0.026079 -0.079782 -0.048582 -v -0.115306 0.094104 0.072767 -v -0.272459 0.094104 -0.072767 -v -0.272459 0.094104 0.072767 -v -0.115306 -0.142061 0.072767 -v -0.272459 -0.098487 0.072767 -v -0.264701 -0.161930 0.048582 -v -0.107548 -0.205505 0.048582 -v -0.272459 -0.098487 -0.072767 -v -0.026079 -0.079782 0.048582 -v -0.107548 -0.205505 -0.048582 -v -0.264701 -0.161930 -0.048582 -v 0.886547 0.093771 0.072767 -v 0.886547 0.093771 -0.072767 -v 0.886547 -0.194626 0.072767 -v 0.888072 -0.069961 0.072767 -v 0.917361 0.000750 0.072767 -v 0.988072 0.030039 0.072767 -v 1.058783 0.000750 0.072767 -v 1.088072 -0.069961 0.072767 -v 1.088250 -0.195375 0.072767 -v 1.088250 0.093022 0.072767 -v 0.886547 -0.194626 -0.072767 -v 1.088250 -0.195375 -0.072767 -v 1.087778 -0.258818 -0.048582 -v 1.087778 -0.258818 0.048582 -v 1.152616 -0.153109 -0.048582 -v 1.152616 -0.153109 0.048582 -v 1.153087 -0.089666 0.072767 -v 1.088250 0.093022 -0.072767 -v 0.888072 -0.069961 -0.072767 -v 0.917362 -0.140671 -0.072767 -v 0.988072 -0.169961 -0.072767 -v 1.058783 -0.140671 -0.072767 -v 1.088072 -0.069961 -0.072767 -v 1.153087 -0.089666 -0.072767 -v 1.153087 0.092782 -0.072767 -v 1.153087 0.092782 0.072767 -v 0.917361 0.000750 -0.072767 -v 1.058783 0.000750 -0.072767 -v 1.058783 -0.140671 0.072767 -v 0.988072 -0.169961 0.072767 -v 0.917362 -0.140671 0.072767 -v 0.988072 0.030039 -0.072767 -vt 0.625000 0.250000 -vt 0.375000 0.250000 -vt 0.375000 0.250000 -vt 0.625000 0.250000 -vt 0.625000 0.500000 -vt 0.375000 0.500000 -vt 0.375000 0.750000 -vt 0.375000 0.500000 -vt 0.375000 0.500000 -vt 0.375000 0.750000 -vt 0.375000 0.750000 -vt 0.625000 0.750000 -vt 0.625000 1.000000 -vt 0.375000 1.000000 -vt 0.375000 0.250000 -vt 0.875000 0.500000 -vt 0.875000 0.750000 -vt 0.875000 0.750000 -vt 0.875000 0.500000 -vt 0.875000 0.500000 -vt 0.875000 0.750000 -vt 0.625000 1.000000 -vt 0.375000 1.000000 -vt 0.375000 1.000000 -vt 0.375000 1.000000 -vt 0.375000 1.000000 -vt 0.375000 0.000000 -vt 0.625000 0.000000 -vt 0.625000 0.250000 -vt 0.375000 0.250000 -vt 0.375000 1.000000 -vt 0.625000 1.000000 -vt 0.125000 0.500000 -vt 0.125000 0.750000 -vt 0.125000 0.750000 -vt 0.125000 0.500000 -vt 0.125000 0.750000 -vt 0.125000 0.500000 -vt 0.375000 0.250000 -vt 0.375000 0.000000 -vt 0.625000 0.750000 -vt 0.625000 0.500000 -vt 0.375000 0.250000 -vt 0.375000 0.750000 -vt 0.483072 0.750000 -vt 0.544463 0.750000 -vt 0.570080 0.750000 -vt 0.544918 0.750000 -vt 0.483716 0.750000 -vt 0.375000 0.750000 -vt 0.625000 0.750000 -vt 0.375000 0.500000 -vt 0.375000 0.500000 -vt 0.375000 0.500000 -vt 0.375000 0.750000 -vt 0.375000 0.500000 -vt 0.375000 0.750000 -vt 0.375000 0.750000 -vt 0.625000 0.500000 -vt 0.483072 0.500000 -vt 0.421870 0.500000 -vt 0.396708 0.500000 -vt 0.422325 0.500000 -vt 0.483716 0.500000 -vt 0.375000 0.500000 -vt 0.625000 0.500000 -vt 0.625000 0.750000 -vt 0.125000 0.688522 -vt 0.125000 0.811478 -vt 0.250000 0.811478 -vt 0.250000 0.688522 -vt 0.750000 0.688522 -vt 0.750000 0.811478 -vt 0.875000 0.811478 -vt 0.875000 0.688522 -vt 0.422325 0.750000 -vt 0.396708 0.750000 -vt 0.421870 0.750000 -vt 0.375000 0.811478 -vt 0.375000 0.688522 -vt 0.625000 0.688522 -vt 0.625000 0.811478 -vt 0.500000 0.688522 -vt 0.500000 0.811478 -vt 0.000000 0.688522 -vt 0.000000 0.811478 -vt 1.000000 0.811478 -vt 1.000000 0.688522 -vt 0.544918 0.500000 -vt 0.570080 0.500000 -vt 0.544463 0.500000 -vn 0.0000 0.0000 -1.0000 -vn -0.8937 -0.4486 0.0000 -vn 0.0000 -0.0000 1.0000 -vn 0.0000 -0.3562 -0.9344 -vn 0.0019 1.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn -0.1012 -0.3652 0.9254 -vn -1.0000 -0.0000 0.0000 -vn 0.4263 -0.2762 0.8614 -vn 0.0000 -1.0000 0.0000 -vn 0.8392 -0.5438 0.0000 -vn -0.2672 -0.9636 0.0000 -vn -0.9926 -0.1214 0.0000 -vn 0.0037 1.0000 0.0000 -vn -0.1012 -0.3652 -0.9254 -vn 0.4263 -0.2762 -0.8614 -vn 0.0000 -0.3562 0.9344 -vn -0.0013 -0.3562 -0.9344 -vn -0.5737 -0.2880 -0.7667 -vn -0.5737 -0.2880 0.7667 -vn 0.8524 -0.5228 0.0000 -vn 0.5062 -0.3105 0.8046 -vn -0.0013 -0.3562 0.9344 -vn -0.0037 -1.0000 0.0000 -vn 1.0000 -0.0069 -0.0000 -vn 1.0000 0.0000 0.0000 -vn 1.0000 -0.0074 0.0000 -vn 0.5062 -0.3105 -0.8046 -vn 0.9239 -0.3827 -0.0000 -vn -0.9239 -0.3827 -0.0000 -vn 0.9239 0.3827 0.0000 -vn -0.9239 0.3827 0.0000 -vn -0.3827 0.9239 0.0000 -vn 0.3827 -0.9239 -0.0000 -vn -0.3827 -0.9239 -0.0000 -vn 0.3827 0.9239 0.0000 -s 1 -f 281/526/102 282/527/102 283/528/102 284/529/102 -f 282/527/102 281/526/102 285/530/102 286/531/102 -f 287/532/103 288/533/103 289/534/103 290/535/103 -f 291/536/104 292/537/104 293/538/104 294/539/104 -f 282/527/105 286/531/105 288/533/105 295/540/105 -f 285/530/106 281/541/107 293/542/107 292/537/106 -f 296/543/107 284/544/107 297/545/107 298/546/107 -f 294/539/104 293/538/104 296/547/104 299/548/104 -f 293/542/107 281/541/107 284/544/107 296/543/107 -f 299/548/108 300/549/108 301/550/108 302/551/108 -f 300/552/109 298/553/109 297/554/109 303/555/109 -f 294/539/110 299/548/110 302/551/110 304/556/110 -f 284/529/102 283/528/102 303/555/102 297/554/102 -f 299/548/104 296/547/104 298/557/104 300/549/104 -f 295/558/111 288/533/111 287/532/111 304/559/111 -f 295/558/112 304/559/112 302/560/112 305/561/112 -f 305/561/113 302/560/113 301/562/113 306/563/113 -f 300/552/114 303/555/114 306/564/114 301/565/114 -f 285/530/106 292/537/106 307/566/115 308/567/115 -f 303/555/116 283/528/116 305/568/116 306/564/116 -f 283/528/117 282/527/117 295/540/117 305/568/117 -f 291/536/118 294/539/118 304/556/118 287/532/118 -f 307/566/104 309/569/104 310/570/104 311/571/104 312/572/104 313/573/104 314/574/104 315/575/104 316/576/104 -f 289/534/119 317/577/119 318/578/119 319/579/119 -f 288/533/120 286/531/120 317/577/120 289/534/120 -f 286/531/102 285/530/102 308/567/102 317/577/102 -f 291/536/121 287/532/121 290/535/121 309/569/121 -f 292/537/104 291/536/104 309/569/104 307/566/104 -f 320/580/122 319/579/122 321/581/122 322/582/122 -f 315/575/123 320/580/123 322/582/123 323/583/123 -f 309/569/124 290/535/124 320/580/124 315/575/124 -f 290/535/125 289/534/125 319/579/125 320/580/125 -f 308/567/115 307/566/115 316/576/115 324/584/115 -f 317/577/102 325/585/102 326/586/102 327/587/102 328/588/102 329/589/102 318/578/102 -f 330/590/126 331/591/127 332/592/127 323/583/126 -f 330/590/126 323/583/126 322/582/128 321/581/128 -f 324/584/115 316/576/115 332/592/115 331/591/115 -f 318/578/102 324/584/102 331/591/102 330/590/102 -f 319/579/129 318/578/129 330/590/129 321/581/129 -f 316/576/104 315/575/104 323/583/104 332/592/104 -f 333/593/130 311/594/130 310/595/130 325/596/130 -f 329/597/131 314/598/131 313/599/131 334/600/131 -f 315/575/104 314/574/104 335/601/104 336/602/104 337/603/104 310/570/104 309/569/104 -f 325/596/132 310/595/132 337/604/132 326/605/132 -f 328/606/133 335/607/133 314/598/133 329/597/133 -f 327/608/134 336/609/134 335/607/134 328/606/134 -f 338/610/135 312/611/135 311/594/135 333/593/135 -f 334/600/136 313/599/136 312/612/136 338/613/136 -f 326/605/137 337/604/137 336/609/137 327/608/137 -f 318/578/102 329/589/102 334/614/102 338/615/102 333/616/102 325/585/102 317/577/102 308/567/102 324/584/102 -o UndeRail_Cube.005 -v -1.185225 0.299229 -0.228225 -v -1.185225 0.078919 -0.228225 -v -1.579320 0.146982 -0.228225 -v -1.579320 0.299229 -0.228225 -v -0.726389 0.070637 -0.201417 -v -0.726389 0.299229 -0.201417 -v -0.726389 0.299229 0.201417 -v -0.726389 0.070637 0.201417 -v -0.770558 0.343398 -0.201417 -v -1.096886 0.343398 -0.201417 -v -1.096886 0.343398 0.201417 -v -0.770558 0.343398 0.201417 -v -1.185225 0.078919 0.228225 -v -1.185225 0.299229 0.228225 -v -1.579320 0.299229 0.228225 -v -1.579320 0.146982 0.228225 -v -1.185225 0.343398 0.201417 -v -1.185225 0.343398 -0.201417 -v -1.579320 0.343398 -0.201417 -v -1.579320 0.343398 0.201417 -v -1.096886 0.026467 -0.201417 -v -0.770558 0.026467 -0.201417 -v -0.770558 0.026467 0.201417 -v -1.096886 0.026467 0.201417 -v -1.096886 0.070637 -0.228225 -v -1.096886 0.299229 -0.228225 -v -0.770558 0.299229 -0.228225 -v -0.770558 0.070637 -0.228225 -v -0.770558 0.070637 0.228225 -v -0.770558 0.299229 0.228225 -v -1.096886 0.299229 0.228225 -v -1.096886 0.070637 0.228225 -v -1.690351 0.200246 0.201417 -v -1.690351 0.287913 0.201417 -v -1.690351 0.287913 -0.201417 -v -1.690351 0.200246 -0.201417 -v -1.184581 0.033984 0.201417 -v -1.184581 0.033984 -0.201417 -v -1.659805 0.134929 0.201417 -v -1.579964 0.102270 0.201417 -v -1.667659 0.194088 0.228225 -v -1.667659 0.291126 0.228225 -v -1.646801 0.339453 0.201417 -v -1.659805 0.134929 -0.201417 -v -1.667659 0.194088 -0.228225 -v -1.579964 0.102270 -0.201417 -v -1.667040 0.336028 -0.201417 -v -1.667659 0.291126 -0.228225 -vt 0.588425 0.250000 -vt 0.411758 0.250000 -vt 0.420274 0.250000 -vt 0.579929 0.250000 -vt 0.409842 0.514683 -vt 0.590158 0.514683 -vt 0.590158 0.735317 -vt 0.409842 0.735317 -vt 0.651630 0.514683 -vt 0.848370 0.514683 -vt 0.848370 0.735317 -vt 0.651630 0.735317 -vt 0.411758 1.000000 -vt 0.588425 1.000000 -vt 0.579929 1.000000 -vt 0.420274 1.000000 -vt 0.875000 0.735317 -vt 0.875000 0.514683 -vt 0.875000 0.514683 -vt 0.875000 0.735317 -vt 0.151630 0.514683 -vt 0.348370 0.514683 -vt 0.348370 0.735317 -vt 0.151630 0.735317 -vt 0.409842 0.276630 -vt 0.590158 0.276630 -vt 0.590158 0.473370 -vt 0.409842 0.473370 -vt 0.409842 0.776629 -vt 0.590158 0.776630 -vt 0.590158 0.973370 -vt 0.409842 0.973370 -vt 0.437738 0.014683 -vt 0.562262 0.014683 -vt 0.562262 0.235317 -vt 0.437738 0.235317 -vt 0.098759 0.735317 -vt 0.125000 0.735317 -vt 0.151630 0.750000 -vt 0.125000 0.750000 -vt 0.590158 1.000000 -vt 0.625000 1.000000 -vt 0.625000 1.000000 -vt 0.098759 0.514683 -vt 0.125000 0.500000 -vt 0.151630 0.500000 -vt 0.125000 0.514683 -vt 0.625000 0.250000 -vt 0.625000 0.250000 -vt 0.590158 0.250000 -vt 0.625000 0.250000 -vt 0.375000 0.735317 -vt 0.348370 0.750000 -vt 0.625000 0.776630 -vt 0.625000 0.776630 -vt 0.590158 0.750000 -vt 0.348370 0.500000 -vt 0.375000 0.514683 -vt 0.625000 0.514683 -vt 0.625000 0.514683 -vt 0.590158 0.500000 -vt 0.125000 0.735317 -vt 0.125000 0.735317 -vt 0.125000 0.750000 -vt 0.125000 0.750000 -vt 0.565038 1.000000 -vt 0.577732 1.000000 -vt 0.625000 1.000000 -vt 0.617113 1.000000 -vt 0.125000 0.514683 -vt 0.125000 0.500000 -vt 0.125000 0.500000 -vt 0.125000 0.514683 -vt 0.611973 0.250000 -vt 0.625000 0.250000 -vt 0.625000 0.250000 -vt 0.569060 0.250000 -vt 0.125000 0.735317 -vt 0.572214 1.000000 -vt 0.625000 1.000000 -vt 0.562262 1.000000 -vt 0.125000 0.514683 -vt 0.625000 0.250000 -vt 0.625000 0.250000 -vt 0.562262 0.250000 -vt 0.125000 0.735317 -vt 0.125000 0.514683 -vt 0.625000 0.276630 -vt 0.625000 0.473370 -vt 0.625000 0.973370 -vt 0.567775 1.000000 -vt 0.441517 1.000000 -vt 0.875000 0.514683 -vt 0.875000 0.735317 -vt 0.441517 0.250000 -vt 0.567775 0.250000 -vt 0.436229 1.000000 -vt 0.437738 1.000000 -vt 0.625000 0.014683 -vt 0.625000 0.235317 -vt 0.572214 0.250000 -vt 0.436229 0.250000 -vn 0.0000 0.0000 -1.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 -1.0000 -0.0000 -vn -1.0000 0.0000 0.0000 -vn -0.0462 -0.5153 0.8558 -vn 0.0000 0.5189 0.8549 -vn -0.0462 -0.5153 -0.8558 -vn 0.0000 0.5189 -0.8549 -vn 0.4606 -0.4605 0.7588 -vn 0.4606 0.4606 0.7588 -vn 0.4606 -0.4605 -0.7588 -vn 0.4606 0.4606 -0.7588 -vn -0.2180 -0.4596 0.8610 -vn -0.0393 0.5077 0.8606 -vn -0.2180 -0.4596 -0.8610 -vn -0.0453 0.5154 -0.8557 -vn -0.7527 -0.3520 0.5563 -vn -0.6638 0.5609 0.4947 -vn -0.7527 -0.3520 -0.5563 -vn -0.7340 0.3556 -0.5787 -vn -0.0854 -0.9963 -0.0000 -vn 0.0000 -0.5188 -0.8549 -vn 0.5189 0.0000 -0.8549 -vn 0.7071 -0.7071 -0.0000 -vn 0.7071 0.7071 0.0000 -vn 0.5189 -0.0000 0.8549 -vn 0.0000 -0.5188 0.8549 -vn -0.3786 -0.9256 -0.0000 -vn -0.0727 0.9974 -0.0024 -vn -0.0883 -0.5113 0.8549 -vn -0.0883 -0.5113 -0.8549 -vn -0.9058 -0.4236 -0.0000 -vn -0.7633 0.0000 0.6461 -vn -0.8303 0.5571 0.0185 -vn -0.7633 0.0000 -0.6461 -vn -0.1702 -0.9854 -0.0000 -s 1 -f 339/617/138 340/618/138 341/619/138 342/620/138 -f 343/621/139 344/622/139 345/623/139 346/624/139 -f 347/625/140 348/626/140 349/627/140 350/628/140 -f 351/629/141 352/630/141 353/631/141 354/632/141 -f 355/633/140 356/634/140 357/635/140 358/636/140 -f 359/637/142 360/638/142 361/639/142 362/640/142 -f 363/641/138 364/642/138 365/643/138 366/644/138 -f 367/645/141 368/646/141 369/647/141 370/648/141 -f 371/649/143 372/650/143 373/651/143 374/652/143 -f 375/653/144 362/654/144 370/655/144 351/656/144 -f 352/630/145 369/657/145 349/658/145 355/659/145 -f 376/660/146 340/661/146 363/662/146 359/663/146 -f 356/664/147 348/665/147 364/666/147 339/667/147 -f 361/639/148 346/668/148 367/669/148 -f 350/670/149 368/671/149 345/672/149 -f 360/638/150 366/673/150 343/674/150 -f 347/675/151 344/676/151 365/677/151 -f 377/678/152 378/679/152 354/680/152 379/681/152 -f 380/682/153 353/683/153 358/684/153 381/685/153 -f 382/686/154 383/687/154 341/688/154 384/689/154 -f 385/690/155 357/691/155 342/692/155 386/693/155 -f 377/678/156 379/681/156 371/694/156 -f 380/695/157 381/696/157 372/697/157 -f 382/686/158 374/698/158 383/687/158 -f 385/699/159 386/700/159 373/701/159 -f 359/637/160 362/640/160 375/702/160 376/703/160 -f 370/648/141 369/647/141 352/630/141 351/629/141 -f 349/627/140 348/626/140 356/634/140 355/633/140 -f 364/642/138 363/641/138 340/618/138 339/617/138 -f 360/638/161 359/637/161 363/662/161 366/673/161 -f 348/704/147 347/705/147 365/643/147 364/642/147 -f 344/622/162 343/621/162 366/644/162 365/643/162 -f 361/639/163 360/638/163 343/621/163 346/624/163 -f 347/625/164 350/628/164 345/623/164 344/622/164 -f 368/646/165 367/645/165 346/624/165 345/623/165 -f 362/640/166 361/639/166 367/669/166 370/655/166 -f 350/670/145 349/706/145 369/647/145 368/646/145 -f 384/689/167 378/679/167 377/678/167 382/686/167 -f 354/632/141 353/631/141 380/707/141 379/708/141 -f 358/636/168 357/635/168 385/709/168 381/710/168 -f 342/620/138 341/619/138 383/711/138 386/712/138 -f 339/617/147 342/620/147 357/691/147 356/664/147 -f 353/631/145 352/630/145 355/659/145 358/684/145 -f 351/656/169 354/680/169 378/679/169 375/702/169 -f 341/688/170 340/661/170 376/703/170 384/689/170 -f 382/686/171 377/678/171 371/694/171 374/698/171 -f 379/713/172 380/695/172 372/697/172 371/714/172 -f 381/715/173 385/716/173 373/651/173 372/650/173 -f 386/717/174 383/718/174 374/652/174 373/651/174 -f 376/703/175 375/702/175 378/679/175 384/689/175 -o TriggerGuard_Cube.007 -v -0.991593 0.009137 0.090896 -v -0.991593 0.050129 0.090896 -v -0.991593 0.050129 -0.090896 -v -0.991593 0.009137 -0.090896 -v -0.359255 0.050129 -0.090896 -v -0.359255 0.009137 -0.090896 -v -0.359255 0.050129 0.090896 -v -0.359255 0.009137 0.090896 -v -0.952793 -0.032302 0.079741 -v -0.475801 -0.032302 0.079741 -v -0.398056 -0.032302 0.079741 -v -0.952793 -0.032302 -0.079741 -v -0.477062 -0.032302 -0.079741 -v -0.398056 -0.032302 -0.079741 -v -0.547697 -0.243266 -0.079741 -v -0.468691 -0.243266 -0.079741 -v -0.417833 -0.308250 -0.079741 -v -0.496840 -0.308250 -0.079741 -v -0.468691 -0.243266 0.079741 -v -0.546437 -0.243266 0.079741 -v -0.495579 -0.308250 0.079741 -v -0.884730 -0.317360 -0.073714 -v -0.883469 -0.317360 0.085769 -v -0.417833 -0.308250 0.079741 -v -0.548320 -0.390292 0.079741 -v -0.549581 -0.390292 -0.079741 -v -0.470574 -0.390292 -0.079741 -v -0.470574 -0.390292 0.079741 -v -0.933383 -0.398929 -0.073714 -v -0.932122 -0.398929 0.085769 -v -1.071287 -0.315922 0.087949 -v -1.072548 -0.315922 -0.071533 -v -1.022634 -0.234353 0.087949 -v -1.023895 -0.234353 -0.071533 -vt 0.375000 0.000000 -vt 0.625000 0.000000 -vt 0.625000 0.250000 -vt 0.375000 0.250000 -vt 0.625000 0.500000 -vt 0.375000 0.500000 -vt 0.625000 0.750000 -vt 0.375000 0.750000 -vt 0.625000 1.000000 -vt 0.375000 1.000000 -vt 0.375000 1.000000 -vt 0.375000 0.806259 -vt 0.375000 0.750000 -vt 0.875000 0.500000 -vt 0.875000 0.750000 -vt 0.125000 0.500000 -vt 0.318173 0.500000 -vt 0.318741 0.750000 -vt 0.125000 0.750000 -vt 0.375000 0.500000 -vt 0.375000 0.443173 -vt 0.375000 0.250000 -vt 0.375000 0.000000 -vt 0.375000 0.443173 -vt 0.375000 0.500000 -vt 0.375000 0.500000 -vt 0.375000 0.443173 -vt 0.375000 0.750000 -vt 0.375000 0.806259 -vt 0.318173 0.500000 -vt 0.318741 0.750000 -vt 0.318741 0.750000 -vt 0.318173 0.500000 -vt 0.318173 0.500000 -vt 0.318741 0.750000 -vt 0.375000 0.750000 -vt 0.375000 0.806259 -vt 0.318741 0.750000 -vt 0.318173 0.500000 -vt 0.375000 0.500000 -vt 0.375000 0.750000 -vt 0.375000 0.806259 -vt 0.375000 0.443173 -vt 0.318173 0.500000 -vt 0.318741 0.750000 -vt 0.318741 0.750000 -vt 0.318173 0.500000 -vt 0.375000 0.443173 -vt 0.375000 0.443173 -vt 0.375000 0.806259 -vt 0.375000 0.806259 -vt 0.318741 0.750000 -vt 0.318173 0.500000 -vt 0.375000 0.443173 -vt 0.375000 0.443173 -vt 0.375000 0.806259 -vt 0.375000 0.806259 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 -0.2599 0.9656 -vn 0.0000 1.0000 0.0000 -vn 0.0000 -1.0000 -0.0000 -vn 0.0000 -0.2599 -0.9656 -vn -0.7300 -0.6835 -0.0000 -vn 0.7300 -0.6835 -0.0000 -vn 0.9483 -0.3175 0.0000 -vn -0.9482 0.3175 0.0075 -vn -0.0235 0.9997 0.0002 -vn 0.7875 0.6163 0.0000 -vn -0.7875 -0.6163 0.0062 -vn 0.8412 -0.5408 0.0000 -vn -0.5122 -0.8589 0.0040 -vn -0.0158 0.0098 -0.9998 -vn -0.0154 0.0095 -0.9998 -vn -0.0119 0.0071 -0.9999 -vn 0.0158 -0.0098 0.9998 -vn 0.0119 -0.0071 0.9999 -vn 0.0154 -0.0095 0.9998 -vn 0.0225 -0.9997 -0.0002 -vn -0.8588 0.5123 0.0068 -vn -0.0116 0.0069 -0.9999 -vn 0.5122 0.8589 -0.0040 -vn 0.0116 -0.0069 0.9999 -s 1 -f 387/719/176 388/720/176 389/721/176 390/722/176 -f 390/722/177 389/721/177 391/723/177 392/724/177 -f 392/724/178 391/723/178 393/725/178 394/726/178 -f 394/726/179 393/725/179 388/727/179 387/728/179 -f 394/726/180 387/728/180 395/729/180 396/730/180 397/731/180 -f 391/723/181 389/732/181 388/733/181 393/725/181 -f 398/734/182 399/735/182 396/736/182 395/737/182 -f 390/722/183 392/724/183 400/738/183 399/739/183 398/740/183 -f 387/719/184 390/722/184 398/740/184 395/741/184 -f 392/724/185 394/726/185 397/731/185 400/738/185 -f 401/742/177 402/743/177 403/744/177 404/745/177 -f 400/738/186 397/731/186 405/746/186 402/743/186 -f 397/731/179 396/730/179 406/747/179 405/746/179 -f 396/736/187 399/735/187 401/748/187 406/749/187 -f 399/739/177 400/738/177 402/743/177 401/742/177 -f 407/750/188 404/751/188 408/752/188 409/753/188 -f 402/743/189 405/746/189 410/754/189 403/744/189 -f 406/749/190 401/748/190 404/751/190 407/750/190 -f 405/746/179 406/747/179 407/755/179 410/754/179 -f 411/756/182 412/757/182 413/758/182 414/759/182 -f 410/754/179 407/755/179 411/760/179 414/759/179 -f 404/745/177 403/744/177 413/758/177 412/761/177 -f 403/744/191 410/754/191 414/759/191 413/758/191 -f 415/762/192 416/763/192 417/764/192 418/765/192 -f 404/745/193 412/761/193 415/766/194 408/767/195 -f 411/760/196 407/755/196 409/768/197 416/769/198 -f 412/757/199 411/756/199 416/763/199 415/762/199 -f 419/770/200 420/771/200 418/765/200 417/764/200 -f 408/767/195 415/766/194 418/772/201 420/773/201 -f 409/753/202 408/752/202 420/771/202 419/770/202 -f 416/769/198 409/768/197 419/774/203 417/775/203 -o Trigger_Cube.008 -v -0.906556 -0.031746 0.035327 -v -0.906556 -0.031746 -0.035327 -v -0.906556 -0.054594 -0.035327 -v -0.906556 -0.054594 0.035327 -v -0.750972 -0.031746 -0.035327 -v -0.757513 -0.054594 -0.035327 -v -0.750972 -0.031746 0.035327 -v -0.757513 -0.054594 0.035327 -v -0.891840 -0.172320 -0.035327 -v -0.891840 -0.172320 0.035327 -v -0.858049 -0.254618 0.035327 -v -0.773318 -0.237178 0.035327 -v -0.781494 -0.172320 0.035327 -v -0.781494 -0.172320 -0.035327 -v -0.752234 -0.268743 0.035327 -v -0.752234 -0.268743 -0.035327 -v -0.773318 -0.237178 -0.035327 -v -0.858049 -0.254618 -0.035327 -v -0.786277 -0.298175 0.035327 -v -0.786277 -0.298175 -0.035327 -vt 0.375000 0.000000 -vt 0.375000 0.250000 -vt 0.625000 0.250000 -vt 0.625000 0.000000 -vt 0.375000 0.500000 -vt 0.625000 0.500000 -vt 0.375000 0.750000 -vt 0.625000 0.750000 -vt 0.375000 1.000000 -vt 0.625000 1.000000 -vt 0.125000 0.500000 -vt 0.125000 0.750000 -vt 0.625000 0.250000 -vt 0.625000 0.000000 -vt 0.625000 1.000000 -vt 0.625000 1.000000 -vt 0.625000 0.750000 -vt 0.625000 0.750000 -vt 0.625000 0.500000 -vt 0.625000 0.750000 -vt 0.625000 0.500000 -vt 0.625000 0.500000 -vt 0.625000 0.250000 -vt 0.625000 0.000000 -vt 0.875000 0.750000 -vt 0.875000 0.500000 -vt 0.625000 0.250000 -vt 0.625000 0.000000 -vt 0.625000 1.000000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.9614 -0.2752 0.0000 -vn 0.0000 -0.0000 1.0000 -vn 0.0000 1.0000 0.0000 -vn -0.9923 -0.1240 0.0000 -vn 0.9799 -0.1996 0.0000 -vn 0.8316 0.5554 0.0000 -vn 0.9921 0.1251 0.0000 -vn -0.9251 -0.3798 0.0000 -vn 0.6540 -0.7565 0.0000 -vn -0.5188 -0.8549 0.0000 -s 1 -f 421/776/204 422/777/204 423/778/204 424/779/204 -f 422/777/205 425/780/205 426/781/205 423/778/205 -f 425/780/206 427/782/206 428/783/206 426/781/206 -f 427/782/207 421/784/207 424/785/207 428/783/207 -f 422/786/208 421/787/208 427/782/208 425/780/208 -f 423/778/209 429/788/209 430/789/209 424/779/209 -f 430/790/207 431/791/207 432/792/207 433/793/207 -f 424/785/207 430/790/207 433/793/207 428/783/207 -f 426/781/205 434/794/205 429/788/205 423/778/205 -f 428/783/210 433/793/210 434/794/210 426/781/210 -f 432/792/211 435/795/211 436/796/211 437/797/211 -f 434/794/205 437/797/205 438/798/205 429/788/205 -f 433/793/212 432/792/212 437/797/212 434/794/212 -f 429/788/213 438/798/213 431/799/213 430/789/213 -f 436/796/214 435/795/214 439/800/214 440/801/214 -f 438/798/215 440/802/215 439/803/215 431/799/215 -f 431/791/207 439/804/207 435/795/207 432/792/207 -f 437/797/205 436/796/205 440/802/205 438/798/205 -o SideHolders.001_Cube.002 -v 1.310526 -0.082794 0.073582 -v 1.384588 0.101767 0.073582 -v 1.139921 0.101767 0.053905 -v 1.144858 -0.044123 0.053905 -v 1.384588 0.101767 -0.069977 -v 1.504148 0.101767 0.073582 -v 1.504148 0.101767 -0.069977 -v 1.430086 -0.082794 0.073582 -v 1.608182 -0.022025 0.051795 -v 1.577323 0.101767 0.051795 -v 1.430086 -0.082794 -0.069977 -v 1.310526 -0.082794 -0.069977 -v 1.577323 0.101767 -0.048191 -v 1.608182 -0.022025 -0.048191 -v 1.144858 -0.044123 -0.050301 -v 1.139921 0.101767 -0.050301 -vt 0.875000 0.750000 -vt 0.875000 0.500000 -vt 0.875000 0.500000 -vt 0.875000 0.750000 -vt 0.375000 0.250000 -vt 0.625000 0.250000 -vt 0.625000 0.500000 -vt 0.375000 0.500000 -vt 0.625000 0.750000 -vt 0.625000 0.750000 -vt 0.625000 0.500000 -vt 0.375000 0.750000 -vt 0.625000 1.000000 -vt 0.375000 1.000000 -vt 0.125000 0.500000 -vt 0.125000 0.750000 -vt 0.375000 0.500000 -vt 0.375000 0.750000 -vt 0.375000 0.000000 -vt 0.625000 0.000000 -vt 0.625000 0.250000 -vt 0.375000 0.250000 -vt 0.125000 0.750000 -vt 0.125000 0.500000 -vt 0.625000 1.000000 -vt 0.375000 1.000000 -vn -0.0936 0.0196 0.9954 -vn 0.0000 1.0000 0.0000 -vn 0.1766 -0.0247 0.9840 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 -0.0000 1.0000 -vn 0.9703 0.2419 0.0000 -vn 0.3229 -0.9464 -0.0000 -vn 0.1766 -0.0247 -0.9840 -vn -0.9994 -0.0338 -0.0000 -vn -0.0936 0.0196 -0.9954 -vn -0.2273 -0.9738 0.0000 -s 1 -f 441/805/216 442/806/216 443/807/216 444/808/216 -f 445/809/217 442/810/217 446/811/217 447/812/217 -f 446/811/218 448/813/218 449/814/218 450/815/218 -f 451/816/219 448/813/219 441/817/219 452/818/219 -f 445/819/220 447/812/220 451/816/220 452/820/220 -f 446/811/221 442/806/221 441/805/221 448/813/221 -f 453/821/222 450/815/222 449/814/222 454/822/222 -f 447/812/217 446/811/217 450/815/217 453/821/217 -f 448/813/223 451/816/223 454/822/223 449/814/223 -f 451/816/224 447/812/224 453/821/224 454/822/224 -f 455/823/225 444/824/225 443/825/225 456/826/225 -f 445/819/226 452/820/226 455/827/226 456/828/226 -f 442/810/217 445/809/217 456/826/217 443/825/217 -f 452/818/227 441/817/227 444/829/227 455/830/227 -o Roundthing_Cylinder.008 -v -0.745839 1.097427 -0.260529 -v -0.745839 1.097427 0.260529 -v -0.654718 0.939467 0.260529 -v -0.654718 0.939467 -0.260529 -v -0.745955 0.781575 0.260529 -v -0.745955 0.781575 -0.260529 -v -0.928312 0.781642 0.260529 -v -0.928312 0.781642 -0.260529 -v -1.019432 0.939601 0.260529 -v -1.019432 0.939601 -0.260529 -v -0.654718 0.939467 0.338343 -v -0.745955 0.781575 0.338343 -v -0.928196 1.097493 0.260529 -v -0.928196 1.097493 -0.260529 -v -0.745839 1.097427 0.338343 -v -0.757348 1.077508 0.380293 -v -0.677723 0.939476 0.380293 -v -1.019432 0.939601 0.338343 -v -0.928196 1.097493 0.338343 -v -0.928312 0.781642 0.338343 -v -0.916701 1.077567 0.380293 -v -0.996428 0.939592 0.380293 -v -0.949024 0.939575 0.380293 -v -0.893014 1.036505 0.380293 -v -0.916802 0.801560 0.380293 -v -0.757450 0.801501 0.380293 -v -0.781065 1.036464 0.380293 -v -0.884357 1.021497 0.419074 -v -0.789734 1.021463 0.419074 -v -0.781137 0.842563 0.380293 -v -0.893085 0.842604 0.380293 -v -0.725127 0.939493 0.380293 -v -0.931698 0.939569 0.419074 -v -0.877029 0.939549 0.419074 -v -0.857040 0.974142 0.419074 -v -0.884417 0.857606 0.419074 -v -0.742452 0.939499 0.419074 -v -0.789794 0.857571 0.419074 -v -0.817086 0.974128 0.419074 -v -0.857040 0.974142 0.317496 -v -0.817086 0.974128 0.317496 -v -0.817111 0.904926 0.419074 -v -0.857065 0.904940 0.419074 -v -0.797122 0.939519 0.419074 -v -0.797122 0.939519 0.317496 -v -0.877029 0.939549 0.317496 -v -0.857065 0.904940 0.317496 -v -0.817111 0.904926 0.317496 -v -0.745955 0.781575 -0.338343 -v -0.654718 0.939467 -0.338343 -v -0.677723 0.939476 -0.380293 -v -0.757348 1.077508 -0.380293 -v -0.745839 1.097427 -0.338343 -v -0.928196 1.097493 -0.338343 -v -1.019432 0.939601 -0.338343 -v -0.928312 0.781642 -0.338343 -v -0.916701 1.077567 -0.380293 -v -0.893014 1.036505 -0.380293 -v -0.949024 0.939575 -0.380293 -v -0.996428 0.939593 -0.380293 -v -0.916802 0.801560 -0.380293 -v -0.757450 0.801502 -0.380293 -v -0.781065 1.036464 -0.380293 -v -0.789734 1.021463 -0.419074 -v -0.884357 1.021497 -0.419074 -v -0.893085 0.842604 -0.380293 -v -0.781137 0.842563 -0.380293 -v -0.725127 0.939493 -0.380293 -v -0.857040 0.974142 -0.419074 -v -0.877029 0.939549 -0.419074 -v -0.931698 0.939569 -0.419074 -v -0.884417 0.857606 -0.419074 -v -0.789794 0.857571 -0.419074 -v -0.742452 0.939499 -0.419074 -v -0.817086 0.974128 -0.419074 -v -0.817086 0.974128 -0.317496 -v -0.857040 0.974142 -0.317496 -v -0.857065 0.904940 -0.419074 -v -0.817111 0.904926 -0.419074 -v -0.797122 0.939519 -0.419074 -v -0.797122 0.939519 -0.317496 -v -0.817111 0.904926 -0.317496 -v -0.857065 0.904940 -0.317496 -v -0.877029 0.939549 -0.317496 -vt 1.000000 0.500000 -vt 1.000000 1.000000 -vt 0.833333 1.000000 -vt 0.833333 0.500000 -vt 0.666667 1.000000 -vt 0.666667 0.500000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.333333 1.000000 -vt 0.333333 0.500000 -vt 0.833333 1.000000 -vt 0.666667 1.000000 -vt 0.166667 1.000000 -vt 0.166667 0.500000 -vt -0.000000 1.000000 -vt -0.000000 0.500000 -vt 0.750000 0.490000 -vt 0.957846 0.370000 -vt 0.957846 0.130000 -vt 0.750000 0.010000 -vt 0.542154 0.130000 -vt 0.542154 0.370000 -vt 1.000000 1.000000 -vt 1.000000 1.000000 -vt 0.833333 1.000000 -vt 0.333333 1.000000 -vt 0.166667 1.000000 -vt 0.500000 1.000000 -vt -0.000000 1.000000 -vt 0.166667 1.000000 -vt 0.333333 1.000000 -vt 0.333333 1.000000 -vt 0.166667 1.000000 -vt -0.000000 1.000000 -vt 0.500000 1.000000 -vt 0.666667 1.000000 -vt -0.000000 1.000000 -vt 0.166667 1.000000 -vt -0.000000 1.000000 -vt 0.666667 1.000000 -vt 0.500000 1.000000 -vt 1.000000 1.000000 -vt 0.833333 1.000000 -vt 0.333333 1.000000 -vt 0.333333 1.000000 -vt 0.166667 1.000000 -vt 0.500000 1.000000 -vt 0.833333 1.000000 -vt 0.666667 1.000000 -vt 1.000000 1.000000 -vt -0.000000 1.000000 -vt 0.166667 1.000000 -vt -0.000000 1.000000 -vt 0.666667 1.000000 -vt 0.500000 1.000000 -vt 1.000000 1.000000 -vt 0.833333 1.000000 -vt 0.457846 0.370000 -vt 0.250000 0.490000 -vt 0.042154 0.370000 -vt 0.042154 0.130000 -vt 0.250000 0.010000 -vt 0.457846 0.130000 -vt 0.500000 1.000000 -vt 0.333333 1.000000 -vt 0.833333 1.000000 -vt 0.666667 1.000000 -vt 1.000000 1.000000 -vt 0.666667 1.000000 -vt 0.666667 1.000000 -vt 0.833333 1.000000 -vt 0.833333 1.000000 -vt 0.750000 0.490000 -vt 0.542154 0.370000 -vt 0.542154 0.130000 -vt 0.750000 0.010000 -vt 0.957846 0.130000 -vt 0.957846 0.370000 -vt 0.833333 1.000000 -vt 1.000000 1.000000 -vt 1.000000 1.000000 -vt 0.166667 1.000000 -vt 0.166667 1.000000 -vt 0.333333 1.000000 -vt 0.333333 1.000000 -vt 1.000000 1.000000 -vt 0.500000 1.000000 -vt 0.500000 1.000000 -vt -0.000000 1.000000 -vt -0.000000 1.000000 -vt 0.166667 1.000000 -vt 0.166667 1.000000 -vt 0.333333 1.000000 -vt 0.333333 1.000000 -vt -0.000000 1.000000 -vt 0.500000 1.000000 -vt 0.666667 1.000000 -vt -0.000000 1.000000 -vt -0.000000 1.000000 -vt 0.166667 1.000000 -vt 0.500000 1.000000 -vt 0.666667 1.000000 -vt 0.833333 1.000000 -vt 1.000000 1.000000 -vt 0.166667 1.000000 -vt 0.333333 1.000000 -vt 0.333333 1.000000 -vt 0.500000 1.000000 -vt 0.666667 1.000000 -vt 0.833333 1.000000 -vt 1.000000 1.000000 -vt -0.000000 1.000000 -vt -0.000000 1.000000 -vt 0.166667 1.000000 -vt 0.500000 1.000000 -vt 0.666667 1.000000 -vt 0.833333 1.000000 -vt 1.000000 1.000000 -vt 0.457846 0.370000 -vt 0.457846 0.130000 -vt 0.250000 0.010000 -vt 0.042154 0.130000 -vt 0.042154 0.370000 -vt 0.250000 0.490000 -vt 0.333333 1.000000 -vt 0.500000 1.000000 -vt 0.666667 1.000000 -vt 0.833333 1.000000 -vt 1.000000 1.000000 -vn 0.8662 0.4997 0.0000 -vn 0.8658 -0.5003 0.0000 -vn -0.0004 -1.0000 0.0000 -vn -0.8662 -0.4997 0.0000 -vn -0.8658 0.5003 0.0000 -vn 0.0004 1.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.7825 0.4514 0.4290 -vn -0.0000 -0.0000 1.0000 -vn 0.0003 0.9033 0.4290 -vn -0.7825 -0.4514 0.4290 -vn 0.7821 -0.4519 0.4290 -vn -0.7821 0.4519 0.4290 -vn -0.0003 -0.9033 0.4290 -vn 0.0003 0.9326 0.3608 -vn -0.8079 -0.4660 0.3608 -vn 0.8075 -0.4666 0.3608 -vn -0.8075 0.4666 0.3608 -vn -0.0003 -0.9326 0.3608 -vn 0.8079 0.4660 0.3608 -vn 0.7825 0.4514 -0.4290 -vn 0.0003 0.9033 -0.4290 -vn -0.7825 -0.4514 -0.4290 -vn 0.7821 -0.4519 -0.4290 -vn -0.7821 0.4519 -0.4290 -vn -0.0003 -0.9033 -0.4290 -vn 0.0003 0.9326 -0.3608 -vn -0.8079 -0.4660 -0.3608 -vn 0.8075 -0.4666 -0.3608 -vn -0.8075 0.4666 -0.3608 -vn -0.0003 -0.9326 -0.3608 -vn 0.8079 0.4660 -0.3608 -s 1 -f 457/831/228 458/832/228 459/833/228 460/834/228 -f 460/834/229 459/833/229 461/835/229 462/836/229 -f 462/836/230 461/835/230 463/837/230 464/838/230 -f 464/838/231 463/837/231 465/839/231 466/840/231 -f 461/835/229 459/833/229 467/841/229 468/842/229 -f 466/840/232 465/839/232 469/843/232 470/844/232 -f 470/844/233 469/843/233 458/845/233 457/846/233 -f 457/847/234 460/848/234 462/849/234 464/850/234 466/851/234 470/852/234 -f 467/841/235 471/853/235 472/854/235 473/855/235 -f 469/843/232 465/839/232 474/856/232 475/857/232 -f 459/833/228 458/832/228 471/853/228 467/841/228 -f 463/837/230 461/835/230 468/842/230 476/858/230 -f 458/845/233 469/843/233 475/857/233 471/859/233 -f 465/839/231 463/837/231 476/858/231 474/856/231 -f 477/860/236 478/861/236 479/862/236 480/863/236 -f 471/859/237 475/857/237 477/860/237 472/864/237 -f 474/856/238 476/858/238 481/865/238 478/861/238 -f 468/842/239 467/841/239 473/855/239 482/866/239 -f 475/857/240 474/856/240 478/861/240 477/860/240 -f 476/858/241 468/842/241 482/866/241 481/865/241 -f 483/867/242 480/863/242 484/868/242 485/869/242 -f 481/865/236 482/866/236 486/870/236 487/871/236 -f 473/855/236 472/854/236 483/872/236 488/873/236 -f 472/864/236 477/860/236 480/863/236 483/867/236 -f 478/861/236 481/865/236 487/871/236 479/862/236 -f 482/866/236 473/855/236 488/873/236 486/870/236 -f 484/868/236 489/874/236 490/875/236 491/876/236 -f 479/862/243 487/871/243 492/877/243 489/874/243 -f 486/870/244 488/873/244 493/878/244 494/879/244 -f 480/863/245 479/862/245 489/874/245 484/868/245 -f 487/871/246 486/870/246 494/879/246 492/877/246 -f 488/873/247 483/872/247 485/880/247 493/878/247 -f 495/881/230 491/876/230 496/882/230 497/883/230 -f 492/877/236 494/879/236 498/884/236 499/885/236 -f 493/878/236 485/880/236 495/886/236 500/887/236 -f 485/869/236 484/868/236 491/876/236 495/881/236 -f 489/874/236 492/877/236 499/885/236 490/875/236 -f 494/879/236 493/878/236 500/887/236 498/884/236 -f 501/888/236 497/889/236 496/890/236 502/891/236 503/892/236 504/893/236 -f 490/875/228 499/885/228 503/894/228 502/895/228 -f 498/884/232 500/887/232 501/896/232 504/897/232 -f 491/876/229 490/875/229 502/895/229 496/882/229 -f 499/885/233 498/884/233 504/897/233 503/894/233 -f 500/887/231 495/886/231 497/898/231 501/896/231 -f 462/899/229 505/900/229 506/901/229 460/902/229 -f 458/903/236 469/904/236 465/905/236 463/906/236 461/907/236 459/908/236 -f 506/901/248 507/909/248 508/910/248 509/911/248 -f 470/912/232 510/913/232 511/914/232 466/915/232 -f 460/902/228 506/901/228 509/911/228 457/916/228 -f 464/917/230 512/918/230 505/900/230 462/899/230 -f 457/919/233 509/920/233 510/913/233 470/912/233 -f 466/915/231 511/914/231 512/918/231 464/917/231 -f 513/921/234 514/922/234 515/923/234 516/924/234 -f 509/920/249 508/925/249 513/921/249 510/913/249 -f 511/914/250 516/924/250 517/926/250 512/918/250 -f 505/900/251 518/927/251 507/909/251 506/901/251 -f 510/913/252 513/921/252 516/924/252 511/914/252 -f 512/918/253 517/926/253 518/927/253 505/900/253 -f 519/928/254 520/929/254 521/930/254 514/922/254 -f 517/926/234 522/931/234 523/932/234 518/927/234 -f 507/909/234 524/933/234 519/934/234 508/910/234 -f 508/925/234 519/928/234 514/922/234 513/921/234 -f 516/924/234 515/923/234 522/931/234 517/926/234 -f 518/927/234 523/932/234 524/933/234 507/909/234 -f 521/930/234 525/935/234 526/936/234 527/937/234 -f 515/923/255 527/937/255 528/938/255 522/931/255 -f 523/932/256 529/939/256 530/940/256 524/933/256 -f 514/922/257 521/930/257 527/937/257 515/923/257 -f 522/931/258 528/938/258 529/939/258 523/932/258 -f 524/933/259 530/940/259 520/941/259 519/934/259 -f 531/942/230 532/943/230 533/944/230 525/935/230 -f 528/938/234 534/945/234 535/946/234 529/939/234 -f 530/940/234 536/947/234 531/948/234 520/941/234 -f 520/929/234 531/942/234 525/935/234 521/930/234 -f 527/937/234 526/936/234 534/945/234 528/938/234 -f 529/939/234 535/946/234 536/947/234 530/940/234 -f 537/949/234 538/950/234 539/951/234 540/952/234 533/953/234 532/954/234 -f 526/936/228 540/955/228 539/956/228 534/945/228 -f 535/946/232 538/957/232 537/958/232 536/947/232 -f 525/935/229 533/944/229 540/955/229 526/936/229 -f 534/945/233 539/956/233 538/957/233 535/946/233 -f 536/947/231 537/958/231 532/959/231 531/948/231 -o ring_Torus -v 0.990151 -0.648179 -0.190841 -v 0.990151 -0.321606 -0.374799 -v 1.068843 -0.322088 -0.329369 -v 1.068843 -0.609076 -0.167709 -v 1.068843 -0.323051 -0.238509 -v 1.068843 -0.530870 -0.121444 -v 0.990151 -0.323533 -0.193078 -v 0.990151 -0.491768 -0.098312 -v 0.911459 -0.323051 -0.238509 -v 0.911459 -0.530870 -0.121444 -v 0.911459 -0.322088 -0.329369 -v 0.911459 -0.609076 -0.167709 -v 0.990151 0.000993 -0.183958 -v 1.068843 -0.038592 -0.161660 -v 1.068843 -0.117761 -0.117064 -v 0.990151 -0.157346 -0.094766 -v 0.911459 -0.117761 -0.117064 -v 0.911459 -0.038592 -0.161660 -v 0.990151 -0.002981 0.190841 -v 1.068843 -0.042084 0.167709 -v 1.068843 -0.120290 0.121444 -v 0.990151 -0.159393 0.098312 -v 0.911459 -0.120290 0.121444 -v 0.911459 -0.042084 0.167709 -v 0.990151 -0.329554 0.374799 -v 1.068843 -0.329073 0.329369 -v 1.068843 -0.328109 0.238509 -v 0.990151 -0.327627 0.193079 -v 0.911459 -0.328109 0.238509 -v 0.911459 -0.329073 0.329369 -v 0.990151 -0.652153 0.183958 -v 1.068843 -0.612568 0.161660 -v 1.068843 -0.533399 0.117064 -v 0.990151 -0.493815 0.094766 -v 0.911459 -0.533399 0.117064 -v 0.911459 -0.612568 0.161660 -vt 0.500000 0.500000 -vt 0.666667 0.500000 -vt 0.666667 0.666667 -vt 0.500000 0.666667 -vt 0.666667 0.833333 -vt 0.500000 0.833333 -vt 0.666667 1.000000 -vt 0.500000 1.000000 -vt 0.500000 -0.000000 -vt 0.666667 -0.000000 -vt 0.666667 0.166667 -vt 0.500000 0.166667 -vt 0.666667 0.333333 -vt 0.500000 0.333333 -vt 0.833333 0.500000 -vt 0.833333 0.666667 -vt 0.833333 0.833333 -vt 0.833333 1.000000 -vt 0.833333 -0.000000 -vt 0.833333 0.166667 -vt 0.833333 0.333333 -vt 1.000000 0.500000 -vt 1.000000 0.666667 -vt 1.000000 0.833333 -vt 1.000000 1.000000 -vt 1.000000 -0.000000 -vt 1.000000 0.166667 -vt 1.000000 0.333333 -vt -0.000000 0.500000 -vt 0.166667 0.500000 -vt 0.166667 0.666667 -vt -0.000000 0.666667 -vt 0.166667 0.833333 -vt -0.000000 0.833333 -vt 0.166667 1.000000 -vt -0.000000 1.000000 -vt -0.000000 -0.000000 -vt 0.166667 -0.000000 -vt 0.166667 0.166667 -vt -0.000000 0.166667 -vt 0.166667 0.333333 -vt -0.000000 0.333333 -vt 0.333333 0.500000 -vt 0.333333 0.666667 -vt 0.333333 0.833333 -vt 0.333333 1.000000 -vt 0.333333 -0.000000 -vt 0.333333 0.166667 -vt 0.333333 0.333333 -vn 0.4472 -0.4390 -0.7793 -vn 1.0000 0.0000 0.0000 -vn 0.4472 0.4390 0.7793 -vn -0.4472 0.4390 0.7793 -vn -1.0000 -0.0000 0.0000 -vn -0.4472 -0.4390 -0.7793 -vn 0.4472 0.4554 -0.7698 -vn 0.4472 -0.4554 0.7698 -vn -0.4472 -0.4554 0.7698 -vn -0.4472 0.4554 -0.7698 -vn 0.4472 0.8944 0.0095 -vn 0.4472 -0.8944 -0.0095 -vn -0.4472 -0.8944 -0.0095 -vn -0.4472 0.8944 0.0095 -s 1 -f 541/960/260 542/961/260 543/962/260 544/963/260 -f 544/963/261 543/962/261 545/964/261 546/965/261 -f 546/965/262 545/964/262 547/966/262 548/967/262 -f 548/968/263 547/969/263 549/970/263 550/971/263 -f 550/971/264 549/970/264 551/972/264 552/973/264 -f 552/973/265 551/972/265 542/961/265 541/960/265 -f 542/961/266 553/974/266 554/975/266 543/962/266 -f 543/962/261 554/975/261 555/976/261 545/964/261 -f 545/964/267 555/976/267 556/977/267 547/966/267 -f 547/969/268 556/978/268 557/979/268 549/970/268 -f 549/970/264 557/979/264 558/980/264 551/972/264 -f 551/972/269 558/980/269 553/974/269 542/961/269 -f 553/974/270 559/981/270 560/982/270 554/975/270 -f 554/975/261 560/982/261 561/983/261 555/976/261 -f 555/976/271 561/983/271 562/984/271 556/977/271 -f 556/978/272 562/985/272 563/986/272 557/979/272 -f 557/979/264 563/986/264 564/987/264 558/980/264 -f 558/980/273 564/987/273 559/981/273 553/974/273 -f 559/988/262 565/989/262 566/990/262 560/991/262 -f 560/991/261 566/990/261 567/992/261 561/993/261 -f 561/993/260 567/992/260 568/994/260 562/995/260 -f 562/996/265 568/997/265 569/998/265 563/999/265 -f 563/999/264 569/998/264 570/1000/264 564/1001/264 -f 564/1001/263 570/1000/263 565/989/263 559/988/263 -f 565/989/267 571/1002/267 572/1003/267 566/990/267 -f 566/990/261 572/1003/261 573/1004/261 567/992/261 -f 567/992/266 573/1004/266 574/1005/266 568/994/266 -f 568/997/269 574/1006/269 575/1007/269 569/998/269 -f 569/998/264 575/1007/264 576/1008/264 570/1000/264 -f 570/1000/268 576/1008/268 571/1002/268 565/989/268 -f 571/1002/271 541/960/271 544/963/271 572/1003/271 -f 572/1003/261 544/963/261 546/965/261 573/1004/261 -f 573/1004/270 546/965/270 548/967/270 574/1005/270 -f 574/1006/273 548/968/273 550/971/273 575/1007/273 -f 575/1007/264 550/971/264 552/973/264 576/1008/264 -f 576/1008/272 552/973/272 541/960/272 571/1002/272 -o HolographicHolder_Cylinder.009 -v -0.972691 1.166717 0.278124 -v -0.972691 1.166717 -0.278124 -v -0.987438 1.166717 -0.260322 -v -0.987438 1.166717 0.260322 -v -0.934937 1.102284 0.278124 -v -0.934937 1.102284 -0.278124 -v -0.971860 1.037372 0.278124 -v -0.971860 1.037372 -0.278124 -v -1.046537 1.036892 0.278124 -v -1.046537 1.036892 -0.278124 -v -1.047369 1.166237 0.278124 -v -1.084291 1.101324 0.278124 -v -1.084291 1.101324 -0.278124 -v -1.047368 1.166237 -0.278124 -v -1.032621 1.166237 -0.260322 -v -1.032621 1.166237 0.260322 -v -1.033084 1.202181 0.260322 -v -1.033084 1.202181 -0.260322 -v -0.987902 1.202661 0.260322 -v -0.987902 1.202661 -0.260322 -vt 0.833333 1.000000 -vt 0.833333 0.500000 -vt 0.833333 0.500000 -vt 0.833333 1.000000 -vt 0.666667 1.000000 -vt 0.666667 0.500000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.333333 1.000000 -vt 0.333333 0.500000 -vt 0.457846 0.370000 -vt 0.250000 0.490000 -vt 0.042154 0.370000 -vt 0.042154 0.130000 -vt 0.250000 0.010000 -vt 0.457846 0.130000 -vt 0.166667 1.000000 -vt 0.166667 0.500000 -vt -0.000000 1.000000 -vt -0.000000 0.500000 -vt 0.750000 0.490000 -vt 0.957846 0.370000 -vt 0.957846 0.130000 -vt 0.750000 0.010000 -vt 0.542154 0.130000 -vt 0.542154 0.370000 -vt -0.000000 0.500000 -vt -0.000000 1.000000 -vt -0.000000 1.000000 -vt -0.000000 0.500000 -vt 0.457846 0.370000 -vt 0.250000 0.490000 -vt 0.750000 0.490000 -vt 0.957846 0.370000 -vt 1.000000 0.500000 -vt 1.000000 1.000000 -vt 0.833333 1.000000 -vt 0.833333 0.500000 -vt 0.750000 0.490000 -vt 0.957846 0.370000 -vt 0.457846 0.370000 -vt 0.250000 0.490000 -vn -0.0005 1.0000 -0.0000 -vn -0.0078 1.0000 0.0000 -vn 0.8628 0.5055 0.0000 -vn 0.8692 -0.4944 0.0000 -vn 0.0064 -1.0000 0.0000 -vn -0.0000 0.0000 1.0000 -vn -0.8628 -0.5056 0.0000 -vn -0.8692 0.4944 -0.0000 -vn -0.0000 0.0000 -1.0000 -vn -0.9999 -0.0129 0.0000 -vn -0.0079 1.0000 -0.0000 -vn -0.0106 0.9999 0.0000 -vn 0.9999 0.0129 0.0000 -s 1 -f 577/1009/274 578/1010/274 579/1011/275 580/1012/275 -f 578/1010/276 577/1009/276 581/1013/276 582/1014/276 -f 582/1014/277 581/1013/277 583/1015/277 584/1016/277 -f 584/1016/278 583/1015/278 585/1017/278 586/1018/278 -f 577/1019/279 587/1020/279 588/1021/279 585/1022/279 583/1023/279 581/1024/279 -f 586/1018/280 585/1017/280 588/1025/280 589/1026/280 -f 589/1026/281 588/1025/281 587/1027/281 590/1028/281 -f 590/1029/282 578/1030/282 582/1031/282 584/1032/282 586/1033/282 589/1034/282 -f 591/1035/283 592/1036/283 593/1037/283 594/1038/283 -f 587/1020/274 577/1019/274 580/1039/275 592/1040/284 -f 590/1028/274 587/1027/274 592/1036/284 591/1035/284 -f 578/1030/274 590/1029/274 591/1041/284 579/1042/275 -f 594/1043/285 593/1044/285 595/1045/285 596/1046/285 -f 579/1042/282 591/1041/282 594/1047/282 596/1048/282 -f 580/1012/286 579/1011/286 596/1046/286 595/1045/286 -f 592/1040/279 580/1039/279 595/1049/279 593/1050/279 -o HandleHilt_Cylinder.003 -v -1.464091 -0.996279 -0.140051 -v -1.457375 -0.967729 -0.140051 -v -1.339310 -0.995504 -0.070026 -v -1.346026 -1.024054 -0.070026 -v -1.339310 -0.995504 0.070026 -v -1.346026 -1.024054 0.070026 -v -1.457375 -0.967729 0.140051 -v -1.464091 -0.996279 0.140051 -v -1.575440 -0.939954 0.070026 -v -1.582156 -0.968503 0.070026 -v -1.343945 -0.917630 -0.057125 -v -1.343945 -0.917630 0.057125 -v -1.575440 -0.939954 -0.070026 -v -1.582156 -0.968503 -0.070026 -v -1.482215 -1.073316 0.113549 -v -1.386492 -1.095835 0.056774 -v -1.440258 -0.894971 -0.114249 -v -1.536572 -0.872313 -0.057125 -v -1.536572 -0.872313 0.057125 -v -1.440258 -0.894971 0.114249 -v -1.577937 -1.050797 0.056774 -v -1.577937 -1.050797 -0.056774 -v -1.539716 -1.059789 -0.034105 -v -1.539716 -1.059789 0.034105 -v -1.482215 -1.073316 -0.113549 -v -1.386492 -1.095835 -0.056774 -v -1.482215 -1.073316 -0.068210 -v -1.487302 -1.094942 -0.059778 -v -1.537696 -1.083087 -0.029889 -v -1.482215 -1.073316 0.068210 -v -1.424713 -1.086844 0.034105 -v -1.424713 -1.086844 -0.034105 -v -1.436908 -1.106798 -0.029889 -v -1.436908 -1.106798 0.029889 -v -1.487302 -1.094942 0.059778 -v -1.537696 -1.083087 0.029889 -vt 1.000000 0.500000 -vt 1.000000 1.000000 -vt 0.833333 1.000000 -vt 0.833333 0.500000 -vt 0.666667 1.000000 -vt 0.666667 0.500000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.333333 1.000000 -vt 0.333333 0.500000 -vt 0.833333 1.000000 -vt 0.666667 1.000000 -vt 0.166667 1.000000 -vt 0.166667 0.500000 -vt -0.000000 1.000000 -vt -0.000000 0.500000 -vt 0.500000 0.500000 -vt 0.666667 0.500000 -vt 0.457846 0.370000 -vt 0.250000 0.490000 -vt 0.042154 0.370000 -vt 0.042154 0.130000 -vt 0.250000 0.010000 -vt 0.457846 0.130000 -vt 0.333333 1.000000 -vt 0.166667 1.000000 -vt 1.000000 1.000000 -vt 0.500000 1.000000 -vt -0.000000 1.000000 -vt 0.333333 0.500000 -vt 0.166667 0.500000 -vt 0.166667 0.500000 -vt 0.333333 0.500000 -vt -0.000000 0.500000 -vt 0.833333 0.500000 -vt 1.000000 0.500000 -vt -0.000000 0.500000 -vt -0.000000 0.500000 -vt 0.166667 0.500000 -vt 0.500000 0.500000 -vt 0.666667 0.500000 -vt 0.833333 0.500000 -vt 1.000000 0.500000 -vt 0.750000 0.490000 -vt 0.957846 0.370000 -vt 0.957846 0.130000 -vt 0.750000 0.010000 -vt 0.542154 0.130000 -vt 0.542154 0.370000 -vt 0.333333 0.500000 -vt 0.500000 0.500000 -vt 0.666667 0.500000 -vt 0.833333 0.500000 -vt 1.000000 0.500000 -vn 0.4867 -0.1145 -0.8660 -vn 0.9734 -0.2290 0.0000 -vn 0.4867 -0.1145 0.8660 -vn -0.4867 0.1145 0.8660 -vn 0.9982 0.0594 0.0000 -vn -0.9734 0.2290 0.0000 -vn -0.4867 0.1145 -0.8660 -vn 0.4037 -0.3811 0.8318 -vn 0.2290 0.9734 -0.0000 -vn -0.8670 0.4982 0.0000 -vn 0.5319 0.1691 -0.8297 -vn 0.5319 0.1691 0.8297 -vn -0.4007 0.3885 -0.8297 -vn -0.4007 0.3885 0.8297 -vn -0.2290 -0.9734 0.0000 -vn -0.5312 -0.1612 -0.8318 -vn -0.5312 -0.1612 0.8318 -vn 0.8711 -0.4911 0.0000 -vn -0.9987 -0.0512 0.0000 -vn 0.4037 -0.3811 -0.8318 -vn -0.5339 -0.1952 -0.8227 -vn -0.5339 -0.1952 0.8227 -vn 0.8533 -0.5215 0.0000 -vn -0.9963 -0.0864 0.0000 -vn 0.3909 -0.4127 0.8227 -vn 0.3909 -0.4127 -0.8227 -s 1 -f 597/1051/287 598/1052/287 599/1053/287 600/1054/287 -f 600/1054/288 599/1053/288 601/1055/288 602/1056/288 -f 602/1056/289 601/1055/289 603/1057/289 604/1058/289 -f 604/1058/290 603/1057/290 605/1059/290 606/1060/290 -f 601/1055/291 599/1053/291 607/1061/291 608/1062/291 -f 606/1060/292 605/1059/292 609/1063/292 610/1064/292 -f 610/1064/293 609/1063/293 598/1065/293 597/1066/293 -f 602/1056/294 604/1058/294 611/1067/294 612/1068/294 -f 607/1069/295 613/1070/295 614/1071/295 615/1072/295 616/1073/295 608/1074/295 -f 609/1063/296 605/1059/296 615/1075/296 614/1076/296 -f 599/1053/297 598/1052/297 613/1077/297 607/1061/297 -f 603/1057/298 601/1055/298 608/1062/298 616/1078/298 -f 598/1065/299 609/1063/299 614/1076/299 613/1079/299 -f 605/1059/300 603/1057/300 616/1078/300 615/1075/300 -f 617/1080/301 618/1081/301 619/1082/301 620/1083/301 -f 610/1064/302 597/1066/302 621/1084/302 618/1081/302 -f 604/1058/303 606/1060/303 617/1080/303 611/1067/303 -f 600/1054/304 602/1056/304 612/1068/304 622/1085/304 -f 606/1060/305 610/1064/305 618/1081/305 617/1080/305 -f 597/1051/306 600/1054/306 622/1085/306 621/1086/306 -f 619/1082/307 623/1087/307 624/1088/307 625/1089/307 -f 612/1068/301 611/1067/301 626/1090/301 627/1091/301 -f 621/1086/301 622/1085/301 628/1092/301 623/1093/301 -f 618/1081/301 621/1084/301 623/1087/301 619/1082/301 -f 611/1067/301 617/1080/301 620/1083/301 626/1090/301 -f 622/1085/301 612/1068/301 627/1091/301 628/1092/301 -f 624/1094/301 629/1095/301 630/1096/301 631/1097/301 632/1098/301 625/1099/301 -f 626/1090/308 620/1083/308 632/1100/308 631/1101/308 -f 628/1092/309 627/1091/309 630/1102/309 629/1103/309 -f 620/1083/310 619/1082/310 625/1089/310 632/1100/310 -f 627/1091/311 626/1090/311 631/1101/311 630/1102/311 -f 623/1093/312 628/1092/312 629/1103/312 624/1104/312 -o HandleComfortThing_Cube.006 -v -1.508359 -0.214874 0.108693 -v -1.504838 -0.215309 -0.106817 -v -1.564296 -0.274102 -0.089219 -v -1.567402 -0.273718 0.089973 -v -1.348484 -0.928894 -0.174279 -v -1.331423 -0.813343 -0.174279 -v -1.263873 -0.855085 -0.182453 -v -1.262042 -0.949106 -0.182453 -v -1.263873 -0.855085 0.182453 -v -1.207149 -0.865197 0.174081 -v -1.207149 -0.865197 -0.174081 -v -1.570189 -0.877055 0.143835 -v -1.435938 -0.379825 0.163084 -v -1.622805 -0.828855 0.096503 -v -1.262042 -0.949106 0.182453 -v -1.348484 -0.928894 0.174279 -v -1.435938 -0.379825 -0.163084 -v -1.112852 -0.829663 0.130793 -v -1.112852 -0.829663 -0.130793 -v -1.205319 -0.959218 -0.174081 -v -1.205319 -0.959218 0.174081 -v -1.111021 -0.923684 0.130793 -v -1.072210 -0.848373 0.087270 -v -1.073111 -0.802094 0.087270 -v -1.111021 -0.923684 -0.130793 -v -1.072210 -0.848373 -0.087270 -v -1.073111 -0.802094 -0.087270 -v -1.681696 -0.766817 -0.072169 -v -1.689936 -0.702839 -0.059605 -v -1.640119 -0.414721 -0.072179 -v -1.619700 -0.829239 -0.095954 -v -1.684682 -0.766448 0.071709 -v -1.643105 -0.414353 0.071698 -v -1.666879 -0.498637 -0.059615 -v -1.669865 -0.498268 0.058900 -v -1.692922 -0.702470 0.058910 -v -1.690559 -0.607421 0.054481 -v -1.687573 -0.607789 -0.055307 -v -1.331423 -0.813343 0.174279 -v -1.416650 -0.767127 -0.178303 -v -1.416650 -0.767127 0.178303 -v -1.469005 -0.685482 -0.171908 -v -1.469005 -0.685482 0.171908 -v -1.542909 -0.883434 -0.161182 -v -1.516768 -0.889546 -0.174389 -v -1.516768 -0.889546 0.174389 -v -1.542909 -0.883434 0.161182 -v -1.432626 -0.909220 -0.178303 -v -1.432626 -0.909220 0.178303 -v -1.484962 -0.656299 -0.158888 -v -1.570189 -0.877055 -0.143835 -v -1.484962 -0.656299 0.158888 -vt 0.875000 0.750000 -vt 0.875000 0.500000 -vt 0.875000 0.500000 -vt 0.875000 0.750000 -vt 0.375000 0.435792 -vt 0.625000 0.435792 -vt 0.625000 0.500000 -vt 0.375000 0.500000 -vt 0.625000 0.750000 -vt 0.625000 0.750000 -vt 0.625000 0.500000 -vt 0.375000 0.978890 -vt 0.625000 0.978890 -vt 0.625000 1.000000 -vt 0.375000 1.000000 -vt 0.310792 0.500000 -vt 0.375000 0.750000 -vt 0.310792 0.750000 -vt 0.853890 0.500000 -vt 0.853890 0.750000 -vt 0.625000 0.750000 -vt 0.625000 0.500000 -vt 0.375000 0.500000 -vt 0.375000 0.750000 -vt 0.375000 0.750000 -vt 0.375000 0.750000 -vt 0.625000 0.750000 -vt 0.375000 0.500000 -vt 0.375000 0.500000 -vt 0.625000 0.500000 -vt 0.625000 0.250000 -vt 0.375000 0.250000 -vt 0.375000 0.250000 -vt 0.625000 0.250000 -vt 0.125000 0.500000 -vt 0.125000 0.750000 -vt 0.125000 0.750000 -vt 0.125000 0.500000 -vt 0.625000 0.250000 -vt 0.375000 0.250000 -vt 0.625000 1.000000 -vt 0.375000 1.000000 -vt 0.875000 0.750000 -vt 0.875000 0.500000 -vt 0.875000 0.500000 -vt 0.875000 0.750000 -vt 0.625000 1.000000 -vt 0.375000 1.000000 -vt 0.125000 0.750000 -vt 0.125000 0.500000 -vt 0.375000 0.000000 -vt 0.625000 0.000000 -vt 0.625000 0.250000 -vt 0.375000 0.250000 -vt 0.125000 0.750000 -vt 0.125000 0.500000 -vt 0.625000 1.000000 -vt 0.375000 1.000000 -vt 0.689208 0.500000 -vt 0.689208 0.750000 -vt 0.751708 0.500000 -vt 0.751708 0.750000 -vt 0.814208 0.500000 -vt 0.814208 0.750000 -vt 0.166374 0.500000 -vt 0.185792 0.500000 -vt 0.185792 0.750000 -vt 0.166374 0.750000 -vt 0.248292 0.500000 -vt 0.248292 0.750000 -vt 0.625000 0.814208 -vt 0.375000 0.814208 -vt 0.625000 0.876708 -vt 0.375000 0.876708 -vt 0.625000 0.939208 -vt 0.375000 0.939208 -vt 0.375000 0.291374 -vt 0.625000 0.291374 -vt 0.625000 0.310792 -vt 0.375000 0.310792 -vt 0.625000 0.373292 -vt 0.375000 0.373292 -vt 0.625000 0.271110 -vt 0.375000 0.271110 -vt 0.146110 0.500000 -vt 0.146110 0.750000 -vt 0.833626 0.500000 -vt 0.833626 0.750000 -vt 0.625000 0.958626 -vt 0.375000 0.958626 -vn -0.7044 0.7097 -0.0133 -vn -0.1026 0.0075 -0.9947 -vn 0.1755 0.9845 0.0000 -vn -0.5269 0.0940 0.8447 -vn -0.2277 -0.9737 0.0000 -vn 0.9190 0.3942 0.0057 -vn -0.3526 0.9358 0.0000 -vn 0.1465 0.0029 -0.9892 -vn 0.1465 0.0029 0.9892 -vn -0.1755 -0.9845 0.0000 -vn 0.7339 0.0143 0.6791 -vn 0.4147 0.0081 -0.9099 -vn 0.4147 0.0081 0.9099 -vn 0.3526 -0.9358 0.0000 -vn 0.9998 0.0195 0.0000 -vn 0.8889 -0.4581 0.0000 -vn -0.5700 0.8216 0.0000 -vn 0.7339 0.0143 -0.6791 -vn -0.3667 0.0433 -0.9293 -vn -0.7097 -0.7044 -0.0113 -vn -0.3211 0.0435 -0.9461 -vn -0.3371 0.0447 0.9404 -vn -0.9525 0.3038 -0.0225 -vn -0.3829 0.0452 0.9227 -vn -0.8802 0.4743 -0.0177 -vn -0.9916 -0.1277 -0.0222 -vn -0.9822 0.1862 -0.0263 -vn -0.9993 0.0248 -0.0262 -vn -0.5482 0.0619 -0.8340 -vn -0.5564 0.0629 0.8286 -vn 0.5257 0.8507 0.0000 -vn 0.4767 0.8791 0.0000 -vn 0.8418 0.5398 0.0000 -vn -0.1026 0.0075 0.9947 -vn 0.0452 -0.0058 0.9990 -vn -0.0616 0.0185 0.9979 -vn -0.4504 0.1202 -0.8847 -vn -0.0616 0.0185 -0.9979 -vn 0.0452 -0.0058 -0.9990 -vn -0.5492 0.1006 -0.8296 -vn -0.3469 0.0702 -0.9353 -vn -0.6850 -0.7286 -0.0038 -vn 0.8774 0.4798 0.0000 -vn 0.9846 -0.1746 0.0000 -vn -0.4504 0.1202 0.8847 -vn -0.3469 0.0702 0.9353 -s 1 -f 633/1105/313 634/1106/313 635/1107/313 636/1108/313 -f 637/1109/314 638/1110/314 639/1111/314 640/1112/314 -f 639/1111/315 641/1113/315 642/1114/315 643/1115/315 -f 644/1116/316 645/1117/316 633/1118/316 646/1119/316 -f 637/1120/317 640/1112/317 647/1121/317 648/1122/317 -f 649/1123/318 634/1106/318 633/1105/318 645/1124/318 -f 643/1115/319 642/1114/319 650/1125/319 651/1126/319 -f 640/1112/320 639/1111/320 643/1115/320 652/1127/320 -f 641/1113/321 647/1121/321 653/1128/321 642/1114/321 -f 647/1121/322 640/1112/322 652/1127/322 653/1128/322 -f 650/1125/323 654/1129/323 655/1130/323 656/1131/323 -f 652/1127/324 643/1115/324 651/1126/324 657/1132/324 -f 642/1114/325 653/1128/325 654/1129/325 650/1125/325 -f 653/1128/326 652/1127/326 657/1132/326 654/1129/326 -f 658/1133/327 659/1134/327 656/1131/327 655/1130/327 -f 654/1129/328 657/1132/328 658/1133/328 655/1130/328 -f 651/1126/329 650/1125/329 656/1131/329 659/1134/329 -f 657/1132/330 651/1126/330 659/1134/330 658/1133/330 -f 635/1135/331 660/1136/331 661/1137/331 662/1138/331 -f 663/1139/332 646/1140/332 664/1141/332 660/1142/332 -f 634/1143/333 663/1144/333 660/1136/333 635/1135/333 -f 646/1119/334 633/1118/334 636/1145/334 664/1146/334 -f 665/1147/335 662/1148/335 666/1149/335 667/1150/335 -f 664/1146/336 636/1145/336 665/1151/336 668/1152/336 -f 636/1108/337 635/1107/337 662/1148/337 665/1147/337 -f 660/1142/338 664/1141/338 668/1153/338 661/1154/338 -f 669/1155/339 667/1156/339 666/1157/339 670/1158/339 -f 661/1154/340 668/1153/340 669/1159/340 670/1160/340 -f 662/1138/341 661/1137/341 670/1158/341 666/1157/341 -f 668/1152/342 665/1151/342 667/1161/342 669/1162/342 -f 639/1111/343 638/1163/343 671/1164/343 641/1113/343 -f 638/1163/344 672/1165/344 673/1166/344 671/1164/344 -f 672/1165/345 674/1167/345 675/1168/345 673/1166/345 -f 676/1169/317 677/1170/317 678/1171/317 679/1172/317 -f 677/1170/317 680/1173/317 681/1174/317 678/1171/317 -f 680/1173/317 637/1120/317 648/1122/317 681/1174/317 -f 647/1121/346 641/1113/346 671/1175/346 648/1176/346 -f 648/1176/347 671/1175/347 673/1177/347 681/1178/347 -f 681/1178/348 673/1177/348 675/1179/348 678/1180/348 -f 676/1181/349 682/1182/349 674/1183/349 677/1184/349 -f 677/1184/350 674/1183/350 672/1185/350 680/1186/350 -f 680/1186/351 672/1185/351 638/1110/351 637/1109/351 -f 663/1144/352 634/1143/352 649/1187/352 683/1188/352 -f 683/1188/353 649/1187/353 682/1182/353 676/1181/353 -f 663/1139/354 683/1189/354 644/1190/354 646/1140/354 -f 683/1189/317 676/1169/317 679/1172/317 644/1190/317 -f 674/1167/355 682/1191/355 684/1192/355 675/1168/355 -f 682/1191/356 649/1123/356 645/1124/356 684/1192/356 -f 678/1180/357 675/1179/357 684/1193/357 679/1194/357 -f 679/1194/358 684/1193/358 645/1117/358 644/1116/358 -o Grip_Cube.001 -v -1.325666 -0.019640 0.170554 -v -1.325666 0.137146 0.170554 -v -1.472478 0.148884 0.071087 -v -1.472478 -0.007902 0.071087 -v -1.325666 -0.019640 -0.170554 -v -1.325666 0.137146 -0.170554 -v -1.062875 0.137146 -0.170554 -v -1.062875 -0.019640 -0.170554 -v -1.130714 -0.142396 -0.170554 -v -0.914155 -0.020276 -0.107189 -v -0.981994 -0.143031 -0.107189 -v -1.062875 -0.019640 0.170554 -v -1.062875 0.137146 0.170554 -v -0.914155 0.136510 -0.107189 -v -1.259746 -0.728734 -0.170554 -v -1.147611 -0.221161 -0.170554 -v -0.998891 -0.221796 -0.107189 -v -1.111026 -0.729370 -0.107189 -v -1.346664 -0.179545 0.170554 -v -1.130714 -0.142396 0.170554 -v -1.346664 -0.179545 -0.170554 -v -1.447785 -0.735647 0.170554 -v -1.363562 -0.258310 0.170554 -v -1.510373 -0.246572 0.071087 -v -1.594597 -0.723909 0.071087 -v -0.981994 -0.143031 0.107189 -v -0.914155 -0.020276 0.107189 -v -1.363562 -0.258310 -0.170554 -v -1.447785 -0.735647 -0.170554 -v -1.594597 -0.723909 -0.071087 -v -1.510373 -0.246572 -0.071087 -v -1.147611 -0.221161 0.170554 -v -1.259746 -0.728734 0.170554 -v -1.483874 -0.874924 0.170554 -v -1.219691 -0.868011 0.170554 -v -1.493475 -0.167807 0.071087 -v -1.483874 -0.751872 -0.170554 -v -1.219691 -0.868011 -0.170554 -v -0.914155 0.136510 0.107189 -v -1.472478 -0.007902 -0.071087 -v -1.472478 0.148884 -0.071087 -v -1.493475 -0.167807 -0.071087 -v -1.630686 -0.740134 -0.071087 -v -1.630686 -0.740134 0.071087 -v -0.998891 -0.221796 0.107189 -v -1.111026 -0.729370 0.107189 -v -1.100054 -0.868647 0.107189 -v -1.100054 -0.868647 -0.107189 -vt 0.375000 1.000000 -vt 0.625000 1.000000 -vt 0.625000 1.000000 -vt 0.375000 1.000000 -vt 0.375000 0.250000 -vt 0.625000 0.250000 -vt 0.625000 0.500000 -vt 0.375000 0.500000 -vt 0.375000 0.500000 -vt 0.375000 0.500000 -vt 0.375000 0.500000 -vt 0.375000 0.750000 -vt 0.625000 0.750000 -vt 0.625000 0.500000 -vt 0.875000 0.500000 -vt 0.875000 0.750000 -vt 0.375000 0.500000 -vt 0.375000 0.500000 -vt 0.375000 0.500000 -vt 0.375000 0.500000 -vt 0.375000 1.000000 -vt 0.375000 0.750000 -vt 0.375000 0.250000 -vt 0.375000 1.000000 -vt 0.375000 1.000000 -vt 0.375000 1.000000 -vt 0.375000 1.000000 -vt 0.375000 0.750000 -vt 0.375000 0.750000 -vt 0.375000 0.250000 -vt 0.375000 0.250000 -vt 0.375000 0.250000 -vt 0.375000 0.250000 -vt 0.375000 0.750000 -vt 0.375000 0.750000 -vt 0.375000 1.000000 -vt 0.375000 0.750000 -vt 0.375000 1.000000 -vt 0.125000 0.500000 -vt 0.375000 0.500000 -vt 0.125000 0.750000 -vt 0.375000 0.250000 -vt 0.625000 0.750000 -vt 0.375000 0.250000 -vt 0.625000 0.250000 -vt 0.375000 0.000000 -vt 0.625000 0.000000 -vt 0.375000 0.250000 -vt 0.375000 0.000000 -vt 0.375000 0.000000 -vt 0.375000 0.000000 -vt 0.375000 0.250000 -vt 0.375000 0.000000 -vt 0.125000 0.750000 -vt 0.125000 0.500000 -vt 0.875000 0.500000 -vt 0.875000 0.750000 -vt 0.375000 1.000000 -vt 0.375000 0.750000 -vt 0.375000 0.750000 -vt 0.375000 0.750000 -vt 0.375000 0.500000 -vn -0.5609 0.0000 0.8279 -vn 0.0000 0.0000 -1.0000 -vn 0.3824 -0.2113 -0.8995 -vn -0.0000 -0.0000 1.0000 -vn 0.3920 0.0000 -0.9200 -vn 0.0039 1.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn 0.3902 -0.0862 -0.9167 -vn 0.3902 -0.0839 -0.9169 -vn 0.3901 -0.0861 -0.9167 -vn -0.5529 0.0976 0.8275 -vn 0.3824 -0.2113 0.8995 -vn -0.5529 0.0976 -0.8275 -vn -0.5505 0.1181 0.8264 -vn -0.1994 -0.9644 -0.1739 -vn 0.3920 -0.0000 0.9200 -vn -0.5609 -0.0000 -0.8279 -vn -1.0000 0.0000 0.0000 -vn -0.9915 0.1302 0.0000 -vn -0.9778 0.2098 0.0000 -vn -0.9848 0.1738 0.0000 -vn -0.4100 0.9121 0.0000 -vn -0.5554 0.0729 0.8284 -vn -0.4354 -0.8724 -0.2221 -vn 0.0797 0.9968 0.0000 -vn -0.5554 0.0729 -0.8284 -vn -0.3339 0.7427 -0.5805 -vn -0.5505 0.1181 -0.8264 -vn -0.4704 0.2183 0.8550 -vn 1.0000 -0.0000 0.0000 -vn 0.8752 -0.4837 -0.0000 -vn 0.9778 -0.2098 0.0000 -vn 0.9771 -0.2127 0.0000 -vn 0.9765 -0.2157 0.0000 -vn 0.9969 0.0785 0.0000 -vn 0.4260 0.0780 0.9013 -vn 0.3903 -0.0837 0.9169 -vn 0.3902 -0.0839 0.9169 -vn 0.3901 -0.0861 0.9167 -vn -0.0053 -1.0000 0.0000 -vn 0.4260 0.0780 -0.9013 -vn 0.3903 -0.0837 -0.9169 -vn 0.0043 1.0000 0.0000 -vn 0.3902 -0.0862 0.9167 -s 1 -f 685/1195/359 686/1196/359 687/1197/359 688/1198/359 -f 689/1199/360 690/1200/360 691/1201/360 692/1202/360 -f 693/1203/361 692/1202/361 694/1204/361 695/1205/361 -f 696/1206/362 697/1207/362 686/1196/362 685/1195/362 -f 692/1202/363 691/1201/363 698/1208/363 694/1204/363 -f 691/1201/364 690/1209/365 686/1210/365 697/1207/364 -f 699/1211/366 700/1212/367 701/1213/368 702/1214/366 -f 696/1206/362 685/1195/362 703/1215/362 704/1216/362 -f 689/1199/360 692/1202/360 693/1203/360 705/1217/360 -f 706/1218/369 707/1219/369 708/1220/369 709/1221/369 -f 696/1206/370 704/1216/370 710/1222/370 711/1223/370 -f 712/1224/371 713/1225/371 714/1226/371 715/1227/371 -f 704/1216/362 703/1215/362 707/1219/362 716/1228/362 -f 705/1217/360 693/1203/360 700/1212/360 712/1224/360 -f 717/1229/362 706/1218/362 718/1230/362 719/1231/362 -f 707/1219/372 703/1215/372 720/1232/372 708/1220/372 -f 716/1228/362 707/1219/362 706/1218/362 717/1229/362 -f 712/1224/360 700/1212/360 699/1211/360 713/1225/360 -f 721/1233/373 722/1234/373 719/1231/373 718/1235/373 -f 713/1225/360 699/1211/360 722/1234/360 721/1236/360 -f 697/1207/374 696/1206/374 711/1223/374 723/1237/374 -f 690/1200/375 689/1199/375 724/1238/375 725/1239/375 -f 688/1240/376 687/1241/376 725/1239/376 724/1238/376 -f 688/1240/377 724/1238/377 726/1242/377 720/1243/377 -f 720/1243/378 726/1242/378 715/1227/378 708/1244/378 -f 708/1244/379 715/1227/379 714/1226/379 709/1245/379 -f 709/1245/380 714/1226/380 727/1246/380 728/1247/380 -f 703/1215/381 685/1195/381 688/1198/381 720/1232/381 -f 721/1233/382 718/1235/382 728/1248/382 727/1249/382 -f 686/1210/383 690/1209/383 725/1250/383 687/1251/383 -f 689/1199/384 705/1217/384 726/1242/384 724/1238/384 -f 713/1225/385 721/1236/385 727/1246/385 714/1226/385 -f 705/1217/386 712/1224/386 715/1227/386 726/1242/386 -f 718/1230/387 706/1218/387 709/1221/387 728/1252/387 -f 694/1204/388 698/1208/388 723/1237/388 711/1223/388 -f 694/1204/389 711/1223/389 710/1222/389 695/1205/389 -f 695/1205/390 710/1222/390 729/1253/391 701/1213/391 -f 701/1213/391 729/1253/391 730/1254/392 702/1214/392 -f 702/1214/393 730/1254/393 731/1255/393 732/1256/393 -f 717/1229/394 719/1231/394 731/1255/394 730/1254/394 -f 704/1216/395 716/1228/396 729/1253/397 710/1222/395 -f 719/1231/398 722/1234/398 732/1256/398 731/1255/398 -f 722/1234/399 699/1211/399 702/1214/399 732/1256/399 -f 700/1212/367 693/1203/400 695/1205/400 701/1213/368 -f 691/1201/364 697/1207/364 723/1237/401 698/1208/401 -f 716/1228/396 717/1229/402 730/1254/402 729/1253/397 -o AmmunitionCan_Cylinder.007 -v -1.114931 0.645018 2.605743 -v -0.705608 0.645018 2.607436 -v -0.705608 0.367434 2.722416 -v -1.115595 0.367434 2.722416 -v -0.705608 0.252454 3.000000 -v -1.115595 0.252454 3.000000 -v -0.705608 0.367434 3.277584 -v -1.115595 0.367434 3.277584 -v -0.705608 0.645018 3.392564 -v -1.115595 0.645018 3.392564 -v -0.705608 0.922602 3.277584 -v -1.115595 0.922602 3.277584 -v -0.705608 1.037581 3.000000 -v -1.115595 1.037581 3.000000 -v -0.705608 0.922602 2.722416 -v -1.115595 0.922602 2.722416 -v -1.680468 0.367434 2.722416 -v -1.680468 0.252454 3.000000 -v -1.696762 0.326183 3.000000 -v -1.696762 0.419567 2.774549 -v -1.696762 0.645018 3.318835 -v -1.696762 0.870468 3.225451 -v -1.717499 0.922175 3.277157 -v -1.717499 0.645018 3.391959 -v -1.680468 0.645018 3.392564 -v -1.680468 0.922602 3.277584 -v -1.680468 0.922602 2.722416 -v -1.680468 0.645018 2.607436 -v -1.696762 0.645018 2.681165 -v -1.696762 0.870469 2.774550 -v -1.680468 0.367434 3.277584 -v -1.696762 0.419567 3.225451 -v -1.680468 1.037582 3.000000 -v -1.696762 0.963853 3.000000 -v -1.717499 1.036977 3.000000 -v -1.717499 0.922175 2.722843 -v -1.807855 0.922175 2.722843 -v -1.807855 1.036977 3.000000 -v -1.717499 0.367861 3.277157 -v -1.717499 0.253059 3.000000 -v -1.717499 0.367861 2.722843 -v -1.717499 0.645018 2.608041 -v -1.807855 0.922175 3.277157 -v -1.827112 0.964049 3.000000 -v -1.827112 0.870607 3.225589 -v -1.807856 0.645018 3.391959 -v -1.807856 0.367861 3.277157 -v -1.807856 0.253059 3.000000 -v -1.807856 0.367861 2.722843 -v -1.807856 0.645018 2.608041 -v -1.827112 0.645018 2.680969 -v -1.827112 0.419429 2.774411 -v -1.850272 0.367220 2.722202 -v -1.850272 0.645018 2.607134 -v -1.827112 0.645018 3.319031 -v -1.827112 0.419429 3.225589 -v -1.827112 0.325987 3.000000 -v -1.827112 0.870607 2.774411 -v -1.850272 1.037884 3.000000 -v -1.850272 0.922816 2.722202 -v -1.929992 0.922816 2.722202 -v -1.929992 1.037884 3.000000 -v -1.850272 0.922816 3.277798 -v -1.850272 0.645018 3.392866 -v -1.850272 0.367220 3.277798 -v -1.850272 0.252152 3.000000 -v -1.929992 0.367220 2.722202 -v -1.929992 0.252152 3.000000 -v -2.043752 0.321683 3.000000 -v -2.043752 0.416385 2.771367 -v -1.929992 0.922816 3.277798 -v -1.929992 0.645018 3.392866 -v -1.929992 0.367220 3.277798 -v -1.929992 0.645018 2.607134 -v -2.043752 0.873651 2.771367 -v -2.043752 0.645018 2.676665 -v -2.121962 0.645018 2.774646 -v -2.121962 0.804367 2.840651 -v -2.043752 0.968353 3.000000 -v -2.043752 0.873651 3.228633 -v -2.043752 0.645018 3.323335 -v -2.043752 0.416385 3.228633 -v -2.121962 0.870372 3.000000 -v -2.179800 0.787147 2.857871 -v -2.179800 0.846019 3.000000 -v -2.121962 0.804367 3.159349 -v -2.121962 0.645018 3.225354 -v -2.121962 0.485669 3.159349 -v -2.121962 0.419664 3.000000 -v -2.121962 0.485669 2.840651 -v -2.179800 0.787147 3.142129 -v -2.179800 0.817735 3.000000 -v -2.179800 0.767148 3.122130 -v -2.179800 0.645018 3.201001 -v -2.179800 0.502889 3.142129 -v -2.179800 0.444017 3.000000 -v -2.179800 0.502889 2.857871 -v -2.179800 0.645018 2.798999 -v -2.179800 0.645018 2.827283 -v -2.179800 0.522888 2.877870 -v -2.139229 0.522888 2.877870 -v -2.139229 0.645018 2.827283 -v -2.179800 0.645018 3.172717 -v -2.179800 0.522888 3.122130 -v -2.179800 0.472301 3.000000 -v -2.179800 0.767148 2.877870 -v -2.139229 0.472301 3.000000 -v -2.139229 0.522888 3.122130 -v -2.139229 0.645018 3.172717 -v -2.139229 0.767148 3.122130 -v -2.139229 0.817735 3.000000 -v -2.139229 0.767148 2.877870 -v -1.416219 0.923800 2.721218 -v -1.416219 0.645018 2.605743 -v -1.415588 1.037581 3.000000 -v -1.416219 0.923800 3.278782 -v -1.416219 0.645018 3.394257 -v -1.416219 0.366236 3.278782 -v -1.415589 0.252454 3.000000 -v -1.416219 0.366236 2.721218 -v -1.161507 0.923800 2.721218 -v -1.161507 0.645018 2.605743 -v -1.161507 1.039275 3.000000 -v -1.161507 0.923800 3.278782 -v -1.161507 0.645018 3.394257 -v -1.161507 0.366236 3.278782 -v -1.161507 0.250761 3.000000 -v -1.161507 0.366236 2.721218 -v -1.379544 0.645018 2.605743 -v -1.379545 0.366236 2.721218 -v -1.379545 1.039275 3.000000 -v -1.379545 0.923800 3.278782 -v -1.382795 0.953877 3.308859 -v -1.382795 1.081811 3.000000 -v -1.319287 0.645018 2.590682 -v -1.221764 0.645018 2.590682 -v -1.221764 0.355586 2.710568 -v -1.319287 0.355586 2.710568 -v -1.158621 0.950501 2.694517 -v -1.158621 1.077036 3.000000 -v -1.379545 0.250761 3.000000 -v -1.319287 0.235700 3.000000 -v -1.316037 0.208225 3.000000 -v -1.316037 0.336159 2.691141 -v -1.221764 0.235700 3.000000 -v -1.158621 0.950501 3.305483 -v -1.158621 0.645018 3.432019 -v -1.379545 0.366236 3.278782 -v -1.379545 0.645018 3.394257 -v -1.382795 0.336159 3.308859 -v -1.382795 0.645018 3.436793 -v -1.221764 0.355586 3.289432 -v -1.319287 0.355586 3.289432 -v -1.221764 0.934450 2.710568 -v -1.221764 1.054336 3.000000 -v -1.224650 1.077036 3.000000 -v -1.224650 0.950501 2.694517 -v -1.382795 0.336159 2.691141 -v -1.382795 0.208225 3.000000 -v -1.221764 0.645018 3.409318 -v -1.319287 0.645018 3.409318 -v -1.158621 0.339535 3.305483 -v -1.158621 0.212999 3.000000 -v -1.319287 1.054336 3.000000 -v -1.319287 0.934450 2.710568 -v -1.316037 0.953877 2.691141 -v -1.316037 1.081811 3.000000 -v -1.221764 0.934450 3.289432 -v -1.319287 0.934450 3.289432 -v -1.224650 0.645018 3.432019 -v -1.224650 0.950501 3.305483 -v -1.316037 0.953877 3.308859 -v -1.316037 0.645018 3.436793 -v -1.158621 0.339535 2.694517 -v -1.158621 0.645018 2.567981 -v -1.379545 0.923800 2.721218 -v -1.382795 0.953877 2.691141 -v -1.224650 0.212999 3.000000 -v -1.224650 0.339535 3.305483 -v -1.316037 0.336159 3.308859 -v -1.224650 0.645018 2.567981 -v -1.224650 0.339535 2.694517 -v -1.382795 0.645018 2.563207 -v -1.316036 0.645018 2.563207 -vt 0.333771 0.122601 -vt 0.250827 0.123696 -vt 0.249913 0.062860 -vt 0.333162 0.061441 -vt 0.248762 0.002028 -vt 0.331770 0.000458 -vt 0.331178 0.489363 -vt 0.248762 0.487236 -vt 0.250204 0.426885 -vt 0.333040 0.428574 -vt 0.251228 0.366447 -vt 0.334273 0.367529 -vt 0.251779 0.305898 -vt 0.334946 0.306336 -vt 0.251870 0.245242 -vt 0.335158 0.245008 -vt 0.387778 0.000111 -vt 0.448672 0.000111 -vt 0.491729 0.043169 -vt 0.491729 0.104062 -vt 0.448671 0.147120 -vt 0.387778 0.147120 -vt 0.344720 0.104062 -vt 0.344720 0.043169 -vt 0.251510 0.184543 -vt 0.334843 0.183746 -vt 0.184792 0.411952 -vt 0.180019 0.475285 -vt 0.164389 0.467565 -vt 0.169068 0.411085 -vt 0.171376 0.116511 -vt 0.173907 0.173123 -vt 0.158223 0.172770 -vt 0.156306 0.116051 -vt 0.187710 0.116136 -vt 0.188188 0.173263 -vt 0.187862 0.290744 -vt 0.187045 0.350935 -vt 0.169556 0.350164 -vt 0.173074 0.290555 -vt 0.169093 0.410760 -vt 0.169539 0.350497 -vt 0.182936 0.002420 -vt 0.185636 0.059963 -vt 0.171429 0.060361 -vt 0.168682 0.009053 -vt 0.188834 0.231566 -vt 0.171901 0.231236 -vt 0.173902 0.173419 -vt 0.171377 0.116200 -vt 0.171433 0.060647 -vt 0.173086 0.290248 -vt 0.171893 0.231559 -vt 0.156248 0.230716 -vt 0.156867 0.289505 -vt 0.136903 0.289718 -vt 0.137407 0.231137 -vt 0.156897 0.060302 -vt 0.156891 0.004402 -vt 0.151894 0.409417 -vt 0.153421 0.349240 -vt 0.147572 0.472946 -vt 0.138952 0.173384 -vt 0.121938 0.230032 -vt 0.123479 0.172751 -vt 0.138214 0.116866 -vt 0.138770 0.061156 -vt 0.138353 0.003891 -vt 0.132267 0.409089 -vt 0.134072 0.349295 -vt 0.126815 0.471069 -vt 0.118159 0.348200 -vt 0.116549 0.407518 -vt 0.099353 0.406365 -vt 0.101957 0.346731 -vt 0.123291 0.116133 -vt 0.123243 0.060809 -vt 0.114079 0.464786 -vt 0.116522 0.407844 -vt 0.120912 0.288422 -vt 0.121921 0.230342 -vt 0.123493 0.172442 -vt 0.123281 0.116431 -vt 0.123249 0.060512 -vt 0.123844 0.009530 -vt 0.118183 0.347881 -vt 0.120892 0.288742 -vt 0.106188 0.229161 -vt 0.104711 0.287384 -vt 0.088322 0.287014 -vt 0.090113 0.228932 -vt 0.107837 0.171744 -vt 0.108130 0.115645 -vt 0.108841 0.060451 -vt 0.096873 0.470749 -vt 0.108910 0.003319 -vt 0.083013 0.405933 -vt 0.079907 0.469925 -vt 0.052378 0.462912 -vt 0.054935 0.410246 -vt 0.092029 0.171671 -vt 0.092656 0.115769 -vt 0.093106 0.060660 -vt 0.092149 0.003387 -vt 0.085408 0.346282 -vt 0.062313 0.290993 -vt 0.059914 0.339771 -vt 0.036698 0.331221 -vt 0.038369 0.297224 -vt 0.063245 0.281096 -vt 0.064719 0.233294 -vt 0.067796 0.166452 -vt 0.068312 0.120444 -vt 0.068137 0.056008 -vt 0.067350 0.008871 -vt 0.057308 0.399614 -vt 0.059278 0.350520 -vt 0.065403 0.223033 -vt 0.066980 0.175906 -vt 0.068752 0.110697 -vt 0.069122 0.065341 -vt 0.041387 0.239824 -vt 0.040360 0.273141 -vt 0.028428 0.270971 -vt 0.029344 0.241254 -vt 0.042861 0.215130 -vt 0.043960 0.182284 -vt 0.046882 0.103646 -vt 0.047140 0.072034 -vt 0.027306 0.453697 -vt 0.029088 0.416990 -vt 0.045633 0.159231 -vt 0.045993 0.127165 -vt 0.045231 0.049246 -vt 0.044683 0.016394 -vt 0.033874 0.391223 -vt 0.035247 0.357006 -vt 0.032082 0.183664 -vt 0.031102 0.212960 -vt 0.026194 0.210732 -vt 0.027037 0.185558 -vt 0.034115 0.157369 -vt 0.034435 0.128769 -vt 0.033381 0.047668 -vt 0.032891 0.018366 -vt 0.021636 0.388880 -vt 0.022861 0.358361 -vt 0.024556 0.328782 -vt 0.026047 0.298459 -vt 0.035522 0.101845 -vt 0.035752 0.073650 -vt 0.014195 0.451072 -vt 0.015784 0.418332 -vt 0.017591 0.360300 -vt 0.016539 0.386525 -vt 0.008490 0.386202 -vt 0.009543 0.359977 -vt 0.030749 0.099822 -vt 0.030947 0.075594 -vt 0.008745 0.448499 -vt 0.010111 0.420366 -vt 0.023445 0.268724 -vt 0.024232 0.243190 -vt 0.029279 0.155303 -vt 0.029555 0.130726 -vt 0.028369 0.045690 -vt 0.027949 0.020511 -vt 0.019510 0.326396 -vt 0.020791 0.300340 -vt 0.363665 0.147342 -vt 0.390456 0.147342 -vt 0.409400 0.166287 -vt 0.409400 0.193078 -vt 0.390456 0.212022 -vt 0.363664 0.212022 -vt 0.344720 0.193078 -vt 0.344720 0.166286 -vt 0.011513 0.326003 -vt 0.012794 0.299946 -vt 0.018468 0.210474 -vt 0.019311 0.185300 -vt 0.023313 0.099761 -vt 0.023511 0.075533 -vt 0.000111 0.448080 -vt 0.001477 0.419947 -vt 0.015608 0.268483 -vt 0.016395 0.242948 -vt 0.021737 0.155218 -vt 0.022012 0.130642 -vt 0.020642 0.045819 -vt 0.020221 0.020640 -vt 0.241179 0.291205 -vt 0.241048 0.352210 -vt 0.241424 0.231328 -vt 0.239656 0.172428 -vt 0.238302 0.114877 -vt 0.236112 0.057792 -vt 0.234041 0.000494 -vt 0.239378 0.414394 -vt 0.236869 0.477863 -vt 0.344164 0.183645 -vt 0.343181 0.122473 -vt 0.344498 0.244994 -vt 0.344304 0.306406 -vt 0.343563 0.367674 -vt 0.342352 0.428813 -vt 0.340421 0.489783 -vt 0.342493 0.061278 -vt 0.341044 0.000111 -vt 0.248540 0.352310 -vt 0.247025 0.414653 -vt 0.518660 0.274425 -vt 0.518660 0.335581 -vt 0.510669 0.338880 -vt 0.510669 0.271126 -vt 0.618935 0.542365 -vt 0.618935 0.562130 -vt 0.555443 0.562130 -vt 0.555443 0.542365 -vt 0.518975 0.265234 -vt 0.518996 0.204078 -vt 0.526092 0.201151 -vt 0.526069 0.268165 -vt 0.244474 0.478305 -vt 0.491952 0.065734 -vt 0.491951 0.002242 -vt 0.497138 0.000111 -vt 0.497138 0.067865 -vt 0.491951 0.562130 -vt 0.491951 0.542365 -vt 0.518929 0.399261 -vt 0.518950 0.338104 -vt 0.526046 0.335178 -vt 0.526022 0.402192 -vt 0.240901 0.000111 -vt 0.243075 0.057522 -vt 0.518660 0.409933 -vt 0.518660 0.471090 -vt 0.510668 0.474388 -vt 0.510668 0.406634 -vt 0.999889 0.542365 -vt 0.999889 0.562130 -vt 0.936397 0.562130 -vt 0.936397 0.542365 -vt 0.543764 0.202918 -vt 0.543742 0.266410 -vt 0.539451 0.268169 -vt 0.539474 0.201156 -vt 0.245271 0.114659 -vt 0.518659 0.003410 -vt 0.518659 0.064565 -vt 0.510668 0.067865 -vt 0.510667 0.000111 -vt 0.872904 0.562130 -vt 0.872904 0.542365 -vt 0.518882 0.533287 -vt 0.518903 0.472131 -vt 0.525999 0.469205 -vt 0.525976 0.536218 -vt 0.246721 0.172240 -vt 0.491952 0.268995 -vt 0.491952 0.205503 -vt 0.497139 0.203372 -vt 0.497139 0.271126 -vt 0.809412 0.562130 -vt 0.809412 0.542365 -vt 0.543718 0.336945 -vt 0.543696 0.400437 -vt 0.539405 0.402196 -vt 0.539428 0.335183 -vt 0.248540 0.231225 -vt 0.491952 0.404503 -vt 0.491952 0.341011 -vt 0.497139 0.338880 -vt 0.497138 0.406634 -vt 0.745919 0.562130 -vt 0.745919 0.542365 -vt 0.519021 0.131207 -vt 0.519042 0.070051 -vt 0.526138 0.067125 -vt 0.526115 0.134138 -vt 0.248518 0.291219 -vt 0.518660 0.206671 -vt 0.518660 0.267827 -vt 0.510668 0.203372 -vt 0.682427 0.562130 -vt 0.682427 0.542365 -vt 0.543671 0.470972 -vt 0.543649 0.534464 -vt 0.539358 0.536223 -vt 0.539381 0.469210 -vt 0.491951 0.540012 -vt 0.491952 0.476519 -vt 0.497138 0.474388 -vt 0.497138 0.542143 -vt 0.543810 0.068891 -vt 0.543788 0.132383 -vt 0.539497 0.134142 -vt 0.539520 0.067129 -vt 0.526161 0.000111 -vt 0.539543 0.000116 -vt 0.543833 0.001878 -vt 0.543811 0.065370 -vt 0.543695 0.403959 -vt 0.543672 0.467451 -vt 0.519044 0.064193 -vt 0.519065 0.003037 -vt 0.543741 0.269931 -vt 0.543719 0.333424 -vt 0.518906 0.466274 -vt 0.518927 0.405118 -vt 0.543787 0.135905 -vt 0.543765 0.199397 -vt 0.518952 0.332247 -vt 0.518973 0.271091 -vt 0.518998 0.198220 -vt 0.519019 0.137064 -vt 0.510668 0.135618 -vt 0.497138 0.135618 -vt 0.510668 0.542143 -vt 0.491952 0.472258 -vt 0.491952 0.408765 -vt 0.518660 0.138917 -vt 0.518660 0.200073 -vt 0.491952 0.336749 -vt 0.491952 0.273257 -vt 0.491952 0.201241 -vt 0.491952 0.137749 -vt 0.518660 0.071163 -vt 0.518660 0.132319 -vt 0.518660 0.477687 -vt 0.518660 0.538844 -vt 0.491952 0.133487 -vt 0.491952 0.069996 -vt 0.518660 0.342179 -vt 0.518660 0.403335 -vn 0.0019 -0.3851 -0.9229 -vn 0.0000 -0.9239 -0.3827 -vn 0.0000 -0.9239 0.3827 -vn 0.0000 -0.3827 0.9239 -vn 0.0000 0.3827 0.9239 -vn 0.0000 0.9239 0.3827 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.9239 -0.3827 -vn 0.0019 0.3851 -0.9229 -vn -0.9726 -0.2149 -0.0890 -vn 0.9560 0.1123 0.2711 -vn -0.9726 0.0890 0.2149 -vn -0.9726 0.0890 -0.2149 -vn -0.9726 -0.0890 -0.2149 -vn -0.9726 -0.2149 0.0890 -vn -0.9726 0.2149 0.0890 -vn -0.9726 -0.0890 0.2149 -vn -0.9726 0.2149 -0.0890 -vn 0.9560 -0.2711 0.1123 -vn 0.9560 -0.1123 -0.2711 -vn 0.9560 0.1123 -0.2711 -vn 0.9560 0.2711 0.1123 -vn 0.9560 -0.1123 0.2711 -vn 0.9560 -0.2711 -0.1123 -vn 0.9560 0.2711 -0.1123 -vn -0.9615 0.2539 0.1052 -vn 0.0000 -0.3827 -0.9239 -vn 0.0000 0.3827 -0.9239 -vn 0.9469 -0.1230 -0.2970 -vn -0.9615 -0.1052 0.2539 -vn -0.9615 -0.2539 -0.1052 -vn -0.9615 0.2539 -0.1052 -vn -0.9615 0.1052 0.2539 -vn -0.9615 -0.2539 0.1052 -vn -0.9615 -0.1052 -0.2539 -vn -0.9615 0.1052 -0.2539 -vn 0.9469 0.1230 -0.2970 -vn 0.9469 0.2970 0.1230 -vn 0.9469 -0.1230 0.2970 -vn 0.9469 -0.2970 -0.1230 -vn 0.9469 0.2970 -0.1230 -vn 0.9469 0.1230 0.2970 -vn 0.9469 -0.2970 0.1230 -vn -0.4917 -0.8045 -0.3332 -vn -0.7567 0.2502 -0.6040 -vn -0.4917 0.8045 -0.3332 -vn -0.4917 0.3332 0.8045 -vn -0.4917 -0.8045 0.3332 -vn -0.4917 -0.3332 -0.8045 -vn -0.4917 0.3332 -0.8045 -vn -0.4917 0.8045 0.3332 -vn -0.4917 -0.3332 0.8045 -vn -0.3625 0.8610 -0.3567 -vn -0.7567 0.6040 0.2502 -vn -0.7567 -0.2502 0.6040 -vn -0.7567 -0.6040 -0.2502 -vn -0.7567 0.6040 -0.2502 -vn -0.7567 0.2502 0.6040 -vn -0.7567 -0.6040 0.2502 -vn -0.7567 -0.2502 -0.6040 -vn -1.0000 0.0000 0.0000 -vn -0.3625 0.3567 0.8610 -vn -0.3625 -0.8610 0.3567 -vn -0.3625 -0.3567 -0.8610 -vn -0.3625 0.3567 -0.8610 -vn -0.3625 0.8610 0.3567 -vn -0.3625 -0.3567 0.8610 -vn -0.3625 -0.8610 -0.3567 -vn -0.0059 0.3827 -0.9239 -vn -0.0030 0.9249 -0.3803 -vn -0.0030 0.9249 0.3803 -vn -0.0059 0.3827 0.9239 -vn -0.0059 -0.3827 0.9239 -vn -0.0030 -0.9249 0.3803 -vn -0.0030 -0.9249 -0.3803 -vn -0.0059 -0.3827 -0.9239 -vn 0.0169 0.3850 -0.9227 -vn 0.0341 0.9233 -0.3825 -vn 0.0341 0.9233 0.3825 -vn 0.0341 0.3825 0.9233 -vn 0.0341 -0.3825 0.9233 -vn 0.0341 -0.9233 0.3825 -vn 0.0341 -0.9233 -0.3825 -vn 0.0169 -0.3850 -0.9227 -vn -0.9966 -0.0761 -0.0315 -vn 0.9966 -0.0762 0.0316 -vn -0.0215 -0.9247 -0.3802 -vn 0.9919 0.1173 0.0486 -vn 0.9966 -0.0316 -0.0762 -vn -0.0215 -0.9247 0.3802 -vn -0.9966 0.0315 -0.0761 -vn -0.9907 -0.1260 0.0522 -vn -0.9966 0.0761 0.0315 -vn 0.9966 0.0762 -0.0316 -vn 0.9919 -0.1173 0.0486 -vn -0.9907 -0.0522 -0.1259 -vn -0.0215 0.9247 0.3802 -vn 0.9919 -0.0486 -0.1173 -vn 0.9966 0.0316 0.0762 -vn -0.0215 0.9247 -0.3802 -vn -0.9966 -0.0761 0.0315 -vn -0.9907 0.1260 -0.0522 -vn 0.9919 0.1173 -0.0486 -vn -0.9907 0.0522 0.1260 -vn -0.9907 0.1260 0.0522 -vn -0.9907 0.0522 -0.1260 -vn 0.9966 0.0762 0.0316 -vn -0.9907 -0.1260 -0.0522 -vn 0.9966 0.0316 -0.0762 -vn -0.9907 -0.0522 0.1260 -vn 0.9966 -0.0762 -0.0316 -vn 0.9966 -0.0316 0.0762 -vn 0.9919 0.0486 -0.1173 -vn -0.9966 -0.0315 0.0762 -vn 0.9919 -0.1173 -0.0486 -vn 0.9919 -0.0486 0.1173 -vn -0.9966 0.0315 0.0762 -vn -0.9966 0.0761 -0.0315 -vn 0.9919 0.0486 0.1173 -vn -0.9966 -0.0315 -0.0761 -s off -f 733/1257/403 734/1258/403 735/1259/403 736/1260/403 -f 736/1260/404 735/1259/404 737/1261/404 738/1262/404 -f 738/1263/405 737/1264/405 739/1265/405 740/1266/405 -f 740/1266/406 739/1265/406 741/1267/406 742/1268/406 -f 742/1268/407 741/1267/407 743/1269/407 744/1270/407 -f 744/1270/408 743/1269/408 745/1271/408 746/1272/408 -f 735/1273/409 734/1274/409 747/1275/409 745/1276/409 743/1277/409 741/1278/409 739/1279/409 737/1280/409 -f 746/1272/410 745/1271/410 747/1281/410 748/1282/410 -f 748/1282/411 747/1281/411 734/1258/411 733/1257/411 -f 749/1283/412 750/1284/412 751/1285/412 752/1286/412 -f 753/1287/413 754/1288/413 755/1289/413 756/1290/413 -f 757/1291/414 758/1292/414 754/1288/414 753/1287/414 -f 759/1293/415 760/1294/415 761/1295/415 762/1296/415 -f 760/1294/416 749/1283/416 752/1297/416 761/1298/416 -f 750/1299/417 763/1300/417 764/1301/417 751/1302/417 -f 758/1292/418 765/1303/418 766/1304/418 754/1305/418 -f 763/1300/419 757/1291/419 753/1306/419 764/1307/419 -f 765/1303/420 759/1293/420 762/1308/420 766/1309/420 -f 767/1310/410 768/1311/410 769/1312/410 770/1313/410 -f 751/1302/421 764/1301/421 771/1314/421 772/1315/421 -f 761/1298/422 752/1297/422 773/1316/422 774/1317/422 -f 762/1296/423 761/1295/423 774/1317/423 768/1311/423 -f 754/1305/424 766/1304/424 767/1310/424 755/1289/424 -f 764/1307/425 753/1306/425 756/1290/425 771/1314/425 -f 752/1286/426 751/1285/426 772/1318/426 773/1316/426 -f 766/1309/427 762/1308/427 768/1311/427 767/1310/427 -f 775/1319/428 770/1313/428 776/1320/428 777/1321/428 -f 756/1290/407 755/1289/407 775/1319/407 778/1322/407 -f 772/1315/405 771/1314/405 779/1323/405 780/1324/405 -f 774/1317/429 773/1316/429 781/1325/429 782/1326/429 -f 768/1311/430 774/1317/430 782/1326/430 769/1312/430 -f 755/1289/408 767/1310/408 770/1313/408 775/1319/408 -f 771/1314/406 756/1290/406 778/1322/406 779/1323/406 -f 773/1316/404 772/1318/404 780/1327/404 781/1325/404 -f 783/1328/431 784/1329/431 785/1330/431 786/1331/431 -f 779/1323/432 778/1322/432 787/1332/432 788/1333/432 -f 781/1325/433 780/1327/433 789/1334/433 784/1335/433 -f 770/1313/434 769/1312/434 790/1336/434 776/1337/434 -f 778/1322/435 775/1319/435 777/1338/435 787/1339/435 -f 780/1324/436 779/1323/436 788/1340/436 789/1341/436 -f 782/1326/437 781/1325/437 784/1329/437 783/1328/437 -f 769/1312/438 782/1326/438 783/1342/438 790/1343/438 -f 791/1344/410 792/1345/410 793/1346/410 794/1347/410 -f 790/1343/439 783/1342/439 786/1331/439 792/1345/439 -f 777/1321/440 776/1320/440 791/1344/440 795/1348/440 -f 788/1333/441 787/1332/441 796/1349/441 797/1350/441 -f 784/1335/442 789/1334/442 798/1351/442 785/1330/442 -f 776/1337/443 790/1336/443 792/1345/443 791/1344/443 -f 787/1339/444 777/1338/444 795/1348/444 796/1349/444 -f 789/1341/445 788/1340/445 797/1350/445 798/1352/445 -f 799/1353/446 800/1354/446 801/1355/446 802/1356/446 -f 796/1349/407 795/1348/407 803/1357/407 804/1358/407 -f 798/1352/405 797/1350/405 805/1359/405 800/1360/405 -f 786/1331/429 785/1330/429 799/1353/429 806/1361/429 -f 792/1345/430 786/1331/430 806/1361/430 793/1346/430 -f 795/1348/408 791/1344/408 794/1347/408 803/1357/408 -f 797/1350/406 796/1349/406 804/1358/406 805/1359/406 -f 785/1330/404 798/1351/404 800/1354/404 799/1353/404 -f 807/1362/447 808/1363/447 809/1364/447 810/1365/447 -f 794/1347/448 793/1346/448 807/1366/448 811/1367/448 -f 804/1358/449 803/1357/449 812/1368/449 813/1369/449 -f 800/1360/450 805/1359/450 814/1370/450 801/1371/450 -f 806/1361/451 799/1353/451 802/1372/451 808/1373/451 -f 793/1346/452 806/1361/452 808/1363/452 807/1362/452 -f 803/1357/453 794/1347/453 811/1374/453 812/1375/453 -f 805/1359/454 804/1358/454 813/1376/454 814/1377/454 -f 815/1378/455 810/1379/455 816/1380/455 817/1381/455 -f 812/1375/456 811/1374/456 815/1382/456 818/1383/456 -f 814/1377/457 813/1376/457 819/1384/457 820/1385/457 -f 802/1356/458 801/1355/458 821/1386/458 822/1387/458 -f 811/1367/459 807/1366/459 810/1379/459 815/1378/459 -f 813/1369/460 812/1368/460 818/1388/460 819/1389/460 -f 801/1371/461 814/1370/461 820/1390/461 821/1391/461 -f 808/1373/462 802/1372/462 822/1392/462 809/1393/462 -f 823/1394/463 817/1395/463 824/1396/463 825/1397/463 -f 819/1389/464 818/1388/464 823/1398/464 826/1399/464 -f 821/1391/465 820/1390/465 827/1400/465 828/1401/465 -f 809/1393/466 822/1392/466 829/1402/466 830/1403/466 -f 810/1365/467 809/1364/467 830/1404/467 816/1405/467 -f 818/1383/468 815/1382/468 817/1395/468 823/1394/468 -f 820/1385/469 819/1384/469 826/1406/469 827/1407/469 -f 822/1387/470 821/1386/470 828/1408/470 829/1409/470 -f 831/1410/407 832/1411/407 833/1412/407 834/1413/407 -f 827/1407/463 826/1406/463 835/1414/463 836/1415/463 -f 829/1409/463 828/1408/463 837/1416/463 832/1417/463 -f 817/1381/463 816/1380/463 838/1418/463 824/1419/463 -f 826/1399/463 823/1398/463 825/1420/463 835/1421/463 -f 828/1401/463 827/1400/463 836/1422/463 837/1423/463 -f 830/1403/463 829/1402/463 832/1411/463 831/1410/463 -f 816/1405/463 830/1404/463 831/1424/463 838/1425/463 -f 834/1426/463 833/1427/463 839/1428/463 840/1429/463 841/1430/463 842/1431/463 843/1432/463 844/1433/463 -f 838/1425/406 831/1424/406 834/1434/406 844/1435/406 -f 825/1397/404 824/1396/404 843/1436/404 842/1437/404 -f 836/1415/430 835/1414/430 841/1438/430 840/1439/430 -f 832/1417/408 837/1416/408 839/1440/408 833/1441/408 -f 824/1419/405 838/1418/405 844/1442/405 843/1443/405 -f 835/1421/429 825/1420/429 842/1444/429 841/1445/429 -f 837/1423/410 836/1422/410 840/1446/410 839/1447/410 -f 759/1293/471 845/1448/471 846/1449/471 760/1294/471 -f 765/1303/472 847/1450/472 845/1448/472 759/1293/472 -f 758/1292/473 848/1451/473 847/1450/473 765/1303/473 -f 757/1291/474 849/1452/474 848/1451/474 758/1292/474 -f 763/1300/475 850/1453/475 849/1452/475 757/1291/475 -f 750/1299/476 851/1454/476 850/1453/476 763/1300/476 -f 749/1283/477 852/1455/477 851/1456/477 750/1284/477 -f 760/1294/478 846/1449/478 852/1455/478 749/1283/478 -f 853/1457/479 748/1282/479 733/1257/479 854/1458/479 -f 855/1459/480 746/1272/480 748/1282/480 853/1457/480 -f 856/1460/481 744/1270/481 746/1272/481 855/1459/481 -f 857/1461/482 742/1268/482 744/1270/482 856/1460/482 -f 858/1462/483 740/1266/483 742/1268/483 857/1461/483 -f 859/1463/484 738/1263/484 740/1266/484 858/1462/484 -f 860/1464/485 736/1260/485 738/1262/485 859/1465/485 -f 854/1458/486 733/1257/486 736/1260/486 860/1464/486 -f 846/1449/429 861/1466/429 862/1467/429 852/1455/429 -f 863/1468/487 864/1469/487 865/1470/487 866/1471/487 -f 867/1472/429 868/1473/429 869/1474/429 870/1475/429 -f 855/1476/488 853/1477/488 871/1478/488 872/1479/488 -f 852/1455/489 862/1467/489 873/1480/489 851/1456/489 -f 870/1481/490 874/1482/490 875/1483/490 876/1484/490 -f 870/1475/404 869/1474/404 877/1485/404 874/1486/404 -f 857/1487/491 856/1488/491 878/1489/491 879/1490/491 -f 851/1454/492 873/1491/492 880/1492/492 850/1453/492 -f 881/1493/493 880/1494/493 882/1495/493 883/1496/493 -f 874/1497/405 877/1498/405 884/1499/405 885/1500/405 -f 886/1501/494 887/1502/494 888/1503/494 889/1504/494 -f 850/1453/406 880/1492/406 881/1505/406 849/1452/406 -f 873/1506/495 862/1507/495 890/1508/495 891/1509/495 -f 885/1500/406 884/1499/406 892/1510/406 893/1511/406 -f 859/1512/496 858/1513/496 894/1514/496 895/1515/496 -f 849/1452/407 881/1505/407 864/1516/407 848/1451/407 -f 896/1517/497 897/1518/497 898/1519/497 899/1520/497 -f 893/1511/407 892/1510/407 900/1521/407 901/1522/407 -f 900/1523/498 892/1524/498 902/1525/498 903/1526/498 -f 848/1451/499 864/1516/499 863/1527/499 847/1450/499 -f 893/1528/500 901/1529/500 904/1530/500 905/1531/500 -f 901/1522/408 900/1521/408 887/1532/408 896/1533/408 -f 854/1534/501 860/1535/501 906/1536/501 907/1537/501 -f 847/1450/502 863/1527/502 908/1538/502 845/1448/502 -f 908/1539/503 863/1540/503 866/1471/503 909/1541/503 -f 896/1533/410 887/1532/410 886/1542/410 897/1543/410 -f 884/1544/504 877/1545/504 910/1546/504 911/1547/504 -f 845/1448/430 908/1538/430 861/1466/430 846/1449/430 -f 874/1548/505 885/1549/505 912/1550/505 875/1551/505 -f 897/1543/430 886/1542/430 868/1473/430 867/1472/430 -f 869/1552/506 868/1553/506 913/1554/506 914/1555/506 -f 913/1554/429 907/1537/429 906/1536/429 914/1555/429 -f 914/1555/404 906/1536/404 895/1556/404 910/1557/404 -f 910/1546/405 895/1515/405 894/1514/405 911/1547/405 -f 911/1547/406 894/1514/406 879/1490/406 902/1525/406 -f 902/1525/407 879/1490/407 878/1489/407 903/1526/407 -f 903/1526/408 878/1489/408 872/1479/408 888/1503/408 -f 888/1503/410 872/1479/410 871/1478/410 889/1504/410 -f 889/1504/430 871/1478/430 907/1537/430 913/1554/430 -f 877/1558/507 869/1559/507 914/1555/507 910/1557/507 -f 892/1560/508 884/1561/508 911/1547/508 902/1525/508 -f 860/1562/509 859/1563/509 895/1556/509 906/1536/509 -f 887/1564/510 900/1565/510 903/1526/510 888/1503/510 -f 858/1566/511 857/1567/511 879/1490/511 894/1514/511 -f 868/1568/512 886/1569/512 889/1504/512 913/1554/512 -f 856/1570/513 855/1571/513 872/1479/513 878/1489/513 -f 853/1572/514 854/1573/514 907/1537/514 871/1478/514 -f 915/1574/429 916/1575/429 876/1484/429 890/1508/429 -f 890/1508/404 876/1484/404 875/1483/404 891/1509/404 -f 891/1576/405 875/1551/405 912/1550/405 882/1495/405 -f 882/1495/406 912/1550/406 905/1531/406 883/1496/406 -f 883/1496/407 905/1531/407 904/1530/407 865/1470/407 -f 865/1470/408 904/1530/408 899/1520/408 866/1471/408 -f 866/1471/410 899/1520/410 898/1519/410 909/1541/410 -f 909/1541/430 898/1519/430 916/1575/430 915/1574/430 -f 885/1577/515 893/1578/515 905/1531/515 912/1550/515 -f 861/1579/516 908/1580/516 909/1541/516 915/1574/516 -f 901/1581/517 896/1582/517 899/1520/517 904/1530/517 -f 897/1583/518 867/1584/518 916/1575/518 898/1519/518 -f 862/1585/519 861/1586/519 915/1574/519 890/1508/519 -f 880/1587/520 873/1588/520 891/1576/520 882/1495/520 -f 867/1589/521 870/1590/521 876/1484/521 916/1575/521 -f 864/1591/522 881/1592/522 883/1496/522 865/1470/522 -o SideScrews_Cylinder.005 -v -0.436383 0.265019 3.509254 -v 1.004741 0.265019 3.509254 -v 1.004741 0.179718 3.544586 -v -0.436383 0.179718 3.544586 -v 1.004741 0.144386 3.629887 -v -0.436383 0.144385 3.629887 -v 1.004741 0.179718 3.715187 -v -0.436383 0.179718 3.715187 -v 1.004741 0.265019 3.750520 -v -0.436383 0.265019 3.750520 -v 1.004741 0.350319 3.715187 -v -0.436383 0.350319 3.715187 -v 1.004741 0.385652 3.629887 -v -0.436383 0.385652 3.629887 -v 1.088061 0.265019 3.750520 -v 1.088061 0.350319 3.715187 -v 1.004741 0.350319 3.544586 -v -0.436383 0.350319 3.544586 -v -0.513171 0.364069 3.629887 -v -0.513171 0.335058 3.699926 -v -0.513171 0.265019 3.530836 -v -0.513171 0.194979 3.559848 -v -0.513171 0.165968 3.629887 -v -0.513171 0.194979 3.699926 -v -0.513171 0.265019 3.728937 -v -0.513171 0.335058 3.559848 -v 1.088061 0.265019 3.509254 -v 1.088061 0.350319 3.544586 -v 1.100404 0.336110 3.558795 -v 1.100404 0.265019 3.529348 -v 1.088061 0.179718 3.544586 -v 1.088061 0.144386 3.629887 -v 1.088061 0.179718 3.715187 -v 1.088061 0.385652 3.629887 -v 1.100404 0.336110 3.700979 -v 1.100404 0.365558 3.629887 -v 1.100404 0.193927 3.700979 -v 1.100404 0.265019 3.730426 -v 1.100404 0.193927 3.558795 -v 1.100404 0.164480 3.629887 -v 1.127149 0.181939 3.629887 -v 1.127149 0.206273 3.688633 -v 1.127149 0.206273 3.571141 -v 1.127149 0.265019 3.546807 -v 1.127149 0.323765 3.571141 -v 1.127149 0.348098 3.629887 -v 1.127149 0.323765 3.688633 -v 1.127149 0.265019 3.712966 -v -0.436384 0.265019 2.490746 -v -0.436384 0.179718 2.455414 -v 1.004741 0.179718 2.455414 -v 1.004741 0.265019 2.490746 -v -0.436384 0.144385 2.370113 -v 1.004741 0.144386 2.370113 -v -0.436384 0.179718 2.284813 -v 1.004741 0.179718 2.284813 -v -0.436384 0.265019 2.249480 -v 1.004741 0.265019 2.249480 -v -0.436384 0.350319 2.284813 -v 1.004741 0.350319 2.284813 -v -0.436384 0.385652 2.370113 -v 1.004741 0.385652 2.370113 -v 1.088061 0.350319 2.284813 -v 1.088061 0.265019 2.249480 -v -0.436384 0.350319 2.455414 -v 1.004741 0.350319 2.455414 -v -0.513171 0.335058 2.300074 -v -0.513171 0.364069 2.370113 -v -0.513171 0.265019 2.469164 -v -0.513171 0.335058 2.440152 -v -0.513171 0.265019 2.271063 -v -0.513171 0.194979 2.300074 -v -0.513171 0.165968 2.370113 -v -0.513171 0.194979 2.440152 -v 1.088061 0.265019 2.490746 -v 1.100404 0.265019 2.470652 -v 1.100404 0.336111 2.441205 -v 1.088061 0.350319 2.455414 -v 1.088061 0.179718 2.455414 -v 1.088061 0.179718 2.284813 -v 1.088061 0.144386 2.370113 -v 1.088061 0.385652 2.370113 -v 1.100404 0.365558 2.370113 -v 1.100404 0.336110 2.299021 -v 1.100404 0.265019 2.269574 -v 1.100404 0.193927 2.299021 -v 1.100404 0.164480 2.370113 -v 1.100404 0.193927 2.441205 -v 1.127149 0.206273 2.311367 -v 1.127149 0.181939 2.370113 -v 1.127149 0.206273 2.428859 -v 1.127149 0.265019 2.287034 -v 1.127149 0.323765 2.311367 -v 1.127149 0.348098 2.370113 -v 1.127149 0.323765 2.428859 -v 1.127149 0.265019 2.453193 -vt 0.047908 0.778254 -vt 0.915002 0.778254 -vt 0.915002 0.833806 -vt 0.047908 0.833806 -vt 0.915002 0.889359 -vt 0.047908 0.889358 -vt 0.047908 0.444941 -vt 0.915002 0.444941 -vt 0.915002 0.500493 -vt 0.047908 0.500493 -vt 0.915002 0.556045 -vt 0.047908 0.556045 -vt 0.915002 0.611597 -vt 0.047908 0.611598 -vt 0.915002 0.667149 -vt 0.047908 0.667150 -vt 0.965134 0.556045 -vt 0.965134 0.611597 -vt 0.915002 0.722702 -vt 0.047908 0.722702 -vt 0.000174 0.662180 -vt 0.000174 0.616567 -vt 0.188508 0.999826 -vt 0.142894 0.999826 -vt 0.110641 0.967572 -vt 0.110641 0.921959 -vt 0.142895 0.889706 -vt 0.188508 0.889706 -vt 0.220761 0.921959 -vt 0.220761 0.967572 -vt 0.000174 0.551076 -vt 0.000174 0.505463 -vt 0.000174 0.717732 -vt 0.000174 0.672119 -vt 0.000174 0.884388 -vt 0.000174 0.838776 -vt 0.000174 0.606628 -vt 0.000174 0.561015 -vt 0.000174 0.773284 -vt 0.000174 0.727671 -vt 0.000174 0.828837 -vt 0.000174 0.783223 -vt 0.000174 0.495524 -vt 0.000174 0.449911 -vt 0.965134 0.778254 -vt 0.965134 0.722702 -vt 0.978548 0.727329 -vt 0.978548 0.773627 -vt 0.965134 0.833806 -vt 0.965134 0.444941 -vt 0.965134 0.500493 -vt 0.965134 0.667149 -vt 0.965134 0.889359 -vt 0.978548 0.616224 -vt 0.978548 0.662523 -vt 0.978548 0.505120 -vt 0.978548 0.551419 -vt 0.978548 0.838433 -vt 0.978548 0.884732 -vt 0.978548 0.671776 -vt 0.978548 0.718075 -vt 0.978548 0.560672 -vt 0.978548 0.606970 -vt 0.978548 0.449567 -vt 0.978548 0.495866 -vt 0.978548 0.782880 -vt 0.978548 0.829179 -vt 0.997340 0.453587 -vt 0.997340 0.491846 -vt 0.313821 0.916759 -vt 0.340874 0.889706 -vt 0.379132 0.889706 -vt 0.406185 0.916760 -vt 0.406185 0.955018 -vt 0.379132 0.982071 -vt 0.340873 0.982071 -vt 0.313820 0.955018 -vt 0.997340 0.786900 -vt 0.997340 0.825159 -vt 0.997340 0.731349 -vt 0.997339 0.769607 -vt 0.997340 0.620244 -vt 0.997340 0.658502 -vt 0.997340 0.509140 -vt 0.997340 0.547398 -vt 0.997340 0.842454 -vt 0.997340 0.880712 -vt 0.997340 0.675796 -vt 0.997340 0.714055 -vt 0.997340 0.564692 -vt 0.997340 0.602951 -vt 0.047908 0.111279 -vt 0.047908 0.055726 -vt 0.915003 0.055729 -vt 0.915003 0.111281 -vt 0.047908 0.000174 -vt 0.915003 0.000177 -vt 0.047907 0.444592 -vt 0.047907 0.389040 -vt 0.915002 0.389041 -vt 0.915002 0.444593 -vt 0.047907 0.333487 -vt 0.915002 0.333489 -vt 0.047907 0.277935 -vt 0.915002 0.277937 -vt 0.047908 0.222383 -vt 0.915002 0.222385 -vt 0.965134 0.277937 -vt 0.965134 0.333489 -vt 0.047908 0.166830 -vt 0.915003 0.166833 -vt 0.000174 0.272966 -vt 0.000174 0.227352 -vt 0.032427 0.889706 -vt 0.078041 0.889706 -vt 0.110294 0.921960 -vt 0.110294 0.967573 -vt 0.078041 0.999826 -vt 0.032427 0.999826 -vt 0.000174 0.967573 -vt 0.000174 0.921960 -vt 0.000174 0.384070 -vt 0.000174 0.338457 -vt 0.000174 0.217413 -vt 0.000174 0.171800 -vt 0.000175 0.050756 -vt 0.000175 0.005143 -vt 0.000174 0.328517 -vt 0.000174 0.282904 -vt 0.000174 0.161861 -vt 0.000175 0.116248 -vt 0.000175 0.106309 -vt 0.000175 0.060695 -vt 0.000174 0.439622 -vt 0.000174 0.394009 -vt 0.965135 0.111281 -vt 0.978548 0.115908 -vt 0.978548 0.162207 -vt 0.965135 0.166833 -vt 0.965135 0.055729 -vt 0.965134 0.389041 -vt 0.965134 0.444593 -vt 0.965134 0.222385 -vt 0.965135 0.000177 -vt 0.978548 0.227012 -vt 0.978548 0.273311 -vt 0.978547 0.338116 -vt 0.978547 0.384414 -vt 0.978548 0.004803 -vt 0.978548 0.051102 -vt 0.978547 0.171460 -vt 0.978547 0.217759 -vt 0.978547 0.282564 -vt 0.978547 0.328863 -vt 0.978548 0.393668 -vt 0.978548 0.439967 -vt 0.978548 0.060356 -vt 0.978548 0.106654 -vt 0.997340 0.397688 -vt 0.997340 0.435947 -vt 0.248162 0.982070 -vt 0.221109 0.955017 -vt 0.221109 0.916758 -vt 0.248162 0.889706 -vt 0.286421 0.889706 -vt 0.313473 0.916759 -vt 0.313473 0.955017 -vt 0.286420 0.982071 -vt 0.997340 0.064376 -vt 0.997340 0.102635 -vt 0.997340 0.119928 -vt 0.997341 0.158187 -vt 0.997340 0.231032 -vt 0.997340 0.269291 -vt 0.997339 0.342136 -vt 0.997339 0.380394 -vt 0.997340 0.008823 -vt 0.997340 0.047082 -vt 0.997339 0.175480 -vt 0.997339 0.213738 -vt 0.997340 0.286584 -vt 0.997340 0.324842 -vn 0.0000 -0.3827 -0.9239 -vn 0.0000 -0.9239 -0.3827 -vn 0.0000 -0.9239 0.3827 -vn 0.0000 -0.3827 0.9239 -vn 0.0000 0.3827 0.9239 -vn 0.0000 0.9239 0.3827 -vn 0.0000 0.9239 -0.3827 -vn 0.0000 0.3827 -0.9239 -vn -0.2513 0.8942 0.3704 -vn -1.0000 0.0000 0.0000 -vn -0.2513 -0.3704 0.8942 -vn -0.2513 0.8942 -0.3704 -vn -0.2513 -0.8942 -0.3704 -vn -0.2513 0.3704 0.8942 -vn -0.2513 0.3704 -0.8942 -vn -0.2513 -0.3704 -0.8942 -vn -0.2513 -0.8942 0.3704 -vn 0.8327 0.2119 -0.5115 -vn 0.8327 0.5115 0.2119 -vn 0.8327 -0.2119 0.5115 -vn 0.8327 -0.5115 -0.2119 -vn 0.8327 0.5115 -0.2119 -vn 0.8327 0.2119 0.5115 -vn 0.8327 -0.5115 0.2119 -vn 0.8327 -0.2119 -0.5115 -vn 0.5165 -0.7911 0.3277 -vn 1.0000 0.0000 0.0000 -vn 0.5165 -0.3277 -0.7911 -vn 0.5165 0.3277 -0.7911 -vn 0.5165 0.7911 0.3277 -vn 0.5165 -0.3277 0.7911 -vn 0.5165 -0.7911 -0.3277 -vn 0.5165 0.7911 -0.3277 -vn 0.5165 0.3277 0.7911 -s off -f 917/1593/523 918/1594/523 919/1595/523 920/1596/523 -f 920/1596/524 919/1595/524 921/1597/524 922/1598/524 -f 922/1599/525 921/1600/525 923/1601/525 924/1602/525 -f 924/1602/526 923/1601/526 925/1603/526 926/1604/526 -f 926/1604/527 925/1603/527 927/1605/527 928/1606/527 -f 928/1606/528 927/1605/528 929/1607/528 930/1608/528 -f 927/1605/527 925/1603/527 931/1609/527 932/1610/527 -f 930/1608/529 929/1607/529 933/1611/529 934/1612/529 -f 934/1612/530 933/1611/530 918/1594/530 917/1593/530 -f 928/1606/531 930/1608/531 935/1613/531 936/1614/531 -f 937/1615/532 938/1616/532 939/1617/532 940/1618/532 941/1619/532 936/1620/532 935/1621/532 942/1622/532 -f 924/1602/533 926/1604/533 941/1623/533 940/1624/533 -f 930/1608/534 934/1612/534 942/1625/534 935/1626/534 -f 920/1596/535 922/1598/535 939/1627/535 938/1628/535 -f 926/1604/536 928/1606/536 936/1629/536 941/1630/536 -f 934/1612/537 917/1593/537 937/1631/537 942/1632/537 -f 917/1593/538 920/1596/538 938/1633/538 937/1634/538 -f 922/1599/539 924/1602/539 940/1635/539 939/1636/539 -f 943/1637/540 944/1638/540 945/1639/540 946/1640/540 -f 918/1594/530 933/1611/530 944/1638/530 943/1637/530 -f 919/1595/523 918/1594/523 943/1637/523 947/1641/523 -f 923/1601/525 921/1600/525 948/1642/525 949/1643/525 -f 929/1607/528 927/1605/528 932/1610/528 950/1644/528 -f 925/1603/526 923/1601/526 949/1643/526 931/1609/526 -f 933/1611/529 929/1607/529 950/1644/529 944/1638/529 -f 921/1597/524 919/1595/524 947/1641/524 948/1645/524 -f 950/1644/541 932/1610/541 951/1646/541 952/1647/541 -f 931/1609/542 949/1643/542 953/1648/542 954/1649/542 -f 948/1645/543 947/1641/543 955/1650/543 956/1651/543 -f 944/1638/544 950/1644/544 952/1652/544 945/1653/544 -f 932/1610/545 931/1609/545 954/1654/545 951/1655/545 -f 949/1643/546 948/1642/546 956/1656/546 953/1657/546 -f 947/1641/547 943/1637/547 946/1658/547 955/1659/547 -f 953/1657/548 956/1656/548 957/1660/548 958/1661/548 -f 959/1662/549 960/1663/549 961/1664/549 962/1665/549 963/1666/549 964/1667/549 958/1668/549 957/1669/549 -f 955/1659/550 946/1658/550 960/1670/550 959/1671/550 -f 946/1640/551 945/1639/551 961/1672/551 960/1673/551 -f 952/1647/552 951/1646/552 963/1674/552 962/1675/552 -f 954/1649/553 953/1648/553 958/1676/553 964/1677/553 -f 956/1651/554 955/1650/554 959/1678/554 957/1679/554 -f 945/1653/555 952/1652/555 962/1680/555 961/1681/555 -f 951/1655/556 954/1654/556 964/1682/556 963/1683/556 -f 965/1684/526 966/1685/526 967/1686/526 968/1687/526 -f 966/1685/525 969/1688/525 970/1689/525 967/1686/525 -f 969/1690/524 971/1691/524 972/1692/524 970/1693/524 -f 971/1691/523 973/1694/523 974/1695/523 972/1692/523 -f 973/1694/530 975/1696/530 976/1697/530 974/1695/530 -f 975/1696/529 977/1698/529 978/1699/529 976/1697/529 -f 976/1697/530 979/1700/530 980/1701/530 974/1695/530 -f 977/1698/528 981/1702/528 982/1703/528 978/1699/528 -f 981/1702/527 965/1684/527 968/1687/527 982/1703/527 -f 975/1696/534 983/1704/534 984/1705/534 977/1698/534 -f 985/1706/532 986/1707/532 984/1708/532 983/1709/532 987/1710/532 988/1711/532 989/1712/532 990/1713/532 -f 971/1691/538 988/1714/538 987/1715/538 973/1694/538 -f 977/1698/531 984/1716/531 986/1717/531 981/1702/531 -f 966/1685/539 990/1718/539 989/1719/539 969/1688/539 -f 973/1694/537 987/1720/537 983/1721/537 975/1696/537 -f 981/1702/536 986/1722/536 985/1723/536 965/1684/536 -f 965/1684/533 985/1724/533 990/1725/533 966/1685/533 -f 969/1690/535 989/1726/535 988/1727/535 971/1691/535 -f 991/1728/545 992/1729/545 993/1730/545 994/1731/545 -f 968/1687/527 991/1728/527 994/1731/527 982/1703/527 -f 967/1686/526 995/1732/526 991/1728/526 968/1687/526 -f 972/1692/524 996/1733/524 997/1734/524 970/1693/524 -f 978/1699/529 998/1735/529 979/1700/529 976/1697/529 -f 974/1695/523 980/1701/523 996/1733/523 972/1692/523 -f 982/1703/528 994/1731/528 998/1735/528 978/1699/528 -f 970/1689/525 997/1736/525 995/1732/525 967/1686/525 -f 998/1735/544 999/1737/544 1000/1738/544 979/1700/544 -f 980/1701/547 1001/1739/547 1002/1740/547 996/1733/547 -f 997/1736/546 1003/1741/546 1004/1742/546 995/1732/546 -f 994/1731/541 993/1743/541 999/1744/541 998/1735/541 -f 979/1700/540 1000/1745/540 1001/1746/540 980/1701/540 -f 996/1733/543 1002/1747/543 1003/1748/543 997/1734/543 -f 995/1732/542 1004/1749/542 992/1750/542 991/1728/542 -f 1002/1747/554 1005/1751/554 1006/1752/554 1003/1748/554 -f 1007/1753/549 1006/1754/549 1005/1755/549 1008/1756/549 1009/1757/549 1010/1758/549 1011/1759/549 1012/1760/549 -f 1004/1749/553 1007/1761/553 1012/1762/553 992/1750/553 -f 992/1729/556 1012/1763/556 1011/1764/556 993/1730/556 -f 999/1737/555 1010/1765/555 1009/1766/555 1000/1738/555 -f 1001/1739/550 1008/1767/550 1005/1768/550 1002/1740/550 -f 1003/1741/548 1006/1769/548 1007/1770/548 1004/1742/548 -f 993/1743/552 1011/1771/552 1010/1772/552 999/1744/552 -f 1000/1745/551 1009/1773/551 1008/1774/551 1001/1746/551 -o CoiCanon_Cylinder.004 -v -0.419369 0.526526 -0.206986 -v 0.947632 0.526526 -0.206986 -v 0.947632 0.380164 -0.146361 -v -0.419369 0.380164 -0.146361 -v 0.947632 0.319540 0.000000 -v -0.419369 0.319540 0.000000 -v 0.947632 0.380164 0.146361 -v -0.419369 0.380164 0.146361 -v 0.947632 0.526526 0.206986 -v -0.419369 0.526526 0.206986 -v 0.947632 0.672887 0.146361 -v -0.419369 0.672887 0.146361 -v 0.947632 0.733512 0.000000 -v -0.419369 0.733512 0.000000 -v 0.947632 0.672887 -0.146361 -v -0.419369 0.672887 -0.146361 -vt 1.000000 0.500000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.875000 0.500000 -vt 0.750000 1.000000 -vt 0.750000 0.500000 -vt 0.625000 1.000000 -vt 0.625000 0.500000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.375000 1.000000 -vt 0.375000 0.500000 -vt 0.250000 1.000000 -vt 0.250000 0.500000 -vt 0.419706 0.419706 -vt 0.250000 0.490000 -vt 0.080294 0.419706 -vt 0.010000 0.250000 -vt 0.080294 0.080294 -vt 0.250000 0.010000 -vt 0.419706 0.080294 -vt 0.490000 0.250000 -vt 0.125000 1.000000 -vt 0.125000 0.500000 -vt 0.000000 1.000000 -vt 0.000000 0.500000 -vt 0.750000 0.490000 -vt 0.919706 0.419706 -vt 0.990000 0.250000 -vt 0.919706 0.080294 -vt 0.750000 0.010000 -vt 0.580294 0.080294 -vt 0.510000 0.250000 -vt 0.580294 0.419706 -vn 0.0000 -0.3827 -0.9239 -vn 0.0000 -0.9239 -0.3827 -vn 0.0000 -0.9239 0.3827 -vn 0.0000 -0.3827 0.9239 -vn 0.0000 0.3827 0.9239 -vn 0.0000 0.9239 0.3827 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.9239 -0.3827 -vn 0.0000 0.3827 -0.9239 -vn -1.0000 0.0000 0.0000 -s 1 -f 1013/1775/557 1014/1776/557 1015/1777/557 1016/1778/557 -f 1016/1778/558 1015/1777/558 1017/1779/558 1018/1780/558 -f 1018/1780/559 1017/1779/559 1019/1781/559 1020/1782/559 -f 1020/1782/560 1019/1781/560 1021/1783/560 1022/1784/560 -f 1022/1784/561 1021/1783/561 1023/1785/561 1024/1786/561 -f 1024/1786/562 1023/1785/562 1025/1787/562 1026/1788/562 -f 1015/1789/563 1014/1790/563 1027/1791/563 1025/1792/563 1023/1793/563 1021/1794/563 1019/1795/563 1017/1796/563 -f 1026/1788/564 1025/1787/564 1027/1797/564 1028/1798/564 -f 1028/1798/565 1027/1797/565 1014/1799/565 1013/1800/565 -f 1013/1801/566 1016/1802/566 1018/1803/566 1020/1804/566 1022/1805/566 1024/1806/566 1026/1807/566 1028/1808/566 -o SideHolders_Cube.003 -v 1.384588 0.551670 0.654257 -v 1.384588 0.551670 0.449972 -v 1.139921 0.531994 0.449972 -v 1.139921 0.531994 0.558806 -v 1.384588 0.408111 0.449972 -v 1.504148 0.551670 0.449972 -v 1.504148 0.408111 0.449972 -v 1.504148 0.551670 0.654257 -v 1.577323 0.529883 0.613238 -v 1.577323 0.529883 0.449972 -v 1.504148 0.408111 0.654257 -v 1.384588 0.408111 0.654257 -v 1.577323 0.429898 0.449972 -v 1.577323 0.429898 0.613238 -v 1.139921 0.427787 0.558806 -v 1.139921 0.427787 0.449972 -v 1.384588 0.551670 -0.654257 -v 1.139921 0.531994 -0.558805 -v 1.139921 0.531994 -0.449972 -v 1.384588 0.551670 -0.449972 -v 1.384588 0.408111 -0.449972 -v 1.504148 0.408111 -0.449972 -v 1.504148 0.551670 -0.449972 -v 1.577323 0.529883 -0.449972 -v 1.577323 0.529883 -0.613238 -v 1.504148 0.551670 -0.654257 -v 1.504148 0.408111 -0.654257 -v 1.384588 0.408111 -0.654257 -v 1.577323 0.429898 -0.449972 -v 1.577323 0.429898 -0.613238 -v 1.139921 0.427787 -0.558805 -v 1.139921 0.427787 -0.449972 -vt 0.875000 0.750000 -vt 0.875000 0.500000 -vt 0.875000 0.500000 -vt 0.875000 0.750000 -vt 0.375000 0.250000 -vt 0.625000 0.250000 -vt 0.625000 0.500000 -vt 0.375000 0.500000 -vt 0.625000 0.750000 -vt 0.625000 0.750000 -vt 0.625000 0.500000 -vt 0.375000 0.750000 -vt 0.625000 1.000000 -vt 0.375000 1.000000 -vt 0.125000 0.500000 -vt 0.125000 0.750000 -vt 0.375000 0.500000 -vt 0.375000 0.750000 -vt 0.375000 0.000000 -vt 0.625000 0.000000 -vt 0.625000 0.250000 -vt 0.375000 0.250000 -vt 0.125000 0.750000 -vt 0.125000 0.500000 -vt 0.625000 1.000000 -vt 0.375000 1.000000 -vt 0.875000 0.750000 -vt 0.875000 0.750000 -vt 0.875000 0.500000 -vt 0.875000 0.500000 -vt 0.375000 0.250000 -vt 0.375000 0.500000 -vt 0.625000 0.500000 -vt 0.625000 0.250000 -vt 0.625000 0.500000 -vt 0.625000 0.750000 -vt 0.625000 0.750000 -vt 0.375000 0.750000 -vt 0.375000 1.000000 -vt 0.625000 1.000000 -vt 0.125000 0.500000 -vt 0.125000 0.750000 -vt 0.375000 0.500000 -vt 0.375000 0.750000 -vt 0.375000 0.000000 -vt 0.375000 0.250000 -vt 0.625000 0.250000 -vt 0.625000 0.000000 -vt 0.125000 0.500000 -vt 0.125000 0.750000 -vt 0.375000 1.000000 -vt 0.625000 1.000000 -vn -0.0802 0.9968 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.2854 0.9584 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn 1.0000 0.0000 0.0000 -vn 0.4890 0.0000 0.8723 -vn 0.2854 -0.9584 0.0000 -vn -1.0000 0.0000 0.0000 -vn -0.0802 -0.9968 0.0000 -vn -0.3634 0.0000 0.9316 -vn 0.4890 0.0000 -0.8723 -vn -0.3635 0.0000 -0.9316 -s 1 -f 1029/1809/567 1030/1810/567 1031/1811/567 1032/1812/567 -f 1033/1813/568 1030/1814/568 1034/1815/568 1035/1816/568 -f 1034/1815/569 1036/1817/569 1037/1818/569 1038/1819/569 -f 1039/1820/570 1036/1817/570 1029/1821/570 1040/1822/570 -f 1033/1823/571 1035/1816/571 1039/1820/571 1040/1824/571 -f 1034/1815/572 1030/1810/572 1029/1809/572 1036/1817/572 -f 1041/1825/573 1038/1819/573 1037/1818/573 1042/1826/573 -f 1035/1816/568 1034/1815/568 1038/1819/568 1041/1825/568 -f 1036/1817/574 1039/1820/574 1042/1826/574 1037/1818/574 -f 1039/1820/575 1035/1816/575 1041/1825/575 1042/1826/575 -f 1043/1827/576 1032/1828/576 1031/1829/576 1044/1830/576 -f 1033/1823/577 1040/1824/577 1043/1831/577 1044/1832/577 -f 1030/1814/568 1033/1813/568 1044/1830/568 1031/1829/568 -f 1040/1822/578 1029/1821/578 1032/1833/578 1043/1834/578 -f 1045/1835/567 1046/1836/567 1047/1837/567 1048/1838/567 -f 1049/1839/570 1050/1840/570 1051/1841/570 1048/1842/570 -f 1051/1841/569 1052/1843/569 1053/1844/569 1054/1845/569 -f 1055/1846/568 1056/1847/568 1045/1848/568 1054/1845/568 -f 1049/1849/571 1056/1850/571 1055/1846/571 1050/1840/571 -f 1051/1841/572 1054/1845/572 1045/1835/572 1048/1838/572 -f 1057/1851/573 1058/1852/573 1053/1844/573 1052/1843/573 -f 1050/1840/570 1057/1851/570 1052/1843/570 1051/1841/570 -f 1054/1845/579 1053/1844/579 1058/1852/579 1055/1846/579 -f 1055/1846/575 1058/1852/575 1057/1851/575 1050/1840/575 -f 1059/1853/576 1060/1854/576 1047/1855/576 1046/1856/576 -f 1049/1849/577 1060/1857/577 1059/1858/577 1056/1850/577 -f 1048/1842/570 1047/1855/570 1060/1854/570 1049/1839/570 -f 1056/1847/580 1059/1859/580 1046/1860/580 1045/1848/580 -o Rail_Cube -v -1.606489 0.994589 0.070837 -v -1.606489 1.084445 0.070837 -v -1.606489 1.084277 -0.070837 -v -1.606489 0.994589 -0.070837 -v -0.511384 1.084480 -0.070837 -v -0.514357 1.052983 -0.070837 -v -0.549767 1.006668 -0.070837 -v -0.549767 0.994589 -0.070837 -v 1.313063 1.160981 0.058974 -v 1.498769 1.160981 0.058974 -v 1.498532 1.230366 0.031927 -v 1.312826 1.230366 0.031927 -v 1.225298 0.994589 0.070837 -v 1.225298 1.084445 0.070837 -v 0.962233 1.084445 0.070837 -v 0.964610 1.052983 0.070837 -v 1.000021 1.006668 0.070837 -v 1.000021 0.994589 0.070837 -v -0.197543 0.994589 -0.070837 -v 0.049014 0.994589 -0.070837 -v 0.049014 0.994589 0.070837 -v -0.197543 0.994589 0.070837 -v 0.401239 0.994589 -0.070837 -v 0.647796 0.994589 -0.070837 -v 0.647796 0.994589 0.070837 -v 0.401239 0.994589 0.070837 -v 1.000021 0.994589 -0.070837 -v 1.225298 0.994589 -0.070837 -v -0.549767 0.994589 0.070837 -v 1.225298 1.143051 -0.043128 -v -1.531817 1.143051 -0.043128 -v -1.531817 1.143051 0.043128 -v 1.225298 1.143051 0.043128 -v 1.313063 0.996053 0.070837 -v 1.498769 0.996053 0.070837 -v 1.313063 1.160981 -0.058974 -v 1.313063 0.996053 -0.070837 -v 1.225298 1.084802 -0.070837 -v 1.269521 1.219445 0.031927 -v 1.498769 0.996053 -0.070837 -v 1.498769 1.160981 -0.058974 -v 1.312826 1.230366 -0.031927 -v 1.498532 1.230366 -0.031927 -v 1.575087 0.954078 -0.070837 -v 1.575087 1.119006 -0.070837 -v 1.575087 1.119006 0.070837 -v 1.575087 0.954078 0.070837 -v 1.269521 1.219445 -0.031927 -v 1.554546 1.188392 0.031927 -v 1.554546 1.188392 -0.031927 -v -0.514597 1.084445 0.070837 -v -0.234129 1.084445 0.070837 -v 0.083877 1.084445 0.070837 -v 0.364860 1.084445 0.070837 -v 0.682044 1.084445 0.070837 -v 0.964998 1.084754 -0.070837 -v 0.683980 1.084702 -0.070837 -v 0.366670 1.084643 -0.070837 -v 0.084942 1.084590 -0.070837 -v -0.230760 1.084532 -0.070837 -v -0.232953 1.052983 -0.070837 -v -0.232953 1.052983 0.070837 -v -0.514357 1.052983 0.070837 -v -0.197543 1.006668 0.070837 -v -0.197543 1.006668 -0.070837 -v -0.549767 1.006668 0.070837 -v 0.084425 1.052983 -0.070837 -v 0.365828 1.052983 -0.070837 -v 0.365828 1.052983 0.070837 -v 0.084425 1.052983 0.070837 -v 0.401239 1.006668 0.070837 -v 0.401239 1.006668 -0.070837 -v 0.049014 1.006668 -0.070837 -v 0.049014 1.006668 0.070837 -v 0.683207 1.052983 -0.070837 -v 0.964610 1.052983 -0.070837 -v 0.683207 1.052983 0.070837 -v 1.000021 1.006668 -0.070837 -v 0.647796 1.006668 -0.070837 -v 0.647796 1.006668 0.070837 -vt 0.375000 0.000000 -vt 0.499342 0.000000 -vt 0.499091 0.250000 -vt 0.375000 0.250000 -vt 0.499394 0.346680 -vt 0.462188 0.264617 -vt 0.393035 0.259826 -vt 0.375000 0.259826 -vt 0.625000 0.750000 -vt 0.625000 0.750000 -vt 0.625000 0.750000 -vt 0.625000 0.750000 -vt 0.375000 0.750000 -vt 0.499342 0.750000 -vt 0.499342 0.773224 -vt 0.462188 0.785272 -vt 0.393035 0.780481 -vt 0.375000 0.780481 -vt 0.182484 0.500000 -vt 0.215844 0.500000 -vt 0.215844 0.750000 -vt 0.182484 0.750000 -vt 0.263501 0.500000 -vt 0.296862 0.500000 -vt 0.296862 0.750000 -vt 0.263501 0.750000 -vt 0.344519 0.500000 -vt 0.375000 0.500000 -vt 0.344519 0.750000 -vt 0.125000 0.750000 -vt 0.125000 0.500000 -vt 0.134826 0.500000 -vt 0.134826 0.750000 -vt 0.625000 0.500000 -vt 0.875000 0.500000 -vt 0.875000 0.750000 -vt 0.625000 0.750000 -vt 0.375000 0.750000 -vt 0.375000 0.750000 -vt 0.625000 0.500000 -vt 0.375000 0.500000 -vt 0.499875 0.500000 -vt 0.625000 0.750000 -vt 0.375000 0.500000 -vt 0.625000 0.500000 -vt 0.625000 0.500000 -vt 0.625000 0.500000 -vt 0.375000 0.500000 -vt 0.625000 0.500000 -vt 0.625000 0.750000 -vt 0.375000 0.750000 -vt 0.625000 0.500000 -vt 0.625000 0.750000 -vt 0.625000 0.500000 -vt 0.499342 1.000000 -vt 0.499342 0.903604 -vt 0.499342 0.878843 -vt 0.499342 0.850769 -vt 0.499342 0.825962 -vt 0.499342 0.797960 -vt 0.625000 1.000000 -vt 0.625000 0.000000 -vt 0.625000 0.250000 -vt 0.499803 0.477020 -vt 0.499725 0.452211 -vt 0.499637 0.424197 -vt 0.499559 0.399325 -vt 0.499472 0.371454 -vt 0.849867 0.594807 -vt 0.650133 0.594807 -vt 0.650133 0.655193 -vt 0.849867 0.655193 -vt 0.549693 0.655193 -vt 0.599866 0.655193 -vt 0.599866 0.594807 -vt 0.549693 0.594807 -vt 0.549693 0.155193 -vt 0.599866 0.155193 -vt 0.599866 0.094807 -vt 0.549693 0.094807 -vt 0.875000 0.594807 -vt 0.875000 0.655193 -vt 0.849867 0.594807 -vt 0.650133 0.594807 -vt 0.650133 0.655193 -vt 0.849867 0.655193 -vt 0.549693 0.655193 -vt 0.599866 0.655193 -vt 0.599866 0.594807 -vt 0.549693 0.594807 -vt 0.549693 0.155193 -vt 0.599866 0.155193 -vt 0.599866 0.094807 -vt 0.549693 0.094807 -vt 0.875000 0.594807 -vt 0.875000 0.655193 -vt 0.849867 0.594807 -vt 0.650133 0.594807 -vt 0.650133 0.655193 -vt 0.849867 0.655193 -vt 0.599866 0.655193 -vt 0.599866 0.594807 -vt 0.549693 0.594807 -vt 0.549693 0.655193 -vt 0.549693 0.155193 -vt 0.599866 0.155193 -vt 0.599866 0.094807 -vt 0.549693 0.094807 -vt 0.875000 0.655193 -vt 0.875000 0.594807 -vt 0.462188 0.866290 -vt 0.462188 0.904365 -vt 0.462188 0.823347 -vt 0.393035 0.861499 -vt 0.375000 0.861499 -vt 0.375000 0.828138 -vt 0.393035 0.828138 -vt 0.462188 0.947308 -vt 0.393035 0.942516 -vt 0.375000 0.942516 -vt 0.375000 0.909156 -vt 0.393035 0.909156 -vt 0.462188 0.985383 -vt 0.375000 1.000000 -vt 0.375000 0.990174 -vt 0.393035 0.990174 -vt 0.462188 0.464728 -vt 0.375000 0.469519 -vt 0.393035 0.469519 -vt 0.462188 0.426653 -vt 0.462188 0.383710 -vt 0.393035 0.421861 -vt 0.375000 0.421862 -vt 0.375000 0.388501 -vt 0.393035 0.388501 -vt 0.462188 0.345635 -vt 0.462188 0.302692 -vt 0.393035 0.340844 -vt 0.375000 0.340844 -vt 0.375000 0.307483 -vt 0.393035 0.307484 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.3632 0.9317 -vn -0.0000 0.0000 1.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 0.0717 0.9974 -vn -0.0132 0.1253 -0.9920 -vn -0.0136 0.1253 0.9920 -vn 0.0167 -0.9999 0.0000 -vn -0.1793 0.2999 0.9370 -vn 0.0000 0.3632 -0.9317 -vn 0.0000 0.0717 -0.9974 -vn 1.0000 -0.0000 0.0000 -vn -0.0578 0.0359 -0.9977 -vn -0.0578 0.0359 0.9977 -vn -0.4819 -0.8762 0.0000 -vn -0.2445 0.9696 0.0000 -vn 0.5997 0.8003 0.0000 -vn 0.2041 0.4450 0.8720 -vn 0.9589 0.2839 0.0000 -vn -0.8655 0.5010 0.0000 -vn -0.1793 0.2999 -0.9370 -vn 0.2041 0.4450 -0.8720 -vn 0.0000 0.4274 0.9040 -vn -0.6179 0.7862 -0.0006 -vn -0.0000 0.4280 -0.9038 -vn 0.7944 -0.6074 0.0000 -vn -0.7944 -0.6074 0.0000 -s 1 -f 1061/1861/581 1062/1862/581 1063/1863/581 1064/1864/581 -f 1064/1864/582 1063/1863/582 1065/1865/582 1066/1866/582 1067/1867/582 1068/1868/582 -f 1069/1869/583 1070/1870/583 1071/1871/583 1072/1872/583 -f 1073/1873/584 1074/1874/584 1075/1875/584 1076/1876/584 1077/1877/584 1078/1878/584 -f 1079/1879/585 1080/1880/585 1081/1881/585 1082/1882/585 -f 1083/1883/585 1084/1884/585 1085/1885/585 1086/1886/585 -f 1087/1887/585 1088/1888/585 1073/1873/585 1078/1889/585 -f 1061/1890/585 1064/1891/585 1068/1892/585 1089/1893/585 -f 1090/1894/586 1091/1895/586 1092/1896/586 1093/1897/586 -f 1069/1869/587 1094/1898/587 1095/1899/587 1070/1870/587 -f 1096/1900/588 1097/1901/588 1088/1888/588 1098/1902/588 1090/1894/588 -f 1074/1874/589 1073/1873/589 1094/1898/589 1069/1869/589 1093/1897/589 -f 1073/1873/590 1088/1888/590 1097/1901/590 1094/1898/590 -f 1093/1897/591 1069/1869/591 1072/1872/591 1099/1903/591 -f 1094/1898/585 1097/1901/585 1100/1904/585 1095/1899/585 -f 1101/1905/592 1096/1900/592 1102/1906/592 1103/1907/592 -f 1097/1901/593 1096/1900/593 1101/1905/593 1100/1904/593 -f 1104/1908/594 1105/1909/594 1106/1910/594 1107/1911/594 -f 1100/1904/595 1101/1905/595 1105/1909/595 1104/1908/595 -f 1070/1870/596 1095/1899/596 1107/1911/596 1106/1910/596 -f 1095/1899/597 1100/1904/597 1104/1908/597 1107/1911/597 -f 1108/1912/598 1099/1903/598 1072/1872/598 1102/1906/598 -f 1103/1907/599 1071/1871/599 1109/1913/599 1110/1914/599 -f 1102/1906/586 1072/1872/586 1071/1871/586 1103/1907/586 -f 1070/1870/600 1106/1910/600 1109/1913/600 1071/1871/600 -f 1106/1910/601 1105/1909/601 1110/1914/601 1109/1913/601 -f 1090/1894/602 1093/1897/602 1099/1903/602 1108/1912/602 -f 1096/1900/603 1090/1894/603 1108/1912/603 1102/1906/603 -f 1105/1909/604 1101/1905/604 1103/1907/604 1110/1914/604 -f 1062/1915/605 1111/1916/605 1112/1917/605 1113/1918/605 1114/1919/605 1115/1920/605 1075/1875/605 1074/1874/605 1093/1897/605 1092/1921/605 -f 1063/1863/606 1062/1862/606 1092/1922/606 1091/1923/606 -f 1098/1902/607 1116/1924/607 1117/1925/607 1118/1926/607 1119/1927/607 1120/1928/607 1065/1865/607 1063/1863/607 1091/1923/607 1090/1894/607 -f 1066/1929/585 1121/1930/585 1122/1931/585 1123/1932/585 -f 1082/1933/581 1124/1934/581 1125/1935/581 1079/1936/581 -f 1068/1937/594 1067/1938/594 1126/1939/594 1089/1940/594 -f 1067/1941/608 1066/1929/608 1123/1932/608 1126/1942/608 -f 1122/1931/609 1121/1930/609 1125/1935/609 1124/1934/609 -f 1127/1943/585 1128/1944/585 1129/1945/585 1130/1946/585 -f 1086/1947/581 1131/1948/581 1132/1949/581 1083/1950/581 -f 1080/1951/594 1133/1952/594 1134/1953/594 1081/1954/594 -f 1133/1955/608 1127/1943/608 1130/1946/608 1134/1956/608 -f 1132/1949/609 1131/1948/609 1129/1945/609 1128/1944/609 -f 1135/1957/585 1136/1958/585 1076/1959/585 1137/1960/585 -f 1077/1961/581 1138/1962/581 1087/1963/581 1078/1964/581 -f 1084/1965/594 1139/1966/594 1140/1967/594 1085/1968/594 -f 1140/1969/608 1139/1970/608 1135/1957/608 1137/1960/608 -f 1076/1959/609 1136/1958/609 1138/1962/609 1077/1961/609 -f 1129/1971/584 1114/1919/584 1113/1918/584 1130/1972/584 -f 1137/1973/584 1115/1920/584 1114/1919/584 1129/1971/584 1131/1974/584 1086/1975/584 1085/1976/584 1140/1977/584 -f 1076/1876/584 1075/1875/584 1115/1920/584 1137/1973/584 -f 1130/1972/584 1113/1918/584 1112/1917/584 1122/1978/584 1124/1979/584 1082/1980/584 1081/1981/584 1134/1982/584 -f 1122/1978/584 1112/1917/584 1111/1916/584 1123/1983/584 -f 1123/1983/584 1111/1916/584 1062/1915/584 1061/1984/584 1089/1985/584 1126/1986/584 -f 1136/1987/582 1116/1924/582 1098/1902/582 1088/1888/582 1087/1988/582 1138/1989/582 -f 1135/1990/582 1117/1925/582 1116/1924/582 1136/1987/582 -f 1128/1991/582 1118/1926/582 1117/1925/582 1135/1990/582 1139/1992/582 1084/1993/582 1083/1994/582 1132/1995/582 -f 1127/1996/582 1119/1927/582 1118/1926/582 1128/1991/582 -f 1121/1997/582 1120/1928/582 1119/1927/582 1127/1996/582 1133/1998/582 1080/1999/582 1079/2000/582 1125/2001/582 -f 1066/1866/582 1065/1865/582 1120/1928/582 1121/1997/582 o CanonBody_Cylinder.002 v 1.103664 0.525584 2.500000 v 1.292985 0.525584 2.500000 @@ -4820,51 +38,48 @@ v 1.669294 0.241390 2.715806 v 1.669294 0.809777 2.715806 v 1.669294 0.927494 3.000000 v 1.669294 0.241390 3.284194 -v -0.603601 0.525584 2.500000 -v 1.044523 0.525584 2.500000 -v 1.044523 0.172030 2.646447 -v -0.603601 0.172030 2.646447 v -0.603601 0.025584 3.000000 v 1.044523 0.025584 3.000000 v 1.044523 0.172030 3.353553 v -0.603601 0.172030 3.353553 v 0.951045 0.197436 3.364077 v -0.460212 0.197436 3.364077 -v 1.044523 0.879137 3.353553 -v 0.899442 0.953734 3.173461 -v 0.899442 0.879137 3.353553 +v -0.476991 0.953734 3.173461 +v -0.388078 0.997935 3.101577 +v -0.603601 1.025584 3.000000 v 1.044523 0.525584 3.500000 v 1.068921 0.199748 3.325836 v 1.068921 0.525584 3.460801 -v 1.044523 0.879137 2.646447 -v 0.899442 0.735289 2.586863 -v 0.899442 0.879137 2.646447 +v 0.810528 0.655494 2.553811 +v 1.044523 0.525584 2.500000 +v -0.603601 0.525584 2.500000 +v -0.388078 0.655494 2.553811 v 1.068921 0.986385 3.000000 v 1.068921 0.851420 2.674164 +v 1.044523 0.879137 2.646447 v 1.044523 1.025584 3.000000 -v 0.985768 0.843292 3.316901 -v 0.899442 0.843292 3.316901 -v 0.899442 0.918248 3.161081 +v 0.969099 0.952228 2.898423 +v 0.899442 0.918248 2.838919 +v 0.985768 0.843292 2.683099 v 1.068921 0.525584 2.539199 +v 1.044523 0.172030 2.646447 v 1.068921 0.199748 2.674164 v 1.068921 0.851420 3.325836 -v 1.080568 0.851567 2.674017 +v 1.044523 0.879137 3.353553 +v 1.103664 0.172030 3.353553 +v 1.080568 0.199600 3.325983 v 1.080568 0.525584 2.538990 v 1.080568 0.199600 2.674017 +v 1.080568 0.851567 2.674017 v 1.080568 0.064574 3.000000 -v 1.080568 0.199600 3.325983 -v 1.080568 0.986594 3.000000 -v 1.103664 0.172030 3.353553 v 1.068921 0.064782 3.000000 -v -0.603601 1.025584 3.000000 -v 0.810528 0.997935 2.898423 -v -0.388078 0.997935 2.898423 -v 0.810528 0.952228 3.101577 -v 0.969099 0.952228 3.101577 +v 0.899442 0.735289 2.586863 +v 0.810528 0.655494 3.378684 v 0.899442 0.719760 3.368080 -v 0.810528 0.997935 3.101577 -v -0.388078 0.997935 3.101577 -v 0.810528 0.655494 2.553811 +v 0.984259 0.528318 3.436781 +v 0.899442 0.843292 3.316901 +v 0.985768 0.843292 3.316901 +v 0.899442 0.879137 2.646447 v 1.286814 1.063161 3.000000 v 1.320923 0.951339 3.425755 v 1.320923 1.127692 3.000000 @@ -4924,17 +139,16 @@ v 1.432520 0.405810 3.119773 v 1.432520 0.525584 3.169385 v 1.657500 0.273303 3.000000 v 1.432520 0.356199 3.000000 -v 1.651829 0.431184 3.000000 -v 1.651829 0.356199 3.000000 v 1.651829 0.405810 2.880227 -v 1.651829 0.525394 2.905789 -v 1.651829 0.458777 2.933383 v 1.651829 0.405810 3.119773 v 1.651829 0.525584 3.169385 v 1.651829 0.645357 3.119773 +v 1.651829 0.525394 2.905789 v 1.127542 0.525394 2.905789 v 1.127542 0.458777 2.933383 +v 1.651829 0.458777 2.933383 v 1.127542 0.431184 3.000000 +v 1.651829 0.431184 3.000000 v 1.127542 0.525394 3.094211 v 1.127542 0.592011 3.066617 v 1.651829 0.592011 3.066617 @@ -4948,148 +162,157 @@ v -0.476991 0.837264 2.708140 v -0.476991 0.714942 2.642628 v -0.476991 0.735289 2.586863 v -0.476991 0.879137 2.646447 -v -0.476991 0.879137 3.353553 -v -0.476991 0.953734 3.173461 -v -0.603601 0.879137 3.353553 +v -0.388078 0.997935 2.898423 +v 0.810528 0.997935 2.898423 +v 0.899442 0.879137 3.353553 v 0.899442 0.735289 3.413137 +v -0.603601 0.879137 3.353553 +v -0.724548 0.869896 3.337075 +v -0.724548 0.532825 3.476694 +v -0.603601 0.525584 3.500000 v -0.603601 0.879137 2.646447 v -0.724548 0.869896 2.662932 +v -0.724548 1.009515 3.000004 v -0.476991 0.953734 2.826539 +v 1.651829 0.356199 3.000000 +v 1.651829 0.458777 3.066617 v -0.476991 0.735289 3.413137 v -0.388078 0.655494 3.446189 -v -0.388078 0.655494 2.553811 -v 0.810528 0.655494 3.446189 -v -0.603601 0.525584 3.500000 -v 1.651829 0.458777 3.066617 v -0.388078 0.633076 3.392654 v -0.476991 0.714942 3.357372 v -0.476991 0.837264 3.291860 +v -0.476991 0.879137 3.353553 v -0.388078 0.944133 3.101577 +v 0.810528 0.952228 3.101577 +v 0.810528 0.997935 3.101577 v -0.388078 0.944133 2.898423 v 0.810528 0.952228 2.898423 v 1.657500 0.212644 3.000000 v 1.651829 0.694968 3.000000 v -0.476991 0.926475 3.173461 v 0.899442 0.843292 2.683099 -v 0.899442 0.918248 2.838919 v 0.899442 0.953734 2.826539 +v 1.080568 0.986594 3.000000 v 0.899442 0.719760 2.631920 v 0.810528 0.655494 2.621316 -v 0.810528 0.655494 3.378684 +v 0.899442 0.918248 3.161081 +v 0.899442 0.953734 3.173461 +v 0.810528 0.655494 3.446189 v -0.388078 0.633076 2.607346 v 1.669294 0.123673 3.000000 v 1.669294 0.165715 3.000000 -v 0.985768 0.843292 2.683099 -v 0.969099 0.952228 2.898423 +v 0.810528 0.526819 3.419828 +v 0.984259 0.528318 2.563219 v 1.475712 -0.061125 3.000000 v 1.423236 0.225256 3.000000 -v 0.984259 0.528318 2.563219 +v 0.810528 0.526819 2.580172 +v 0.969099 0.952228 3.101577 v 0.984259 0.228435 2.674968 v 0.984259 0.095638 3.005025 v 0.984259 0.228435 3.325032 -v 0.984259 0.528318 3.436781 v 1.103664 0.025584 3.000000 v -0.534084 0.903408 3.173461 v -0.534084 0.903408 2.826539 v -0.476991 0.926475 2.826539 v -0.548068 0.837264 3.291860 v -0.548068 0.837264 2.708140 -v 1.292985 0.025584 3.000000 +v -0.550334 0.529772 2.566407 v -0.550334 0.529772 3.433593 +v 1.292985 0.025584 3.000000 v -0.550334 0.236472 3.339820 v -0.550334 0.062663 3.005342 v -0.550334 0.236472 2.660180 -v -0.550334 0.529772 2.566407 v -0.388078 0.540720 3.422003 v -0.388078 0.540720 2.577997 -v 0.810528 0.526819 2.580172 -v 0.810528 0.526819 3.419828 v -0.388078 0.088709 3.007100 v -0.388078 0.229035 2.676650 v -0.388078 0.229035 3.323350 v 0.810528 0.240010 2.699891 v 0.810528 0.100279 3.006216 v 0.810528 0.240010 3.300109 -v -0.460212 0.500178 3.489476 +v 0.678557 0.155552 2.534805 +v 0.674639 0.187997 2.501820 +v 0.674369 0.138402 2.298282 v 0.678212 0.092276 2.275122 -v 0.648869 0.138277 2.298296 v 0.951045 0.500178 3.489476 -v 0.646934 0.318302 2.224795 -v 0.641987 0.458293 2.409405 +v -0.460212 0.500178 3.489476 +v 0.674042 0.500178 2.510524 +v 0.671101 0.458113 2.482789 +v 0.645644 0.458113 2.482789 +v 0.641563 0.500178 2.510524 +v 0.674638 0.458293 2.409405 v 0.671568 0.425284 2.403533 -v 0.673140 0.318430 2.224781 -v 0.003785 0.107850 2.287122 -v 0.003776 0.311542 2.203961 -v 0.286340 0.110829 2.286325 -v 0.335441 0.111139 2.286292 -v 0.137117 0.111516 2.285824 -v 0.181234 0.111785 2.285795 +v 0.641987 0.458293 2.409405 +v 0.645976 0.425284 2.403533 +v 0.646934 0.318302 2.224795 v 0.643209 0.321800 2.181364 -v 0.285150 0.311362 2.204452 -v 0.335438 0.311680 2.204418 +v 0.649846 0.155552 2.534805 +v 0.652136 0.187997 2.501820 +v 0.645678 0.092117 2.275140 +v 0.648869 0.138277 2.298296 +v 0.673140 0.318430 2.224781 +v 0.949896 0.093608 2.274977 +v 0.951045 0.155552 2.534805 +v 0.676644 0.321964 2.181346 +v 0.948697 0.323297 2.181201 +v -0.460212 0.458293 2.409405 +v -0.460212 0.500178 2.510524 v 0.346589 0.320346 2.181522 v 0.273733 0.319982 2.181562 -v 0.137105 0.309206 2.205114 -v 0.180025 0.309468 2.205085 v 0.188876 0.319558 2.181608 v 0.127999 0.319254 2.181641 v 0.051715 0.318872 2.181683 -v 0.044163 0.311789 2.203934 -v 0.045414 0.108104 2.287094 -v 0.949896 0.093608 2.274977 -v 0.645678 0.092117 2.275140 -v 0.346592 0.090651 2.275299 -v 0.275455 0.090295 2.275338 -v 0.190590 0.089871 2.275384 -v 0.128016 0.089558 2.275418 -v 0.053442 0.089185 2.275459 -v -0.004002 0.088898 2.275490 v -0.004015 0.318594 2.181713 v -0.060217 0.318313 2.181744 +v 0.003776 0.311542 2.203961 +v 0.003785 0.107850 2.287122 +v -0.004002 0.088898 2.275490 +v 0.044163 0.311789 2.203934 +v 0.045414 0.108104 2.287094 +v 0.053442 0.089185 2.275459 +v 0.275455 0.090295 2.275338 +v 0.286340 0.110829 2.286325 +v 0.335441 0.111139 2.286292 +v 0.346592 0.090651 2.275299 +v 0.335438 0.311680 2.204418 +v 0.285150 0.311362 2.204452 +v 0.128016 0.089558 2.275418 +v 0.137117 0.111516 2.285824 +v 0.181234 0.111785 2.285795 +v 0.190590 0.089871 2.275384 +v 0.180025 0.309468 2.205085 +v 0.137105 0.309206 2.205114 v -0.059018 0.088623 2.275520 -v 0.678557 0.155552 2.534805 -v 0.649846 0.155552 2.534805 -v 0.951045 0.155552 2.534805 -v 0.674638 0.458293 2.409405 -v 0.676644 0.321964 2.181346 -v 0.948697 0.323297 2.181201 -v 0.951045 0.458293 2.409405 -v 0.641563 0.500178 2.510524 -v 0.674042 0.500178 2.510524 -v 0.951045 0.500178 2.510524 v -0.460212 0.155552 2.534805 -v -0.460212 0.458293 2.409405 -v -0.460212 0.500178 2.510524 -v 0.951045 0.197436 2.635923 +v 0.951045 0.500178 2.510524 +v 0.951045 0.458293 2.409405 v -0.460212 0.197436 2.635923 v 1.292985 0.172030 3.353553 v 1.103664 0.879137 2.646447 +v -0.603601 0.172030 2.646447 v -0.460212 0.197436 2.635923 v 0.951045 0.197436 2.635923 v 1.286814 0.145459 3.380125 v 1.320923 0.099829 3.425755 -v -0.460212 0.500178 2.510524 v 0.951045 0.500178 2.510524 +v -0.460212 0.500178 2.510524 +v 0.951045 0.197436 2.635923 v -0.724548 0.532825 2.523313 v -0.724548 0.195753 2.662932 v -0.724548 0.056134 3.000004 v -0.724548 0.195753 3.337075 -v -0.724548 0.532825 3.476694 -v -0.724548 0.869896 3.337075 -v -0.724548 1.009515 3.000004 +v 0.951045 0.155552 3.465195 v 0.951045 0.197436 3.364077 -v -0.460212 0.197436 3.364077 -v -0.460212 0.500178 3.489476 -v -0.460212 0.155552 3.465195 -v -0.460212 0.458293 3.590595 -v 0.641563 0.500178 3.489476 -v 0.674042 0.500178 3.489476 v 0.951045 0.500178 3.489476 v 0.951045 0.458293 3.590595 +v -0.460212 0.500178 3.489476 +v -0.460212 0.197436 3.364077 +v -0.460212 0.155552 3.465195 +v -0.460212 0.458293 3.590595 v 0.674638 0.458293 3.590595 v 0.676644 0.321964 3.818654 v 0.948697 0.323297 3.818799 -v 0.951045 0.155552 3.465195 +v 0.674042 0.500178 3.489476 v 0.678557 0.155552 3.465195 v 0.649846 0.155552 3.465195 v -0.059018 0.088623 3.724480 @@ -5102,7 +325,6 @@ v 0.275455 0.090295 3.724662 v 0.190590 0.089871 3.724616 v 0.128016 0.089558 3.724582 v 0.053442 0.089185 3.724541 -v 0.949896 0.093608 3.725023 v 0.051715 0.318872 3.818317 v 0.044163 0.311789 3.796066 v 0.045414 0.108104 3.712906 @@ -5124,21 +346,17 @@ v 0.003785 0.107850 3.712878 v 0.671568 0.425284 3.596467 v 0.673140 0.318430 3.775219 v 0.641987 0.458293 3.590595 +v 0.641563 0.500178 3.489476 v 0.648869 0.138277 3.701704 v 0.646934 0.318302 3.775205 v 0.678212 0.092276 3.724878 v 0.674369 0.138402 3.701718 +v 0.949896 0.093608 3.725023 v 0.645976 0.425284 3.596467 v 0.645644 0.458113 3.517211 v 0.671101 0.458113 3.517211 v 0.652136 0.187997 3.498180 v 0.674639 0.187997 3.498180 -v 0.674369 0.138402 2.298282 -v 0.645644 0.458113 2.482789 -v 0.645976 0.425284 2.403533 -v 0.671101 0.458113 2.482789 -v 0.674639 0.187997 2.501820 -v 0.652136 0.187997 2.501820 vt 0.444444 0.967260 vt 0.444444 0.999701 vt 0.378868 0.999701 @@ -5844,7 +1062,6 @@ vn -0.0165 0.3826 -0.9238 vn -0.0165 0.3826 0.9238 vn -0.0165 -0.9238 -0.3826 vn 0.1008 -0.2962 -0.9498 -vn 0.0000 -0.3828 -0.9239 vn -0.8680 0.4588 0.1900 vn -0.8680 -0.1900 -0.4588 vn 0.8623 0.1938 -0.4678 @@ -5910,7 +1127,7 @@ vn 0.0951 -0.3032 0.9482 vn 0.0000 -1.0000 0.0000 vn 0.9838 0.1658 0.0687 vn 0.4296 -0.8343 -0.3456 -vn -0.0165 -0.3826 0.9238 +vn -0.0166 -0.3826 0.9238 vn -0.0165 -0.9238 0.3826 vn 0.8623 -0.4678 -0.1938 vn 0.2182 0.3735 -0.9016 @@ -5962,9 +1179,10 @@ vn 0.0000 -0.7129 -0.7012 vn 0.9976 -0.0694 0.0010 vn 0.0026 -0.9715 0.2370 vn -0.0023 0.8582 -0.5133 -vn 0.0014 -0.3780 -0.9258 +vn 0.0013 -0.3780 -0.9258 vn 0.9905 0.1284 -0.0490 vn 0.0024 -0.9722 0.2343 +vn 0.0014 -0.3780 -0.9258 vn -0.9957 -0.0410 -0.0837 vn 0.9959 -0.0250 -0.0874 vn -0.0018 0.8543 -0.5198 @@ -5973,7 +1191,7 @@ vn 0.9172 -0.1505 -0.3689 vn 0.0050 -0.9531 -0.3028 vn -0.0034 0.5235 -0.8520 vn 0.0017 -0.3780 -0.9258 -vn -0.0031 0.4723 -0.8815 +vn -0.0031 0.4723 -0.8814 vn -0.8491 -0.1997 -0.4891 vn 0.8493 -0.1946 -0.4907 vn 0.0018 -0.3780 -0.9258 @@ -6032,7 +1250,7 @@ vn -0.0029 0.4287 0.9035 vn 0.0018 -0.3780 0.9258 vn 0.8493 -0.1946 0.4907 vn -0.8491 -0.1997 0.4891 -vn -0.0031 0.4723 0.8815 +vn -0.0031 0.4723 0.8814 vn -0.0034 0.5235 0.8520 vn 0.0050 -0.9531 0.3028 vn 0.9172 -0.1505 0.3689 @@ -6042,12 +1260,13 @@ vn 0.9959 -0.0250 0.0874 vn -0.9957 -0.0410 0.0837 vn 0.0024 -0.9722 -0.2343 vn 0.9905 0.1284 0.0490 +vn 0.0013 -0.3780 0.9258 vn -0.0023 0.8582 0.5133 vn 0.0026 -0.9715 -0.2370 vn 0.9976 -0.0694 -0.0010 vn 0.0000 -0.7129 0.7012 vn 0.9884 0.1326 0.0741 -vn -0.9938 0.1009 0.0476 +vn -0.9938 0.1009 0.0477 vn 0.0000 0.5505 0.8349 vn -0.9952 -0.0952 -0.0245 vn 1.0000 -0.0006 0.0069 @@ -6056,341 +1275,5222 @@ vn 0.0000 -0.8684 -0.4959 vn -0.0476 -0.3025 0.9520 vn 0.0000 -0.4721 -0.8815 s off -f 1141/2002/610 1142/2003/610 1143/2004/610 1144/2005/610 -f 1145/2006/611 1146/2007/611 1147/2008/611 1148/2009/611 -f 1148/2009/612 1147/2008/612 1149/2010/612 1150/2011/612 -f 1151/2012/613 1152/2013/613 1153/2014/613 1154/2015/613 -f 1145/2006/614 1148/2009/614 1155/2016/614 1156/2017/614 -f 1142/2018/615 1157/2019/615 1158/2020/615 1159/2021/615 -f 1147/2022/616 1146/2023/616 1160/2024/616 1161/2025/616 -f 1162/2026/617 1163/2027/617 1164/2028/617 1165/2029/617 -f 1166/2030/618 1151/2031/618 1154/2032/618 1167/2033/618 -f 1166/2034/619 1168/2035/619 1169/2036/619 1170/2037/619 -f 1171/2038/620 1172/2039/620 1173/2040/620 1174/2041/620 -f 1172/2042/621 1152/2043/621 1175/2044/621 1173/2045/621 -f 1151/2031/622 1166/2030/622 1170/2046/622 1176/2047/622 -f 1168/2048/623 1163/2049/623 1177/2050/623 1169/2051/623 -f 1182/2052/624 1183/2053/624 1184/2054/624 1185/2055/624 -f 1185/2055/625 1184/2054/625 1186/2056/625 1187/2057/625 -f 1307/2058/626 1221/2059/626 1214/2060/626 -f 1191/2061/627 1184/2062/627 1192/2063/627 1193/2064/627 -f 1222/2065/628 1179/2066/628 1178/2067/628 1315/2068/628 -f 1197/2069/629 1198/2070/629 1194/2071/629 1199/2072/629 -f 1338/2073/630 1329/2074/630 1337/2075/630 -f 1198/2076/631 1203/2077/631 1179/2078/631 1194/2071/631 -f 1180/2079/632 1179/2078/632 1203/2080/632 1204/2081/632 -f 1205/2082/633 1197/2083/633 1199/2072/633 1188/2084/633 -f 1212/2085/634 1145/2006/634 1156/2086/634 1210/2087/634 -f 1207/2088/635 1208/2089/635 1204/2081/635 1203/2080/635 -f 1207/2090/636 1203/2077/636 1198/2076/636 1206/2091/636 -f 1155/2016/637 1205/2092/637 1193/2093/637 1156/2017/637 -f 1209/2094/638 1213/2095/638 1204/2096/638 1208/2097/638 -f 1195/2098/628 1179/2066/628 1222/2065/628 -f 1333/2099/639 1219/2100/639 1345/2101/639 -f 1219/2100/640 1201/2102/640 1200/2103/640 -f 1194/2104/628 1179/2066/628 1195/2098/628 1196/2105/628 -f 1223/2106/641 1161/2107/641 1224/2108/641 1225/2109/641 -f 1226/2110/642 1159/2111/642 1227/2112/642 1228/2113/642 -f 1153/2114/643 1229/2115/643 1230/2116/643 1231/2117/643 -f 1232/2118/644 1226/2119/644 1228/2113/644 1233/2120/644 -f 1234/2121/645 1167/2122/645 1235/2123/645 1236/2124/645 -f 1172/2039/646 1171/2038/646 1237/2125/646 1229/2126/646 -f 1149/2127/647 1147/2128/647 1161/2107/647 1223/2106/647 -f 1168/2035/648 1166/2034/648 1167/2122/648 1234/2121/648 -f 1152/2043/649 1172/2042/649 1229/2115/649 1153/2114/649 -f 1163/2049/650 1168/2048/650 1234/2129/650 1164/2130/650 -f 1143/2131/651 1142/2132/651 1159/2111/651 1226/2110/651 -f 1224/2108/652 1238/2133/652 1236/2124/652 1235/2123/652 -f 1227/2112/653 1239/2134/653 1231/2117/653 1230/2116/653 -f 1228/2113/654 1227/2112/654 1230/2116/654 1240/2135/654 -f 1159/2021/655 1158/2020/655 1239/2134/655 1227/2112/655 -f 1161/2025/656 1160/2024/656 1238/2133/656 1224/2108/656 -f 1154/2015/657 1153/2014/657 1231/2117/657 1241/2136/657 -f 1164/2130/658 1234/2129/658 1236/2124/658 1242/2137/658 -f 1229/2126/659 1237/2125/659 1240/2135/659 1230/2116/659 -f 1243/2138/660 1244/2139/660 1245/2140/660 1246/2141/660 -f 1173/2045/661 1175/2044/661 1247/2142/661 1244/2143/661 -f 1174/2041/661 1173/2040/661 1244/2139/661 1243/2138/661 -f 1175/2144/661 1176/2145/661 1248/2146/661 1247/2147/661 -f 1170/2037/661 1169/2036/661 1249/2148/661 1250/2149/661 -f 1169/2051/661 1177/2050/661 1251/2150/661 1249/2151/661 -f 1252/2152/662 1253/2153/662 1254/2154/662 1255/2155/662 -f 1250/2149/663 1249/2148/663 1256/2156/663 1257/2157/663 -f 1247/2147/664 1248/2146/664 1253/2153/664 1252/2152/664 -f 1248/2158/665 1250/2159/665 1257/2160/665 1253/2161/665 -f 1244/2143/666 1247/2142/666 1252/2162/666 1245/2163/666 -f 1258/2164/661 1259/2165/661 1260/2166/661 1261/2167/661 -f 1253/2161/667 1257/2160/667 1258/2168/667 1254/2169/667 -f 1245/2163/668 1252/2162/668 1255/2170/668 1262/2171/668 -f 1246/2141/669 1245/2140/669 1262/2172/669 1263/2173/669 -f 1256/2174/670 1264/2175/670 1265/2176/670 1259/2177/670 -f 1257/2157/671 1256/2156/671 1259/2165/671 1258/2164/671 -f 1262/2171/661 1255/2170/661 1266/2178/661 1267/2179/661 -f 1263/2173/661 1262/2172/661 1267/2180/661 1268/2181/661 -f 1259/2177/661 1265/2176/661 1269/2182/661 1260/2183/661 -f 1270/2184/628 1271/2185/628 1272/2186/628 1273/2187/628 -f 1274/2188/672 1261/2189/672 1275/2190/672 1276/2191/672 -f 1268/2181/673 1267/2180/673 1270/2192/673 1277/2193/673 -f 1260/2183/674 1269/2182/674 1278/2194/674 1279/2195/674 -f 1269/2196/675 1280/2197/675 1281/2198/675 1278/2199/675 -f 1261/2167/676 1260/2166/676 1279/2200/676 1275/2201/676 -f 1277/2193/610 1270/2192/610 1273/2202/610 1284/2203/610 -f 1279/2195/625 1278/2194/625 1287/2204/625 1288/2205/625 -f 1275/2201/611 1279/2200/611 1288/2206/611 1289/2207/611 -f 1285/2208/611 1290/2209/611 1291/2210/611 1286/2211/611 -f 1291/2210/612 1292/2212/612 1282/2213/612 1286/2211/612 -f 1293/2214/610 1294/2215/610 1295/2216/610 1296/2217/610 -f 1297/2218/624 1298/2219/624 1299/2220/624 1300/2221/624 -f 1300/2221/625 1299/2220/625 1290/2209/625 1285/2208/625 -f 1292/2222/661 1291/2223/661 1290/2224/661 1299/2225/661 1298/2226/661 1294/2227/661 1293/2228/661 1301/2229/661 -f 1302/2230/661 1303/2231/661 1304/2232/661 1305/2233/661 -f 1216/2234/677 1214/2060/677 1199/2235/677 1215/2236/677 -f 1191/2237/611 1188/2238/611 1190/2239/611 1309/2240/611 -f 1308/2241/678 1433/2242/678 1432/2243/678 1317/2244/678 -f 1205/2092/679 1188/2084/679 1191/2061/679 1193/2093/679 -f 1214/2060/680 1310/2245/680 1311/2246/680 1434/2247/680 -f 1315/2068/628 1178/2067/628 1304/2248/628 -f 1312/2249/681 1305/2250/681 1310/2245/681 1214/2060/681 -f 1286/2251/661 1282/2252/661 1283/2253/661 1284/2254/661 -f 1296/2217/628 1318/2255/628 1301/2256/628 1293/2214/628 -f 1313/2257/682 1314/2258/682 1319/2259/682 1320/2260/682 -f 1321/2261/661 1306/2262/661 1313/2257/661 1320/2260/661 -f 1221/2263/683 1322/2264/683 1217/2265/683 1220/2266/683 -f 1217/2267/684 1322/2268/684 1323/2269/684 1324/2270/684 -f 1325/2271/661 1280/2197/661 1269/2196/661 1265/2272/661 -f 1275/2190/612 1289/2273/612 1326/2274/612 1276/2191/612 -f 1221/2263/685 1307/2275/685 1327/2276/685 1322/2264/685 -f 1196/2277/686 1328/2278/686 1329/2279/686 1330/2280/686 -f 1206/2281/687 1198/2070/687 1197/2069/687 1211/2282/687 -f 1196/2283/686 1195/2284/686 1331/2285/686 1328/2286/686 -f 1158/2287/688 1223/2288/688 1225/2109/688 1239/2134/688 -f 1281/2289/689 1277/2290/689 1284/2254/689 1283/2253/689 -f 1222/2291/690 1332/2292/690 1331/2285/690 1195/2284/690 -f 1324/2293/691 1215/2294/691 1330/2280/691 1329/2279/691 -f 1202/2295/692 1189/2296/692 1220/2266/692 1217/2265/692 -f 1202/2295/686 1201/2297/686 1190/2298/686 1189/2296/686 -f 1219/2299/686 1309/2300/686 1190/2301/686 1201/2302/686 -f 1316/2303/693 1309/2300/693 1219/2299/693 1333/2304/693 -f 1319/2259/694 1314/2258/694 1316/2303/694 1333/2304/694 -f 1222/2291/695 1315/2305/695 1334/2306/695 1332/2292/695 -f 1335/2307/661 1336/2308/661 1251/2309/661 1177/2310/661 -f 1200/2103/696 1345/2101/696 1219/2100/696 -f 1361/2311/697 1333/2099/697 1345/2101/697 -f 1331/2312/698 1332/2313/698 1341/2314/698 -f 1228/2113/699 1240/2135/699 1339/2315/699 1233/2120/699 -f 1243/2316/700 1246/2317/700 1340/2318/700 1336/2319/700 -f 1266/2178/701 1271/2185/701 1270/2184/701 1267/2179/701 -f 1281/2198/624 1283/2320/624 1287/2321/624 1278/2199/624 -f 1360/2322/702 1341/2314/702 1332/2313/702 -f 1324/2270/703 1338/2073/703 1218/2323/703 1217/2267/703 -f 1162/2324/704 1165/2325/704 1237/2326/704 1171/2327/704 -f 1171/2327/705 1174/2328/705 1335/2329/705 1162/2324/705 -f 1156/2086/706 1193/2064/706 1192/2063/706 1210/2087/706 -f 1209/2330/707 1210/2331/707 1192/2332/707 1213/2333/707 -f 1165/2325/708 1339/2315/708 1240/2135/708 1237/2326/708 -f 1251/2150/709 1264/2175/709 1256/2174/709 1249/2151/709 -f 1255/2155/661 1254/2154/661 1274/2334/661 1266/2335/661 -f 1304/2232/710 1303/2231/710 1334/2306/710 1315/2305/710 -f 1341/2336/711 1342/2337/711 1343/2338/711 1344/2339/711 1345/2340/711 1200/2341/711 1218/2342/711 1338/2343/711 1337/2344/711 -f 1335/2329/661 1174/2328/661 1243/2316/661 1336/2319/661 -f 1239/2134/712 1225/2109/712 1241/2136/712 1231/2117/712 -f 1341/2314/713 1337/2075/713 1331/2312/713 -f 1212/2085/714 1210/2331/714 1209/2330/714 1346/2345/714 -f 1340/2346/715 1325/2271/715 1265/2272/715 1264/2347/715 -f 1258/2168/661 1261/2189/661 1274/2188/661 1254/2169/661 -f 1150/2011/716 1211/2348/716 1155/2349/716 1148/2009/716 -f 1347/2350/717 1348/2351/717 1349/2352/717 1327/2353/717 -f 1347/2350/718 1327/2353/718 1321/2354/718 1350/2355/718 -f 1302/2356/719 1351/2357/719 1303/2358/719 -f 1357/2359/720 1334/2360/720 1303/2358/720 -f 1349/2352/721 1348/2351/721 1351/2357/721 1302/2356/721 -f 1351/2357/722 1357/2359/722 1303/2358/722 -f 1353/2361/723 1350/2355/723 1320/2362/723 -f 1144/2005/689 1143/2004/689 1352/2363/689 1346/2364/689 -f 1352/2365/724 1143/2366/724 1226/2119/724 1232/2118/724 -f 1163/2027/725 1162/2026/725 1335/2307/725 1177/2310/725 -f 1224/2108/726 1235/2123/726 1241/2136/726 1225/2109/726 -f 1152/2013/727 1151/2012/727 1176/2145/727 1175/2144/727 -f 1165/2029/728 1164/2028/728 1242/2137/728 1339/2367/728 -f 1340/2318/729 1246/2317/729 1263/2368/729 1325/2369/729 -f 1325/2369/661 1263/2368/661 1268/2370/661 1280/2371/661 -f 1280/2371/730 1268/2370/730 1277/2290/730 1281/2289/730 -f 1180/2079/731 1204/2096/731 1213/2095/731 1183/2372/731 -f 1157/2373/732 1149/2374/732 1223/2288/732 1158/2287/732 -f 1318/2375/661 1287/2321/661 1283/2320/661 1282/2376/661 -f 1351/2377/733 1348/2378/733 1347/2379/733 1350/2380/733 1353/2381/733 1354/2382/733 1355/2383/733 1356/2384/733 1357/2385/733 -f 1319/2386/734 1358/2387/734 1353/2361/734 -f 1320/2362/735 1319/2386/735 1353/2361/735 -f 1200/2103/736 1201/2102/736 1202/2388/736 -f 1338/2073/737 1324/2270/737 1329/2074/737 -f 1332/2313/738 1334/2360/738 1359/2389/738 1360/2322/738 -f 1333/2099/739 1361/2311/739 1358/2387/739 1319/2386/739 -f 1355/2390/740 1362/2391/740 1363/2392/740 1356/2393/740 -f 1356/2393/741 1363/2392/741 1359/2389/741 1357/2359/741 -f 1354/2394/742 1353/2361/742 1358/2387/742 1364/2395/742 -f 1343/2396/743 1342/2397/743 1365/2398/743 1366/2399/743 -f 1343/2400/744 1366/2401/744 1367/2402/744 1344/2403/744 -f 1344/2403/745 1367/2402/745 1361/2311/745 1345/2101/745 -f 1361/2311/746 1367/2402/746 1364/2395/746 1358/2387/746 -f 1362/2404/747 1364/2395/747 1367/2402/747 1366/2401/747 -f 1362/2391/748 1366/2399/748 1365/2398/748 1363/2392/748 -f 1360/2322/749 1359/2389/749 1363/2392/749 1365/2398/749 -f 1405/2405/750 1495/2406/750 1491/2407/750 1369/2408/750 -f 1184/2054/625 1191/2237/625 1371/2409/625 1186/2056/625 -f 1317/2244/625 1185/2055/625 1187/2057/625 1368/2410/625 -f 1413/2411/751 1494/2412/751 1492/2413/751 1412/2414/751 -f 1408/2415/752 1374/2416/752 1494/2417/752 1413/2418/752 -f 1373/2419/753 1493/2420/753 1372/2421/753 1382/2422/753 -f 1406/2423/754 1496/2424/754 1495/2425/754 1405/2426/754 -f 1395/2427/755 1370/2428/755 1496/2429/755 1406/2430/755 -f 1370/2431/756 1491/2432/756 1495/2425/756 1496/2424/756 -f 1374/2433/681 1493/2434/681 1492/2413/681 1494/2412/681 -f 1375/2435/757 1372/2436/757 1493/2434/757 1374/2433/757 -f 1372/2436/758 1375/2435/758 1491/2432/758 1370/2431/758 -f 1412/2437/759 1492/2438/759 1493/2439/759 1373/2419/759 -f 1369/2408/760 1394/2440/760 1407/2441/760 1405/2405/760 -f 1409/2442/758 1410/2443/758 1394/2440/758 1369/2408/758 -f 1369/2408/761 1491/2444/761 1375/2445/761 1409/2442/761 -f 1382/2422/762 1372/2446/762 1370/2447/762 1395/2427/762 -f 1373/2419/681 1416/2448/681 1417/2449/681 1412/2437/681 -f 1382/2422/763 1385/2450/763 1386/2451/763 1389/2452/763 1390/2453/763 1391/2454/763 1402/2455/763 1403/2456/763 1416/2448/763 1373/2419/763 -f 1409/2442/764 1375/2457/764 1374/2458/764 1408/2415/764 -f 1402/2459/765 1377/2460/765 1376/2461/765 1401/2462/765 -f 1391/2463/766 1392/2464/766 1377/2460/766 1402/2459/766 -f 1401/2462/767 1376/2461/767 1393/2465/767 1400/2466/767 -f 1377/2460/768 1392/2464/768 1393/2465/768 1376/2461/768 -f 1397/2467/769 1378/2468/769 1379/2469/769 1396/2470/769 -f 1396/2470/770 1379/2469/770 1384/2471/770 1385/2472/770 -f 1386/2473/771 1383/2474/771 1378/2468/771 1397/2467/771 -f 1383/2474/772 1384/2471/772 1379/2469/772 1378/2468/772 -f 1399/2475/773 1380/2476/773 1381/2477/773 1398/2478/773 -f 1398/2478/774 1381/2477/774 1388/2479/774 1389/2480/774 -f 1390/2481/775 1387/2482/775 1380/2476/775 1399/2475/775 -f 1387/2482/768 1388/2479/768 1381/2477/768 1380/2476/768 -f 1385/2450/758 1382/2422/758 1395/2427/758 1396/2483/758 -f 1385/2472/776 1384/2471/776 1383/2474/776 1386/2473/776 -f 1389/2452/758 1386/2451/758 1397/2484/758 1398/2485/758 -f 1389/2480/777 1388/2479/777 1387/2482/777 1390/2481/777 -f 1391/2454/758 1390/2453/758 1399/2486/758 1400/2487/758 -f 1400/2466/778 1393/2465/778 1392/2464/778 1391/2463/778 -f 1416/2488/779 1403/2456/779 1404/2489/779 1415/2490/779 -f 1415/2491/780 1404/2489/780 1401/2492/780 1400/2487/780 1399/2486/780 1398/2485/780 1397/2484/780 1396/2483/780 1395/2427/780 1406/2430/780 -f 1404/2489/758 1403/2456/758 1402/2455/758 1401/2492/758 -f 1329/2074/781 1328/2493/781 1337/2075/781 -f 1414/2494/681 1411/2495/681 1408/2415/681 1413/2418/681 -f 1411/2495/782 1410/2443/782 1409/2442/782 1408/2415/782 -f 1417/2496/686 1416/2488/686 1415/2490/686 1419/2497/686 -f 1145/2006/625 1212/2085/625 1420/2498/625 1146/2007/625 -f 1141/2002/628 1421/2499/628 1157/2500/628 1142/2003/628 -f 1421/2499/681 1150/2011/681 1149/2010/681 1157/2500/681 -f 1141/2002/783 1207/2090/783 1206/2091/783 1421/2499/783 -f 1182/2501/689 1181/2502/689 1180/2503/689 1183/2504/689 -f 1181/2502/610 1422/2505/610 1423/2506/610 1180/2503/610 -f 1144/2005/784 1208/2089/784 1207/2088/784 1141/2002/784 -f 1424/2507/785 1425/2508/785 1238/2133/785 1160/2509/785 -f 1232/2510/786 1233/2511/786 1425/2508/786 1424/2512/786 -f 1420/2513/787 1424/2507/787 1160/2509/787 1146/2514/787 -f 1425/2508/788 1242/2137/788 1236/2124/788 1238/2133/788 -f 1154/2032/789 1241/2136/789 1235/2123/789 1167/2033/789 -f 1170/2046/661 1250/2159/661 1248/2158/661 1176/2047/661 -f 1274/2334/790 1276/2515/790 1271/2516/790 1266/2335/790 -f 1301/2256/681 1318/2255/681 1282/2517/681 1292/2518/681 -f 1297/2218/689 1295/2216/689 1294/2215/689 1298/2219/689 -f 1327/2276/661 1307/2275/661 1306/2519/661 1321/2520/661 -f 1349/2521/661 1302/2522/661 1305/2523/661 1312/2524/661 -f 1216/2525/791 1215/2294/791 1324/2293/791 1323/2526/791 -f 1271/2516/681 1276/2515/681 1326/2527/681 1272/2528/681 -f 1216/2525/792 1323/2526/792 1349/2521/792 1312/2524/792 -f 1155/2349/793 1211/2348/793 1197/2083/793 1205/2082/793 -f 1425/2508/794 1233/2511/794 1339/2367/794 1242/2137/794 -f 1251/2309/795 1336/2308/795 1340/2346/795 1264/2347/795 -f 1323/2269/796 1322/2268/796 1327/2353/796 1349/2352/796 -f 1144/2005/797 1346/2364/797 1209/2094/797 1208/2097/797 -f 1150/2011/798 1421/2499/798 1206/2281/798 1211/2282/798 -f 1212/2085/624 1346/2345/624 1352/2529/624 1420/2498/624 -f 1352/2530/799 1232/2510/799 1424/2512/799 1420/2531/799 -f 1184/2062/800 1183/2532/800 1213/2333/800 1192/2332/800 -f 1355/2533/801 1354/2394/801 1364/2395/801 1362/2404/801 -f 1342/2397/802 1341/2314/802 1360/2322/802 1365/2398/802 -f 1179/2066/610 1427/2534/610 1426/2535/610 1178/2067/610 -f 1180/2503/610 1423/2506/610 1427/2534/610 1179/2066/610 -f 1178/2067/610 1426/2535/610 1422/2505/610 1181/2502/610 -f 1407/2536/661 1411/2537/661 1414/2538/661 1418/2539/661 -f 1311/2540/686 1428/2541/686 1429/2542/686 1430/2543/686 1431/2544/686 1432/2545/686 1433/2546/686 1434/2547/686 -f 1181/2502/803 1182/2501/803 1430/2548/803 1429/2549/803 -f 1214/2060/804 1216/2234/804 1312/2249/804 -f 1215/2236/805 1199/2235/805 1330/2550/805 -f 1182/2052/806 1185/2055/806 1431/2551/806 1430/2552/806 -f 1308/2241/807 1214/2060/807 1434/2553/807 1433/2554/807 -f 1178/2067/808 1181/2502/808 1429/2555/808 1428/2556/808 -f 1185/2055/809 1317/2244/809 1432/2557/809 1431/2558/809 -f 1178/2067/810 1428/2559/810 1311/2560/810 1310/2245/810 -f 1330/2550/681 1199/2235/681 1194/2104/681 1196/2105/681 -f 1297/2561/661 1326/2274/661 1289/2273/661 1295/2562/661 -f 1326/2527/661 1297/2563/661 1300/2564/661 1272/2528/661 -f 1272/2186/661 1300/2565/661 1285/2566/661 1273/2187/661 -f 1273/2202/661 1285/2567/661 1286/2568/661 1284/2203/661 -f 1296/2569/661 1288/2205/661 1287/2204/661 1318/2570/661 -f 1288/2206/661 1296/2571/661 1295/2572/661 1289/2207/661 -f 1447/2573/661 1435/2574/661 1442/2575/661 1443/2576/661 -f 1411/2537/811 1407/2536/811 1394/2440/811 1410/2443/811 -f 1304/2248/628 1178/2067/628 1310/2245/628 1305/2250/628 -f 1199/2235/612 1189/2577/612 1190/2239/612 1188/2238/612 -f 1189/2577/812 1199/2235/812 1220/2578/812 -f 1309/2240/611 1316/2579/611 1191/2237/611 -f 1316/2579/611 1314/2580/611 1317/2244/611 1191/2237/611 -f 1317/2244/611 1314/2580/611 1313/2581/611 -f 1313/2581/611 1306/2582/611 1308/2241/611 1317/2244/611 -f 1214/2060/813 1221/2059/813 1220/2578/813 1199/2235/813 -f 1214/2060/612 1308/2241/612 1306/2582/612 1307/2058/612 -f 1368/2410/625 1371/2409/625 1191/2237/625 1317/2244/625 -f 1437/2583/686 1436/2584/686 1438/2585/686 1439/2586/686 -f 1443/2587/814 1444/2588/814 1445/2589/814 1446/2590/814 -f 1442/2591/612 1441/2592/612 1444/2588/612 1443/2587/612 -f 1436/2593/689 1435/2594/689 1447/2595/689 1448/2596/689 1449/2597/689 1438/2598/689 -f 1450/2599/815 1451/2600/815 1452/2601/815 1453/2602/815 -f 1438/2598/816 1449/2597/816 1454/2603/816 1455/2604/816 1456/2605/816 1457/2606/816 1458/2607/816 1459/2608/816 1451/2600/816 1450/2599/816 -f 1439/2586/817 1438/2585/817 1450/2599/817 1453/2602/817 -f 1459/2609/818 1461/2610/818 1462/2611/818 1463/2612/818 -f 1461/2613/815 1459/2608/815 1458/2607/815 1464/2614/815 -f 1465/2615/819 1464/2616/819 1466/2617/819 1467/2618/819 -f 1465/2619/815 1457/2606/815 1456/2605/815 1468/2620/815 -f 1469/2621/820 1468/2622/820 1470/2623/820 1471/2624/820 -f 1469/2625/815 1455/2604/815 1454/2603/815 1472/2626/815 -f 1466/2617/821 1473/2627/821 1474/2628/821 1467/2618/821 -f 1464/2616/822 1458/2629/822 1473/2627/822 1466/2617/822 -f 1457/2630/823 1465/2615/823 1467/2618/823 1474/2628/823 -f 1458/2629/824 1457/2630/824 1474/2628/824 1473/2627/824 -f 1470/2623/825 1475/2631/825 1476/2632/825 1471/2624/825 -f 1468/2622/826 1456/2633/826 1475/2631/826 1470/2623/826 -f 1455/2634/827 1469/2621/827 1471/2624/827 1476/2632/827 -f 1456/2633/828 1455/2634/828 1476/2632/828 1475/2631/828 -f 1477/2635/821 1478/2636/821 1463/2612/821 1462/2611/821 -f 1451/2637/829 1459/2609/829 1463/2612/829 1478/2636/829 -f 1461/2610/830 1452/2638/830 1477/2635/830 1462/2611/830 -f 1452/2638/831 1451/2637/831 1478/2636/831 1477/2635/831 -f 1445/2589/832 1444/2588/832 1479/2639/832 1480/2640/832 -f 1472/2626/833 1481/2641/833 1439/2642/833 1453/2602/833 1452/2601/833 1461/2613/833 1464/2614/833 1465/2619/833 1468/2620/833 1469/2625/833 -f 1481/2641/612 1440/2643/612 1437/2644/612 1439/2642/612 -f 1472/2626/834 1454/2603/834 1482/2645/834 1483/2646/834 -f 1484/2647/835 1445/2589/835 1480/2648/835 1485/2649/835 -f 1445/2589/815 1484/2647/815 1460/2650/815 1446/2590/815 -f 1484/2647/836 1448/2596/836 1447/2595/836 1460/2650/836 -f 1440/2643/837 1481/2641/837 1486/2651/837 1487/2652/837 -f 1483/2653/815 1482/2654/815 1485/2655/815 1480/2656/815 -f 1480/2656/838 1479/2657/838 1486/2658/838 1483/2653/838 -f 1479/2657/612 1488/2659/612 1487/2660/612 1486/2658/612 -f 1482/2654/839 1489/2661/839 1490/2662/839 1485/2655/839 -f 1454/2603/840 1449/2597/840 1489/2663/840 1482/2664/840 -f 1449/2665/841 1448/2666/841 1490/2662/841 1489/2661/841 -f 1481/2641/842 1472/2626/842 1483/2667/842 1486/2668/842 -f 1444/2588/843 1441/2592/843 1488/2669/843 1479/2670/843 -f 1441/2671/844 1440/2672/844 1487/2660/844 1488/2659/844 -f 1448/2596/845 1484/2647/845 1485/2673/845 1490/2674/845 -f 1443/2576/846 1446/2590/846 1460/2650/846 1447/2573/846 -f 1337/2075/625 1328/2493/625 1331/2312/625 -f 1406/2430/624 1405/2405/624 1407/2441/624 1418/2675/624 1419/2676/624 1415/2491/624 -f 1218/2323/847 1200/2103/847 1202/2388/847 -f 1202/2388/848 1217/2267/848 1218/2323/848 -f 1357/2359/849 1359/2389/849 1334/2360/849 -f 1350/2355/850 1321/2354/850 1320/2362/850 +f 1/1/1 2/2/1 3/3/1 4/4/1 +f 5/5/2 6/6/2 7/7/2 8/8/2 +f 8/8/3 7/7/3 9/9/3 10/10/3 +f 11/11/4 12/12/4 13/13/4 14/14/4 +f 5/5/5 8/8/5 15/15/5 16/16/5 +f 2/17/6 17/18/6 18/19/6 19/20/6 +f 7/21/7 6/22/7 20/23/7 21/24/7 +f 22/25/8 23/26/8 24/27/8 25/28/8 +f 26/29/9 11/30/9 14/31/9 27/32/9 +f 26/33/10 28/34/10 29/35/10 30/36/10 +f 31/37/11 32/38/11 33/39/11 34/40/11 +f 32/41/12 12/42/12 35/43/12 33/44/12 +f 11/30/13 26/29/13 30/45/13 36/46/13 +f 28/47/14 23/48/14 37/49/14 29/50/14 +f 38/51/15 39/52/15 40/53/15 41/54/15 +f 41/54/16 40/53/16 42/55/16 43/56/16 +f 44/57/17 45/58/17 46/59/17 +f 47/60/18 40/61/18 48/62/18 49/63/18 +f 50/64/19 51/65/19 52/66/19 53/67/19 +f 54/68/20 55/69/20 56/70/20 57/71/20 +f 58/72/21 59/73/21 60/74/21 +f 55/75/22 61/76/22 51/77/22 56/70/22 +f 62/78/23 51/77/23 61/79/23 63/80/23 +f 64/81/24 54/82/24 57/71/24 65/83/24 +f 66/84/25 5/5/25 16/85/25 67/86/25 +f 68/87/26 69/88/26 63/80/26 61/79/26 +f 68/89/27 61/76/27 55/75/27 70/90/27 +f 15/15/28 64/91/28 49/92/28 16/16/28 +f 71/93/29 72/94/29 63/95/29 69/96/29 +f 73/97/19 51/65/19 50/64/19 +f 74/98/30 75/99/30 76/100/30 +f 75/99/1 77/101/1 78/102/1 +f 56/103/19 51/65/19 73/97/19 79/104/19 +f 80/105/31 21/106/31 81/107/31 82/108/31 +f 83/109/32 19/110/32 84/111/32 85/112/32 +f 13/113/33 86/114/33 87/115/33 88/116/33 +f 89/117/34 83/118/34 85/112/34 90/119/34 +f 91/120/35 27/121/35 92/122/35 93/123/35 +f 32/38/36 31/37/36 94/124/36 86/125/36 +f 9/126/37 7/127/37 21/106/37 80/105/37 +f 28/34/38 26/33/38 27/121/38 91/120/38 +f 12/42/39 32/41/39 86/114/39 13/113/39 +f 23/48/40 28/47/40 91/128/40 24/129/40 +f 3/130/41 2/131/41 19/110/41 83/109/41 +f 81/107/42 95/132/42 93/123/42 92/122/42 +f 84/111/43 96/133/43 88/116/43 87/115/43 +f 85/112/44 84/111/44 87/115/44 97/134/44 +f 19/20/45 18/19/45 96/133/45 84/111/45 +f 21/24/46 20/23/46 95/132/46 81/107/46 +f 14/14/47 13/13/47 88/116/47 98/135/47 +f 24/129/48 91/128/48 93/123/48 99/136/48 +f 86/125/49 94/124/49 97/134/49 87/115/49 +f 100/137/50 101/138/50 102/139/50 103/140/50 +f 33/44/51 35/43/51 104/141/51 101/142/51 +f 34/40/51 33/39/51 101/138/51 100/137/51 +f 35/143/51 36/144/51 105/145/51 104/146/51 +f 30/36/51 29/35/51 106/147/51 107/148/51 +f 29/50/51 37/49/51 108/149/51 106/150/51 +f 109/151/52 110/152/52 111/153/52 112/154/52 +f 107/148/53 106/147/53 113/155/53 114/156/53 +f 104/146/54 105/145/54 110/152/54 109/151/54 +f 105/157/55 107/158/55 114/159/55 110/160/55 +f 101/142/56 104/141/56 109/161/56 102/162/56 +f 115/163/51 116/164/51 117/165/51 118/166/51 +f 110/160/57 114/159/57 115/167/57 111/168/57 +f 102/162/58 109/161/58 112/169/58 119/170/58 +f 103/140/59 102/139/59 119/171/59 120/172/59 +f 113/173/60 121/174/60 122/175/60 116/176/60 +f 114/156/61 113/155/61 116/164/61 115/163/61 +f 119/170/51 112/169/51 123/177/51 124/178/51 +f 120/172/51 119/171/51 124/179/51 125/180/51 +f 116/176/51 122/175/51 126/181/51 117/182/51 +f 127/183/19 128/184/19 129/185/19 130/186/19 +f 131/187/62 118/188/62 132/189/62 133/190/62 +f 125/180/63 124/179/63 127/191/63 134/192/63 +f 117/182/64 126/181/64 135/193/64 136/194/64 +f 126/195/65 137/196/65 138/197/65 135/198/65 +f 118/166/66 117/165/66 136/199/66 132/200/66 +f 134/192/1 127/191/1 130/201/1 139/202/1 +f 136/194/16 135/193/16 140/203/16 141/204/16 +f 132/200/2 136/199/2 141/205/2 142/206/2 +f 143/207/2 144/208/2 145/209/2 146/210/2 +f 145/209/3 147/211/3 148/212/3 146/210/3 +f 149/213/1 150/214/1 151/215/1 152/216/1 +f 153/217/15 154/218/15 155/219/15 156/220/15 +f 156/220/16 155/219/16 144/208/16 143/207/16 +f 147/221/51 145/222/51 144/223/51 155/224/51 154/225/51 150/226/51 149/227/51 157/228/51 +f 158/229/51 159/230/51 160/231/51 161/232/51 +f 162/233/67 46/59/67 57/234/67 163/235/67 +f 47/236/2 65/237/2 164/238/2 165/239/2 +f 166/240/68 167/241/68 168/242/68 169/243/68 +f 64/91/69 65/83/69 47/60/69 49/92/69 +f 46/59/70 170/244/70 171/245/70 172/246/70 +f 53/67/19 52/66/19 160/247/19 +f 173/248/71 161/249/71 170/244/71 46/59/71 +f 146/250/51 148/251/51 174/252/51 139/253/51 +f 152/216/19 175/254/19 157/255/19 149/213/19 +f 176/256/72 177/257/72 178/258/72 179/259/72 +f 180/260/51 181/261/51 176/256/51 179/259/51 +f 45/262/73 182/263/73 183/264/73 184/265/73 +f 183/266/74 182/267/74 185/268/74 186/269/74 +f 187/270/51 137/196/51 126/195/51 122/271/51 +f 132/189/3 142/272/3 188/273/3 133/190/3 +f 45/262/75 44/274/75 189/275/75 182/263/75 +f 79/276/76 190/277/76 59/278/76 191/279/76 +f 70/280/77 55/69/77 54/68/77 192/281/77 +f 79/282/76 73/283/76 193/284/76 190/285/76 +f 18/286/78 80/287/78 82/108/78 96/133/78 +f 138/288/79 134/289/79 139/253/79 174/252/79 +f 50/290/80 194/291/80 193/284/80 73/283/80 +f 186/292/81 163/293/81 191/279/81 59/278/81 +f 195/294/82 196/295/82 184/265/82 183/264/82 +f 195/294/76 77/296/76 164/297/76 196/295/76 +f 75/298/76 165/299/76 164/300/76 77/301/76 +f 197/302/83 165/299/83 75/298/83 74/303/83 +f 178/258/84 177/257/84 197/302/84 74/303/84 +f 50/290/85 53/304/85 198/305/85 194/291/85 +f 199/306/51 200/307/51 108/308/51 37/309/51 +f 78/102/86 76/100/86 75/99/86 +f 201/310/87 74/98/87 76/100/87 +f 193/311/88 194/312/88 202/313/88 +f 85/112/89 97/134/89 203/314/89 90/119/89 +f 100/315/90 103/316/90 204/317/90 200/318/90 +f 123/177/91 128/184/91 127/183/91 124/178/91 +f 138/197/15 174/319/15 140/320/15 135/198/15 +f 205/321/92 202/313/92 194/312/92 +f 186/269/93 58/72/93 206/322/93 183/266/93 +f 22/323/94 25/324/94 94/325/94 31/326/94 +f 31/326/95 34/327/95 199/328/95 22/323/95 +f 16/85/96 49/63/96 48/62/96 67/86/96 +f 71/329/97 67/330/97 48/331/97 72/332/97 +f 25/324/98 203/314/98 97/134/98 94/325/98 +f 108/149/99 121/174/99 113/173/99 106/150/99 +f 112/154/51 111/153/51 131/333/51 123/334/51 +f 160/231/100 159/230/100 198/305/100 53/304/100 +f 202/335/101 207/336/101 208/337/101 209/338/101 76/339/101 78/340/101 206/341/101 58/342/101 60/343/101 +f 199/328/51 34/327/51 100/315/51 200/318/51 +f 96/133/102 82/108/102 98/135/102 88/116/102 +f 202/313/103 60/74/103 193/311/103 +f 66/84/104 67/330/104 71/329/104 210/344/104 +f 204/345/105 187/270/105 122/271/105 121/346/105 +f 115/167/51 118/188/51 131/187/51 111/168/51 +f 10/10/106 192/347/106 15/348/106 8/8/106 +f 211/349/107 212/350/107 213/351/107 189/352/107 +f 211/349/108 189/352/108 180/353/108 214/354/108 +f 158/355/109 215/356/109 159/357/109 +f 216/358/110 198/359/110 159/357/110 +f 213/351/111 212/350/111 215/356/111 158/355/111 +f 215/356/112 216/358/112 159/357/112 +f 217/360/113 214/354/113 179/361/113 +f 4/4/79 3/3/79 218/362/79 210/363/79 +f 218/364/114 3/365/114 83/118/114 89/117/114 +f 23/26/115 22/25/115 199/306/115 37/309/115 +f 81/107/116 92/122/116 98/135/116 82/108/116 +f 12/12/117 11/11/117 36/144/117 35/143/117 +f 25/28/118 24/27/118 99/136/118 203/366/118 +f 204/317/119 103/316/119 120/367/119 187/368/119 +f 187/368/51 120/367/51 125/369/51 137/370/51 +f 137/370/120 125/369/120 134/289/120 138/288/120 +f 62/78/121 63/95/121 72/94/121 39/371/121 +f 17/372/122 9/373/122 80/287/122 18/286/122 +f 175/374/51 140/320/51 174/319/51 148/375/51 +f 215/376/123 212/377/123 211/378/123 214/379/123 217/380/123 219/381/123 220/382/123 221/383/123 216/384/123 +f 178/385/124 222/386/124 217/360/124 +f 179/361/125 178/385/125 217/360/125 +f 78/102/126 77/101/126 195/387/126 +f 58/72/127 186/269/127 59/73/127 +f 194/312/128 198/359/128 223/388/128 205/321/128 +f 74/98/129 201/310/129 222/386/129 178/385/129 +f 220/389/130 224/390/130 225/391/130 221/392/130 +f 221/392/131 225/391/131 223/388/131 216/358/131 +f 219/393/132 217/360/132 222/386/132 226/394/132 +f 208/395/133 207/396/133 227/397/133 228/398/133 +f 208/399/134 228/400/134 229/401/134 209/402/134 +f 209/402/135 229/401/135 201/310/135 76/100/135 +f 201/310/136 229/401/136 226/394/136 222/386/136 +f 224/403/137 226/394/137 229/401/137 228/400/137 +f 224/390/138 228/398/138 227/397/138 225/391/138 +f 205/321/139 223/388/139 225/391/139 227/397/139 +f 230/404/140 231/405/140 232/406/140 233/407/140 +f 40/53/16 47/236/16 234/408/16 42/55/16 +f 169/243/16 41/54/16 43/56/16 235/409/16 +f 236/410/141 237/411/141 238/412/141 239/413/141 +f 240/414/142 241/415/142 237/416/142 236/417/142 +f 242/418/143 243/419/143 244/420/143 245/421/143 +f 246/422/144 247/423/144 231/424/144 230/425/144 +f 248/426/145 249/427/145 247/428/145 246/429/145 +f 249/430/146 232/431/146 231/424/146 247/423/146 +f 241/432/71 243/433/71 238/412/71 237/411/71 +f 250/434/147 244/435/147 243/433/147 241/432/147 +f 244/435/148 250/434/148 232/431/148 249/430/148 +f 239/436/149 238/437/149 243/438/149 242/418/149 +f 233/407/150 251/439/150 252/440/150 230/404/150 +f 253/441/151 254/442/151 251/439/151 233/407/151 +f 233/407/152 232/443/152 250/444/152 253/441/152 +f 245/421/153 244/445/153 249/446/153 248/426/153 +f 242/418/71 255/447/71 256/448/71 239/436/71 +f 245/421/154 257/449/154 258/450/154 259/451/154 260/452/154 261/453/154 262/454/154 263/455/154 255/447/154 242/418/154 +f 253/441/155 250/456/155 241/457/155 240/414/155 +f 262/458/156 264/459/156 265/460/156 266/461/156 +f 261/462/157 267/463/157 264/459/157 262/458/157 +f 266/461/158 265/460/158 268/464/158 269/465/158 +f 264/459/159 267/463/159 268/464/159 265/460/159 +f 270/466/160 271/467/160 272/468/160 273/469/160 +f 273/469/161 272/468/161 274/470/161 257/471/161 +f 258/472/162 275/473/162 271/467/162 270/466/162 +f 275/473/163 274/470/163 272/468/163 271/467/163 +f 276/474/164 277/475/164 278/476/164 279/477/164 +f 279/477/165 278/476/165 280/478/165 259/479/165 +f 260/480/166 281/481/166 277/475/166 276/474/166 +f 281/481/159 280/478/159 278/476/159 277/475/159 +f 257/449/151 245/421/151 248/426/151 273/482/151 +f 257/471/167 274/470/167 275/473/167 258/472/167 +f 259/451/151 258/450/151 270/483/151 279/484/151 +f 259/479/168 280/478/168 281/481/168 260/480/168 +f 261/453/151 260/452/151 276/485/151 269/486/151 +f 269/465/169 268/464/169 267/463/169 261/462/169 +f 255/487/170 263/455/170 282/488/170 283/489/170 +f 283/490/171 282/488/171 266/491/171 269/486/171 276/485/171 279/484/171 270/483/171 273/482/171 248/426/171 246/429/171 +f 282/488/151 263/455/151 262/454/151 266/491/151 +f 59/73/172 190/492/172 60/74/172 +f 284/493/71 285/494/71 240/414/71 236/417/71 +f 285/494/173 254/442/173 253/441/173 240/414/173 +f 256/495/76 255/487/76 283/489/76 286/496/76 +f 5/5/16 66/84/16 287/497/16 6/6/16 +f 1/1/19 288/498/19 17/499/19 2/2/19 +f 288/498/71 10/10/71 9/9/71 17/499/71 +f 1/1/174 68/89/174 70/90/174 288/498/174 +f 38/500/79 289/501/79 62/502/79 39/503/79 +f 289/501/1 290/504/1 291/505/1 62/502/1 +f 4/4/175 69/88/175 68/87/175 1/1/175 +f 292/506/176 293/507/176 95/132/176 20/508/176 +f 89/509/177 90/510/177 293/507/177 292/511/177 +f 287/512/178 292/506/178 20/508/178 6/513/178 +f 293/507/179 99/136/179 93/123/179 95/132/179 +f 14/31/180 98/135/180 92/122/180 27/32/180 +f 30/45/51 107/158/51 105/157/51 36/46/51 +f 131/333/181 133/514/181 128/515/181 123/334/181 +f 157/255/71 175/254/71 148/516/71 147/517/71 +f 153/217/79 151/215/79 150/214/79 154/218/79 +f 189/275/51 44/274/51 181/518/51 180/519/51 +f 213/520/51 158/521/51 161/522/51 173/523/51 +f 162/524/182 163/293/182 186/292/182 185/525/182 +f 128/515/71 133/514/71 188/526/71 129/527/71 +f 162/524/183 185/525/183 213/520/183 173/523/183 +f 15/348/184 192/347/184 54/82/184 64/81/184 +f 293/507/185 90/510/185 203/366/185 99/136/185 +f 108/308/186 200/307/186 204/345/186 121/346/186 +f 185/268/187 182/267/187 189/352/187 213/351/187 +f 4/4/188 210/363/188 71/93/188 69/96/188 +f 10/10/189 288/498/189 70/280/189 192/281/189 +f 66/84/15 210/344/15 218/528/15 287/497/15 +f 218/529/190 89/509/190 292/511/190 287/530/190 +f 40/61/191 39/531/191 72/332/191 48/331/191 +f 220/532/192 219/393/192 226/394/192 224/403/192 +f 207/396/193 202/313/193 205/321/193 227/397/193 +f 51/65/1 294/533/1 295/534/1 52/66/1 +f 62/502/1 291/505/1 294/533/1 51/65/1 +f 52/66/1 295/534/1 290/504/1 289/501/1 +f 252/535/51 285/536/51 284/537/51 296/538/51 +f 171/539/76 297/540/76 298/541/76 299/542/76 300/543/76 168/544/76 167/545/76 172/546/76 +f 289/501/194 38/500/194 299/547/194 298/548/194 +f 46/59/195 162/233/195 173/248/195 +f 163/235/196 57/234/196 191/549/196 +f 38/51/197 41/54/197 300/550/197 299/551/197 +f 166/240/198 46/59/198 172/552/198 167/553/198 +f 52/66/199 289/501/199 298/554/199 297/555/199 +f 41/54/200 169/243/200 168/556/200 300/557/200 +f 52/66/201 297/558/201 171/559/201 170/244/201 +f 191/549/71 57/234/71 56/103/71 79/104/71 +f 153/560/51 188/273/51 142/272/51 151/561/51 +f 188/526/51 153/562/51 156/563/51 129/527/51 +f 129/185/51 156/564/51 143/565/51 130/186/51 +f 130/201/51 143/566/51 146/567/51 139/202/51 +f 152/568/51 141/204/51 140/203/51 175/569/51 +f 141/205/51 152/570/51 151/571/51 142/206/51 +f 301/572/51 302/573/51 303/574/51 304/575/51 +f 285/536/202 252/535/202 251/439/202 254/442/202 +f 160/247/19 52/66/19 170/244/19 161/249/19 +f 57/234/3 196/576/3 164/238/3 65/237/3 +f 196/576/203 57/234/203 184/577/203 +f 165/239/2 197/578/2 47/236/2 +f 197/578/2 177/579/2 169/243/2 47/236/2 +f 169/243/2 177/579/2 176/580/2 +f 176/580/2 181/581/2 166/240/2 169/243/2 +f 46/59/204 45/58/204 184/577/204 57/234/204 +f 46/59/3 166/240/3 181/581/3 44/57/3 +f 235/409/16 234/408/16 47/236/16 169/243/16 +f 305/582/76 306/583/76 307/584/76 308/585/76 +f 304/586/205 309/587/205 310/588/205 311/589/205 +f 303/590/3 312/591/3 309/587/3 304/586/3 +f 306/592/79 302/593/79 301/594/79 313/595/79 314/596/79 307/597/79 +f 315/598/206 316/599/206 317/600/206 318/601/206 +f 307/597/207 314/596/207 319/602/207 320/603/207 321/604/207 322/605/207 323/606/207 324/607/207 316/599/207 315/598/207 +f 308/585/208 307/584/208 315/598/208 318/601/208 +f 324/608/209 325/609/209 326/610/209 327/611/209 +f 325/612/206 324/607/206 323/606/206 328/613/206 +f 329/614/210 328/615/210 330/616/210 331/617/210 +f 329/618/206 322/605/206 321/604/206 332/619/206 +f 333/620/211 332/621/211 334/622/211 335/623/211 +f 333/624/206 320/603/206 319/602/206 336/625/206 +f 330/616/212 337/626/212 338/627/212 331/617/212 +f 328/615/213 323/628/213 337/626/213 330/616/213 +f 322/629/214 329/614/214 331/617/214 338/627/214 +f 323/628/215 322/629/215 338/627/215 337/626/215 +f 334/622/216 339/630/216 340/631/216 335/623/216 +f 332/621/217 321/632/217 339/630/217 334/622/217 +f 320/633/218 333/620/218 335/623/218 340/631/218 +f 321/632/219 320/633/219 340/631/219 339/630/219 +f 341/634/212 342/635/212 327/611/212 326/610/212 +f 316/636/220 324/608/220 327/611/220 342/635/220 +f 325/609/221 317/637/221 341/634/221 326/610/221 +f 317/637/222 316/636/222 342/635/222 341/634/222 +f 310/588/223 309/587/223 343/638/223 344/639/223 +f 336/625/224 345/640/224 308/641/224 318/601/224 317/600/224 325/612/224 328/613/224 329/618/224 332/619/224 333/624/224 +f 345/640/3 346/642/3 305/643/3 308/641/3 +f 336/625/225 319/602/225 347/644/225 348/645/225 +f 349/646/226 310/588/226 344/647/226 350/648/226 +f 310/588/206 349/646/206 351/649/206 311/589/206 +f 349/646/227 313/595/227 301/594/227 351/649/227 +f 346/642/228 345/640/228 352/650/228 353/651/228 +f 348/652/229 347/653/229 350/654/229 344/655/229 +f 344/655/230 343/656/230 352/657/230 348/652/230 +f 343/656/3 354/658/3 353/659/3 352/657/3 +f 347/653/231 355/660/231 356/661/231 350/654/231 +f 319/602/232 314/596/232 355/662/232 347/663/232 +f 314/664/233 313/665/233 356/661/233 355/660/233 +f 345/640/234 336/625/234 348/666/234 352/667/234 +f 309/587/235 312/591/235 354/668/235 343/669/235 +f 312/670/236 346/671/236 353/659/236 354/658/236 +f 313/595/237 349/646/237 350/672/237 356/673/237 +f 304/575/238 311/589/238 351/649/238 301/572/238 +f 60/74/16 190/492/16 193/311/16 +f 246/429/15 230/404/15 252/440/15 296/674/15 286/675/15 283/490/15 +f 206/322/239 78/102/239 195/387/239 +f 195/387/240 183/266/240 206/322/240 +f 216/358/241 223/388/241 198/359/241 +f 214/354/242 180/353/242 179/361/242 +o Rail_Cube +v -1.606489 0.994589 3.070837 +v -1.606489 1.084445 3.070837 +v -1.606489 1.084277 2.929163 +v -1.606489 0.994589 2.929163 +v -0.511384 1.084480 2.929163 +v -0.514357 1.052983 2.929163 +v -0.549767 1.006668 2.929163 +v -0.549767 0.994589 2.929163 +v 1.313063 1.160981 3.058974 +v 1.498769 1.160981 3.058974 +v 1.498532 1.230366 3.031927 +v 1.312826 1.230366 3.031927 +v 1.225298 0.994589 3.070837 +v 1.225298 1.084445 3.070837 +v 0.962233 1.084445 3.070837 +v 0.964610 1.052983 3.070837 +v 1.000021 1.006668 3.070837 +v 1.000021 0.994589 3.070837 +v -0.197543 0.994589 2.929163 +v 0.049014 0.994589 2.929163 +v 0.049014 0.994589 3.070837 +v -0.197543 0.994589 3.070837 +v 0.401239 0.994589 2.929163 +v 0.647796 0.994589 2.929163 +v 0.647796 0.994589 3.070837 +v 0.401239 0.994589 3.070837 +v 1.000021 0.994589 2.929163 +v 1.225298 0.994589 2.929163 +v -0.549767 0.994589 3.070837 +v 1.225298 1.143051 2.956872 +v -1.531817 1.143051 2.956872 +v -1.531817 1.143051 3.043128 +v 1.225298 1.143051 3.043128 +v 1.313063 0.996053 3.070837 +v 1.498769 0.996053 3.070837 +v 1.313063 1.160981 2.941026 +v 1.313063 0.996053 2.929163 +v 1.225298 1.084802 2.929163 +v 1.269521 1.219445 3.031927 +v 1.498769 0.996053 2.929163 +v 1.498769 1.160981 2.941026 +v 1.312826 1.230366 2.968073 +v 1.498532 1.230366 2.968073 +v 1.575087 0.954078 2.929163 +v 1.575087 1.119006 2.929163 +v 1.575087 1.119006 3.070837 +v 1.575087 0.954078 3.070837 +v 1.269521 1.219445 2.968073 +v 1.554546 1.188392 3.031927 +v 1.554546 1.188392 2.968073 +v -0.514597 1.084445 3.070837 +v -0.234129 1.084445 3.070837 +v 0.083877 1.084445 3.070837 +v 0.364860 1.084445 3.070837 +v 0.682044 1.084445 3.070837 +v 0.964998 1.084754 2.929163 +v 0.683980 1.084702 2.929163 +v 0.366670 1.084643 2.929163 +v 0.084942 1.084590 2.929163 +v -0.230760 1.084532 2.929163 +v -0.232953 1.052983 2.929163 +v -0.232953 1.052983 3.070837 +v -0.514357 1.052983 3.070837 +v -0.197543 1.006668 3.070837 +v -0.197543 1.006668 2.929163 +v -0.549767 1.006668 3.070837 +v 0.084425 1.052983 2.929163 +v 0.365828 1.052983 2.929163 +v 0.365828 1.052983 3.070837 +v 0.084425 1.052983 3.070837 +v 0.401239 1.006668 3.070837 +v 0.401239 1.006668 2.929163 +v 0.049014 1.006668 2.929163 +v 0.049014 1.006668 3.070837 +v 0.683207 1.052983 2.929163 +v 0.964610 1.052983 2.929163 +v 0.683207 1.052983 3.070837 +v 1.000021 1.006668 2.929163 +v 0.647796 1.006668 2.929163 +v 0.647796 1.006668 3.070837 +vt 0.000044 0.107430 +vt 0.024656 0.106940 +vt 0.025382 0.145745 +vt 0.000816 0.146234 +vt 0.030452 0.180549 +vt 0.030675 0.155877 +vt 0.331921 0.150233 +vt 0.331137 0.165014 +vt 0.321371 0.177755 +vt 0.321356 0.182832 +vt 0.841452 0.074598 +vt 0.898560 0.067293 +vt 0.901417 0.090204 +vt 0.844308 0.097509 +vt 0.805805 0.056957 +vt 0.805905 0.081576 +vt 0.733831 0.081869 +vt 0.734447 0.073247 +vt 0.744097 0.060518 +vt 0.744084 0.057208 +vt 0.418878 0.198936 +vt 0.488701 0.198936 +vt 0.488701 0.239057 +vt 0.418878 0.239057 +vt 0.608256 0.198936 +vt 0.678079 0.198936 +vt 0.678079 0.239057 +vt 0.608256 0.239057 +vt 0.797634 0.198936 +vt 0.861431 0.198936 +vt 0.861431 0.239057 +vt 0.797634 0.239057 +vt 0.000064 0.239057 +vt 0.000064 0.198936 +vt 0.299323 0.198936 +vt 0.299323 0.239057 +vt 0.806959 0.123674 +vt 0.051262 0.137650 +vt 0.050803 0.114024 +vt 0.805978 0.099337 +vt 0.834948 0.023749 +vt 0.892056 0.016444 +vt 0.848703 0.139669 +vt 0.848775 0.194135 +vt 0.819931 0.196127 +vt 0.818378 0.166453 +vt 0.819259 0.145224 +vt 0.808731 0.055009 +vt 0.805001 0.027402 +vt 0.832026 0.024208 +vt 0.813249 0.074592 +vt 0.886289 0.198936 +vt 0.886289 0.239057 +vt 0.830535 0.096090 +vt 0.938880 0.198936 +vt 0.938880 0.239057 +vt 0.907329 0.133247 +vt 0.846631 0.116524 +vt 0.903929 0.109840 +vt 0.854421 0.191870 +vt 0.913047 0.185448 +vt 0.999956 0.109718 +vt 0.949237 0.116206 +vt 0.943664 0.072638 +vt 0.994383 0.066151 +vt 0.916522 0.186846 +vt 0.934269 0.143004 +vt 0.943667 0.196128 +vt 0.890641 0.016645 +vt 0.911939 0.000044 +vt 0.920047 0.050529 +vt 0.963546 0.198936 +vt 0.963546 0.239057 +vt 0.833077 0.119378 +vt 0.831048 0.100155 +vt 0.922942 0.087450 +vt 0.925454 0.107087 +vt 0.917732 0.075896 +vt 0.923810 0.118972 +vt 0.030004 0.096674 +vt 0.329071 0.090840 +vt 0.405999 0.085274 +vt 0.493182 0.082863 +vt 0.570163 0.082535 +vt 0.657065 0.082182 +vt 0.807446 0.134947 +vt 0.761956 0.136920 +vt 0.712846 0.139052 +vt 0.657390 0.141473 +vt 0.607889 0.143639 +vt 0.517990 0.146718 +vt 0.319255 0.198936 +vt 0.398947 0.198936 +vt 0.398947 0.239057 +vt 0.319255 0.239057 +vt 0.415457 0.239057 +vt 0.415457 0.198936 +vt 0.302744 0.198936 +vt 0.302744 0.239057 +vt 0.508633 0.198936 +vt 0.588324 0.198936 +vt 0.588325 0.239057 +vt 0.508633 0.239057 +vt 0.604835 0.239057 +vt 0.604835 0.198936 +vt 0.492122 0.198936 +vt 0.492122 0.239057 +vt 0.698011 0.198936 +vt 0.777702 0.198936 +vt 0.777702 0.239057 +vt 0.698011 0.239057 +vt 0.794213 0.239057 +vt 0.794213 0.198936 +vt 0.681500 0.198936 +vt 0.681500 0.239057 +vt 0.570392 0.073909 +vt 0.493194 0.074229 +vt 0.657348 0.073560 +vt 0.580043 0.061180 +vt 0.580030 0.057871 +vt 0.647582 0.057600 +vt 0.647596 0.060910 +vt 0.405892 0.076638 +vt 0.415271 0.063632 +vt 0.415179 0.060309 +vt 0.483008 0.058434 +vt 0.483100 0.061757 +vt 0.328731 0.082202 +vt 0.029525 0.072069 +vt 0.318891 0.066437 +vt 0.321825 0.067919 +vt 0.762127 0.142476 +vt 0.808127 0.150713 +vt 0.768757 0.152413 +vt 0.766843 0.151519 +vt 0.712952 0.144596 +vt 0.657585 0.147020 +vt 0.707119 0.152950 +vt 0.707211 0.155057 +vt 0.664206 0.156936 +vt 0.664114 0.154829 +vt 0.608341 0.150969 +vt 0.517035 0.161727 +vt 0.599554 0.164923 +vt 0.599986 0.168387 +vt 0.529279 0.177207 +vt 0.528847 0.173743 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.3632 0.9317 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0717 0.9974 +vn -0.0132 0.1253 -0.9920 +vn -0.0136 0.1253 0.9920 +vn 0.0167 -0.9999 0.0000 +vn -0.1793 0.2999 0.9370 +vn 0.0000 0.3632 -0.9317 +vn 0.0000 0.0717 -0.9974 +vn 1.0000 0.0000 0.0000 +vn -0.0578 0.0359 -0.9977 +vn -0.0578 0.0359 0.9977 +vn -0.4819 -0.8762 0.0000 +vn -0.2445 0.9696 0.0000 +vn 0.5997 0.8003 0.0000 +vn 0.2041 0.4450 0.8720 +vn 0.9589 0.2839 0.0000 +vn -0.8655 0.5010 0.0000 +vn -0.1793 0.2999 -0.9370 +vn 0.2041 0.4450 -0.8720 +vn 0.0000 0.4274 0.9040 +vn -0.6179 0.7862 -0.0006 +vn -0.0000 0.4280 -0.9038 +vn 0.7944 -0.6074 0.0000 +vn -0.7944 -0.6074 0.0000 +s off +f 357/676/243 358/677/243 359/678/243 360/679/243 +f 360/680/244 359/681/244 361/682/244 362/683/244 363/684/244 364/685/244 +f 365/686/245 366/687/245 367/688/245 368/689/245 +f 369/690/246 370/691/246 371/692/246 372/693/246 373/694/246 374/695/246 +f 375/696/247 376/697/247 377/698/247 378/699/247 +f 379/700/247 380/701/247 381/702/247 382/703/247 +f 383/704/247 384/705/247 369/706/247 374/707/247 +f 357/708/247 360/709/247 364/710/247 385/711/247 +f 386/712/248 387/713/248 388/714/248 389/715/248 +f 365/686/249 390/716/249 391/717/249 366/687/249 +f 392/718/250 393/719/250 384/720/250 394/721/250 386/722/250 +f 370/723/251 369/724/251 390/725/251 365/686/251 389/726/251 +f 369/706/252 384/705/252 393/727/252 390/728/252 +f 389/726/253 365/686/253 368/689/253 395/729/253 +f 390/728/247 393/727/247 396/730/247 391/731/247 +f 397/732/254 392/718/254 398/733/254 399/734/254 +f 393/735/255 392/718/255 397/732/255 396/736/255 +f 400/737/256 401/738/256 402/739/256 403/740/256 +f 396/741/257 397/732/257 401/742/257 400/743/257 +f 366/687/258 391/744/258 403/745/258 402/746/258 +f 391/731/259 396/730/259 400/747/259 403/748/259 +f 404/749/260 395/750/260 368/689/260 398/733/260 +f 399/734/261 367/688/261 405/751/261 406/752/261 +f 398/733/248 368/689/248 367/688/248 399/734/248 +f 366/687/262 402/746/262 405/753/262 367/688/262 +f 402/739/263 401/738/263 406/752/263 405/751/263 +f 386/712/264 389/715/264 395/750/264 404/749/264 +f 392/718/265 386/722/265 404/749/265 398/733/265 +f 401/742/266 397/732/266 399/734/266 406/754/266 +f 358/755/267 407/756/267 408/757/267 409/758/267 410/759/267 411/760/267 371/692/267 370/691/267 389/715/267 388/714/267 +f 359/678/268 358/677/268 388/714/268 387/713/268 +f 394/761/269 412/762/269 413/763/269 414/764/269 415/765/269 416/766/269 361/682/269 359/681/269 387/713/269 386/712/269 +f 362/767/247 417/768/247 418/769/247 419/770/247 +f 378/699/243 420/771/243 421/772/243 375/696/243 +f 364/710/256 363/773/256 422/774/256 385/711/256 +f 363/773/270 362/767/270 419/770/270 422/774/270 +f 418/769/271 417/768/271 421/772/271 420/771/271 +f 423/775/247 424/776/247 425/777/247 426/778/247 +f 382/703/243 427/779/243 428/780/243 379/700/243 +f 376/697/256 429/781/256 430/782/256 377/698/256 +f 429/781/270 423/775/270 426/778/270 430/782/270 +f 428/780/271 427/779/271 425/777/271 424/776/271 +f 431/783/247 432/784/247 372/785/247 433/786/247 +f 373/787/243 434/788/243 383/704/243 374/707/243 +f 380/701/256 435/789/256 436/790/256 381/702/256 +f 436/790/270 435/789/270 431/783/270 433/786/270 +f 372/785/271 432/784/271 434/788/271 373/787/271 +f 425/791/246 410/759/246 409/758/246 426/792/246 +f 433/793/246 411/760/246 410/759/246 425/791/246 427/794/246 382/795/246 381/796/246 436/797/246 +f 372/693/246 371/692/246 411/760/246 433/793/246 +f 426/792/246 409/758/246 408/757/246 418/798/246 420/799/246 378/800/246 377/801/246 430/802/246 +f 418/798/246 408/757/246 407/756/246 419/803/246 +f 419/803/246 407/756/246 358/755/246 357/804/246 385/805/246 422/806/246 +f 432/807/244 412/762/244 394/761/244 384/808/244 383/809/244 434/810/244 +f 431/811/244 413/763/244 412/762/244 432/807/244 +f 424/812/244 414/764/244 413/763/244 431/811/244 435/813/244 380/814/244 379/815/244 428/816/244 +f 423/817/244 415/765/244 414/764/244 424/812/244 +f 417/818/244 416/766/244 415/765/244 423/817/244 429/819/244 376/820/244 375/821/244 421/822/244 +f 362/683/244 361/682/244 416/766/244 417/818/244 +o CoiCanon_Cylinder.004 +v -0.419369 0.526526 2.793014 +v 0.947632 0.526526 2.793014 +v 0.947632 0.380164 2.853639 +v -0.419369 0.380164 2.853639 +v 0.947632 0.319540 3.000000 +v -0.419369 0.319540 3.000000 +v 0.947632 0.380164 3.146361 +v -0.419369 0.380164 3.146361 +v 0.947632 0.526526 3.206986 +v -0.419369 0.526526 3.206986 +v 0.947632 0.672887 3.146361 +v -0.419369 0.672887 3.146361 +v 0.947632 0.733512 3.000000 +v -0.419369 0.733512 3.000000 +v 0.947632 0.672887 2.853639 +v -0.419369 0.672887 2.853639 +vt 0.000126 0.575971 +vt 0.828281 0.575971 +vt 0.828281 0.671946 +vt 0.000126 0.671946 +vt 0.828281 0.767920 +vt 0.000126 0.767920 +vt 0.000126 0.000126 +vt 0.828282 0.000127 +vt 0.828282 0.096101 +vt 0.000126 0.096100 +vt 0.828282 0.192075 +vt 0.000126 0.192075 +vt 0.828282 0.288049 +vt 0.000126 0.288049 +vt 0.828281 0.384023 +vt 0.000126 0.384023 +vt 0.232080 0.836036 +vt 0.299945 0.768172 +vt 0.395919 0.768172 +vt 0.463783 0.836036 +vt 0.463783 0.932010 +vt 0.395919 0.999874 +vt 0.299944 0.999874 +vt 0.232081 0.932010 +vt 0.828281 0.479997 +vt 0.000126 0.479997 +vt 0.163964 0.999874 +vt 0.067990 0.999874 +vt 0.000126 0.932010 +vt 0.000126 0.836036 +vt 0.067990 0.768172 +vt 0.163964 0.768172 +vt 0.231828 0.836036 +vt 0.231828 0.932010 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.9239 0.3827 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 0.3827 -0.9239 +vn -1.0000 0.0000 0.0000 +s off +f 437/823/272 438/824/272 439/825/272 440/826/272 +f 440/826/273 439/825/273 441/827/273 442/828/273 +f 442/829/274 441/830/274 443/831/274 444/832/274 +f 444/832/275 443/831/275 445/833/275 446/834/275 +f 446/834/276 445/833/276 447/835/276 448/836/276 +f 448/836/277 447/835/277 449/837/277 450/838/277 +f 439/839/278 438/840/278 451/841/278 449/842/278 447/843/278 445/844/278 443/845/278 441/846/278 +f 450/838/279 449/837/279 451/847/279 452/848/279 +f 452/848/280 451/847/280 438/824/280 437/823/280 +f 437/849/281 440/850/281 442/851/281 444/852/281 446/853/281 448/854/281 450/855/281 452/856/281 +o SideScrews_Cylinder.005 +v -0.436383 0.265019 3.509254 +v 1.004741 0.265019 3.509254 +v 1.004741 0.179718 3.544586 +v -0.436383 0.179718 3.544586 +v 1.004741 0.144386 3.629887 +v -0.436383 0.144385 3.629887 +v 1.004741 0.179718 3.715187 +v -0.436383 0.179718 3.715187 +v 1.004741 0.265019 3.750520 +v -0.436383 0.265019 3.750520 +v 1.004741 0.350319 3.715187 +v -0.436383 0.350319 3.715187 +v 1.004741 0.385652 3.629887 +v -0.436383 0.385652 3.629887 +v 1.088061 0.265019 3.750520 +v 1.088061 0.350319 3.715187 +v 1.004741 0.350319 3.544586 +v -0.436383 0.350319 3.544586 +v -0.513171 0.364069 3.629887 +v -0.513171 0.335058 3.699926 +v -0.513171 0.265019 3.530836 +v -0.513171 0.194979 3.559848 +v -0.513171 0.165968 3.629887 +v -0.513171 0.194979 3.699926 +v -0.513171 0.265019 3.728937 +v -0.513171 0.335058 3.559848 +v 1.088061 0.265019 3.509254 +v 1.088061 0.350319 3.544586 +v 1.100404 0.336110 3.558795 +v 1.100404 0.265019 3.529348 +v 1.088061 0.179718 3.544586 +v 1.088061 0.144386 3.629887 +v 1.088061 0.179718 3.715187 +v 1.088061 0.385652 3.629887 +v 1.100404 0.336110 3.700979 +v 1.100404 0.365558 3.629887 +v 1.100404 0.193927 3.700979 +v 1.100404 0.265019 3.730426 +v 1.100404 0.193927 3.558795 +v 1.100404 0.164480 3.629887 +v 1.127149 0.181939 3.629887 +v 1.127149 0.206273 3.688633 +v 1.127149 0.206273 3.571141 +v 1.127149 0.265019 3.546807 +v 1.127149 0.323765 3.571141 +v 1.127149 0.348098 3.629887 +v 1.127149 0.323765 3.688633 +v 1.127149 0.265019 3.712966 +v -0.436384 0.265019 2.490746 +v -0.436384 0.179718 2.455414 +v 1.004741 0.179718 2.455414 +v 1.004741 0.265019 2.490746 +v -0.436384 0.144385 2.370113 +v 1.004741 0.144386 2.370113 +v -0.436384 0.179718 2.284813 +v 1.004741 0.179718 2.284813 +v -0.436384 0.265019 2.249480 +v 1.004741 0.265019 2.249480 +v -0.436384 0.350319 2.284813 +v 1.004741 0.350319 2.284813 +v -0.436384 0.385652 2.370113 +v 1.004741 0.385652 2.370113 +v 1.088061 0.350319 2.284813 +v 1.088061 0.265019 2.249480 +v -0.436384 0.350319 2.455414 +v 1.004741 0.350319 2.455414 +v -0.513171 0.335058 2.300074 +v -0.513171 0.364069 2.370113 +v -0.513171 0.265019 2.469164 +v -0.513171 0.335058 2.440152 +v -0.513171 0.265019 2.271063 +v -0.513171 0.194979 2.300074 +v -0.513171 0.165968 2.370113 +v -0.513171 0.194979 2.440152 +v 1.088061 0.265019 2.490746 +v 1.100404 0.265019 2.470652 +v 1.100404 0.336111 2.441205 +v 1.088061 0.350319 2.455414 +v 1.088061 0.179718 2.455414 +v 1.088061 0.179718 2.284813 +v 1.088061 0.144386 2.370113 +v 1.088061 0.385652 2.370113 +v 1.100404 0.365558 2.370113 +v 1.100404 0.336110 2.299021 +v 1.100404 0.265019 2.269574 +v 1.100404 0.193927 2.299021 +v 1.100404 0.164480 2.370113 +v 1.100404 0.193927 2.441205 +v 1.127149 0.206273 2.311367 +v 1.127149 0.181939 2.370113 +v 1.127149 0.206273 2.428859 +v 1.127149 0.265019 2.287034 +v 1.127149 0.323765 2.311367 +v 1.127149 0.348098 2.370113 +v 1.127149 0.323765 2.428859 +v 1.127149 0.265019 2.453193 +vt 0.047908 0.778254 +vt 0.915002 0.778254 +vt 0.915002 0.833806 +vt 0.047908 0.833806 +vt 0.915002 0.889359 +vt 0.047908 0.889358 +vt 0.047908 0.444941 +vt 0.915002 0.444941 +vt 0.915002 0.500493 +vt 0.047908 0.500493 +vt 0.915002 0.556045 +vt 0.047908 0.556045 +vt 0.915002 0.611597 +vt 0.047908 0.611598 +vt 0.915002 0.667149 +vt 0.047908 0.667150 +vt 0.965134 0.556045 +vt 0.965134 0.611597 +vt 0.915002 0.722702 +vt 0.047908 0.722702 +vt 0.000174 0.662180 +vt 0.000174 0.616567 +vt 0.188508 0.999826 +vt 0.142894 0.999826 +vt 0.110641 0.967572 +vt 0.110641 0.921959 +vt 0.142895 0.889706 +vt 0.188508 0.889706 +vt 0.220761 0.921959 +vt 0.220761 0.967572 +vt 0.000174 0.551076 +vt 0.000174 0.505463 +vt 0.000174 0.717732 +vt 0.000174 0.672119 +vt 0.000174 0.884388 +vt 0.000174 0.838776 +vt 0.000174 0.606628 +vt 0.000174 0.561015 +vt 0.000174 0.773284 +vt 0.000174 0.727671 +vt 0.000174 0.828837 +vt 0.000174 0.783223 +vt 0.000174 0.495524 +vt 0.000174 0.449911 +vt 0.965134 0.778254 +vt 0.965134 0.722702 +vt 0.978548 0.727329 +vt 0.978548 0.773627 +vt 0.965134 0.833806 +vt 0.965134 0.444941 +vt 0.965134 0.500493 +vt 0.965134 0.667149 +vt 0.965134 0.889359 +vt 0.978548 0.616224 +vt 0.978548 0.662523 +vt 0.978548 0.505120 +vt 0.978548 0.551419 +vt 0.978548 0.838433 +vt 0.978548 0.884732 +vt 0.978548 0.671776 +vt 0.978548 0.718075 +vt 0.978548 0.560672 +vt 0.978548 0.606970 +vt 0.978548 0.449567 +vt 0.978548 0.495866 +vt 0.978548 0.782880 +vt 0.978548 0.829179 +vt 0.997340 0.453587 +vt 0.997340 0.491846 +vt 0.313821 0.916759 +vt 0.340874 0.889706 +vt 0.379132 0.889706 +vt 0.406185 0.916760 +vt 0.406185 0.955018 +vt 0.379132 0.982071 +vt 0.340873 0.982071 +vt 0.313820 0.955018 +vt 0.997340 0.786900 +vt 0.997340 0.825159 +vt 0.997340 0.731349 +vt 0.997339 0.769607 +vt 0.997340 0.620244 +vt 0.997340 0.658502 +vt 0.997340 0.509140 +vt 0.997340 0.547398 +vt 0.997340 0.842454 +vt 0.997340 0.880712 +vt 0.997340 0.675796 +vt 0.997340 0.714055 +vt 0.997340 0.564692 +vt 0.997340 0.602951 +vt 0.047908 0.111279 +vt 0.047908 0.055726 +vt 0.915003 0.055729 +vt 0.915003 0.111281 +vt 0.047908 0.000174 +vt 0.915003 0.000177 +vt 0.047907 0.444592 +vt 0.047907 0.389040 +vt 0.915002 0.389041 +vt 0.915002 0.444593 +vt 0.047907 0.333487 +vt 0.915002 0.333489 +vt 0.047907 0.277935 +vt 0.915002 0.277937 +vt 0.047908 0.222383 +vt 0.915002 0.222385 +vt 0.965134 0.277937 +vt 0.965134 0.333489 +vt 0.047908 0.166830 +vt 0.915003 0.166833 +vt 0.000174 0.272966 +vt 0.000174 0.227352 +vt 0.032427 0.889706 +vt 0.078041 0.889706 +vt 0.110294 0.921960 +vt 0.110294 0.967573 +vt 0.078041 0.999826 +vt 0.032427 0.999826 +vt 0.000174 0.967573 +vt 0.000174 0.921960 +vt 0.000174 0.384070 +vt 0.000174 0.338457 +vt 0.000174 0.217413 +vt 0.000174 0.171800 +vt 0.000175 0.050756 +vt 0.000175 0.005143 +vt 0.000174 0.328517 +vt 0.000174 0.282904 +vt 0.000174 0.161861 +vt 0.000175 0.116248 +vt 0.000175 0.106309 +vt 0.000175 0.060695 +vt 0.000174 0.439622 +vt 0.000174 0.394009 +vt 0.965135 0.111281 +vt 0.978548 0.115908 +vt 0.978548 0.162207 +vt 0.965135 0.166833 +vt 0.965135 0.055729 +vt 0.965134 0.389041 +vt 0.965134 0.444593 +vt 0.965134 0.222385 +vt 0.965135 0.000177 +vt 0.978548 0.227012 +vt 0.978548 0.273311 +vt 0.978547 0.338116 +vt 0.978547 0.384414 +vt 0.978548 0.004803 +vt 0.978548 0.051102 +vt 0.978547 0.171460 +vt 0.978547 0.217759 +vt 0.978547 0.282564 +vt 0.978547 0.328863 +vt 0.978548 0.393668 +vt 0.978548 0.439967 +vt 0.978548 0.060356 +vt 0.978548 0.106654 +vt 0.997340 0.397688 +vt 0.997340 0.435947 +vt 0.248162 0.982070 +vt 0.221109 0.955017 +vt 0.221109 0.916758 +vt 0.248162 0.889706 +vt 0.286421 0.889706 +vt 0.313473 0.916759 +vt 0.313473 0.955017 +vt 0.286420 0.982071 +vt 0.997340 0.064376 +vt 0.997340 0.102635 +vt 0.997340 0.119928 +vt 0.997341 0.158187 +vt 0.997340 0.231032 +vt 0.997340 0.269291 +vt 0.997339 0.342136 +vt 0.997339 0.380394 +vt 0.997340 0.008823 +vt 0.997340 0.047082 +vt 0.997339 0.175480 +vt 0.997339 0.213738 +vt 0.997340 0.286584 +vt 0.997340 0.324842 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.9239 0.3827 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 0.3827 -0.9239 +vn -0.2513 0.8942 0.3704 +vn -1.0000 0.0000 0.0000 +vn -0.2513 -0.3704 0.8942 +vn -0.2513 0.8942 -0.3704 +vn -0.2513 -0.8942 -0.3704 +vn -0.2513 0.3704 0.8942 +vn -0.2513 0.3704 -0.8942 +vn -0.2513 -0.3704 -0.8942 +vn -0.2513 -0.8942 0.3704 +vn 0.8327 0.2119 -0.5115 +vn 0.8327 0.5115 0.2119 +vn 0.8327 -0.2119 0.5115 +vn 0.8327 -0.5115 -0.2119 +vn 0.8327 0.5115 -0.2119 +vn 0.8327 0.2119 0.5115 +vn 0.8327 -0.5115 0.2119 +vn 0.8327 -0.2119 -0.5115 +vn 0.5165 -0.7911 0.3277 +vn 1.0000 0.0000 0.0000 +vn 0.5165 -0.3277 -0.7911 +vn 0.5165 0.3277 -0.7911 +vn 0.5165 0.7911 0.3277 +vn 0.5165 -0.3277 0.7911 +vn 0.5165 -0.7911 -0.3277 +vn 0.5165 0.7911 -0.3277 +vn 0.5165 0.3277 0.7911 +s off +f 453/857/282 454/858/282 455/859/282 456/860/282 +f 456/860/283 455/859/283 457/861/283 458/862/283 +f 458/863/284 457/864/284 459/865/284 460/866/284 +f 460/866/285 459/865/285 461/867/285 462/868/285 +f 462/868/286 461/867/286 463/869/286 464/870/286 +f 464/870/287 463/869/287 465/871/287 466/872/287 +f 463/869/286 461/867/286 467/873/286 468/874/286 +f 466/872/288 465/871/288 469/875/288 470/876/288 +f 470/876/289 469/875/289 454/858/289 453/857/289 +f 464/870/290 466/872/290 471/877/290 472/878/290 +f 473/879/291 474/880/291 475/881/291 476/882/291 477/883/291 472/884/291 471/885/291 478/886/291 +f 460/866/292 462/868/292 477/887/292 476/888/292 +f 466/872/293 470/876/293 478/889/293 471/890/293 +f 456/860/294 458/862/294 475/891/294 474/892/294 +f 462/868/295 464/870/295 472/893/295 477/894/295 +f 470/876/296 453/857/296 473/895/296 478/896/296 +f 453/857/297 456/860/297 474/897/297 473/898/297 +f 458/863/298 460/866/298 476/899/298 475/900/298 +f 479/901/299 480/902/299 481/903/299 482/904/299 +f 454/858/289 469/875/289 480/902/289 479/901/289 +f 455/859/282 454/858/282 479/901/282 483/905/282 +f 459/865/284 457/864/284 484/906/284 485/907/284 +f 465/871/287 463/869/287 468/874/287 486/908/287 +f 461/867/285 459/865/285 485/907/285 467/873/285 +f 469/875/288 465/871/288 486/908/288 480/902/288 +f 457/861/283 455/859/283 483/905/283 484/909/283 +f 486/908/300 468/874/300 487/910/300 488/911/300 +f 467/873/301 485/907/301 489/912/301 490/913/301 +f 484/909/302 483/905/302 491/914/302 492/915/302 +f 480/902/303 486/908/303 488/916/303 481/917/303 +f 468/874/304 467/873/304 490/918/304 487/919/304 +f 485/907/305 484/906/305 492/920/305 489/921/305 +f 483/905/306 479/901/306 482/922/306 491/923/306 +f 489/921/307 492/920/307 493/924/307 494/925/307 +f 495/926/308 496/927/308 497/928/308 498/929/308 499/930/308 500/931/308 494/932/308 493/933/308 +f 491/923/309 482/922/309 496/934/309 495/935/309 +f 482/904/310 481/903/310 497/936/310 496/937/310 +f 488/911/311 487/910/311 499/938/311 498/939/311 +f 490/913/312 489/912/312 494/940/312 500/941/312 +f 492/915/313 491/914/313 495/942/313 493/943/313 +f 481/917/314 488/916/314 498/944/314 497/945/314 +f 487/919/315 490/918/315 500/946/315 499/947/315 +f 501/948/285 502/949/285 503/950/285 504/951/285 +f 502/949/284 505/952/284 506/953/284 503/950/284 +f 505/954/283 507/955/283 508/956/283 506/957/283 +f 507/955/282 509/958/282 510/959/282 508/956/282 +f 509/958/289 511/960/289 512/961/289 510/959/289 +f 511/960/288 513/962/288 514/963/288 512/961/288 +f 512/961/289 515/964/289 516/965/289 510/959/289 +f 513/962/287 517/966/287 518/967/287 514/963/287 +f 517/966/286 501/948/286 504/951/286 518/967/286 +f 511/960/293 519/968/293 520/969/293 513/962/293 +f 521/970/291 522/971/291 520/972/291 519/973/291 523/974/291 524/975/291 525/976/291 526/977/291 +f 507/955/297 524/978/297 523/979/297 509/958/297 +f 513/962/290 520/980/290 522/981/290 517/966/290 +f 502/949/298 526/982/298 525/983/298 505/952/298 +f 509/958/296 523/984/296 519/985/296 511/960/296 +f 517/966/295 522/986/295 521/987/295 501/948/295 +f 501/948/292 521/988/292 526/989/292 502/949/292 +f 505/954/294 525/990/294 524/991/294 507/955/294 +f 527/992/304 528/993/304 529/994/304 530/995/304 +f 504/951/286 527/992/286 530/995/286 518/967/286 +f 503/950/285 531/996/285 527/992/285 504/951/285 +f 508/956/283 532/997/283 533/998/283 506/957/283 +f 514/963/288 534/999/288 515/964/288 512/961/288 +f 510/959/282 516/965/282 532/997/282 508/956/282 +f 518/967/287 530/995/287 534/999/287 514/963/287 +f 506/953/284 533/1000/284 531/996/284 503/950/284 +f 534/999/303 535/1001/303 536/1002/303 515/964/303 +f 516/965/306 537/1003/306 538/1004/306 532/997/306 +f 533/1000/305 539/1005/305 540/1006/305 531/996/305 +f 530/995/300 529/1007/300 535/1008/300 534/999/300 +f 515/964/299 536/1009/299 537/1010/299 516/965/299 +f 532/997/302 538/1011/302 539/1012/302 533/998/302 +f 531/996/301 540/1013/301 528/1014/301 527/992/301 +f 538/1011/313 541/1015/313 542/1016/313 539/1012/313 +f 543/1017/308 542/1018/308 541/1019/308 544/1020/308 545/1021/308 546/1022/308 547/1023/308 548/1024/308 +f 540/1013/312 543/1025/312 548/1026/312 528/1014/312 +f 528/993/315 548/1027/315 547/1028/315 529/994/315 +f 535/1001/314 546/1029/314 545/1030/314 536/1002/314 +f 537/1003/309 544/1031/309 541/1032/309 538/1004/309 +f 539/1005/307 542/1033/307 543/1034/307 540/1006/307 +f 529/1007/311 547/1035/311 546/1036/311 535/1008/311 +f 536/1009/310 545/1037/310 544/1038/310 537/1010/310 +o AmmunitionCan_Cylinder.007 +v -1.114931 0.645018 2.605743 +v -0.705608 0.645018 2.607436 +v -0.705608 0.367434 2.722416 +v -1.115595 0.367434 2.722416 +v -0.705608 0.252454 3.000000 +v -1.115595 0.252454 3.000000 +v -0.705608 0.367434 3.277584 +v -1.115595 0.367434 3.277584 +v -0.705608 0.645018 3.392564 +v -1.115595 0.645018 3.392564 +v -0.705608 0.922602 3.277584 +v -1.115595 0.922602 3.277584 +v -0.705608 1.037581 3.000000 +v -1.115595 1.037581 3.000000 +v -0.705608 0.922602 2.722416 +v -1.115595 0.922602 2.722416 +v -1.680468 0.367434 2.722416 +v -1.680468 0.252454 3.000000 +v -1.696762 0.326183 3.000000 +v -1.696762 0.419567 2.774549 +v -1.696762 0.645018 3.318835 +v -1.696762 0.870468 3.225451 +v -1.717499 0.922175 3.277157 +v -1.717499 0.645018 3.391959 +v -1.680468 0.645018 3.392564 +v -1.680468 0.922602 3.277584 +v -1.680468 0.922602 2.722416 +v -1.680468 0.645018 2.607436 +v -1.696762 0.645018 2.681165 +v -1.696762 0.870469 2.774550 +v -1.680468 0.367434 3.277584 +v -1.696762 0.419567 3.225451 +v -1.680468 1.037582 3.000000 +v -1.696762 0.963853 3.000000 +v -1.717499 1.036977 3.000000 +v -1.717499 0.922175 2.722843 +v -1.807855 0.922175 2.722843 +v -1.807855 1.036977 3.000000 +v -1.717499 0.367861 3.277157 +v -1.717499 0.253059 3.000000 +v -1.717499 0.367861 2.722843 +v -1.717499 0.645018 2.608041 +v -1.807855 0.922175 3.277157 +v -1.827112 0.964049 3.000000 +v -1.827112 0.870607 3.225589 +v -1.807856 0.645018 3.391959 +v -1.807856 0.367861 3.277157 +v -1.807856 0.253059 3.000000 +v -1.807856 0.367861 2.722843 +v -1.807856 0.645018 2.608041 +v -1.827112 0.645018 2.680969 +v -1.827112 0.419429 2.774411 +v -1.850272 0.367220 2.722202 +v -1.850272 0.645018 2.607134 +v -1.827112 0.645018 3.319031 +v -1.827112 0.419429 3.225589 +v -1.827112 0.325987 3.000000 +v -1.827112 0.870607 2.774411 +v -1.850272 1.037884 3.000000 +v -1.850272 0.922816 2.722202 +v -1.929992 0.922816 2.722202 +v -1.929992 1.037884 3.000000 +v -1.850272 0.922816 3.277798 +v -1.850272 0.645018 3.392866 +v -1.850272 0.367220 3.277798 +v -1.850272 0.252152 3.000000 +v -1.929992 0.367220 2.722202 +v -1.929992 0.252152 3.000000 +v -2.043752 0.321683 3.000000 +v -2.043752 0.416385 2.771367 +v -1.929992 0.922816 3.277798 +v -1.929992 0.645018 3.392866 +v -1.929992 0.367220 3.277798 +v -1.929992 0.645018 2.607134 +v -2.043752 0.873651 2.771367 +v -2.043752 0.645018 2.676665 +v -2.121962 0.645018 2.774646 +v -2.121962 0.804367 2.840651 +v -2.043752 0.968353 3.000000 +v -2.043752 0.873651 3.228633 +v -2.043752 0.645018 3.323335 +v -2.043752 0.416385 3.228633 +v -2.121962 0.870372 3.000000 +v -2.179800 0.787147 2.857871 +v -2.179800 0.846019 3.000000 +v -2.121962 0.804367 3.159349 +v -2.121962 0.645018 3.225354 +v -2.121962 0.485669 3.159349 +v -2.121962 0.419664 3.000000 +v -2.121962 0.485669 2.840651 +v -2.179800 0.787147 3.142129 +v -2.179800 0.817735 3.000000 +v -2.179800 0.767148 3.122130 +v -2.179800 0.645018 3.201001 +v -2.179800 0.502889 3.142129 +v -2.179800 0.444017 3.000000 +v -2.179800 0.502889 2.857871 +v -2.179800 0.645018 2.798999 +v -2.179800 0.645018 2.827283 +v -2.179800 0.522888 2.877870 +v -2.139229 0.522888 2.877870 +v -2.139229 0.645018 2.827283 +v -2.179800 0.645018 3.172717 +v -2.179800 0.522888 3.122130 +v -2.179800 0.472301 3.000000 +v -2.179800 0.767148 2.877870 +v -2.139229 0.472301 3.000000 +v -2.139229 0.522888 3.122130 +v -2.139229 0.645018 3.172717 +v -2.139229 0.767148 3.122130 +v -2.139229 0.817735 3.000000 +v -2.139229 0.767148 2.877870 +v -1.416219 0.923800 2.721218 +v -1.416219 0.645018 2.605743 +v -1.415588 1.037581 3.000000 +v -1.416219 0.923800 3.278782 +v -1.416219 0.645018 3.394257 +v -1.416219 0.366236 3.278782 +v -1.415589 0.252454 3.000000 +v -1.416219 0.366236 2.721218 +v -1.161507 0.923800 2.721218 +v -1.161507 0.645018 2.605743 +v -1.161507 1.039275 3.000000 +v -1.161507 0.923800 3.278782 +v -1.161507 0.645018 3.394257 +v -1.161507 0.366236 3.278782 +v -1.161507 0.250761 3.000000 +v -1.161507 0.366236 2.721218 +v -1.379544 0.645018 2.605743 +v -1.379545 0.366236 2.721218 +v -1.379545 1.039275 3.000000 +v -1.379545 0.923800 3.278782 +v -1.382795 0.953877 3.308859 +v -1.382795 1.081811 3.000000 +v -1.319287 0.645018 2.590682 +v -1.221764 0.645018 2.590682 +v -1.221764 0.355586 2.710568 +v -1.319287 0.355586 2.710568 +v -1.158621 0.950501 2.694517 +v -1.158621 1.077036 3.000000 +v -1.379545 0.250761 3.000000 +v -1.319287 0.235700 3.000000 +v -1.316037 0.208225 3.000000 +v -1.316037 0.336159 2.691141 +v -1.221764 0.235700 3.000000 +v -1.158621 0.950501 3.305483 +v -1.158621 0.645018 3.432019 +v -1.379545 0.366236 3.278782 +v -1.379545 0.645018 3.394257 +v -1.382795 0.336159 3.308859 +v -1.382795 0.645018 3.436793 +v -1.221764 0.355586 3.289432 +v -1.319287 0.355586 3.289432 +v -1.221764 0.934450 2.710568 +v -1.221764 1.054336 3.000000 +v -1.224650 1.077036 3.000000 +v -1.224650 0.950501 2.694517 +v -1.382795 0.336159 2.691141 +v -1.382795 0.208225 3.000000 +v -1.221764 0.645018 3.409318 +v -1.319287 0.645018 3.409318 +v -1.158621 0.339535 3.305483 +v -1.158621 0.212999 3.000000 +v -1.319287 1.054336 3.000000 +v -1.319287 0.934450 2.710568 +v -1.316037 0.953877 2.691141 +v -1.316037 1.081811 3.000000 +v -1.221764 0.934450 3.289432 +v -1.319287 0.934450 3.289432 +v -1.224650 0.645018 3.432019 +v -1.224650 0.950501 3.305483 +v -1.316037 0.953877 3.308859 +v -1.316037 0.645018 3.436793 +v -1.158621 0.339535 2.694517 +v -1.158621 0.645018 2.567981 +v -1.379545 0.923800 2.721218 +v -1.382795 0.953877 2.691141 +v -1.224650 0.212999 3.000000 +v -1.224650 0.339535 3.305483 +v -1.316037 0.336159 3.308859 +v -1.224650 0.645018 2.567981 +v -1.224650 0.339535 2.694517 +v -1.382795 0.645018 2.563207 +v -1.316036 0.645018 2.563207 +vt 0.333771 0.122601 +vt 0.250827 0.123696 +vt 0.249913 0.062860 +vt 0.333162 0.061441 +vt 0.248762 0.002028 +vt 0.331770 0.000458 +vt 0.331178 0.489363 +vt 0.248762 0.487236 +vt 0.250204 0.426885 +vt 0.333040 0.428574 +vt 0.251228 0.366447 +vt 0.334273 0.367529 +vt 0.251779 0.305898 +vt 0.334946 0.306336 +vt 0.251870 0.245242 +vt 0.335158 0.245008 +vt 0.387778 0.000111 +vt 0.448672 0.000111 +vt 0.491729 0.043169 +vt 0.491729 0.104062 +vt 0.448671 0.147120 +vt 0.387778 0.147120 +vt 0.344720 0.104062 +vt 0.344720 0.043169 +vt 0.251510 0.184543 +vt 0.334843 0.183746 +vt 0.184792 0.411952 +vt 0.180019 0.475285 +vt 0.164389 0.467565 +vt 0.169068 0.411085 +vt 0.171376 0.116511 +vt 0.173907 0.173123 +vt 0.158223 0.172770 +vt 0.156306 0.116051 +vt 0.187710 0.116136 +vt 0.188188 0.173263 +vt 0.187862 0.290744 +vt 0.187045 0.350935 +vt 0.169556 0.350164 +vt 0.173074 0.290555 +vt 0.169093 0.410760 +vt 0.169539 0.350497 +vt 0.182936 0.002420 +vt 0.185636 0.059963 +vt 0.171429 0.060361 +vt 0.168682 0.009053 +vt 0.188834 0.231566 +vt 0.171901 0.231236 +vt 0.173902 0.173419 +vt 0.171377 0.116200 +vt 0.171433 0.060647 +vt 0.173086 0.290248 +vt 0.171893 0.231559 +vt 0.156248 0.230716 +vt 0.156867 0.289505 +vt 0.136903 0.289718 +vt 0.137407 0.231137 +vt 0.156897 0.060302 +vt 0.156891 0.004402 +vt 0.151894 0.409417 +vt 0.153421 0.349240 +vt 0.147572 0.472946 +vt 0.138952 0.173384 +vt 0.121938 0.230032 +vt 0.123479 0.172751 +vt 0.138214 0.116866 +vt 0.138770 0.061156 +vt 0.138353 0.003891 +vt 0.132267 0.409089 +vt 0.134072 0.349295 +vt 0.126815 0.471069 +vt 0.118159 0.348200 +vt 0.116549 0.407518 +vt 0.099353 0.406365 +vt 0.101957 0.346731 +vt 0.123291 0.116133 +vt 0.123243 0.060809 +vt 0.114079 0.464786 +vt 0.116522 0.407844 +vt 0.120912 0.288422 +vt 0.121921 0.230342 +vt 0.123493 0.172442 +vt 0.123281 0.116431 +vt 0.123249 0.060512 +vt 0.123844 0.009530 +vt 0.118183 0.347881 +vt 0.120892 0.288742 +vt 0.106188 0.229161 +vt 0.104711 0.287384 +vt 0.088322 0.287014 +vt 0.090113 0.228932 +vt 0.107837 0.171744 +vt 0.108130 0.115645 +vt 0.108841 0.060451 +vt 0.096873 0.470749 +vt 0.108910 0.003319 +vt 0.083013 0.405933 +vt 0.079907 0.469925 +vt 0.052378 0.462912 +vt 0.054935 0.410246 +vt 0.092029 0.171671 +vt 0.092656 0.115769 +vt 0.093106 0.060660 +vt 0.092149 0.003387 +vt 0.085408 0.346282 +vt 0.062313 0.290993 +vt 0.059914 0.339771 +vt 0.036698 0.331221 +vt 0.038369 0.297224 +vt 0.063245 0.281096 +vt 0.064719 0.233294 +vt 0.067796 0.166452 +vt 0.068312 0.120444 +vt 0.068137 0.056008 +vt 0.067350 0.008871 +vt 0.057308 0.399614 +vt 0.059278 0.350520 +vt 0.065403 0.223033 +vt 0.066980 0.175906 +vt 0.068752 0.110697 +vt 0.069122 0.065341 +vt 0.041387 0.239824 +vt 0.040360 0.273141 +vt 0.028428 0.270971 +vt 0.029344 0.241254 +vt 0.042861 0.215130 +vt 0.043960 0.182284 +vt 0.046882 0.103646 +vt 0.047140 0.072034 +vt 0.027306 0.453697 +vt 0.029088 0.416990 +vt 0.045633 0.159231 +vt 0.045993 0.127165 +vt 0.045231 0.049246 +vt 0.044683 0.016394 +vt 0.033874 0.391223 +vt 0.035247 0.357006 +vt 0.032082 0.183664 +vt 0.031102 0.212960 +vt 0.026194 0.210732 +vt 0.027037 0.185558 +vt 0.034115 0.157369 +vt 0.034435 0.128769 +vt 0.033381 0.047668 +vt 0.032891 0.018366 +vt 0.021636 0.388880 +vt 0.022861 0.358361 +vt 0.024556 0.328782 +vt 0.026047 0.298459 +vt 0.035522 0.101845 +vt 0.035752 0.073650 +vt 0.014195 0.451072 +vt 0.015784 0.418332 +vt 0.017591 0.360300 +vt 0.016539 0.386525 +vt 0.008490 0.386202 +vt 0.009543 0.359977 +vt 0.030749 0.099822 +vt 0.030947 0.075594 +vt 0.008745 0.448499 +vt 0.010111 0.420366 +vt 0.023445 0.268724 +vt 0.024232 0.243190 +vt 0.029279 0.155303 +vt 0.029555 0.130726 +vt 0.028369 0.045690 +vt 0.027949 0.020511 +vt 0.019510 0.326396 +vt 0.020791 0.300340 +vt 0.363665 0.147342 +vt 0.390456 0.147342 +vt 0.409400 0.166287 +vt 0.409400 0.193078 +vt 0.390456 0.212022 +vt 0.363664 0.212022 +vt 0.344720 0.193078 +vt 0.344720 0.166286 +vt 0.011513 0.326003 +vt 0.012794 0.299946 +vt 0.018468 0.210474 +vt 0.019311 0.185300 +vt 0.023313 0.099761 +vt 0.023511 0.075533 +vt 0.000111 0.448080 +vt 0.001477 0.419947 +vt 0.015608 0.268483 +vt 0.016395 0.242948 +vt 0.021737 0.155218 +vt 0.022012 0.130642 +vt 0.020642 0.045819 +vt 0.020221 0.020640 +vt 0.241179 0.291205 +vt 0.241048 0.352210 +vt 0.241424 0.231328 +vt 0.239656 0.172428 +vt 0.238302 0.114877 +vt 0.236112 0.057792 +vt 0.234041 0.000494 +vt 0.239378 0.414394 +vt 0.236869 0.477863 +vt 0.344164 0.183645 +vt 0.343181 0.122473 +vt 0.344498 0.244994 +vt 0.344304 0.306406 +vt 0.343563 0.367674 +vt 0.342352 0.428813 +vt 0.340421 0.489783 +vt 0.342493 0.061278 +vt 0.341044 0.000111 +vt 0.248540 0.352310 +vt 0.247025 0.414653 +vt 0.518660 0.274425 +vt 0.518660 0.335581 +vt 0.510669 0.338880 +vt 0.510669 0.271126 +vt 0.618935 0.542365 +vt 0.618935 0.562130 +vt 0.555443 0.562130 +vt 0.555443 0.542365 +vt 0.518975 0.265234 +vt 0.518996 0.204078 +vt 0.526092 0.201151 +vt 0.526069 0.268165 +vt 0.244474 0.478305 +vt 0.491952 0.065734 +vt 0.491951 0.002242 +vt 0.497138 0.000111 +vt 0.497138 0.067865 +vt 0.491951 0.562130 +vt 0.491951 0.542365 +vt 0.518929 0.399261 +vt 0.518950 0.338104 +vt 0.526046 0.335178 +vt 0.526022 0.402192 +vt 0.240901 0.000111 +vt 0.243075 0.057522 +vt 0.518660 0.409933 +vt 0.518660 0.471090 +vt 0.510668 0.474388 +vt 0.510668 0.406634 +vt 0.999889 0.542365 +vt 0.999889 0.562130 +vt 0.936397 0.562130 +vt 0.936397 0.542365 +vt 0.543764 0.202918 +vt 0.543742 0.266410 +vt 0.539451 0.268169 +vt 0.539474 0.201156 +vt 0.245271 0.114659 +vt 0.518659 0.003410 +vt 0.518659 0.064565 +vt 0.510668 0.067865 +vt 0.510667 0.000111 +vt 0.872904 0.562130 +vt 0.872904 0.542365 +vt 0.518882 0.533287 +vt 0.518903 0.472131 +vt 0.525999 0.469205 +vt 0.525976 0.536218 +vt 0.246721 0.172240 +vt 0.491952 0.268995 +vt 0.491952 0.205503 +vt 0.497139 0.203372 +vt 0.497139 0.271126 +vt 0.809412 0.562130 +vt 0.809412 0.542365 +vt 0.543718 0.336945 +vt 0.543696 0.400437 +vt 0.539405 0.402196 +vt 0.539428 0.335183 +vt 0.248540 0.231225 +vt 0.491952 0.404503 +vt 0.491952 0.341011 +vt 0.497139 0.338880 +vt 0.497138 0.406634 +vt 0.745919 0.562130 +vt 0.745919 0.542365 +vt 0.519021 0.131207 +vt 0.519042 0.070051 +vt 0.526138 0.067125 +vt 0.526115 0.134138 +vt 0.248518 0.291219 +vt 0.518660 0.206671 +vt 0.518660 0.267827 +vt 0.510668 0.203372 +vt 0.682427 0.562130 +vt 0.682427 0.542365 +vt 0.543671 0.470972 +vt 0.543649 0.534464 +vt 0.539358 0.536223 +vt 0.539381 0.469210 +vt 0.491951 0.540012 +vt 0.491952 0.476519 +vt 0.497138 0.474388 +vt 0.497138 0.542143 +vt 0.543810 0.068891 +vt 0.543788 0.132383 +vt 0.539497 0.134142 +vt 0.539520 0.067129 +vt 0.526161 0.000111 +vt 0.539543 0.000116 +vt 0.543833 0.001878 +vt 0.543811 0.065370 +vt 0.543695 0.403959 +vt 0.543672 0.467451 +vt 0.519044 0.064193 +vt 0.519065 0.003037 +vt 0.543741 0.269931 +vt 0.543719 0.333424 +vt 0.518906 0.466274 +vt 0.518927 0.405118 +vt 0.543787 0.135905 +vt 0.543765 0.199397 +vt 0.518952 0.332247 +vt 0.518973 0.271091 +vt 0.518998 0.198220 +vt 0.519019 0.137064 +vt 0.510668 0.135618 +vt 0.497138 0.135618 +vt 0.510668 0.542143 +vt 0.491952 0.472258 +vt 0.491952 0.408765 +vt 0.518660 0.138917 +vt 0.518660 0.200073 +vt 0.491952 0.336749 +vt 0.491952 0.273257 +vt 0.491952 0.201241 +vt 0.491952 0.137749 +vt 0.518660 0.071163 +vt 0.518660 0.132319 +vt 0.518660 0.477687 +vt 0.518660 0.538844 +vt 0.491952 0.133487 +vt 0.491952 0.069996 +vt 0.518660 0.342179 +vt 0.518660 0.403335 +vn 0.0019 -0.3851 -0.9229 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.9239 0.3827 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.9239 -0.3827 +vn 0.0019 0.3851 -0.9229 +vn -0.9726 -0.2149 -0.0890 +vn 0.9560 0.1123 0.2711 +vn -0.9726 0.0890 0.2149 +vn -0.9726 0.0890 -0.2149 +vn -0.9726 -0.0890 -0.2149 +vn -0.9726 -0.2149 0.0890 +vn -0.9726 0.2149 0.0890 +vn -0.9726 -0.0890 0.2149 +vn -0.9726 0.2149 -0.0890 +vn 0.9560 -0.2711 0.1123 +vn 0.9560 -0.1123 -0.2711 +vn 0.9560 0.1123 -0.2711 +vn 0.9560 0.2711 0.1123 +vn 0.9560 -0.1123 0.2711 +vn 0.9560 -0.2711 -0.1123 +vn 0.9560 0.2711 -0.1123 +vn -0.9615 0.2539 0.1052 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 0.3827 -0.9239 +vn 0.9469 -0.1230 -0.2970 +vn -0.9615 -0.1052 0.2539 +vn -0.9615 -0.2539 -0.1052 +vn -0.9615 0.2539 -0.1052 +vn -0.9615 0.1052 0.2539 +vn -0.9615 -0.2539 0.1052 +vn -0.9615 -0.1052 -0.2539 +vn -0.9615 0.1052 -0.2539 +vn 0.9469 0.1230 -0.2970 +vn 0.9469 0.2970 0.1230 +vn 0.9469 -0.1230 0.2970 +vn 0.9469 -0.2970 -0.1230 +vn 0.9469 0.2970 -0.1230 +vn 0.9469 0.1230 0.2970 +vn 0.9469 -0.2970 0.1230 +vn -0.4917 -0.8045 -0.3332 +vn -0.7567 0.2502 -0.6040 +vn -0.4917 0.8045 -0.3332 +vn -0.4917 0.3332 0.8045 +vn -0.4917 -0.8045 0.3332 +vn -0.4917 -0.3332 -0.8045 +vn -0.4917 0.3332 -0.8045 +vn -0.4917 0.8045 0.3332 +vn -0.4917 -0.3332 0.8045 +vn -0.3625 0.8610 -0.3567 +vn -0.7567 0.6040 0.2502 +vn -0.7567 -0.2502 0.6040 +vn -0.7567 -0.6040 -0.2502 +vn -0.7567 0.6040 -0.2502 +vn -0.7567 0.2502 0.6040 +vn -0.7567 -0.6040 0.2502 +vn -0.7567 -0.2502 -0.6040 +vn -1.0000 0.0000 0.0000 +vn -0.3625 0.3567 0.8610 +vn -0.3625 -0.8610 0.3567 +vn -0.3625 -0.3567 -0.8610 +vn -0.3625 0.3567 -0.8610 +vn -0.3625 0.8610 0.3567 +vn -0.3625 -0.3567 0.8610 +vn -0.3625 -0.8610 -0.3567 +vn -0.0059 0.3827 -0.9239 +vn -0.0030 0.9249 -0.3803 +vn -0.0030 0.9249 0.3803 +vn -0.0059 0.3827 0.9239 +vn -0.0059 -0.3827 0.9239 +vn -0.0030 -0.9249 0.3803 +vn -0.0030 -0.9249 -0.3803 +vn -0.0059 -0.3827 -0.9239 +vn 0.0169 0.3850 -0.9227 +vn 0.0341 0.9233 -0.3825 +vn 0.0341 0.9233 0.3825 +vn 0.0341 0.3825 0.9233 +vn 0.0341 -0.3825 0.9233 +vn 0.0341 -0.9233 0.3825 +vn 0.0341 -0.9233 -0.3825 +vn 0.0169 -0.3850 -0.9227 +vn -0.9966 -0.0761 -0.0315 +vn 0.9966 -0.0762 0.0316 +vn -0.0215 -0.9247 -0.3802 +vn 0.9919 0.1173 0.0486 +vn 0.9966 -0.0316 -0.0762 +vn -0.0215 -0.9247 0.3802 +vn -0.9966 0.0315 -0.0761 +vn -0.9907 -0.1260 0.0522 +vn -0.9966 0.0761 0.0315 +vn 0.9966 0.0762 -0.0316 +vn 0.9919 -0.1173 0.0486 +vn -0.9907 -0.0522 -0.1260 +vn -0.0215 0.9247 0.3802 +vn 0.9919 -0.0486 -0.1173 +vn 0.9966 0.0316 0.0762 +vn -0.0215 0.9247 -0.3802 +vn -0.9966 -0.0761 0.0315 +vn -0.9907 0.1260 -0.0522 +vn 0.9919 0.1173 -0.0486 +vn -0.9907 0.0522 0.1260 +vn -0.9907 0.1260 0.0522 +vn -0.9907 0.0522 -0.1260 +vn 0.9966 0.0762 0.0316 +vn -0.9907 -0.1260 -0.0522 +vn 0.9966 0.0316 -0.0762 +vn -0.9907 -0.0522 0.1260 +vn 0.9966 -0.0762 -0.0316 +vn 0.9966 -0.0316 0.0762 +vn 0.9919 0.0486 -0.1173 +vn -0.9966 -0.0315 0.0762 +vn 0.9919 -0.1173 -0.0486 +vn 0.9919 -0.0486 0.1173 +vn -0.9966 0.0315 0.0762 +vn -0.9966 0.0761 -0.0315 +vn 0.9919 0.0486 0.1173 +vn -0.9966 -0.0315 -0.0761 +s off +f 549/1039/316 550/1040/316 551/1041/316 552/1042/316 +f 552/1042/317 551/1041/317 553/1043/317 554/1044/317 +f 554/1045/318 553/1046/318 555/1047/318 556/1048/318 +f 556/1048/319 555/1047/319 557/1049/319 558/1050/319 +f 558/1050/320 557/1049/320 559/1051/320 560/1052/320 +f 560/1052/321 559/1051/321 561/1053/321 562/1054/321 +f 551/1055/322 550/1056/322 563/1057/322 561/1058/322 559/1059/322 557/1060/322 555/1061/322 553/1062/322 +f 562/1054/323 561/1053/323 563/1063/323 564/1064/323 +f 564/1064/324 563/1063/324 550/1040/324 549/1039/324 +f 565/1065/325 566/1066/325 567/1067/325 568/1068/325 +f 569/1069/326 570/1070/326 571/1071/326 572/1072/326 +f 573/1073/327 574/1074/327 570/1070/327 569/1069/327 +f 575/1075/328 576/1076/328 577/1077/328 578/1078/328 +f 576/1076/329 565/1065/329 568/1079/329 577/1080/329 +f 566/1081/330 579/1082/330 580/1083/330 567/1084/330 +f 574/1074/331 581/1085/331 582/1086/331 570/1087/331 +f 579/1082/332 573/1073/332 569/1088/332 580/1089/332 +f 581/1085/333 575/1075/333 578/1090/333 582/1091/333 +f 583/1092/323 584/1093/323 585/1094/323 586/1095/323 +f 567/1084/334 580/1083/334 587/1096/334 588/1097/334 +f 577/1080/335 568/1079/335 589/1098/335 590/1099/335 +f 578/1078/336 577/1077/336 590/1099/336 584/1093/336 +f 570/1087/337 582/1086/337 583/1092/337 571/1071/337 +f 580/1089/338 569/1088/338 572/1072/338 587/1096/338 +f 568/1068/339 567/1067/339 588/1100/339 589/1098/339 +f 582/1091/340 578/1090/340 584/1093/340 583/1092/340 +f 591/1101/341 586/1095/341 592/1102/341 593/1103/341 +f 572/1072/320 571/1071/320 591/1101/320 594/1104/320 +f 588/1097/318 587/1096/318 595/1105/318 596/1106/318 +f 590/1099/342 589/1098/342 597/1107/342 598/1108/342 +f 584/1093/343 590/1099/343 598/1108/343 585/1094/343 +f 571/1071/321 583/1092/321 586/1095/321 591/1101/321 +f 587/1096/319 572/1072/319 594/1104/319 595/1105/319 +f 589/1098/317 588/1100/317 596/1109/317 597/1107/317 +f 599/1110/344 600/1111/344 601/1112/344 602/1113/344 +f 595/1105/345 594/1104/345 603/1114/345 604/1115/345 +f 597/1107/346 596/1109/346 605/1116/346 600/1117/346 +f 586/1095/347 585/1094/347 606/1118/347 592/1119/347 +f 594/1104/348 591/1101/348 593/1120/348 603/1121/348 +f 596/1106/349 595/1105/349 604/1122/349 605/1123/349 +f 598/1108/350 597/1107/350 600/1111/350 599/1110/350 +f 585/1094/351 598/1108/351 599/1124/351 606/1125/351 +f 607/1126/323 608/1127/323 609/1128/323 610/1129/323 +f 606/1125/352 599/1124/352 602/1113/352 608/1127/352 +f 593/1103/353 592/1102/353 607/1126/353 611/1130/353 +f 604/1115/354 603/1114/354 612/1131/354 613/1132/354 +f 600/1117/355 605/1116/355 614/1133/355 601/1112/355 +f 592/1119/356 606/1118/356 608/1127/356 607/1126/356 +f 603/1121/357 593/1120/357 611/1130/357 612/1131/357 +f 605/1123/358 604/1122/358 613/1132/358 614/1134/358 +f 615/1135/359 616/1136/359 617/1137/359 618/1138/359 +f 612/1131/320 611/1130/320 619/1139/320 620/1140/320 +f 614/1134/318 613/1132/318 621/1141/318 616/1142/318 +f 602/1113/342 601/1112/342 615/1135/342 622/1143/342 +f 608/1127/343 602/1113/343 622/1143/343 609/1128/343 +f 611/1130/321 607/1126/321 610/1129/321 619/1139/321 +f 613/1132/319 612/1131/319 620/1140/319 621/1141/319 +f 601/1112/317 614/1133/317 616/1136/317 615/1135/317 +f 623/1144/360 624/1145/360 625/1146/360 626/1147/360 +f 610/1129/361 609/1128/361 623/1148/361 627/1149/361 +f 620/1140/362 619/1139/362 628/1150/362 629/1151/362 +f 616/1142/363 621/1141/363 630/1152/363 617/1153/363 +f 622/1143/364 615/1135/364 618/1154/364 624/1155/364 +f 609/1128/365 622/1143/365 624/1145/365 623/1144/365 +f 619/1139/366 610/1129/366 627/1156/366 628/1157/366 +f 621/1141/367 620/1140/367 629/1158/367 630/1159/367 +f 631/1160/368 626/1161/368 632/1162/368 633/1163/368 +f 628/1157/369 627/1156/369 631/1164/369 634/1165/369 +f 630/1159/370 629/1158/370 635/1166/370 636/1167/370 +f 618/1138/371 617/1137/371 637/1168/371 638/1169/371 +f 627/1149/372 623/1148/372 626/1161/372 631/1160/372 +f 629/1151/373 628/1150/373 634/1170/373 635/1171/373 +f 617/1153/374 630/1152/374 636/1172/374 637/1173/374 +f 624/1155/375 618/1154/375 638/1174/375 625/1175/375 +f 639/1176/376 633/1177/376 640/1178/376 641/1179/376 +f 635/1171/377 634/1170/377 639/1180/377 642/1181/377 +f 637/1173/378 636/1172/378 643/1182/378 644/1183/378 +f 625/1175/379 638/1174/379 645/1184/379 646/1185/379 +f 626/1147/380 625/1146/380 646/1186/380 632/1187/380 +f 634/1165/381 631/1164/381 633/1177/381 639/1176/381 +f 636/1167/382 635/1166/382 642/1188/382 643/1189/382 +f 638/1169/383 637/1168/383 644/1190/383 645/1191/383 +f 647/1192/320 648/1193/320 649/1194/320 650/1195/320 +f 643/1189/376 642/1188/376 651/1196/376 652/1197/376 +f 645/1191/376 644/1190/376 653/1198/376 648/1199/376 +f 633/1163/376 632/1162/376 654/1200/376 640/1201/376 +f 642/1181/376 639/1180/376 641/1202/376 651/1203/376 +f 644/1183/376 643/1182/376 652/1204/376 653/1205/376 +f 646/1185/376 645/1184/376 648/1193/376 647/1192/376 +f 632/1187/376 646/1186/376 647/1206/376 654/1207/376 +f 650/1208/376 649/1209/376 655/1210/376 656/1211/376 657/1212/376 658/1213/376 659/1214/376 660/1215/376 +f 654/1207/319 647/1206/319 650/1216/319 660/1217/319 +f 641/1179/317 640/1178/317 659/1218/317 658/1219/317 +f 652/1197/343 651/1196/343 657/1220/343 656/1221/343 +f 648/1199/321 653/1198/321 655/1222/321 649/1223/321 +f 640/1201/318 654/1200/318 660/1224/318 659/1225/318 +f 651/1203/342 641/1202/342 658/1226/342 657/1227/342 +f 653/1205/323 652/1204/323 656/1228/323 655/1229/323 +f 575/1075/384 661/1230/384 662/1231/384 576/1076/384 +f 581/1085/385 663/1232/385 661/1230/385 575/1075/385 +f 574/1074/386 664/1233/386 663/1232/386 581/1085/386 +f 573/1073/387 665/1234/387 664/1233/387 574/1074/387 +f 579/1082/388 666/1235/388 665/1234/388 573/1073/388 +f 566/1081/389 667/1236/389 666/1235/389 579/1082/389 +f 565/1065/390 668/1237/390 667/1238/390 566/1066/390 +f 576/1076/391 662/1231/391 668/1237/391 565/1065/391 +f 669/1239/392 564/1064/392 549/1039/392 670/1240/392 +f 671/1241/393 562/1054/393 564/1064/393 669/1239/393 +f 672/1242/394 560/1052/394 562/1054/394 671/1241/394 +f 673/1243/395 558/1050/395 560/1052/395 672/1242/395 +f 674/1244/396 556/1048/396 558/1050/396 673/1243/396 +f 675/1245/397 554/1045/397 556/1048/397 674/1244/397 +f 676/1246/398 552/1042/398 554/1044/398 675/1247/398 +f 670/1240/399 549/1039/399 552/1042/399 676/1246/399 +f 662/1231/342 677/1248/342 678/1249/342 668/1237/342 +f 679/1250/400 680/1251/400 681/1252/400 682/1253/400 +f 683/1254/342 684/1255/342 685/1256/342 686/1257/342 +f 671/1258/401 669/1259/401 687/1260/401 688/1261/401 +f 668/1237/402 678/1249/402 689/1262/402 667/1238/402 +f 686/1263/403 690/1264/403 691/1265/403 692/1266/403 +f 686/1257/317 685/1256/317 693/1267/317 690/1268/317 +f 673/1269/404 672/1270/404 694/1271/404 695/1272/404 +f 667/1236/405 689/1273/405 696/1274/405 666/1235/405 +f 697/1275/406 696/1276/406 698/1277/406 699/1278/406 +f 690/1279/318 693/1280/318 700/1281/318 701/1282/318 +f 702/1283/407 703/1284/407 704/1285/407 705/1286/407 +f 666/1235/319 696/1274/319 697/1287/319 665/1234/319 +f 689/1288/408 678/1289/408 706/1290/408 707/1291/408 +f 701/1282/319 700/1281/319 708/1292/319 709/1293/319 +f 675/1294/409 674/1295/409 710/1296/409 711/1297/409 +f 665/1234/320 697/1287/320 680/1298/320 664/1233/320 +f 712/1299/410 713/1300/410 714/1301/410 715/1302/410 +f 709/1293/320 708/1292/320 716/1303/320 717/1304/320 +f 716/1305/411 708/1306/411 718/1307/411 719/1308/411 +f 664/1233/412 680/1298/412 679/1309/412 663/1232/412 +f 709/1310/413 717/1311/413 720/1312/413 721/1313/413 +f 717/1304/321 716/1303/321 703/1314/321 712/1315/321 +f 670/1316/414 676/1317/414 722/1318/414 723/1319/414 +f 663/1232/415 679/1309/415 724/1320/415 661/1230/415 +f 724/1321/416 679/1322/416 682/1253/416 725/1323/416 +f 712/1315/323 703/1314/323 702/1324/323 713/1325/323 +f 700/1326/417 693/1327/417 726/1328/417 727/1329/417 +f 661/1230/343 724/1320/343 677/1248/343 662/1231/343 +f 690/1330/418 701/1331/418 728/1332/418 691/1333/418 +f 713/1325/343 702/1324/343 684/1255/343 683/1254/343 +f 685/1334/419 684/1335/419 729/1336/419 730/1337/419 +f 729/1336/342 723/1319/342 722/1318/342 730/1337/342 +f 730/1337/317 722/1318/317 711/1338/317 726/1339/317 +f 726/1328/318 711/1297/318 710/1296/318 727/1329/318 +f 727/1329/319 710/1296/319 695/1272/319 718/1307/319 +f 718/1307/320 695/1272/320 694/1271/320 719/1308/320 +f 719/1308/321 694/1271/321 688/1261/321 704/1285/321 +f 704/1285/323 688/1261/323 687/1260/323 705/1286/323 +f 705/1286/343 687/1260/343 723/1319/343 729/1336/343 +f 693/1340/420 685/1341/420 730/1337/420 726/1339/420 +f 708/1342/421 700/1343/421 727/1329/421 718/1307/421 +f 676/1344/422 675/1345/422 711/1338/422 722/1318/422 +f 703/1346/423 716/1347/423 719/1308/423 704/1285/423 +f 674/1348/424 673/1349/424 695/1272/424 710/1296/424 +f 684/1350/425 702/1351/425 705/1286/425 729/1336/425 +f 672/1352/426 671/1353/426 688/1261/426 694/1271/426 +f 669/1354/427 670/1355/427 723/1319/427 687/1260/427 +f 731/1356/342 732/1357/342 692/1266/342 706/1290/342 +f 706/1290/317 692/1266/317 691/1265/317 707/1291/317 +f 707/1358/318 691/1333/318 728/1332/318 698/1277/318 +f 698/1277/319 728/1332/319 721/1313/319 699/1278/319 +f 699/1278/320 721/1313/320 720/1312/320 681/1252/320 +f 681/1252/321 720/1312/321 715/1302/321 682/1253/321 +f 682/1253/323 715/1302/323 714/1301/323 725/1323/323 +f 725/1323/343 714/1301/343 732/1357/343 731/1356/343 +f 701/1359/428 709/1360/428 721/1313/428 728/1332/428 +f 677/1361/429 724/1362/429 725/1323/429 731/1356/429 +f 717/1363/430 712/1364/430 715/1302/430 720/1312/430 +f 713/1365/431 683/1366/431 732/1357/431 714/1301/431 +f 678/1367/432 677/1368/432 731/1356/432 706/1290/432 +f 696/1369/433 689/1370/433 707/1358/433 698/1277/433 +f 683/1371/434 686/1372/434 692/1266/434 732/1357/434 +f 680/1373/435 697/1374/435 699/1278/435 681/1252/435 +o Grip_Cube.001 +v -1.325666 -0.019640 3.170554 +v -1.325666 0.137146 3.170554 +v -1.472478 0.148884 3.071087 +v -1.472478 -0.007902 3.071087 +v -1.325666 -0.019640 2.829446 +v -1.325666 0.137146 2.829446 +v -1.062875 0.137146 2.829446 +v -1.062875 -0.019640 2.829446 +v -1.130714 -0.142396 2.829446 +v -0.914155 -0.020276 2.892811 +v -0.981994 -0.143031 2.892811 +v -1.062875 -0.019640 3.170554 +v -1.062875 0.137146 3.170554 +v -0.914155 0.136510 2.892811 +v -1.259746 -0.728734 2.829446 +v -1.147611 -0.221161 2.829446 +v -0.998891 -0.221796 2.892811 +v -1.111026 -0.729370 2.892811 +v -1.346664 -0.179545 3.170554 +v -1.130714 -0.142396 3.170554 +v -1.346664 -0.179545 2.829446 +v -1.447785 -0.735647 3.170554 +v -1.363562 -0.258310 3.170554 +v -1.510373 -0.246572 3.071087 +v -1.594597 -0.723909 3.071087 +v -0.981994 -0.143031 3.107189 +v -0.914155 -0.020276 3.107189 +v -1.363562 -0.258310 2.829446 +v -1.447785 -0.735647 2.829446 +v -1.594597 -0.723909 2.928913 +v -1.510373 -0.246572 2.928913 +v -1.147611 -0.221161 3.170554 +v -1.259746 -0.728734 3.170554 +v -1.483874 -0.749924 3.170554 +v -1.219691 -0.868011 3.170554 +v -1.493475 -0.167807 3.071087 +v -1.483874 -0.751872 2.829446 +v -1.219691 -0.868011 2.829446 +v -0.914155 0.136510 3.107189 +v -1.472478 -0.007902 2.928913 +v -1.472478 0.148884 2.928913 +v -1.493475 -0.167807 2.928913 +v -1.630686 -0.740134 2.928913 +v -1.630686 -0.740134 3.071087 +v -0.998891 -0.221796 3.107189 +v -1.111026 -0.729370 3.107189 +v -1.100054 -0.868647 3.107189 +v -1.100054 -0.868647 2.892811 +vt 0.495816 0.528592 +vt 0.444632 0.528911 +vt 0.440297 0.471397 +vt 0.491177 0.470932 +vt 0.282573 0.528234 +vt 0.333716 0.528699 +vt 0.333553 0.614149 +vt 0.282755 0.613843 +vt 0.242508 0.592317 +vt 0.281795 0.666212 +vt 0.241263 0.645226 +vt 0.495309 0.614379 +vt 0.444469 0.614360 +vt 0.332850 0.666779 +vt 0.047162 0.550460 +vt 0.216648 0.586778 +vt 0.215631 0.639752 +vt 0.048294 0.604938 +vt 0.548343 0.521923 +vt 0.535717 0.592975 +vt 0.230173 0.521390 +vt 0.738670 0.486066 +vt 0.574234 0.516502 +vt 0.568535 0.459054 +vt 0.724885 0.427074 +vt 0.536722 0.646015 +vt 0.495988 0.666825 +vt 0.204360 0.515900 +vt 0.041140 0.485235 +vt 0.054329 0.426535 +vt 0.210200 0.458565 +vt 0.561660 0.587527 +vt 0.731929 0.551750 +vt 0.744574 0.473715 +vt 0.779174 0.567328 +vt 0.542981 0.464301 +vt 0.334470 0.132827 +vt 0.334470 0.038990 +vt 0.445386 0.038990 +vt 0.445387 0.133084 +vt 0.000088 0.565542 +vt 0.034734 0.473006 +vt 0.444846 0.667087 +vt 0.287393 0.470661 +vt 0.338208 0.471269 +vt 0.412478 0.429978 +vt 0.412380 0.480959 +vt 0.366151 0.480870 +vt 0.366248 0.429890 +vt 0.366348 0.377448 +vt 0.412578 0.377536 +vt 0.366398 0.351254 +vt 0.412628 0.351342 +vt 0.366699 0.193644 +vt 0.412928 0.193732 +vt 0.366723 0.180778 +vt 0.412953 0.180866 +vt 0.235698 0.463880 +vt 0.047562 0.415228 +vt 0.731595 0.415639 +vt 0.353968 0.713528 +vt 0.354065 0.662547 +vt 0.423773 0.662680 +vt 0.423676 0.713661 +vt 0.423589 0.759266 +vt 0.353881 0.759133 +vt 0.423539 0.785460 +vt 0.353831 0.785327 +vt 0.423216 0.954484 +vt 0.353508 0.954351 +vt 0.423129 0.999912 +vt 0.353422 0.999779 +vt 0.776716 0.612484 +vt 0.730434 0.606501 +vt 0.562445 0.640646 +vt 0.355074 0.000088 +vt 0.424782 0.000088 +vt 0.002168 0.610517 +vn -0.5609 0.0000 0.8279 +vn 0.0000 0.0000 -1.0000 +vn 0.0009 0.0005 -1.0000 +vn 0.3824 -0.2113 -0.8995 +vn 0.0000 0.0000 1.0000 +vn -0.0010 0.0003 1.0000 +vn 0.3920 0.0000 -0.9200 +vn 0.3915 0.0009 -0.9202 +vn 0.0005 1.0000 -0.0009 +vn 0.0000 1.0000 0.0000 +vn 0.0003 1.0000 -0.0010 +vn 0.3902 -0.0862 -0.9167 +vn 0.3907 -0.0861 -0.9165 +vn 0.3901 -0.0868 -0.9167 +vn -0.5529 0.0976 0.8275 +vn 0.3824 -0.2113 0.8995 +vn -0.5529 0.0976 -0.8275 +vn 0.0005 -0.0003 1.0000 +vn -0.0005 -0.0002 -1.0000 +vn -0.5505 0.1181 0.8264 +vn 0.0003 0.0005 1.0000 +vn 0.0000 -0.0006 -1.0000 +vn -0.4053 -0.9142 0.0026 +vn 0.3917 -0.0010 0.9201 +vn 0.3920 0.0000 0.9200 +vn -0.5609 0.0000 -0.8279 +vn -1.0000 0.0000 0.0000 +vn -0.9915 0.1302 0.0000 +vn -0.9778 0.2098 0.0000 +vn -0.9848 0.1738 0.0000 +vn -0.4100 0.9121 0.0000 +vn -0.5554 0.0729 0.8284 +vn -0.0731 -0.9973 0.0040 +vn 0.0797 0.9968 0.0000 +vn -0.5554 0.0729 -0.8284 +vn -0.3339 0.7427 -0.5805 +vn -0.5505 0.1181 -0.8264 +vn -0.3228 0.7637 0.5590 +vn 1.0000 0.0000 0.0000 +vn 0.8752 -0.4837 -0.0000 +vn 0.9778 -0.2098 -0.0000 +vn 0.9777 -0.2102 0.0004 +vn 0.9779 -0.2092 -0.0001 +vn 0.9765 -0.2157 0.0006 +vn 0.9765 -0.2154 0.0004 +vn 0.9765 -0.2157 0.0000 +vn 0.9969 0.0785 0.0000 +vn 0.4260 0.0780 0.9013 +vn 0.3903 -0.0837 0.9169 +vn 0.3899 -0.0842 0.9170 +vn 0.3907 -0.0841 0.9167 +vn -0.0053 -1.0000 0.0000 +vn 0.4260 0.0780 -0.9013 +vn 0.3903 -0.0832 -0.9169 +vn 0.3903 -0.0837 -0.9169 +vn 0.3898 -0.0838 -0.9171 +vn 0.0035 1.0000 -0.0006 +vn 0.0053 1.0000 -0.0001 +vn 0.0043 1.0000 0.0000 +vn 0.3898 -0.0858 0.9169 +vn 0.3902 -0.0862 0.9167 +vn 0.3906 -0.0858 0.9166 +s off +f 733/1375/436 734/1376/436 735/1377/436 736/1378/436 +f 737/1379/437 738/1380/437 739/1381/438 740/1382/437 +f 741/1383/439 740/1382/439 742/1384/439 743/1385/439 +f 744/1386/440 745/1387/441 734/1376/440 733/1375/440 +f 740/1382/442 739/1381/443 746/1388/442 742/1384/442 +f 739/1381/444 738/1380/445 734/1376/445 745/1387/446 +f 747/1389/447 748/1390/448 749/1391/449 750/1392/447 +f 744/1386/440 733/1375/440 751/1393/440 752/1394/440 +f 737/1379/437 740/1382/437 741/1383/437 753/1395/437 +f 754/1396/450 755/1397/450 756/1398/450 757/1399/450 +f 744/1386/451 752/1394/451 758/1400/451 759/1401/451 +f 760/1402/452 761/1403/452 762/1404/452 763/1405/452 +f 752/1394/440 751/1393/440 755/1397/440 764/1406/453 +f 753/1395/437 741/1383/437 748/1390/454 760/1402/437 +f 765/1407/440 754/1396/440 766/1408/440 767/1409/440 +f 755/1397/455 751/1393/455 768/1410/455 756/1398/455 +f 764/1406/456 755/1397/440 754/1396/440 765/1407/440 +f 760/1402/437 748/1390/457 747/1389/437 761/1403/437 +f 769/1411/458 770/1412/458 767/1413/458 766/1414/458 +f 761/1403/437 747/1389/437 770/1415/437 769/1416/437 +f 745/1387/459 744/1386/460 759/1401/460 771/1417/460 +f 738/1380/461 737/1379/461 772/1418/461 773/1419/461 +f 736/1420/462 735/1421/462 773/1422/462 772/1423/462 +f 736/1420/463 772/1423/463 774/1424/463 768/1425/463 +f 768/1425/464 774/1424/464 763/1426/464 756/1427/464 +f 756/1427/465 763/1426/465 762/1428/465 757/1429/465 +f 757/1429/466 762/1428/466 775/1430/466 776/1431/466 +f 751/1393/467 733/1375/467 736/1378/467 768/1410/467 +f 769/1411/468 766/1414/468 776/1431/468 775/1430/468 +f 734/1376/469 738/1380/469 773/1422/469 735/1421/469 +f 737/1379/470 753/1395/470 774/1432/470 772/1418/470 +f 761/1403/471 769/1416/471 775/1433/471 762/1404/471 +f 753/1395/472 760/1402/472 763/1405/472 774/1432/472 +f 766/1408/473 754/1396/473 757/1399/473 776/1434/473 +f 742/1435/474 746/1436/474 771/1437/474 759/1438/474 +f 742/1435/475 759/1438/475 758/1439/475 743/1440/475 +f 743/1440/476 758/1439/476 777/1441/477 749/1442/478 +f 749/1442/479 777/1441/480 778/1443/481 750/1444/481 +f 750/1444/482 778/1443/482 779/1445/482 780/1446/482 +f 765/1407/483 767/1409/483 779/1447/483 778/1448/483 +f 752/1394/484 764/1406/485 777/1449/486 758/1400/484 +f 767/1413/487 770/1412/487 780/1450/487 779/1451/487 +f 770/1415/488 747/1389/488 750/1392/488 780/1452/488 +f 748/1390/489 741/1383/490 743/1385/490 749/1391/491 +f 739/1381/492 745/1387/493 771/1437/494 746/1436/494 +f 764/1406/495 765/1407/496 778/1448/496 777/1449/497 +o HandleComfortThing_Cube.006 +v -1.508359 -0.214874 3.108693 +v -1.504838 -0.215309 2.893183 +v -1.564296 -0.274102 2.910781 +v -1.567402 -0.273718 3.089973 +v -1.348484 -0.928894 2.825721 +v -1.331423 -0.813343 2.825721 +v -1.263873 -0.855085 2.817547 +v -1.262042 -0.949106 2.817547 +v -1.263873 -0.855085 3.182453 +v -1.207149 -0.865197 3.174081 +v -1.207149 -0.865197 2.825919 +v -1.570189 -0.877055 3.143835 +v -1.435938 -0.379825 3.163084 +v -1.622805 -0.828855 3.096503 +v -1.262042 -0.949106 3.182453 +v -1.348484 -0.928894 3.174279 +v -1.435938 -0.379825 2.836916 +v -1.112852 -0.829663 3.130793 +v -1.112852 -0.829663 2.869207 +v -1.205319 -0.959218 2.825919 +v -1.205319 -0.959218 3.174081 +v -1.111021 -0.923684 3.130793 +v -1.072210 -0.848373 3.087270 +v -1.073111 -0.802094 3.087270 +v -1.111021 -0.923684 2.869207 +v -1.072210 -0.848373 2.912730 +v -1.073111 -0.802094 2.912730 +v -1.681696 -0.766817 2.927831 +v -1.689936 -0.702839 2.940395 +v -1.640119 -0.414721 2.927821 +v -1.619700 -0.829239 2.904046 +v -1.684682 -0.766448 3.071709 +v -1.643105 -0.414353 3.071698 +v -1.666879 -0.498637 2.940385 +v -1.669865 -0.498268 3.058900 +v -1.692922 -0.702470 3.058910 +v -1.690559 -0.607421 3.054481 +v -1.687573 -0.607789 2.944693 +v -1.331423 -0.813343 3.174279 +v -1.416650 -0.767127 2.821697 +v -1.416650 -0.767127 3.178303 +v -1.469005 -0.685482 2.828092 +v -1.469005 -0.685482 3.171908 +v -1.542909 -0.883434 2.838818 +v -1.516768 -0.889546 2.825611 +v -1.516768 -0.889546 3.174389 +v -1.542909 -0.883434 3.161182 +v -1.432626 -0.909220 2.821697 +v -1.432626 -0.909220 3.178303 +v -1.484962 -0.656299 2.841112 +v -1.570189 -0.877055 2.856165 +v -1.484962 -0.656299 3.158888 +vt 0.766671 0.048954 +vt 0.764142 0.169699 +vt 0.717619 0.158385 +vt 0.719660 0.057986 +vt 0.042513 0.365144 +vt 0.100642 0.395217 +vt 0.066109 0.423644 +vt 0.015965 0.407457 +vt 0.569776 0.563304 +vt 0.569776 0.767768 +vt 0.537491 0.763077 +vt 0.537491 0.567995 +vt 0.727808 0.563002 +vt 0.754866 0.275487 +vt 0.833210 0.204917 +vt 0.773959 0.549883 +vt 0.212049 0.200035 +vt 0.162307 0.204615 +vt 0.162307 0.000151 +vt 0.212049 0.004731 +vt 0.898905 0.574157 +vt 0.998844 0.605685 +vt 0.999849 0.726451 +vt 0.898904 0.756916 +vt 0.481028 0.738822 +vt 0.481028 0.592250 +vt 0.050295 0.452178 +vt 0.000151 0.435991 +vt 0.567644 0.488457 +vt 0.547535 0.537161 +vt 0.515547 0.530752 +vt 0.535656 0.482048 +vt 0.130023 0.199924 +vt 0.130023 0.004842 +vt 0.488806 0.442281 +vt 0.468697 0.490984 +vt 0.453927 0.439700 +vt 0.463825 0.415727 +vt 0.050295 0.513631 +vt 0.000151 0.497444 +vt 0.073559 0.175669 +vt 0.073559 0.029097 +vt 0.026087 0.151282 +vt 0.000151 0.151282 +vt 0.000151 0.053484 +vt 0.026087 0.053484 +vt 0.453927 0.714435 +vt 0.453927 0.616637 +vt 0.054374 0.549860 +vt 0.029692 0.541893 +vt 0.434697 0.361827 +vt 0.198019 0.204917 +vt 0.234409 0.210548 +vt 0.375642 0.293880 +vt 0.378192 0.156148 +vt 0.379610 0.048306 +vt 0.428848 0.062216 +vt 0.427492 0.142839 +vt 0.453625 0.405806 +vt 0.152314 0.227692 +vt 0.854471 0.247808 +vt 0.821023 0.529815 +vt 0.629927 0.065835 +vt 0.628389 0.146455 +vt 0.579211 0.138286 +vt 0.580423 0.071870 +vt 0.868174 0.336835 +vt 0.840364 0.498449 +vt 0.464907 0.069804 +vt 0.463716 0.136221 +vt 0.518136 0.073107 +vt 0.517022 0.134636 +vt 0.284278 0.229447 +vt 0.337590 0.261673 +vt 0.868174 0.386706 +vt 0.858265 0.448212 +vt 0.614269 0.567885 +vt 0.614269 0.763188 +vt 0.668593 0.565630 +vt 0.668593 0.765443 +vt 0.722938 0.569213 +vt 0.722938 0.761860 +vt 0.323927 0.192696 +vt 0.308885 0.200096 +vt 0.308884 0.004670 +vt 0.323927 0.012070 +vt 0.260467 0.202289 +vt 0.260466 0.002476 +vt 0.611663 0.480525 +vt 0.596973 0.544303 +vt 0.665618 0.473822 +vt 0.644946 0.551228 +vt 0.709766 0.441928 +vt 0.692917 0.558152 +vt 0.103015 0.268876 +vt 0.213001 0.340681 +vt 0.193552 0.345402 +vt 0.094041 0.283036 +vt 0.140668 0.358420 +vt 0.068278 0.324089 +vt 0.349630 0.418726 +vt 0.112923 0.253297 +vt 0.339625 0.182976 +vt 0.339625 0.021790 +vt 0.741574 0.576509 +vt 0.741574 0.754564 +vt 0.725950 0.430156 +vt 0.709519 0.560474 +vn -0.7044 0.7097 -0.0133 +vn -0.1026 0.0075 -0.9947 +vn 0.1755 0.9845 0.0000 +vn -0.5269 0.0940 0.8447 +vn -0.2277 -0.9737 0.0000 +vn 0.9190 0.3942 0.0057 +vn -0.3526 0.9358 0.0000 +vn 0.1465 0.0029 -0.9892 +vn 0.1465 0.0029 0.9892 +vn -0.1755 -0.9845 0.0000 +vn 0.7339 0.0143 0.6791 +vn 0.4147 0.0081 -0.9099 +vn 0.4147 0.0081 0.9099 +vn 0.3526 -0.9358 0.0000 +vn 0.9998 0.0195 0.0000 +vn 0.8889 -0.4581 0.0000 +vn -0.5700 0.8216 0.0000 +vn 0.7339 0.0143 -0.6791 +vn -0.3667 0.0433 -0.9293 +vn -0.7097 -0.7044 -0.0113 +vn -0.3211 0.0435 -0.9461 +vn -0.3371 0.0447 0.9404 +vn -0.9525 0.3038 -0.0225 +vn -0.3829 0.0452 0.9227 +vn -0.8802 0.4743 -0.0177 +vn -0.9916 -0.1277 -0.0222 +vn -0.9822 0.1862 -0.0263 +vn -0.9993 0.0248 -0.0262 +vn -0.5482 0.0619 -0.8340 +vn -0.5564 0.0629 0.8286 +vn 0.5257 0.8507 0.0000 +vn 0.4767 0.8791 0.0000 +vn 0.8418 0.5398 0.0000 +vn -0.1026 0.0075 0.9947 +vn 0.0452 -0.0058 0.9990 +vn -0.0616 0.0185 0.9979 +vn -0.4504 0.1202 -0.8847 +vn -0.0616 0.0185 -0.9979 +vn 0.0452 -0.0058 -0.9990 +vn -0.5492 0.1006 -0.8296 +vn -0.3469 0.0702 -0.9353 +vn -0.6850 -0.7286 -0.0038 +vn 0.8774 0.4798 0.0000 +vn 0.9846 -0.1746 0.0000 +vn -0.4504 0.1202 0.8847 +vn -0.3469 0.0702 0.9353 +s off +f 781/1453/498 782/1454/498 783/1455/498 784/1456/498 +f 785/1457/499 786/1458/499 787/1459/499 788/1460/499 +f 787/1461/500 789/1462/500 790/1463/500 791/1464/500 +f 792/1465/501 793/1466/501 781/1467/501 794/1468/501 +f 785/1469/502 788/1470/502 795/1471/502 796/1472/502 +f 797/1473/503 782/1474/503 781/1475/503 793/1476/503 +f 791/1464/504 790/1463/504 798/1477/504 799/1478/504 +f 788/1460/505 787/1459/505 791/1479/505 800/1480/505 +f 789/1481/506 795/1482/506 801/1483/506 790/1484/506 +f 795/1471/507 788/1470/507 800/1485/507 801/1486/507 +f 798/1487/508 802/1488/508 803/1489/508 804/1490/508 +f 800/1480/509 791/1479/509 799/1491/509 805/1492/509 +f 790/1484/510 801/1483/510 802/1488/510 798/1487/510 +f 801/1486/511 800/1485/511 805/1493/511 802/1494/511 +f 806/1495/512 807/1496/512 804/1497/512 803/1498/512 +f 802/1494/513 805/1493/513 806/1495/513 803/1498/513 +f 799/1478/514 798/1477/514 804/1499/514 807/1500/514 +f 805/1492/515 799/1491/515 807/1501/515 806/1502/515 +f 783/1503/516 808/1504/516 809/1505/516 810/1506/516 +f 811/1507/517 794/1508/517 812/1509/517 808/1510/517 +f 782/1511/518 811/1512/518 808/1504/518 783/1503/518 +f 794/1468/519 781/1467/519 784/1513/519 812/1514/519 +f 813/1515/520 810/1516/520 814/1517/520 815/1518/520 +f 812/1514/521 784/1513/521 813/1519/521 816/1520/521 +f 784/1456/522 783/1455/522 810/1516/522 813/1515/522 +f 808/1510/523 812/1509/523 816/1521/523 809/1522/523 +f 817/1523/524 815/1518/524 814/1517/524 818/1524/524 +f 809/1522/525 816/1521/525 817/1523/525 818/1524/525 +f 810/1506/526 809/1505/526 818/1525/526 814/1526/526 +f 816/1520/527 813/1519/527 815/1527/527 817/1528/527 +f 787/1461/528 786/1529/528 819/1530/528 789/1462/528 +f 786/1529/529 820/1531/529 821/1532/529 819/1530/529 +f 820/1531/530 822/1533/530 823/1534/530 821/1532/530 +f 824/1535/502 825/1536/502 826/1537/502 827/1538/502 +f 825/1536/502 828/1539/502 829/1540/502 826/1537/502 +f 828/1539/502 785/1469/502 796/1472/502 829/1540/502 +f 795/1482/531 789/1481/531 819/1541/531 796/1542/531 +f 796/1542/532 819/1541/532 821/1543/532 829/1544/532 +f 829/1544/533 821/1543/533 823/1545/533 826/1546/533 +f 824/1547/534 830/1548/534 822/1549/534 825/1550/534 +f 825/1550/535 822/1549/535 820/1551/535 828/1552/535 +f 828/1552/536 820/1551/536 786/1458/536 785/1457/536 +f 811/1512/537 782/1511/537 797/1553/537 831/1554/537 +f 831/1554/538 797/1553/538 830/1548/538 824/1547/538 +f 811/1507/539 831/1555/539 792/1556/539 794/1508/539 +f 831/1555/502 824/1535/502 827/1538/502 792/1556/502 +f 822/1533/540 830/1557/540 832/1558/540 823/1534/540 +f 830/1557/541 797/1473/541 793/1476/541 832/1558/541 +f 826/1546/542 823/1545/542 832/1559/542 827/1560/542 +f 827/1560/543 832/1559/543 793/1466/543 792/1465/543 +o HandleHilt_Cylinder.003 +v -1.464091 -0.996279 2.859949 +v -1.457375 -0.967729 2.859949 +v -1.339310 -0.995504 2.929974 +v -1.346026 -1.024054 2.929974 +v -1.339310 -0.995504 3.070026 +v -1.346026 -1.024054 3.070026 +v -1.457375 -0.967729 3.140051 +v -1.464091 -0.996279 3.140051 +v -1.575440 -0.939954 3.070026 +v -1.582156 -0.968503 3.070026 +v -1.343945 -0.917630 2.942875 +v -1.343945 -0.917630 3.057125 +v -1.575440 -0.939954 2.929974 +v -1.582156 -0.968503 2.929974 +v -1.482215 -1.073316 3.113549 +v -1.386492 -1.095835 3.056774 +v -1.440258 -0.894971 2.885751 +v -1.536572 -0.872313 2.942875 +v -1.536572 -0.872313 3.057125 +v -1.440258 -0.894971 3.114249 +v -1.577937 -1.050797 3.056774 +v -1.577937 -1.050797 2.943226 +v -1.539716 -1.059789 2.965895 +v -1.539716 -1.059789 3.034105 +v -1.482215 -1.073316 2.886451 +v -1.386492 -1.095835 2.943226 +v -1.482215 -1.073316 2.931790 +v -1.487302 -1.094942 2.940222 +v -1.537696 -1.083087 2.970111 +v -1.482215 -1.073316 3.068210 +v -1.424713 -1.086844 3.034105 +v -1.424713 -1.086844 2.965895 +v -1.436908 -1.106798 2.970111 +v -1.436908 -1.106798 3.029889 +v -1.487302 -1.094942 3.059778 +v -1.537696 -1.083087 3.029889 +vt 0.127792 0.499999 +vt 0.092894 0.499999 +vt 0.092896 0.333355 +vt 0.127794 0.333355 +vt 0.092894 0.166709 +vt 0.127793 0.166709 +vt 0.092891 0.000065 +vt 0.127790 0.000065 +vt 0.127791 0.999935 +vt 0.092893 0.999934 +vt 0.092892 0.833290 +vt 0.127789 0.833290 +vt 0.000070 0.318005 +vt 0.000069 0.182061 +vt 0.092892 0.666644 +vt 0.127789 0.666644 +vt 0.225837 0.015830 +vt 0.225840 0.150939 +vt 0.000065 0.817939 +vt 0.000065 0.681994 +vt 0.000068 0.484647 +vt 0.000070 0.348704 +vt 0.000069 0.151360 +vt 0.000065 0.015418 +vt 0.000066 0.651291 +vt 0.000067 0.515348 +vt 0.000066 0.984585 +vt 0.000065 0.848641 +vt 0.225839 0.817521 +vt 0.225839 0.682412 +vt 0.272559 0.709386 +vt 0.272559 0.790548 +vt 0.225840 0.515768 +vt 0.225839 0.650877 +vt 0.225839 0.849057 +vt 0.225839 0.984166 +vt 0.225841 0.182477 +vt 0.225842 0.317586 +vt 0.225842 0.349124 +vt 0.225840 0.484234 +vt 0.272559 0.623904 +vt 0.272560 0.542743 +vt 0.300386 0.547759 +vt 0.300385 0.618888 +vt 0.272558 0.042803 +vt 0.272559 0.123964 +vt 0.272561 0.376098 +vt 0.272561 0.457260 +vt 0.272559 0.876030 +vt 0.272559 0.957191 +vt 0.272561 0.209449 +vt 0.272562 0.290612 +vt 0.423583 0.118945 +vt 0.361985 0.154512 +vt 0.300385 0.118949 +vt 0.300384 0.047820 +vt 0.361982 0.012254 +vt 0.423582 0.047816 +vt 0.300385 0.881046 +vt 0.300386 0.952175 +vt 0.300387 0.214466 +vt 0.300388 0.285595 +vt 0.300385 0.714402 +vt 0.300385 0.785531 +vt 0.300387 0.381113 +vt 0.300387 0.452243 +vn 0.4867 -0.1145 -0.8660 +vn 0.9734 -0.2290 0.0000 +vn 0.4867 -0.1145 0.8660 +vn -0.4867 0.1145 0.8660 +vn 0.9982 0.0594 0.0000 +vn -0.9734 0.2290 0.0000 +vn -0.4867 0.1145 -0.8660 +vn 0.4037 -0.3811 0.8318 +vn -0.8670 0.4982 0.0000 +vn 0.5319 0.1691 -0.8297 +vn 0.5319 0.1691 0.8297 +vn -0.4007 0.3885 -0.8297 +vn -0.4007 0.3885 0.8297 +vn -0.2290 -0.9734 0.0000 +vn -0.5312 -0.1612 -0.8318 +vn -0.5312 -0.1612 0.8318 +vn 0.8711 -0.4911 0.0000 +vn -0.9987 -0.0512 0.0000 +vn 0.4037 -0.3811 -0.8318 +vn -0.5339 -0.1952 -0.8227 +vn -0.5339 -0.1952 0.8227 +vn 0.8533 -0.5215 0.0000 +vn -0.9963 -0.0864 0.0000 +vn 0.3909 -0.4127 0.8227 +vn 0.3909 -0.4127 -0.8227 +s off +f 833/1561/544 834/1562/544 835/1563/544 836/1564/544 +f 836/1564/545 835/1563/545 837/1565/545 838/1566/545 +f 838/1566/546 837/1565/546 839/1567/546 840/1568/546 +f 840/1569/547 839/1570/547 841/1571/547 842/1572/547 +f 837/1565/548 835/1563/548 843/1573/548 844/1574/548 +f 842/1572/549 841/1571/549 845/1575/549 846/1576/549 +f 846/1576/550 845/1575/550 834/1562/550 833/1561/550 +f 838/1566/551 840/1568/551 847/1577/551 848/1578/551 +f 845/1575/552 841/1571/552 851/1579/552 850/1580/552 +f 835/1563/553 834/1562/553 849/1581/553 843/1582/553 +f 839/1567/554 837/1565/554 844/1583/554 852/1584/554 +f 834/1562/555 845/1575/555 850/1585/555 849/1586/555 +f 841/1571/556 839/1570/556 852/1587/556 851/1588/556 +f 853/1589/557 854/1590/557 855/1591/557 856/1592/557 +f 846/1576/558 833/1561/558 857/1593/558 854/1594/558 +f 840/1569/559 842/1572/559 853/1595/559 847/1596/559 +f 836/1564/560 838/1566/560 848/1597/560 858/1598/560 +f 842/1572/561 846/1576/561 854/1590/561 853/1589/561 +f 833/1561/562 836/1564/562 858/1599/562 857/1600/562 +f 855/1601/563 859/1602/563 860/1603/563 861/1604/563 +f 848/1578/557 847/1577/557 862/1605/557 863/1606/557 +f 857/1600/557 858/1599/557 864/1607/557 859/1608/557 +f 854/1594/557 857/1593/557 859/1602/557 855/1601/557 +f 847/1596/557 853/1595/557 856/1609/557 862/1610/557 +f 858/1598/557 848/1597/557 863/1611/557 864/1612/557 +f 860/1613/557 865/1614/557 866/1615/557 867/1616/557 868/1617/557 861/1618/557 +f 862/1610/564 856/1609/564 868/1619/564 867/1620/564 +f 864/1612/565 863/1611/565 866/1621/565 865/1622/565 +f 856/1592/566 855/1591/566 861/1623/566 868/1624/566 +f 863/1606/567 862/1605/567 867/1616/567 866/1615/567 +f 859/1608/568 864/1607/568 865/1625/568 860/1626/568 +o HolographicHolder_Cylinder.009 +v -0.972691 1.166717 3.278124 +v -0.972691 1.166717 2.721876 +v -0.987438 1.166717 2.739678 +v -0.987438 1.166717 3.260322 +v -0.934937 1.102284 3.278124 +v -0.934937 1.102284 2.721876 +v -0.971860 1.037372 3.278124 +v -0.971860 1.037372 2.721876 +v -1.046537 1.036892 3.278124 +v -1.046537 1.036892 2.721876 +v -1.047369 1.166237 3.278124 +v -1.084291 1.101324 3.278124 +v -1.084291 1.101324 2.721876 +v -1.047368 1.166237 2.721876 +v -1.032621 1.166237 2.739678 +v -1.032621 1.166237 3.260322 +v -1.033084 1.202181 3.260322 +v -1.033084 1.202181 2.739678 +v -0.987902 1.202661 3.260322 +v -0.987902 1.202661 2.739678 +vt 0.183339 0.841202 +vt 0.183342 0.158794 +vt 0.201434 0.180634 +vt 0.201432 0.819360 +vt 0.091722 0.841201 +vt 0.091726 0.158793 +vt 0.000106 0.841201 +vt 0.000110 0.158793 +vt 0.549809 0.158794 +vt 0.549809 0.841202 +vt 0.458192 0.841202 +vt 0.458193 0.158794 +vt 0.274960 0.841202 +vt 0.320769 0.920549 +vt 0.274958 0.999893 +vt 0.183338 0.999893 +vt 0.137529 0.920547 +vt 0.366577 0.841202 +vt 0.366577 0.158794 +vt 0.274960 0.158794 +vt 0.137534 0.079449 +vt 0.183344 0.000106 +vt 0.274962 0.000107 +vt 0.320770 0.079451 +vt 0.693655 0.044206 +vt 0.693655 0.682938 +vt 0.649555 0.682938 +vt 0.649555 0.044206 +vt 0.256867 0.819362 +vt 0.256868 0.180635 +vt 0.594122 0.682938 +vt 0.594122 0.044206 +vt 0.594021 0.000106 +vt 0.649455 0.000106 +vt 0.550021 0.682938 +vt 0.550021 0.044206 +vt 0.649455 0.727038 +vt 0.594021 0.727038 +vn 0.0016 1.0000 -0.0012 +vn -0.0011 1.0000 -0.0016 +vn 0.0018 1.0000 0.0007 +vn 0.0013 1.0000 0.0015 +vn 0.8618 0.5072 0.0000 +vn 0.8635 0.5043 0.0014 +vn 0.8628 0.5055 0.0000 +vn 0.8692 -0.4944 0.0000 +vn 0.0064 -1.0000 0.0000 +vn -0.0015 0.0013 1.0000 +vn -0.0010 -0.0017 1.0000 +vn 0.0000 0.0000 1.0000 +vn -0.8628 -0.5056 0.0000 +vn -0.8692 0.4944 -0.0000 +vn -0.8692 0.4944 -0.0020 +vn -0.8699 0.4932 0.0014 +vn 0.0010 -0.0017 -1.0000 +vn 0.0018 0.0007 -1.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.9999 -0.0119 0.0017 +vn -0.9999 -0.0109 -0.0005 +vn -0.9999 -0.0129 0.0000 +vn -0.0060 1.0000 0.0000 +vn -0.0076 1.0000 -0.0019 +vn -0.0100 1.0000 0.0000 +vn -0.0086 1.0000 0.0019 +vn 0.0007 1.0000 0.0018 +vn 0.0013 1.0000 -0.0015 +vn -0.0008 1.0000 -0.0018 +vn -0.0020 1.0000 -0.0001 +vn -0.0062 1.0000 0.0008 +vn -0.0065 1.0000 -0.0014 +vn -0.0088 1.0000 -0.0018 +vn -0.0106 0.9999 0.0000 +vn -0.0014 0.0014 -1.0000 +vn 0.0010 0.0018 -1.0000 +vn 0.9999 0.0129 -0.0020 +vn 0.9999 0.0143 0.0014 +vn 0.9999 0.0129 0.0000 +vn 0.0019 0.0005 1.0000 +vn -0.0000 0.0020 1.0000 +s off +f 869/1627/569 870/1628/570 871/1629/571 872/1630/572 +f 870/1628/573 869/1627/574 873/1631/575 874/1632/575 +f 874/1632/576 873/1631/576 875/1633/576 876/1634/576 +f 876/1635/577 875/1636/577 877/1637/577 878/1638/577 +f 869/1627/578 879/1639/579 880/1640/580 877/1641/580 875/1642/580 873/1643/580 +f 878/1638/581 877/1637/581 880/1644/581 881/1645/581 +f 881/1645/582 880/1644/582 879/1639/583 882/1646/584 +f 882/1646/585 870/1628/586 874/1647/587 876/1648/587 878/1649/587 881/1650/587 +f 883/1651/588 884/1652/589 885/1653/590 886/1654/590 +f 879/1639/591 869/1627/592 872/1630/593 884/1655/594 +f 882/1646/595 879/1639/596 884/1655/597 883/1656/598 +f 870/1628/592 882/1646/599 883/1656/600 871/1629/601 +f 886/1654/602 885/1653/602 887/1657/602 888/1658/602 +f 871/1659/603 883/1660/604 886/1654/587 888/1658/587 +f 872/1661/605 871/1662/606 888/1658/607 887/1657/607 +f 884/1663/608 872/1664/609 887/1657/580 885/1653/580 +o ring_Torus +v 0.990151 -0.648179 2.809159 +v 0.990151 -0.321606 2.625201 +v 1.068843 -0.322088 2.670631 +v 1.068843 -0.609076 2.832291 +v 1.068843 -0.323051 2.761491 +v 1.068843 -0.530870 2.878556 +v 0.990151 -0.323533 2.806922 +v 0.990151 -0.491768 2.901688 +v 0.911459 -0.323051 2.761491 +v 0.911459 -0.530870 2.878556 +v 0.911459 -0.322088 2.670631 +v 0.911459 -0.609076 2.832291 +v 0.990151 0.000993 2.816042 +v 1.068843 -0.038592 2.838340 +v 1.068843 -0.117761 2.882936 +v 0.990151 -0.157346 2.905234 +v 0.911459 -0.117761 2.882936 +v 0.911459 -0.038592 2.838340 +v 0.990151 -0.002981 3.190841 +v 1.068843 -0.042084 3.167709 +v 1.068843 -0.120290 3.121444 +v 0.990151 -0.159393 3.098312 +v 0.911459 -0.120290 3.121444 +v 0.911459 -0.042084 3.167709 +v 0.990151 -0.329554 3.374799 +v 1.068843 -0.329073 3.329369 +v 1.068843 -0.328109 3.238509 +v 0.990151 -0.327627 3.193079 +v 0.911459 -0.328109 3.238509 +v 0.911459 -0.329073 3.329369 +v 0.990151 -0.652153 3.183958 +v 1.068843 -0.612568 3.161660 +v 1.068843 -0.533399 3.117064 +v 0.990151 -0.493815 3.094766 +v 0.911459 -0.533399 3.117064 +v 0.911459 -0.612568 3.161660 +vt 0.000208 0.606690 +vt 0.297562 0.606690 +vt 0.279540 0.676487 +vt 0.018230 0.676486 +vt 0.243498 0.738915 +vt 0.054272 0.738915 +vt 0.225476 0.808712 +vt 0.072293 0.808712 +vt 0.072294 0.404668 +vt 0.225476 0.404668 +vt 0.243498 0.474465 +vt 0.054272 0.474465 +vt 0.279540 0.536893 +vt 0.018230 0.536893 +vt 0.297978 0.202229 +vt 0.595332 0.202230 +vt 0.577310 0.272027 +vt 0.315999 0.272026 +vt 0.541267 0.334455 +vt 0.352042 0.334454 +vt 0.523245 0.404252 +vt 0.370063 0.404251 +vt 0.370064 0.000208 +vt 0.523246 0.000208 +vt 0.541268 0.070005 +vt 0.352042 0.070005 +vt 0.577310 0.132433 +vt 0.315999 0.132433 +vt 0.797770 0.000208 +vt 0.797770 0.297561 +vt 0.727973 0.279540 +vt 0.727973 0.018229 +vt 0.665545 0.243497 +vt 0.665545 0.054272 +vt 0.595748 0.225476 +vt 0.595748 0.072294 +vt 0.999792 0.072294 +vt 0.999792 0.225476 +vt 0.929995 0.243497 +vt 0.929995 0.054272 +vt 0.867567 0.279540 +vt 0.867567 0.018229 +vt 0.297562 0.202230 +vt 0.000208 0.202229 +vt 0.018229 0.132432 +vt 0.279541 0.132434 +vt 0.054273 0.070005 +vt 0.243498 0.070005 +vt 0.072294 0.000208 +vt 0.225477 0.000208 +vt 0.225475 0.404252 +vt 0.072292 0.404251 +vt 0.054271 0.334454 +vt 0.243497 0.334455 +vt 0.018228 0.272026 +vt 0.279540 0.272027 +vt 0.595332 0.606690 +vt 0.297978 0.606690 +vt 0.316000 0.536893 +vt 0.577310 0.536894 +vt 0.352043 0.474465 +vt 0.541268 0.474465 +vt 0.370064 0.404668 +vt 0.523247 0.404669 +vt 0.523246 0.808712 +vt 0.370063 0.808712 +vt 0.352042 0.738915 +vt 0.541268 0.738915 +vt 0.316000 0.676487 +vt 0.577310 0.676487 +vt 0.797769 0.595331 +vt 0.797770 0.297977 +vt 0.867567 0.315999 +vt 0.867567 0.577309 +vt 0.929995 0.352042 +vt 0.929995 0.541267 +vt 0.999791 0.370063 +vt 0.999791 0.523245 +vt 0.595748 0.523245 +vt 0.595748 0.370063 +vt 0.665544 0.352042 +vt 0.665544 0.541266 +vt 0.727973 0.315999 +vt 0.727973 0.577309 +vn 0.4472 -0.4390 -0.7793 +vn 1.0000 0.0000 0.0000 +vn 0.4472 0.4390 0.7793 +vn -0.4472 0.4390 0.7793 +vn -1.0000 0.0000 0.0000 +vn -0.4472 -0.4390 -0.7793 +vn 0.4472 0.4554 -0.7698 +vn 0.4472 -0.4554 0.7698 +vn -0.4472 -0.4554 0.7698 +vn -0.4472 0.4554 -0.7698 +vn 0.4472 0.8944 0.0095 +vn 0.4472 -0.8944 -0.0095 +vn -0.4472 -0.8944 -0.0095 +vn -0.4472 0.8944 0.0095 +s off +f 889/1665/610 890/1666/610 891/1667/610 892/1668/610 +f 892/1668/611 891/1667/611 893/1669/611 894/1670/611 +f 894/1670/612 893/1669/612 895/1671/612 896/1672/612 +f 896/1673/613 895/1674/613 897/1675/613 898/1676/613 +f 898/1676/614 897/1675/614 899/1677/614 900/1678/614 +f 900/1678/615 899/1677/615 890/1666/615 889/1665/615 +f 890/1679/616 901/1680/616 902/1681/616 891/1682/616 +f 891/1682/611 902/1681/611 903/1683/611 893/1684/611 +f 893/1684/617 903/1683/617 904/1685/617 895/1686/617 +f 895/1687/618 904/1688/618 905/1689/618 897/1690/618 +f 897/1690/614 905/1689/614 906/1691/614 899/1692/614 +f 899/1692/619 906/1691/619 901/1680/619 890/1679/619 +f 901/1693/620 907/1694/620 908/1695/620 902/1696/620 +f 902/1696/611 908/1695/611 909/1697/611 903/1698/611 +f 903/1698/621 909/1697/621 910/1699/621 904/1700/621 +f 904/1701/622 910/1702/622 911/1703/622 905/1704/622 +f 905/1704/614 911/1703/614 912/1705/614 906/1706/614 +f 906/1706/623 912/1705/623 907/1694/623 901/1693/623 +f 907/1707/612 913/1708/612 914/1709/612 908/1710/612 +f 908/1710/611 914/1709/611 915/1711/611 909/1712/611 +f 909/1712/610 915/1711/610 916/1713/610 910/1714/610 +f 910/1715/615 916/1716/615 917/1717/615 911/1718/615 +f 911/1718/614 917/1717/614 918/1719/614 912/1720/614 +f 912/1720/613 918/1719/613 913/1708/613 907/1707/613 +f 913/1721/617 919/1722/617 920/1723/617 914/1724/617 +f 914/1724/611 920/1723/611 921/1725/611 915/1726/611 +f 915/1726/616 921/1725/616 922/1727/616 916/1728/616 +f 916/1729/619 922/1730/619 923/1731/619 917/1732/619 +f 917/1732/614 923/1731/614 924/1733/614 918/1734/614 +f 918/1734/618 924/1733/618 919/1722/618 913/1721/618 +f 919/1735/621 889/1736/621 892/1737/621 920/1738/621 +f 920/1738/611 892/1737/611 894/1739/611 921/1740/611 +f 921/1740/620 894/1739/620 896/1741/620 922/1742/620 +f 922/1743/623 896/1744/623 898/1745/623 923/1746/623 +f 923/1746/614 898/1745/614 900/1747/614 924/1748/614 +f 924/1748/622 900/1747/622 889/1736/622 919/1735/622 +o Roundthing_Cylinder.008 +v -0.654718 0.939467 3.338343 +v -0.745955 0.781575 3.338343 +v -0.745839 1.097427 3.338343 +v -0.757348 1.077508 3.380293 +v -0.677723 0.939476 3.380293 +v -1.019432 0.939601 3.338343 +v -0.928196 1.097493 3.338343 +v -0.928312 0.781642 3.338343 +v -0.916701 1.077567 3.380293 +v -0.996428 0.939592 3.380293 +v -0.949024 0.939575 3.380293 +v -0.893014 1.036505 3.380293 +v -0.916802 0.801560 3.380293 +v -0.757450 0.801501 3.380293 +v -0.781065 1.036464 3.380293 +v -0.884357 1.021497 3.419074 +v -0.789734 1.021463 3.419074 +v -0.781137 0.842563 3.380293 +v -0.893085 0.842604 3.380293 +v -0.725127 0.939493 3.380293 +v -0.931698 0.939569 3.419074 +v -0.877029 0.939549 3.419074 +v -0.857040 0.974142 3.419074 +v -0.884417 0.857606 3.419074 +v -0.742452 0.939499 3.419074 +v -0.789794 0.857571 3.419074 +v -0.817086 0.974128 3.419074 +v -0.857040 0.974142 3.317496 +v -0.817086 0.974128 3.317496 +v -0.817111 0.904926 3.419074 +v -0.857065 0.904940 3.419074 +v -0.797122 0.939519 3.419074 +v -0.797122 0.939519 3.317496 +v -0.877029 0.939549 3.317496 +v -0.857065 0.904940 3.317496 +v -0.817111 0.904926 3.317496 +v -0.745955 0.781575 2.661657 +v -0.654718 0.939467 2.661657 +v -0.677723 0.939476 2.619707 +v -0.757348 1.077508 2.619707 +v -0.745839 1.097427 2.661657 +v -0.928196 1.097493 2.661657 +v -1.019432 0.939601 2.661657 +v -0.928312 0.781642 2.661657 +v -0.916701 1.077567 2.619707 +v -0.893014 1.036505 2.619707 +v -0.949024 0.939575 2.619707 +v -0.996428 0.939593 2.619707 +v -0.916802 0.801560 2.619707 +v -0.757450 0.801502 2.619707 +v -0.781065 1.036464 2.619707 +v -0.789734 1.021463 2.580926 +v -0.884357 1.021497 2.580926 +v -0.893085 0.842604 2.619707 +v -0.781137 0.842563 2.619707 +v -0.725127 0.939493 2.619707 +v -0.857040 0.974142 2.580926 +v -0.877029 0.939549 2.580926 +v -0.931698 0.939569 2.580926 +v -0.884417 0.857606 2.580926 +v -0.789794 0.857571 2.580926 +v -0.742452 0.939499 2.580926 +v -0.817086 0.974128 2.580926 +v -0.817086 0.974128 2.682504 +v -0.857040 0.974142 2.682504 +v -0.857065 0.904940 2.580926 +v -0.817111 0.904926 2.580926 +v -0.797122 0.939519 2.580926 +v -0.797122 0.939519 2.682504 +v -0.817111 0.904926 2.682504 +v -0.857065 0.904940 2.682504 +v -0.877029 0.939549 2.682504 +vt 0.295914 0.225582 +vt 0.443817 0.225582 +vt 0.443818 0.774418 +vt 0.295914 0.774418 +vt 0.148010 0.225582 +vt 0.148010 0.774418 +vt 0.286585 0.812084 +vt 0.157340 0.812084 +vt 0.591720 0.225581 +vt 0.739623 0.225582 +vt 0.739623 0.774418 +vt 0.591721 0.774418 +vt 0.887527 0.225581 +vt 0.887527 0.774418 +vt 0.453146 0.812084 +vt 0.582392 0.812084 +vt 0.563168 0.845381 +vt 0.472370 0.845381 +vt 0.434489 0.812084 +vt 0.305243 0.812085 +vt 0.730295 0.812084 +vt 0.601050 0.812084 +vt 0.000107 0.774419 +vt 0.138682 0.812085 +vt 0.009436 0.812084 +vt 0.878198 0.812084 +vt 0.748953 0.812084 +vt 0.324467 0.845381 +vt 0.415265 0.845381 +vt 0.408239 0.879107 +vt 0.331494 0.879107 +vt 0.858974 0.845380 +vt 0.768176 0.845380 +vt 0.267361 0.845381 +vt 0.176564 0.845381 +vt 0.711071 0.845381 +vt 0.620273 0.845380 +vt 0.119458 0.845381 +vt 0.028660 0.845381 +vt 0.479397 0.879107 +vt 0.556142 0.879107 +vt 0.533972 0.917507 +vt 0.501567 0.917507 +vt 0.704044 0.879107 +vt 0.627299 0.879107 +vt 0.112432 0.879107 +vt 0.035686 0.879108 +vt 0.851948 0.879107 +vt 0.775202 0.879107 +vt 0.260335 0.879107 +vt 0.183589 0.879107 +vt 0.353664 0.917507 +vt 0.386069 0.917507 +vt 0.386068 0.999893 +vt 0.353663 0.999893 +vt 0.829778 0.917507 +vt 0.797372 0.917506 +vt 0.238166 0.917507 +vt 0.205760 0.917507 +vt 0.681875 0.917506 +vt 0.649469 0.917507 +vt 0.090261 0.917507 +vt 0.057857 0.917507 +vt 0.943867 0.113737 +vt 0.915803 0.129940 +vt 0.887739 0.113737 +vt 0.887739 0.081333 +vt 0.915803 0.065129 +vt 0.943867 0.081332 +vt 0.681876 0.999892 +vt 0.649470 0.999893 +vt 0.090260 0.999894 +vt 0.057856 0.999893 +vt 0.533971 0.999893 +vt 0.501567 0.999893 +vt 0.829776 0.999893 +vt 0.797370 0.999892 +vt 0.238167 0.999893 +vt 0.205762 0.999894 +vt 0.157339 0.187916 +vt 0.286584 0.187916 +vt 0.000106 0.225582 +vt 0.453146 0.187916 +vt 0.472370 0.154619 +vt 0.563167 0.154619 +vt 0.582391 0.187916 +vt 0.305242 0.187916 +vt 0.434488 0.187916 +vt 0.601048 0.187916 +vt 0.730294 0.187915 +vt 0.009435 0.187917 +vt 0.138680 0.187916 +vt 0.748952 0.187916 +vt 0.878197 0.187915 +vt 0.324466 0.154619 +vt 0.331493 0.120893 +vt 0.408238 0.120893 +vt 0.415264 0.154619 +vt 0.768176 0.154619 +vt 0.858973 0.154619 +vt 0.176563 0.154619 +vt 0.267360 0.154619 +vt 0.620273 0.154619 +vt 0.711071 0.154619 +vt 0.028658 0.154620 +vt 0.119456 0.154619 +vt 0.479396 0.120893 +vt 0.501566 0.082493 +vt 0.533971 0.082493 +vt 0.556141 0.120893 +vt 0.627299 0.120893 +vt 0.704044 0.120893 +vt 0.035685 0.120893 +vt 0.112430 0.120893 +vt 0.775202 0.120893 +vt 0.851947 0.120893 +vt 0.183588 0.120893 +vt 0.260334 0.120893 +vt 0.353663 0.082493 +vt 0.353662 0.000107 +vt 0.386067 0.000107 +vt 0.386068 0.082493 +vt 0.797372 0.082493 +vt 0.829777 0.082493 +vt 0.205759 0.082493 +vt 0.238164 0.082493 +vt 0.649468 0.082493 +vt 0.681874 0.082493 +vt 0.057855 0.082494 +vt 0.090259 0.082493 +vt 0.943870 0.016312 +vt 0.943867 0.048716 +vt 0.915802 0.064917 +vt 0.887739 0.048711 +vt 0.887742 0.016307 +vt 0.915807 0.000106 +vt 0.649469 0.000107 +vt 0.681875 0.000107 +vt 0.057854 0.000108 +vt 0.090258 0.000107 +vt 0.501566 0.000107 +vt 0.533970 0.000107 +vt 0.797370 0.000107 +vt 0.829776 0.000106 +vt 0.205760 0.000106 +vt 0.238166 0.000107 +vn 0.0004 1.0000 0.0000 +vn 0.8662 0.4997 0.0000 +vn 0.7825 0.4514 0.4290 +vn -0.8662 -0.4997 0.0000 +vn -0.0004 -1.0000 0.0000 +vn -0.8658 0.5003 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0003 0.9033 0.4290 +vn -0.7825 -0.4514 0.4290 +vn 0.7821 -0.4519 0.4290 +vn -0.7821 0.4519 0.4290 +vn -0.0003 -0.9033 0.4290 +vn 0.0003 0.9326 0.3608 +vn -0.8079 -0.4660 0.3608 +vn 0.8075 -0.4666 0.3608 +vn -0.8075 0.4666 0.3608 +vn -0.0003 -0.9326 0.3608 +vn 0.8079 0.4660 0.3608 +vn 0.8658 -0.5003 0.0000 +vn 0.7825 0.4514 -0.4290 +vn 0.0000 0.0000 -1.0000 +vn 0.0003 0.9033 -0.4290 +vn -0.7825 -0.4514 -0.4290 +vn 0.7821 -0.4519 -0.4290 +vn -0.7821 0.4519 -0.4290 +vn -0.0003 -0.9033 -0.4290 +vn 0.0003 0.9326 -0.3608 +vn -0.8079 -0.4660 -0.3608 +vn 0.8075 -0.4666 -0.3608 +vn -0.8075 0.4666 -0.3608 +vn -0.0003 -0.9326 -0.3608 +vn 0.8079 0.4660 -0.3608 +s off +f 965/1749/624 966/1750/624 931/1751/624 927/1752/624 +f 962/1753/625 965/1749/625 927/1752/625 925/1754/625 +f 925/1754/626 927/1752/626 928/1755/626 929/1756/626 +f 967/1757/627 968/1758/627 932/1759/627 930/1760/627 +f 968/1758/628 961/1761/628 926/1762/628 932/1759/628 +f 967/1757/629 930/1760/629 931/1751/629 966/1750/629 +f 933/1763/630 934/1764/630 935/1765/630 936/1766/630 +f 927/1752/631 931/1751/631 933/1767/631 928/1768/631 +f 930/1760/632 932/1759/632 937/1769/632 934/1770/632 +f 926/1771/633 925/1754/633 929/1772/633 938/1773/633 +f 931/1751/634 930/1760/634 934/1764/634 933/1763/634 +f 932/1759/635 926/1762/635 938/1774/635 937/1775/635 +f 939/1776/636 936/1777/636 940/1778/636 941/1779/636 +f 937/1775/630 938/1774/630 942/1780/630 943/1781/630 +f 929/1756/630 928/1755/630 939/1782/630 944/1783/630 +f 928/1768/630 933/1767/630 936/1777/630 939/1776/630 +f 934/1770/630 937/1769/630 943/1784/630 935/1785/630 +f 938/1773/630 929/1772/630 944/1786/630 942/1787/630 +f 940/1788/630 945/1789/630 946/1790/630 947/1791/630 +f 935/1785/637 943/1784/637 948/1792/637 945/1793/637 +f 942/1787/638 944/1786/638 949/1794/638 950/1795/638 +f 936/1766/639 935/1765/639 945/1789/639 940/1788/639 +f 943/1781/640 942/1780/640 950/1796/640 948/1797/640 +f 944/1783/641 939/1782/641 941/1798/641 949/1799/641 +f 951/1800/628 947/1801/628 952/1802/628 953/1803/628 +f 948/1797/630 950/1796/630 954/1804/630 955/1805/630 +f 949/1799/630 941/1798/630 951/1806/630 956/1807/630 +f 941/1779/630 940/1778/630 947/1801/630 951/1800/630 +f 945/1793/630 948/1792/630 955/1808/630 946/1809/630 +f 950/1795/630 949/1794/630 956/1810/630 954/1811/630 +f 957/1812/630 953/1813/630 952/1814/630 958/1815/630 959/1816/630 960/1817/630 +f 946/1809/625 955/1808/625 959/1818/625 958/1819/625 +f 954/1811/629 956/1810/629 957/1820/629 960/1821/629 +f 947/1791/642 946/1790/642 958/1822/642 952/1823/642 +f 955/1805/624 954/1804/624 960/1824/624 959/1825/624 +f 956/1807/627 951/1806/627 953/1826/627 957/1827/627 +f 962/1753/643 963/1828/643 964/1829/643 965/1749/643 +f 961/1830/642 962/1753/642 925/1754/642 926/1771/642 +f 969/1831/644 970/1832/644 971/1833/644 972/1834/644 +f 965/1749/645 964/1835/645 969/1836/645 966/1750/645 +f 967/1757/646 972/1837/646 973/1838/646 968/1758/646 +f 961/1830/647 974/1839/647 963/1840/647 962/1753/647 +f 966/1750/648 969/1831/648 972/1834/648 967/1757/648 +f 968/1758/649 973/1841/649 974/1842/649 961/1761/649 +f 975/1843/650 976/1844/650 977/1845/650 970/1846/650 +f 973/1841/644 978/1847/644 979/1848/644 974/1842/644 +f 963/1828/644 980/1849/644 975/1850/644 964/1829/644 +f 964/1835/644 975/1843/644 970/1846/644 969/1836/644 +f 972/1837/644 971/1851/644 978/1852/644 973/1838/644 +f 974/1839/644 979/1853/644 980/1854/644 963/1840/644 +f 977/1855/644 981/1856/644 982/1857/644 983/1858/644 +f 971/1851/651 983/1859/651 984/1860/651 978/1852/651 +f 979/1853/652 985/1861/652 986/1862/652 980/1854/652 +f 970/1832/653 977/1855/653 983/1858/653 971/1833/653 +f 978/1847/654 984/1863/654 985/1864/654 979/1848/654 +f 980/1849/655 986/1865/655 976/1866/655 975/1850/655 +f 987/1867/628 988/1868/628 989/1869/628 981/1870/628 +f 984/1863/644 990/1871/644 991/1872/644 985/1864/644 +f 986/1865/644 992/1873/644 987/1874/644 976/1866/644 +f 976/1844/644 987/1867/644 981/1870/644 977/1845/644 +f 983/1859/644 982/1875/644 990/1876/644 984/1860/644 +f 985/1861/644 991/1877/644 992/1878/644 986/1862/644 +f 993/1879/644 994/1880/644 995/1881/644 996/1882/644 989/1883/644 988/1884/644 +f 982/1875/625 996/1885/625 995/1886/625 990/1876/625 +f 991/1877/629 994/1887/629 993/1888/629 992/1878/629 +f 981/1856/642 989/1889/642 996/1890/642 982/1857/642 +f 990/1871/624 995/1891/624 994/1892/624 991/1872/624 +f 992/1873/627 993/1893/627 988/1894/627 987/1874/627 +o SideHolders.001_Cube.002 +v 1.310526 -0.082794 3.073582 +v 1.384588 0.101767 3.073582 +v 1.139921 0.101767 3.053905 +v 1.144858 -0.044123 3.053905 +v 1.384588 0.101767 2.930023 +v 1.504148 0.101767 3.073582 +v 1.504148 0.101767 2.930023 +v 1.430086 -0.082794 3.073582 +v 1.608182 -0.022025 3.051795 +v 1.577323 0.101767 3.051795 +v 1.430086 -0.082794 2.930023 +v 1.310526 -0.082794 2.930023 +v 1.577323 0.101767 2.951809 +v 1.608182 -0.022025 2.951809 +v 1.144858 -0.044123 2.949699 +v 1.139921 0.101767 2.949699 +v 1.384588 0.551670 3.654257 +v 1.384588 0.551670 3.449972 +v 1.139921 0.531994 3.449972 +v 1.139921 0.531994 3.558806 +v 1.384588 0.408111 3.449972 +v 1.504148 0.551670 3.449972 +v 1.504148 0.408111 3.449972 +v 1.504148 0.551670 3.654257 +v 1.577323 0.529883 3.613238 +v 1.577323 0.529883 3.449972 +v 1.504148 0.408111 3.654257 +v 1.384588 0.408111 3.654257 +v 1.577323 0.429898 3.449972 +v 1.577323 0.429898 3.613238 +v 1.139921 0.427787 3.558806 +v 1.139921 0.427787 3.449972 +v 1.384588 0.551670 2.345743 +v 1.139921 0.531994 2.441195 +v 1.139921 0.531994 2.550028 +v 1.384588 0.551670 2.550028 +v 1.384588 0.408111 2.550028 +v 1.504148 0.408111 2.550028 +v 1.504148 0.551670 2.550028 +v 1.577323 0.529883 2.550028 +v 1.577323 0.529883 2.386762 +v 1.504148 0.551670 2.345743 +v 1.504148 0.408111 2.345743 +v 1.384588 0.408111 2.345743 +v 1.577323 0.429898 2.550028 +v 1.577323 0.429898 2.386762 +v 1.139921 0.427787 2.441195 +v 1.139921 0.427787 2.550028 +vt 0.300882 0.683064 +vt 0.346645 0.797105 +vt 0.194976 0.797301 +vt 0.197840 0.707149 +vt 0.346645 0.885811 +vt 0.420522 0.797105 +vt 0.420522 0.885811 +vt 0.374758 0.683064 +vt 0.485753 0.720233 +vt 0.467698 0.796970 +vt 0.660845 0.885811 +vt 0.660845 0.797105 +vt 0.734722 0.797105 +vt 0.734722 0.885811 +vt 0.374758 0.999852 +vt 0.300882 0.999852 +vt 0.465737 0.872350 +vt 0.465737 0.810568 +vt 0.544569 0.810568 +vt 0.544569 0.872350 +vt 0.467698 0.885946 +vt 0.485753 0.962683 +vt 0.105267 0.873653 +vt 0.105267 0.809264 +vt 0.195464 0.809264 +vt 0.195464 0.873653 +vt 0.197840 0.975767 +vt 0.194976 0.885615 +vt 0.000148 0.885811 +vt 0.000148 0.797105 +vt 0.380856 0.000148 +vt 0.380856 0.126376 +vt 0.229187 0.126376 +vt 0.229187 0.059127 +vt 0.380856 0.215082 +vt 0.454733 0.126376 +vt 0.454733 0.215082 +vt 0.454733 0.000148 +vt 0.501909 0.025494 +vt 0.501909 0.126376 +vt 0.652665 0.215082 +vt 0.652665 0.126376 +vt 0.726542 0.126376 +vt 0.726542 0.215082 +vt 0.454733 0.341311 +vt 0.380856 0.341311 +vt 0.499948 0.201620 +vt 0.499948 0.139839 +vt 0.600830 0.139839 +vt 0.600830 0.201620 +vt 0.501909 0.215082 +vt 0.501909 0.315965 +vt 0.162426 0.202924 +vt 0.162426 0.138534 +vt 0.229675 0.138534 +vt 0.229675 0.202924 +vt 0.229187 0.282331 +vt 0.229187 0.215082 +vt 0.000148 0.215082 +vt 0.000148 0.126376 +vt 0.380855 0.682769 +vt 0.229186 0.623789 +vt 0.229186 0.556540 +vt 0.380855 0.556540 +vt 0.380855 0.467835 +vt 0.454732 0.467835 +vt 0.454732 0.556540 +vt 0.501909 0.556540 +vt 0.501908 0.657423 +vt 0.454732 0.682769 +vt 0.652664 0.467835 +vt 0.726541 0.467835 +vt 0.726541 0.556540 +vt 0.652664 0.556540 +vt 0.380855 0.341606 +vt 0.454732 0.341606 +vt 0.499947 0.481297 +vt 0.600829 0.481297 +vt 0.600829 0.543078 +vt 0.499947 0.543078 +vt 0.501908 0.366952 +vt 0.501908 0.467835 +vt 0.162426 0.479993 +vt 0.229674 0.479993 +vt 0.229675 0.544383 +vt 0.162426 0.544383 +vt 0.229186 0.467835 +vt 0.229186 0.400586 +vt 0.000148 0.467835 +vt 0.000148 0.556540 +vn -0.0936 0.0196 0.9954 +vn 0.0000 1.0000 0.0000 +vn 0.1766 -0.0247 0.9840 +vn 0.0000 -1.0000 -0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.9703 0.2419 0.0000 +vn 0.3229 -0.9464 -0.0000 +vn 0.1766 -0.0247 -0.9840 +vn -0.9994 -0.0338 -0.0000 +vn -0.0936 0.0196 -0.9954 +vn -0.2273 -0.9738 0.0000 +vn -0.0802 0.9968 0.0000 +vn 0.2854 0.9584 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.4890 0.0000 0.8723 +vn 0.2854 -0.9584 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.0802 -0.9968 0.0000 +vn -0.3634 0.0000 0.9316 +vn 0.4890 0.0000 -0.8723 +vn -0.3634 0.0000 -0.9316 +s off +f 997/1895/656 998/1896/656 999/1897/656 1000/1898/656 +f 1001/1899/657 998/1896/657 1002/1900/657 1003/1901/657 +f 1002/1900/658 1004/1902/658 1005/1903/658 1006/1904/658 +f 1007/1905/659 1004/1906/659 997/1907/659 1008/1908/659 +f 1001/1899/660 1003/1901/660 1007/1909/660 1008/1910/660 +f 1002/1900/661 998/1896/661 997/1895/661 1004/1902/661 +f 1009/1911/662 1006/1912/662 1005/1913/662 1010/1914/662 +f 1003/1901/657 1002/1900/657 1006/1912/657 1009/1911/657 +f 1004/1906/663 1007/1905/663 1010/1914/663 1005/1913/663 +f 1007/1909/664 1003/1901/664 1009/1915/664 1010/1916/664 +f 1011/1917/665 1000/1918/665 999/1919/665 1012/1920/665 +f 1001/1899/666 1008/1910/666 1011/1921/666 1012/1922/666 +f 998/1896/657 1001/1899/657 1012/1920/657 999/1919/657 +f 1008/1923/667 997/1924/667 1000/1918/667 1011/1917/667 +f 1013/1925/668 1014/1926/668 1015/1927/668 1016/1928/668 +f 1017/1929/660 1014/1926/660 1018/1930/660 1019/1931/660 +f 1018/1930/669 1020/1932/669 1021/1933/669 1022/1934/669 +f 1023/1935/661 1020/1936/661 1013/1937/661 1024/1938/661 +f 1017/1929/659 1019/1931/659 1023/1939/659 1024/1940/659 +f 1018/1930/657 1014/1926/657 1013/1925/657 1020/1932/657 +f 1025/1941/670 1022/1942/670 1021/1943/670 1026/1944/670 +f 1019/1931/660 1018/1930/660 1022/1942/660 1025/1941/660 +f 1020/1936/671 1023/1935/671 1026/1944/671 1021/1943/671 +f 1023/1939/672 1019/1931/672 1025/1945/672 1026/1946/672 +f 1027/1947/673 1016/1948/673 1015/1949/673 1028/1950/673 +f 1017/1929/674 1024/1940/674 1027/1951/674 1028/1952/674 +f 1014/1926/660 1017/1929/660 1028/1950/660 1015/1949/660 +f 1024/1953/675 1013/1954/675 1016/1948/675 1027/1947/675 +f 1029/1955/668 1030/1956/668 1031/1957/668 1032/1958/668 +f 1033/1959/661 1034/1960/661 1035/1961/661 1032/1958/661 +f 1035/1961/669 1036/1962/669 1037/1963/669 1038/1964/669 +f 1039/1965/660 1040/1966/660 1029/1967/660 1038/1968/660 +f 1033/1959/659 1040/1969/659 1039/1970/659 1034/1960/659 +f 1035/1961/657 1038/1964/657 1029/1955/657 1032/1958/657 +f 1041/1971/670 1042/1972/670 1037/1973/670 1036/1974/670 +f 1034/1960/661 1041/1971/661 1036/1974/661 1035/1961/661 +f 1038/1968/676 1037/1973/676 1042/1972/676 1039/1965/676 +f 1039/1970/672 1042/1975/672 1041/1976/672 1034/1960/672 +f 1043/1977/673 1044/1978/673 1031/1979/673 1030/1980/673 +f 1033/1959/674 1044/1981/674 1043/1982/674 1040/1969/674 +f 1032/1958/661 1031/1979/661 1044/1978/661 1033/1959/661 +f 1040/1983/677 1043/1977/677 1030/1980/677 1029/1984/677 +o Trigger_Cube.008 +v -0.906556 -0.031746 3.035327 +v -0.906556 -0.031746 2.964673 +v -0.750972 -0.031746 2.964673 +v -0.750972 -0.031746 3.035327 +v -0.891840 -0.172320 2.964673 +v -0.891840 -0.172320 3.035327 +v -0.858049 -0.254618 3.035327 +v -0.773318 -0.237178 3.035327 +v -0.781494 -0.172320 3.035327 +v -0.781494 -0.172320 2.964673 +v -0.752234 -0.268743 3.035327 +v -0.752234 -0.268743 2.964673 +v -0.773318 -0.237178 2.964673 +v -0.858049 -0.254618 2.964673 +v -0.786277 -0.298175 3.035327 +v -0.786277 -0.298175 2.964673 +vt 0.732975 0.555968 +vt 0.732975 0.444032 +vt 0.960872 0.444032 +vt 0.960872 0.555968 +vt 0.629883 0.999902 +vt 0.501865 0.816180 +vt 0.634112 0.701846 +vt 0.816347 0.838695 +vt 0.816347 0.161306 +vt 0.634112 0.298154 +vt 0.501866 0.183820 +vt 0.629884 0.000098 +vt 0.457090 0.682536 +vt 0.576709 0.615643 +vt 0.629409 0.555968 +vt 0.569271 0.555968 +vt 0.569271 0.444032 +vt 0.629409 0.444032 +vt 0.576709 0.384356 +vt 0.457091 0.317464 +vt 0.224023 0.444032 +vt 0.364968 0.444032 +vt 0.364968 0.555968 +vt 0.224023 0.555967 +vt 0.497976 0.555968 +vt 0.497976 0.444032 +vt 0.000098 0.555967 +vt 0.000098 0.444032 +vn 0.9772 -0.2122 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.8316 0.5554 0.0000 +vn 0.9921 0.1251 0.0000 +vn -0.9251 -0.3798 0.0000 +vn 0.6540 -0.7565 0.0000 +vn -0.5188 -0.8549 0.0000 +vn -0.9946 -0.1041 0.0000 +s off +f 1053/1985/678 1054/1986/678 1047/1987/678 1048/1988/678 +f 1045/1989/679 1050/1990/679 1053/1991/679 1048/1992/679 +f 1047/1993/680 1054/1994/680 1049/1995/680 1046/1996/680 +f 1050/1990/679 1051/1997/679 1052/1998/679 1053/1991/679 +f 1052/1999/681 1055/2000/681 1056/2001/681 1057/2002/681 +f 1054/1994/680 1057/2003/680 1058/2004/680 1049/1995/680 +f 1053/1985/682 1052/1999/682 1057/2002/682 1054/1986/682 +f 1049/2005/683 1058/2006/683 1051/2007/683 1050/2008/683 +f 1056/2001/684 1055/2000/684 1059/2009/684 1060/2010/684 +f 1058/2006/685 1060/2010/685 1059/2009/685 1051/2007/685 +f 1051/1997/679 1059/2009/679 1055/2000/679 1052/1998/679 +f 1057/2003/680 1056/2001/680 1060/2010/680 1058/2004/680 +f 1049/2005/686 1050/2008/686 1045/2011/686 1046/2012/686 +o TriggerGuard_Cube.007 +v -0.991593 0.009137 3.090896 +v -0.991593 0.050129 3.090896 +v -0.991593 0.050129 2.909104 +v -0.991593 0.009137 2.909104 +v -0.359255 0.050129 2.909104 +v -0.359255 0.009137 2.909104 +v -0.359255 0.050129 3.090896 +v -0.359255 0.009137 3.090896 +v -0.952793 -0.032302 3.079741 +v -0.475801 -0.032302 3.079741 +v -0.398056 -0.032302 3.079741 +v -0.952793 -0.032302 2.920259 +v -0.477062 -0.032302 2.920259 +v -0.398056 -0.032302 2.920259 +v -0.547697 -0.243266 2.920259 +v -0.468691 -0.243266 2.920259 +v -0.417833 -0.308250 2.920259 +v -0.496840 -0.308250 2.920259 +v -0.468691 -0.243266 3.079741 +v -0.546437 -0.243266 3.079741 +v -0.495579 -0.308250 3.079741 +v -0.884730 -0.317360 2.926286 +v -0.883469 -0.317360 3.085769 +v -0.417833 -0.308250 3.079741 +v -0.548320 -0.390292 3.079741 +v -0.549581 -0.390292 2.920259 +v -0.470574 -0.390292 2.920259 +v -0.470574 -0.390292 3.079741 +v -0.933383 -0.398929 2.926286 +v -0.932122 -0.398929 3.085769 +v -1.071287 -0.315922 3.087949 +v -1.072548 -0.315922 2.928467 +v -1.022634 -0.234353 3.087949 +v -1.023895 -0.234353 2.928467 +vt 0.956076 0.222809 +vt 0.956106 0.245106 +vt 0.612150 0.245577 +vt 0.612119 0.223279 +vt 0.589852 0.245607 +vt 0.612285 0.344461 +vt 0.589988 0.344491 +vt 0.612315 0.366758 +vt 0.956241 0.343990 +vt 0.956272 0.366288 +vt 0.935199 0.389660 +vt 0.675742 0.390014 +vt 0.633453 0.390072 +vt 0.724411 0.676828 +vt 0.465641 0.676037 +vt 0.465221 0.589286 +vt 0.724676 0.590079 +vt 0.633193 0.199908 +vt 0.676167 0.199849 +vt 0.934939 0.199494 +vt 0.559100 0.338466 +vt 0.558982 0.251717 +vt 0.714431 0.085044 +vt 0.671457 0.085103 +vt 0.643744 0.049793 +vt 0.686720 0.049734 +vt 0.438087 0.338631 +vt 0.437968 0.251882 +vt 0.714322 0.504715 +vt 0.672032 0.504773 +vt 0.344631 0.676928 +vt 0.344210 0.590177 +vt 0.299324 0.590176 +vt 0.299745 0.676927 +vt 0.088672 0.676342 +vt 0.088251 0.589590 +vt 0.393201 0.338693 +vt 0.393082 0.251943 +vt 0.686706 0.540101 +vt 0.644417 0.540159 +vt 0.297859 0.338823 +vt 0.297055 0.252076 +vt 0.340030 0.252017 +vt 0.340149 0.338766 +vt 0.715456 0.584688 +vt 0.673166 0.584746 +vt 0.672371 0.005128 +vt 0.715347 0.005069 +vt 0.088240 0.255640 +vt 0.089045 0.342389 +vt 0.000907 0.343793 +vt 0.000102 0.257045 +vt 0.924132 0.000102 +vt 0.897728 0.044507 +vt 0.897730 0.544750 +vt 0.924255 0.589082 +vt 0.999898 0.045153 +vt 0.973494 0.089559 +vt 0.000523 0.676182 +vt 0.000102 0.589431 +vt 0.973372 0.499490 +vt 0.999898 0.543823 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.2599 0.9656 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 -0.0000 +vn 0.0000 -0.2599 -0.9656 +vn 0.7300 -0.6835 -0.0000 +vn 0.9483 -0.3175 0.0000 +vn -0.9482 0.3175 0.0075 +vn -0.0235 0.9997 0.0002 +vn -0.0233 0.9997 0.0014 +vn -0.0222 0.9998 0.0002 +vn 0.7875 0.6163 0.0000 +vn -0.7875 -0.6163 0.0062 +vn 0.8412 -0.5408 -0.0000 +vn -0.5122 -0.8588 0.0053 +vn -0.5132 -0.8582 0.0046 +vn -0.5122 -0.8589 0.0040 +vn -0.0158 0.0098 -0.9998 +vn -0.0152 0.0109 -0.9998 +vn -0.0146 0.0096 -0.9998 +vn 0.0158 -0.0098 0.9998 +vn 0.0151 -0.0109 0.9998 +vn 0.0170 -0.0103 0.9998 +vn 0.0225 -0.9997 -0.0002 +vn 0.0220 -0.9998 -0.0014 +vn 0.0238 -0.9997 -0.0002 +vn -0.0123 0.0059 -0.9999 +vn -0.0127 0.0076 -0.9999 +vn -0.0116 0.0069 -0.9999 +vn 0.5123 0.8588 -0.0053 +vn 0.5112 0.8595 -0.0039 +vn 0.5122 0.8589 -0.0040 +vn 0.0126 -0.0061 0.9999 +vn 0.0105 -0.0062 0.9999 +vn 0.0116 -0.0069 0.9999 +s off +f 1064/2013/687 1063/2014/687 1065/2015/687 1066/2016/687 +f 1066/2017/688 1065/2015/688 1067/2018/688 1068/2019/688 +f 1068/2020/689 1067/2018/689 1062/2021/689 1061/2022/689 +f 1068/2020/690 1061/2022/690 1069/2023/690 1070/2024/690 1071/2025/690 +f 1065/2015/691 1063/2014/691 1062/2021/691 1067/2018/691 +f 1072/2026/692 1073/2027/692 1070/2028/692 1069/2029/692 +f 1064/2013/693 1066/2016/693 1074/2030/693 1073/2031/693 1072/2032/693 +f 1066/2017/694 1068/2019/694 1071/2033/694 1074/2034/694 +f 1075/2035/687 1076/2036/687 1077/2037/687 1078/2038/687 +f 1074/2034/695 1071/2033/695 1079/2039/695 1076/2040/695 +f 1071/2025/689 1070/2024/689 1080/2041/689 1079/2042/689 +f 1070/2028/696 1073/2027/696 1075/2043/696 1080/2044/696 +f 1073/2031/687 1074/2030/687 1076/2036/687 1075/2035/687 +f 1081/2045/697 1078/2046/697 1082/2047/698 1083/2048/699 +f 1076/2040/700 1079/2039/700 1084/2049/700 1077/2050/700 +f 1080/2044/701 1075/2043/701 1078/2046/701 1081/2045/701 +f 1079/2042/689 1080/2041/689 1081/2051/689 1084/2052/689 +f 1085/2053/692 1086/2054/692 1087/2055/692 1088/2056/692 +f 1084/2052/689 1081/2051/689 1085/2057/689 1088/2058/689 +f 1078/2038/687 1077/2037/687 1087/2059/687 1086/2060/687 +f 1077/2050/702 1084/2049/702 1088/2056/702 1087/2055/702 +f 1089/2061/703 1090/2062/704 1091/2063/705 1092/2064/705 +f 1078/2038/706 1086/2060/706 1089/2065/707 1082/2066/708 +f 1085/2057/709 1081/2051/709 1083/2067/710 1090/2068/711 +f 1086/2054/712 1085/2053/712 1090/2062/713 1089/2061/714 +f 1082/2066/715 1089/2065/716 1092/2069/717 1094/2070/717 +f 1083/2048/718 1082/2047/719 1094/2071/720 1093/2072/720 +f 1090/2068/721 1083/2067/722 1093/2073/723 1091/2074/723 +o UndeRail_Cube.005 +v -1.185225 0.299229 2.771775 +v -1.185225 0.078919 2.771775 +v -1.579320 0.146982 2.771775 +v -1.579320 0.299229 2.771775 +v -0.726389 0.070637 2.798583 +v -0.726389 0.299229 2.798583 +v -0.726389 0.299229 3.201417 +v -0.726389 0.070637 3.201417 +v -0.770558 0.343398 2.798583 +v -1.096886 0.343398 2.798583 +v -1.096886 0.343398 3.201417 +v -0.770558 0.343398 3.201417 +v -1.185225 0.078919 3.228225 +v -1.185225 0.299229 3.228225 +v -1.579320 0.299229 3.228225 +v -1.579320 0.146982 3.228225 +v -1.185225 0.343398 3.201417 +v -1.185225 0.343398 2.798583 +v -1.579320 0.343398 2.798583 +v -1.579320 0.343398 3.201417 +v -1.096886 0.026467 2.798583 +v -0.770558 0.026467 2.798583 +v -0.770558 0.026467 3.201417 +v -1.096886 0.026467 3.201417 +v -1.096886 0.070637 2.771775 +v -1.096886 0.299229 2.771775 +v -0.770558 0.299229 2.771775 +v -0.770558 0.070637 2.771775 +v -0.770558 0.070637 3.228225 +v -0.770558 0.299229 3.228225 +v -1.096886 0.299229 3.228225 +v -1.096886 0.070637 3.228225 +v -1.690351 0.200246 3.201417 +v -1.690351 0.287913 3.201417 +v -1.690351 0.287913 2.798583 +v -1.690351 0.200246 2.798583 +v -1.184581 0.033984 3.201417 +v -1.184581 0.033984 2.798583 +v -1.659805 0.134929 3.201417 +v -1.579964 0.102270 3.201417 +v -1.667659 0.194088 3.228225 +v -1.667659 0.291126 3.228225 +v -1.646801 0.339453 3.201417 +v -1.659805 0.134929 2.798583 +v -1.667659 0.194088 2.771775 +v -1.579964 0.102270 2.798583 +v -1.667040 0.336028 2.798583 +v -1.667659 0.291126 2.771775 +vt 0.496907 0.334267 +vt 0.496248 0.427323 +vt 0.330718 0.396651 +vt 0.331617 0.332937 +vt 0.796702 0.313152 +vt 0.699270 0.313152 +vt 0.699270 0.141452 +vt 0.796702 0.141452 +vt 0.672646 0.313152 +vt 0.534343 0.312606 +vt 0.534099 0.142197 +vt 0.672646 0.141452 +vt 0.495875 0.027439 +vt 0.496587 0.120544 +vt 0.331121 0.122196 +vt 0.330318 0.058264 +vt 0.496747 0.142387 +vt 0.497024 0.312498 +vt 0.332011 0.311404 +vt 0.331527 0.143826 +vt 0.962417 0.313152 +vt 0.823327 0.313152 +vt 0.823327 0.141452 +vt 0.962417 0.141452 +vt 0.533520 0.431122 +vt 0.534247 0.334472 +vt 0.672551 0.335076 +vt 0.671920 0.432340 +vt 0.671602 0.022049 +vt 0.672523 0.119489 +vt 0.533976 0.120298 +vt 0.533160 0.023583 +vt 0.237618 0.142584 +vt 0.274533 0.143000 +vt 0.272621 0.312625 +vt 0.235706 0.312209 +vt 0.495520 0.005286 +vt 0.532760 0.001691 +vt 0.495918 0.449476 +vt 0.533168 0.453017 +vt 0.817912 0.125359 +vt 0.796702 0.119430 +vt 0.678060 0.125358 +vt 0.699270 0.119430 +vt 0.817912 0.329246 +vt 0.796702 0.335174 +vt 0.678060 0.329246 +vt 0.699270 0.335174 +vt 0.294957 0.050376 +vt 0.328880 0.036291 +vt 0.292958 0.078293 +vt 0.293666 0.119719 +vt 0.302947 0.143203 +vt 0.295361 0.404466 +vt 0.293427 0.376539 +vt 0.329265 0.418612 +vt 0.295134 0.312879 +vt 0.294347 0.335145 +vt 0.208418 0.134257 +vt 0.235192 0.127765 +vt 0.276053 0.128226 +vt 0.300664 0.131838 +vt 0.206326 0.319876 +vt 0.232947 0.326970 +vt 0.294189 0.319085 +vt 0.273808 0.327430 +vt 0.999933 0.141452 +vt 0.999933 0.313152 +vt 0.671720 0.454277 +vt 0.671350 0.000067 +vt 0.169020 0.311458 +vt 0.170932 0.141832 +vt 0.207256 0.142242 +vt 0.205344 0.311867 +vt 0.000067 0.309553 +vt 0.001979 0.139928 +vn 0.0000 0.0000 -1.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 -1.0000 -0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.0462 -0.5153 0.8558 +vn 0.0000 0.5189 0.8549 +vn -0.0462 -0.5153 -0.8558 +vn 0.0000 0.5189 -0.8549 +vn 0.4606 -0.4605 0.7588 +vn 0.4605 0.4606 0.7588 +vn 0.4606 -0.4605 -0.7588 +vn 0.4605 0.4606 -0.7588 +vn -0.2180 -0.4596 0.8610 +vn -0.0393 0.5077 0.8606 +vn -0.2180 -0.4596 -0.8610 +vn -0.0453 0.5154 -0.8557 +vn -0.7527 -0.3520 0.5563 +vn -0.6638 0.5609 0.4947 +vn -0.7527 -0.3520 -0.5563 +vn -0.7340 0.3556 -0.5787 +vn -0.0854 -0.9963 -0.0000 +vn 0.0000 -0.5188 -0.8549 +vn 0.5189 0.0000 -0.8549 +vn 0.7071 -0.7071 -0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.5189 0.0000 0.8549 +vn 0.0000 -0.5188 0.8549 +vn -0.3786 -0.9256 -0.0000 +vn -0.0727 0.9974 -0.0024 +vn -0.0883 -0.5113 0.8549 +vn -0.0883 -0.5113 -0.8549 +vn -0.9058 -0.4236 -0.0000 +vn -0.7633 0.0000 0.6461 +vn -0.8303 0.5571 0.0185 +vn -0.7633 0.0000 -0.6461 +vn -0.1702 -0.9854 -0.0000 +s off +f 1095/2075/724 1096/2076/724 1097/2077/724 1098/2078/724 +f 1099/2079/725 1100/2080/725 1101/2081/725 1102/2082/725 +f 1103/2083/726 1104/2084/726 1105/2085/726 1106/2086/726 +f 1107/2087/727 1108/2088/727 1109/2089/727 1110/2090/727 +f 1111/2091/726 1112/2092/726 1113/2093/726 1114/2094/726 +f 1115/2095/728 1116/2096/728 1117/2097/728 1118/2098/728 +f 1119/2099/724 1120/2100/724 1121/2101/724 1122/2102/724 +f 1123/2103/727 1124/2104/727 1125/2105/727 1126/2106/727 +f 1127/2107/729 1128/2108/729 1129/2109/729 1130/2110/729 +f 1131/2111/730 1118/2112/730 1126/2106/730 1107/2087/730 +f 1108/2088/731 1125/2105/731 1105/2085/731 1111/2091/731 +f 1132/2113/732 1096/2076/732 1119/2099/732 1115/2114/732 +f 1112/2092/733 1104/2084/733 1120/2100/733 1095/2075/733 +f 1117/2115/734 1102/2082/734 1123/2116/734 +f 1106/2117/735 1124/2118/735 1101/2081/735 +f 1116/2119/736 1122/2120/736 1099/2079/736 +f 1103/2121/737 1100/2080/737 1121/2122/737 +f 1133/2123/738 1134/2124/738 1110/2090/738 1135/2125/738 +f 1136/2126/739 1109/2089/739 1114/2094/739 1137/2127/739 +f 1138/2128/740 1139/2129/740 1097/2077/740 1140/2130/740 +f 1141/2131/741 1113/2093/741 1098/2078/741 1142/2132/741 +f 1133/2133/742 1135/2134/742 1127/2107/742 +f 1136/2135/743 1137/2136/743 1128/2108/743 +f 1138/2137/744 1130/2110/744 1139/2138/744 +f 1141/2139/745 1142/2140/745 1129/2109/745 +f 1115/2095/746 1118/2098/746 1131/2141/746 1132/2142/746 +f 1126/2106/727 1125/2105/727 1108/2088/727 1107/2087/727 +f 1105/2085/726 1104/2084/726 1112/2092/726 1111/2091/726 +f 1120/2100/724 1119/2099/724 1096/2076/724 1095/2075/724 +f 1116/2143/747 1115/2114/747 1119/2099/747 1122/2102/747 +f 1104/2084/733 1103/2083/733 1121/2101/733 1120/2100/733 +f 1100/2080/748 1099/2079/748 1122/2120/748 1121/2122/748 +f 1117/2097/749 1116/2096/749 1099/2079/749 1102/2082/749 +f 1103/2083/750 1106/2086/750 1101/2081/750 1100/2080/750 +f 1124/2118/751 1123/2116/751 1102/2082/751 1101/2081/751 +f 1118/2112/752 1117/2144/752 1123/2103/752 1126/2106/752 +f 1106/2086/731 1105/2085/731 1125/2105/731 1124/2104/731 +f 1140/2145/753 1134/2146/753 1133/2147/753 1138/2148/753 +f 1110/2090/727 1109/2089/727 1136/2126/727 1135/2125/727 +f 1114/2094/754 1113/2093/754 1141/2131/754 1137/2127/754 +f 1098/2078/724 1097/2077/724 1139/2129/724 1142/2132/724 +f 1095/2075/733 1098/2078/733 1113/2093/733 1112/2092/733 +f 1109/2089/731 1108/2088/731 1111/2091/731 1114/2094/731 +f 1107/2087/755 1110/2090/755 1134/2124/755 1131/2111/755 +f 1097/2077/756 1096/2076/756 1132/2113/756 1140/2130/756 +f 1138/2148/757 1133/2147/757 1127/2107/757 1130/2110/757 +f 1135/2134/758 1136/2135/758 1128/2108/758 1127/2107/758 +f 1137/2127/759 1141/2131/759 1129/2109/759 1128/2108/759 +f 1142/2140/760 1139/2138/760 1130/2110/760 1129/2109/760 +f 1132/2149/761 1131/2150/761 1134/2146/761 1140/2145/761 +o Underail_Cube.004 +v -0.033837 0.094104 2.927233 +v -0.033837 -0.016338 2.927233 +v -0.115306 -0.142061 2.927233 +v -0.115306 0.094104 2.927233 +v 0.797049 0.094104 2.927233 +v 0.797049 -0.016338 2.927233 +v 0.796577 -0.079782 3.048582 +v 0.796577 -0.079782 2.951418 +v 0.886076 -0.258069 2.951418 +v 0.886076 -0.258069 3.048582 +v 0.797049 -0.016338 3.072767 +v 0.797049 0.094104 3.072767 +v -0.033837 0.094104 3.072767 +v -0.033837 -0.016338 3.072767 +v -0.026079 -0.079782 2.951418 +v -0.115306 0.094104 3.072767 +v -0.272459 0.094104 2.927233 +v -0.272459 0.094104 3.072767 +v -0.115306 -0.142061 3.072767 +v -0.272459 -0.098487 3.072767 +v -0.264701 -0.161930 3.048582 +v -0.107548 -0.205505 3.048582 +v -0.272459 -0.098487 2.927233 +v -0.026079 -0.079782 3.048582 +v -0.107548 -0.205505 2.951418 +v -0.264701 -0.161930 2.951418 +v 0.886547 0.093771 3.072767 +v 0.886547 0.093771 2.927233 +v 0.886547 -0.194626 3.072767 +v 0.888072 -0.069961 3.072767 +v 0.917361 0.000750 3.072767 +v 0.988072 0.030039 3.072767 +v 1.058783 0.000750 3.072767 +v 1.088072 -0.069961 3.072767 +v 1.088250 -0.195375 3.072767 +v 1.088250 0.093022 3.072767 +v 0.886547 -0.194626 2.927233 +v 1.088250 -0.195375 2.927233 +v 1.087778 -0.258818 2.951418 +v 1.087778 -0.258818 3.048582 +v 1.152616 -0.153109 2.951418 +v 1.152616 -0.153109 3.048582 +v 1.153087 -0.089666 3.072767 +v 1.088250 0.093022 2.927233 +v 0.888072 -0.069961 2.927233 +v 0.917362 -0.140671 2.927233 +v 0.988072 -0.169961 2.927233 +v 1.058783 -0.140671 2.927233 +v 1.088072 -0.069961 2.927233 +v 1.153087 -0.089666 2.927233 +v 1.153087 0.092782 2.927233 +v 1.153087 0.092782 3.072767 +v 0.917361 0.000750 2.927233 +v 1.058783 0.000750 2.927233 +v 1.058783 -0.140671 3.072767 +v 0.988072 -0.169961 3.072767 +v 0.917362 -0.140671 3.072767 +v 0.988072 0.030039 2.927233 +vt 0.256942 0.260185 +vt 0.256933 0.317461 +vt 0.214669 0.382666 +vt 0.214686 0.260176 +vt 0.687648 0.260227 +vt 0.687763 0.317493 +vt 0.601711 0.530833 +vt 0.601711 0.480441 +vt 0.705172 0.480441 +vt 0.705172 0.530833 +vt 0.687799 0.127573 +vt 0.687669 0.184827 +vt 0.256960 0.184694 +vt 0.256975 0.127402 +vt 0.171036 0.445226 +vt 0.601956 0.445228 +vt 0.175060 0.480439 +vt 0.214701 0.184684 +vt 0.133171 0.260163 +vt 0.133182 0.184670 +vt 0.214727 0.062176 +vt 0.084694 0.563932 +vt 0.000115 0.563931 +vt 0.012784 0.530830 +vt 0.097363 0.530831 +vt 0.033279 0.184656 +vt 0.033268 0.260149 +vt 0.221631 0.027404 +vt 0.263880 0.092631 +vt 0.133159 0.360057 +vt 0.133200 0.084764 +vt 0.175059 0.530831 +vt 0.097363 0.480439 +vt 0.012784 0.480438 +vt 0.000115 0.247598 +vt 0.000122 0.197196 +vt 0.734049 0.184804 +vt 0.734039 0.260260 +vt 0.000115 0.447338 +vt 0.084694 0.447338 +vt 0.263826 0.352230 +vt 0.221562 0.417436 +vt 0.601955 0.566046 +vt 0.171036 0.566045 +vt 0.839166 0.035177 +vt 0.787151 0.048192 +vt 0.734523 0.035224 +vt 0.705294 0.445228 +vt 0.809903 0.445228 +vt 0.809781 0.480442 +vt 0.683548 0.352473 +vt 0.734482 0.409867 +vt 0.730268 0.444846 +vt 0.872622 0.090131 +vt 0.838858 0.100240 +vt 0.823785 0.063507 +vt 0.683589 0.092599 +vt 0.730314 0.000250 +vt 0.809780 0.530834 +vt 0.874095 0.480442 +vt 0.874095 0.530834 +vt 0.842557 0.000115 +vt 0.876014 0.055069 +vt 0.705293 0.566047 +vt 0.809903 0.566047 +vt 0.838659 0.184791 +vt 0.838657 0.260295 +vt 0.966965 0.260301 +vt 0.872297 0.260301 +vt 0.872297 0.184787 +vt 0.966965 0.184787 +vt 0.999885 0.197336 +vt 0.999885 0.247752 +vt 0.735107 0.099900 +vt 0.842531 0.444996 +vt 0.839144 0.409928 +vt 0.872612 0.354969 +vt 0.876000 0.390038 +vt 0.039809 0.641755 +vt 0.039809 0.566277 +vt 0.079503 0.566277 +vt 0.079503 0.641755 +vt 0.238278 0.641755 +vt 0.238278 0.566277 +vt 0.277972 0.566277 +vt 0.277972 0.641755 +vt 0.786807 0.151937 +vt 0.119197 0.566277 +vt 0.119197 0.641755 +vt 0.198585 0.641755 +vt 0.198585 0.566277 +vt 0.158890 0.641755 +vt 0.158890 0.566277 +vt 0.000115 0.641755 +vt 0.000115 0.566277 +vt 0.317667 0.566277 +vt 0.317667 0.641755 +vt 0.823538 0.136870 +vt 0.750181 0.136623 +vt 0.750419 0.063267 +vt 0.786796 0.293143 +vt 0.823528 0.308218 +vt 0.750162 0.308451 +vt 0.838844 0.344854 +vt 0.735078 0.345179 +vt 0.823764 0.381591 +vt 0.787122 0.396904 +vt 0.750386 0.381821 +vn 0.0000 0.0000 -1.0000 +vn -0.8937 -0.4486 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.3562 -0.9344 +vn 0.0000 1.0000 0.0000 +vn -0.1012 -0.3652 0.9254 +vn -1.0000 0.0000 0.0000 +vn 0.4263 -0.2762 0.8614 +vn 0.0000 -1.0000 -0.0000 +vn 0.8392 -0.5438 -0.0000 +vn -0.2672 -0.9636 0.0000 +vn -0.9926 -0.1214 0.0000 +vn 0.0037 1.0000 0.0000 +vn -0.1012 -0.3652 -0.9254 +vn 0.4263 -0.2762 -0.8614 +vn 0.0000 -0.3562 0.9344 +vn -0.0013 -0.3562 -0.9344 +vn -0.5737 -0.2880 -0.7667 +vn -0.0016 0.0010 1.0000 +vn -0.5737 -0.2880 0.7667 +vn 0.8524 -0.5228 0.0000 +vn 0.5062 -0.3105 0.8046 +vn 0.5049 -0.3117 0.8049 +vn -0.0013 -0.3562 0.9344 +vn -0.0037 -1.0000 0.0000 +vn -0.0001 0.0018 1.0000 +vn 1.0000 -0.0009 -0.0016 +vn 1.0000 0.0000 0.0000 +vn 1.0000 -0.0004 -0.0018 +vn 1.0000 -0.0060 -0.0012 +vn 1.0000 -0.0092 -0.0002 +vn 1.0000 -0.0074 -0.0000 +vn 0.5062 -0.3105 -0.8046 +vn 0.5071 -0.3089 -0.8046 +vn 0.0006 0.0017 1.0000 +vn 0.9239 -0.3827 -0.0000 +vn -0.9239 -0.3827 -0.0000 +vn 0.9239 0.3827 0.0000 +vn -0.9239 0.3827 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.3827 -0.9239 -0.0000 +vn -0.3827 -0.9239 -0.0000 +vn 0.3827 0.9239 0.0000 +vn -0.0002 -0.0018 -1.0000 +vn 0.0009 -0.0016 -1.0000 +vn 0.0018 0.0002 -1.0000 +s off +f 1143/2151/762 1144/2152/762 1145/2153/762 1146/2154/762 +f 1144/2152/762 1143/2151/762 1147/2155/762 1148/2156/762 +f 1149/2157/763 1150/2158/763 1151/2159/763 1152/2160/763 +f 1153/2161/764 1154/2162/764 1155/2163/764 1156/2164/764 +f 1144/2165/765 1148/2166/765 1150/2158/765 1157/2167/765 +f 1147/2155/766 1143/2151/766 1155/2163/766 1154/2162/766 +f 1158/2168/766 1146/2154/766 1159/2169/766 1160/2170/766 +f 1156/2164/764 1155/2163/764 1158/2168/764 1161/2171/764 +f 1155/2163/766 1143/2151/766 1146/2154/766 1158/2168/766 +f 1161/2172/767 1162/2173/767 1163/2174/767 1164/2175/767 +f 1162/2176/768 1160/2170/768 1159/2169/768 1165/2177/768 +f 1156/2164/769 1161/2171/769 1164/2178/769 1166/2179/769 +f 1146/2154/762 1145/2153/762 1165/2180/762 1159/2169/762 +f 1161/2171/764 1158/2168/764 1160/2170/764 1162/2181/764 +f 1157/2167/770 1150/2158/770 1149/2157/770 1166/2182/770 +f 1157/2167/771 1166/2182/771 1164/2175/771 1167/2183/771 +f 1167/2183/772 1164/2175/772 1163/2174/772 1168/2184/772 +f 1162/2176/773 1165/2177/773 1168/2185/773 1163/2186/773 +f 1147/2155/774 1154/2162/774 1169/2187/774 1170/2188/774 +f 1165/2189/775 1145/2190/775 1167/2183/775 1168/2184/775 +f 1145/2153/776 1144/2152/776 1157/2191/776 1167/2192/776 +f 1153/2193/777 1156/2194/777 1166/2182/777 1149/2157/777 +f 1177/2195/764 1198/2196/764 1171/2197/764 +f 1151/2159/778 1179/2198/778 1180/2199/778 1181/2200/778 +f 1150/2201/779 1148/2156/779 1179/2202/779 1151/2203/779 +f 1177/2195/764 1185/2204/780 1176/2205/764 1197/2206/764 +f 1153/2161/781 1149/2207/781 1152/2208/781 1171/2197/781 +f 1154/2162/764 1153/2161/764 1169/2187/764 +f 1182/2209/782 1181/2200/782 1183/2210/782 1184/2211/782 +f 1177/2195/783 1182/2212/783 1184/2213/783 1185/2204/784 +f 1171/2214/785 1152/2160/785 1182/2209/785 1177/2215/785 +f 1152/2160/786 1151/2159/786 1181/2200/786 1182/2209/786 +f 1170/2188/774 1169/2187/774 1178/2216/774 1186/2217/774 +f 1176/2205/764 1185/2204/787 1178/2216/764 +f 1192/2218/788 1193/2219/789 1194/2220/789 1185/2221/790 +f 1192/2218/791 1185/2221/792 1184/2222/793 1183/2223/793 +f 1186/2217/774 1178/2216/774 1194/2220/774 1193/2219/774 +f 1172/2224/764 1169/2187/764 1153/2161/764 +f 1181/2225/794 1180/2226/794 1192/2227/795 1183/2228/794 +f 1178/2216/764 1185/2204/796 1194/2220/764 +f 1195/2229/797 1173/2230/797 1172/2231/797 1187/2232/797 +f 1191/2233/798 1176/2234/798 1175/2235/798 1196/2236/798 +f 1178/2216/764 1169/2187/764 1174/2237/764 +f 1187/2232/799 1172/2231/799 1199/2238/799 1188/2239/799 +f 1190/2240/800 1197/2241/800 1176/2234/800 1191/2233/800 +f 1189/2242/801 1198/2243/801 1197/2241/801 1190/2240/801 +f 1200/2244/802 1174/2245/802 1173/2230/802 1195/2229/802 +f 1196/2236/803 1175/2235/803 1174/2246/803 1200/2247/803 +f 1188/2239/804 1199/2238/804 1198/2243/804 1189/2242/804 +f 1177/2195/764 1197/2206/764 1198/2196/764 +f 1192/2227/805 1186/2217/762 1193/2219/762 +f 1170/2188/762 1148/2156/762 1147/2155/762 +f 1175/2248/764 1178/2216/764 1174/2237/764 +f 1173/2249/764 1169/2187/764 1172/2224/764 +f 1199/2250/764 1171/2197/764 1198/2196/764 +f 1171/2197/764 1199/2250/764 1172/2224/764 1153/2161/764 +f 1200/2251/762 1170/2188/762 1186/2217/762 +f 1200/2251/762 1186/2217/762 1196/2252/762 +f 1169/2187/764 1173/2249/764 1174/2237/764 +f 1178/2216/764 1175/2248/764 1176/2205/764 +f 1200/2251/762 1195/2253/762 1170/2188/762 +f 1196/2252/762 1186/2217/762 1191/2254/762 +f 1195/2253/762 1187/2255/762 1170/2188/762 +f 1170/2188/762 1187/2255/762 1148/2156/762 +f 1186/2217/762 1192/2227/806 1191/2254/762 +f 1191/2254/762 1192/2227/807 1180/2226/762 1190/2256/762 +f 1190/2256/762 1180/2226/762 1189/2257/762 +f 1179/2202/762 1148/2156/762 1187/2255/762 1188/2258/762 +f 1180/2226/762 1179/2202/762 1189/2257/762 +f 1188/2258/762 1189/2257/762 1179/2202/762 +o UnderailBit_Cylinder.006 +v -0.166791 0.038391 2.882968 +v -0.166791 0.038391 3.117032 +v -0.118438 0.018363 3.117032 +v -0.118438 0.018363 2.882968 +v -0.098409 -0.029991 3.117032 +v -0.098409 -0.029991 2.882968 +v -0.118438 -0.078344 3.117032 +v -0.118438 -0.078344 2.882968 +v -0.166791 -0.098373 3.117032 +v -0.166791 -0.098373 2.882968 +v -0.215145 -0.078344 3.117032 +v -0.215145 -0.078344 2.882968 +v -0.235173 -0.029991 3.117032 +v -0.235173 -0.029991 2.882968 +v -0.215145 0.018363 3.117032 +v -0.215145 0.018363 2.882968 +vt 0.936103 0.259604 +vt 0.936115 0.740360 +vt 0.828618 0.740362 +vt 0.828606 0.259607 +vt 0.721118 0.740365 +vt 0.721107 0.259609 +vt 0.613620 0.740368 +vt 0.613609 0.259612 +vt 0.506122 0.740370 +vt 0.506111 0.259614 +vt 0.398623 0.740373 +vt 0.398611 0.259617 +vt 0.291126 0.740375 +vt 0.291114 0.259620 +vt 0.000116 0.816392 +vt 0.076128 0.740380 +vt 0.183627 0.740378 +vt 0.259639 0.816392 +vt 0.259641 0.923889 +vt 0.183628 0.999903 +vt 0.076130 0.999903 +vt 0.000116 0.923892 +vt 0.183615 0.259622 +vt 0.076117 0.259625 +vt 0.000101 0.183616 +vt 0.000097 0.076116 +vt 0.076107 0.000102 +vt 0.183605 0.000097 +vt 0.259621 0.076108 +vt 0.259625 0.183605 +vn 0.3827 0.9239 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.9239 -0.3827 -0.0000 +vn 0.3827 -0.9239 -0.0000 +vn -0.3827 -0.9239 -0.0000 +vn -0.9239 -0.3827 -0.0000 +vn -0.0000 0.0000 1.0000 +vn -0.9239 0.3827 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.0000 0.0000 -1.0000 +s off +f 1201/2259/808 1202/2260/808 1203/2261/808 1204/2262/808 +f 1204/2262/809 1203/2261/809 1205/2263/809 1206/2264/809 +f 1206/2264/810 1205/2263/810 1207/2265/810 1208/2266/810 +f 1208/2266/811 1207/2265/811 1209/2267/811 1210/2268/811 +f 1210/2268/812 1209/2267/812 1211/2269/812 1212/2270/812 +f 1212/2270/813 1211/2269/813 1213/2271/813 1214/2272/813 +f 1203/2273/814 1202/2274/814 1215/2275/814 1213/2276/814 1211/2277/814 1209/2278/814 1207/2279/814 1205/2280/814 +f 1214/2272/815 1213/2271/815 1215/2275/815 1216/2281/815 +f 1216/2281/816 1215/2275/816 1202/2274/816 1201/2282/816 +f 1201/2282/817 1204/2283/817 1206/2284/817 1208/2285/817 1210/2286/817 1212/2287/817 1214/2288/817 1216/2281/817 +o AmmoVice_Cylinder.010 +v -2.170566 0.644712 2.891261 +v -2.102717 0.644712 2.891261 +v -2.102717 0.567822 2.923110 +v -2.170566 0.567822 2.923110 +v -2.102717 0.535974 3.000000 +v -2.170566 0.535974 3.000000 +v -2.102717 0.567822 3.076890 +v -2.170566 0.567822 3.076890 +v -2.102717 0.644712 3.108739 +v -2.170566 0.644712 3.108739 +v -2.102717 0.721602 3.076890 +v -2.170566 0.721602 3.076890 +v -2.102717 0.753451 3.000000 +v -2.170566 0.753451 3.000000 +v -2.102717 0.721602 2.923110 +v -2.170566 0.721602 2.923110 +v -2.209619 0.644712 3.088337 +v -2.209619 0.582248 3.062464 +v -2.209619 0.644712 2.911663 +v -2.209619 0.582248 2.937536 +v -2.209619 0.556375 3.000000 +v -2.209619 0.707176 3.062464 +v -2.209619 0.733049 3.000000 +v -2.209619 0.707176 2.937536 +vt 0.101983 0.250048 +vt 0.000096 0.250048 +vt 0.000097 0.125071 +vt 0.101983 0.125072 +vt 0.000097 0.000096 +vt 0.101984 0.000096 +vt 0.101984 0.999904 +vt 0.000097 0.999905 +vt 0.000097 0.874929 +vt 0.101983 0.874929 +vt 0.000096 0.749953 +vt 0.101983 0.749952 +vt 0.000096 0.624977 +vt 0.101982 0.624976 +vt 0.000096 0.500000 +vt 0.101982 0.500000 +vt 0.000096 0.375024 +vt 0.101982 0.375024 +vt 0.167101 0.761676 +vt 0.167101 0.863204 +vt 0.340610 0.547116 +vt 0.239083 0.547116 +vt 0.167292 0.475324 +vt 0.167292 0.373796 +vt 0.239084 0.302006 +vt 0.340613 0.302006 +vt 0.412403 0.373798 +vt 0.412403 0.475326 +vt 0.167100 0.386748 +vt 0.167100 0.488276 +vt 0.167101 0.011819 +vt 0.167101 0.113348 +vt 0.167100 0.636700 +vt 0.167100 0.738228 +vt 0.167101 0.261772 +vt 0.167100 0.363300 +vt 0.167101 0.136796 +vt 0.167101 0.238324 +vt 0.167101 0.886652 +vt 0.167101 0.988181 +vt 0.167100 0.511724 +vt 0.167100 0.613252 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.9239 0.3827 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 0.3827 -0.9239 +vn -0.4347 -0.3446 0.8320 +vn -1.0000 0.0000 0.0000 +vn -0.4347 0.8320 -0.3446 +vn -0.4347 -0.8320 -0.3446 +vn -0.4347 0.3446 0.8320 +vn -0.4347 0.3446 -0.8320 +vn -0.4347 -0.3446 -0.8320 +vn -0.4347 -0.8320 0.3446 +vn -0.4347 0.8320 0.3446 +s off +f 1217/2289/818 1218/2290/818 1219/2291/818 1220/2292/818 +f 1220/2292/819 1219/2291/819 1221/2293/819 1222/2294/819 +f 1222/2295/820 1221/2296/820 1223/2297/820 1224/2298/820 +f 1224/2298/821 1223/2297/821 1225/2299/821 1226/2300/821 +f 1226/2300/822 1225/2299/822 1227/2301/822 1228/2302/822 +f 1228/2302/823 1227/2301/823 1229/2303/823 1230/2304/823 +f 1230/2304/824 1229/2303/824 1231/2305/824 1232/2306/824 +f 1232/2306/825 1231/2305/825 1218/2290/825 1217/2289/825 +f 1224/2298/826 1226/2300/826 1233/2307/826 1234/2308/826 +f 1235/2309/827 1236/2310/827 1237/2311/827 1234/2312/827 1233/2313/827 1238/2314/827 1239/2315/827 1240/2316/827 +f 1230/2304/828 1232/2306/828 1240/2317/828 1239/2318/828 +f 1220/2292/829 1222/2294/829 1237/2319/829 1236/2320/829 +f 1226/2300/830 1228/2302/830 1238/2321/830 1233/2322/830 +f 1232/2306/831 1217/2289/831 1235/2323/831 1240/2324/831 +f 1217/2289/832 1220/2292/832 1236/2325/832 1235/2326/832 +f 1222/2295/833 1224/2298/833 1234/2327/833 1237/2328/833 +f 1228/2302/834 1230/2304/834 1239/2329/834 1238/2330/834 +o SideThingy_Cube.009 +v -1.552216 0.766425 3.449060 +v -1.552216 0.766425 3.324053 +v -1.613245 0.699098 3.324053 +v -1.613245 0.699098 3.449060 +v -1.552216 0.456014 3.324053 +v -1.048308 0.766425 3.449060 +v -1.048308 0.766425 3.324053 +v -1.552216 0.456014 3.449060 +v -1.048308 0.456014 3.324053 +v -1.041527 0.788142 3.315308 +v -1.041527 0.434297 3.315308 +v -1.048308 0.456014 3.449060 +v -1.041527 0.788142 3.457806 +v -1.041527 0.434297 3.457806 +v -0.900483 0.434297 3.457806 +v -0.900483 0.788142 3.457806 +v -0.900483 0.788142 3.315308 +v -0.896414 0.768510 3.449899 +v -0.896414 0.768510 3.323214 +v -0.900483 0.434297 3.315308 +v -0.896414 0.453929 3.449899 +v -0.817755 0.457256 3.449106 +v -0.817755 0.767895 3.449106 +v -0.896414 0.453929 3.323214 +v -0.817755 0.457256 3.324007 +v -0.817755 0.767895 3.324007 +v -1.613245 0.523341 3.449060 +v -1.613245 0.523341 3.324053 +v -1.552216 0.766425 2.550940 +v -1.613245 0.699098 2.550940 +v -1.613245 0.699098 2.675947 +v -1.552216 0.766425 2.675947 +v -1.552216 0.456014 2.675947 +v -1.048308 0.766425 2.675947 +v -1.048308 0.766425 2.550940 +v -1.552216 0.456014 2.550940 +v -1.048308 0.456014 2.675947 +v -1.041528 0.434297 2.684692 +v -1.041528 0.788142 2.684692 +v -1.048308 0.456014 2.550940 +v -1.041528 0.788142 2.542194 +v -0.900483 0.788142 2.542194 +v -0.900483 0.434297 2.542194 +v -1.041528 0.434297 2.542194 +v -0.900483 0.788142 2.684692 +v -0.896414 0.768510 2.676786 +v -0.896414 0.768510 2.550101 +v -0.900483 0.434297 2.684692 +v -0.817755 0.767895 2.550894 +v -0.817755 0.457256 2.550894 +v -0.896414 0.453929 2.550101 +v -0.896414 0.453929 2.676786 +v -0.817755 0.457256 2.675993 +v -0.817755 0.767895 2.675993 +v -1.613245 0.523341 2.550940 +v -1.613245 0.523341 2.675947 +vt 0.482699 0.832844 +vt 0.432017 0.832844 +vt 0.432017 0.796002 +vt 0.482699 0.796002 +vt 0.583806 0.442127 +vt 0.634488 0.442127 +vt 0.634488 0.646427 +vt 0.583806 0.646427 +vt 0.457956 0.646427 +vt 0.457956 0.442127 +vt 0.711742 0.646766 +vt 0.711742 0.697448 +vt 0.507442 0.697448 +vt 0.507442 0.646766 +vt 0.711742 0.873980 +vt 0.711742 0.999830 +vt 0.507442 0.999830 +vt 0.507442 0.873980 +vt 0.004929 0.552138 +vt 0.004598 0.674127 +vt 0.000170 0.683319 +vt 0.000481 0.542899 +vt 0.203708 0.542544 +vt 0.058826 0.542797 +vt 0.058726 0.485047 +vt 0.203607 0.484794 +vt 0.054086 0.674326 +vt 0.054411 0.551828 +vt 0.058514 0.683411 +vt 0.000170 0.342162 +vt 0.058508 0.341959 +vt 0.054925 0.350069 +vt 0.003806 0.350339 +vt 0.000380 0.485149 +vt 0.262053 0.542442 +vt 0.261953 0.484692 +vt 0.406935 0.542189 +vt 0.406834 0.484439 +vt 0.565390 0.229561 +vt 0.437849 0.229561 +vt 0.439198 0.197668 +vt 0.565141 0.197668 +vt 0.003970 0.476972 +vt 0.055097 0.476933 +vt 0.439198 0.146949 +vt 0.565141 0.146949 +vt 0.407279 0.197990 +vt 0.407279 0.146628 +vt 0.597033 0.146628 +vt 0.597033 0.197990 +vt 0.437849 0.115057 +vt 0.565390 0.115057 +vt 0.482699 0.724744 +vt 0.432017 0.724744 +vt 0.432017 0.687903 +vt 0.482699 0.687903 +vt 0.407274 0.823298 +vt 0.407274 0.697448 +vt 0.507442 0.823298 +vt 0.593351 0.417384 +vt 0.556510 0.417384 +vt 0.556510 0.366702 +vt 0.593352 0.366702 +vt 0.407274 0.646427 +vt 0.407274 0.442127 +vt 0.760338 0.442127 +vt 0.760338 0.646427 +vt 0.711742 0.823298 +vt 0.402178 0.210347 +vt 0.406625 0.201108 +vt 0.406939 0.341526 +vt 0.402512 0.332335 +vt 0.203400 0.200758 +vt 0.203499 0.143007 +vt 0.348380 0.143257 +vt 0.348281 0.201007 +vt 0.353025 0.332535 +vt 0.348597 0.341620 +vt 0.352696 0.210039 +vt 0.406935 0.000372 +vt 0.403298 0.008549 +vt 0.352179 0.008280 +vt 0.348596 0.000170 +vt 0.406725 0.143358 +vt 0.145054 0.200657 +vt 0.145153 0.142906 +vt 0.000170 0.200407 +vt 0.000269 0.142656 +vt 0.565419 0.000214 +vt 0.565158 0.032106 +vt 0.439216 0.032063 +vt 0.437878 0.000170 +vt 0.403136 0.135182 +vt 0.352009 0.135143 +vt 0.439198 0.082782 +vt 0.565141 0.082825 +vt 0.407296 0.031730 +vt 0.407279 0.083092 +vt 0.597033 0.083158 +vt 0.597050 0.031796 +vt 0.437838 0.114674 +vt 0.565379 0.114718 +vt 0.485252 0.417384 +vt 0.485252 0.366702 +vt 0.448411 0.366702 +vt 0.448411 0.417384 +vt 0.583806 0.341959 +vt 0.457956 0.341959 +vn -0.7409 0.6716 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.7902 0.0000 -0.6128 +vn 0.0000 0.0000 1.0000 +vn -0.7903 0.0000 0.6127 +vn -0.9545 -0.2981 0.0000 +vn -0.9545 0.2981 0.0000 +vn 0.9792 0.2030 0.0000 +vn 0.0101 0.0000 0.9999 +vn 0.8891 0.0000 -0.4576 +vn 0.8892 0.0000 0.4576 +vn 0.9792 -0.2030 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0423 -0.9991 0.0000 +vn 0.0078 1.0000 0.0000 +vn 0.0101 0.0000 -0.9999 +vn -1.0000 0.0000 0.0000 +vn -0.7409 -0.6716 -0.0000 +vn -0.7903 0.0000 -0.6127 +vn -0.9546 -0.2980 0.0000 +vn -0.9546 0.2980 0.0000 +vn 0.9792 0.2029 0.0000 +vn 0.8891 0.0000 0.4576 +vn 0.8892 0.0000 -0.4576 +s off +f 1241/2331/835 1242/2332/835 1243/2333/835 1244/2334/835 +f 1269/2335/836 1272/2336/836 1274/2337/836 1275/2338/836 +f 1269/2335/837 1275/2338/837 1280/2339/837 1276/2340/837 +f 1249/2341/838 1252/2342/838 1248/2343/838 1245/2344/838 +f 1247/2345/837 1249/2346/837 1245/2347/837 1242/2348/837 +f 1249/2349/839 1247/2350/839 1250/2351/839 1251/2352/839 +f 1253/2353/840 1254/2354/840 1255/2355/840 1256/2356/840 +f 1246/2357/841 1252/2358/841 1254/2354/841 1253/2359/841 +f 1252/2358/842 1249/2349/842 1251/2352/842 1254/2354/842 +f 1247/2350/843 1246/2357/843 1253/2359/843 1250/2351/843 +f 1257/2360/844 1256/2361/844 1258/2362/844 1259/2363/844 +f 1254/2354/838 1251/2352/838 1260/2364/838 1255/2355/838 +f 1250/2365/836 1253/2353/836 1256/2356/836 1257/2366/836 +f 1251/2367/837 1250/2365/837 1257/2366/837 1260/2368/837 +f 1258/2369/845 1261/2370/845 1262/2371/845 1263/2372/845 +f 1260/2364/846 1257/2360/846 1259/2363/846 1264/2373/846 +f 1256/2361/847 1255/2355/847 1261/2374/847 1258/2362/847 +f 1255/2355/848 1260/2364/848 1264/2373/848 1261/2374/848 +f 1265/2375/849 1266/2376/849 1263/2372/849 1262/2371/849 +f 1261/2377/850 1264/2378/850 1265/2375/850 1262/2371/850 +f 1259/2379/851 1258/2380/851 1263/2372/851 1266/2376/851 +f 1264/2381/852 1259/2382/852 1266/2376/852 1265/2375/852 +f 1267/2383/853 1244/2334/853 1243/2333/853 1268/2384/853 +f 1245/2385/854 1248/2386/854 1267/2383/854 1268/2384/854 +f 1242/2387/837 1245/2388/837 1268/2384/837 1243/2333/837 +f 1248/2343/840 1241/2389/840 1244/2334/840 1267/2383/840 +f 1269/2390/835 1270/2391/835 1271/2392/835 1272/2393/835 +f 1276/2340/838 1280/2339/838 1277/2394/838 1273/2395/838 +f 1273/2396/840 1277/2397/840 1274/2337/840 1272/2336/840 +f 1248/2343/840 1252/2342/840 1246/2398/840 1241/2389/840 +f 1277/2399/841 1278/2400/841 1279/2401/841 1274/2402/841 +f 1281/2403/837 1282/2404/837 1283/2405/837 1284/2406/837 +f 1275/2407/855 1281/2408/855 1284/2406/855 1280/2409/855 +f 1280/2409/856 1284/2406/856 1278/2400/856 1277/2399/856 +f 1274/2402/857 1279/2401/857 1281/2408/857 1275/2407/857 +f 1285/2410/858 1286/2411/858 1287/2412/858 1282/2413/858 +f 1284/2406/838 1283/2405/838 1288/2414/838 1278/2400/838 +f 1279/2415/836 1285/2416/836 1282/2404/836 1281/2403/836 +f 1278/2417/840 1288/2418/840 1285/2416/840 1279/2415/840 +f 1287/2419/852 1289/2420/852 1290/2421/852 1291/2422/852 +f 1288/2414/859 1292/2423/859 1286/2411/859 1285/2410/859 +f 1282/2413/860 1287/2412/860 1291/2424/860 1283/2405/860 +f 1283/2405/848 1291/2424/848 1292/2423/848 1288/2414/848 +f 1293/2425/849 1290/2421/849 1289/2420/849 1294/2426/849 +f 1291/2427/850 1290/2421/850 1293/2425/850 1292/2428/850 +f 1286/2429/851 1294/2426/851 1289/2420/851 1287/2430/851 +f 1292/2431/845 1293/2425/845 1294/2426/845 1286/2432/845 +f 1295/2433/853 1296/2434/853 1271/2392/853 1270/2391/853 +f 1273/2435/854 1296/2434/854 1295/2433/854 1276/2436/854 +f 1272/2437/840 1271/2392/840 1296/2434/840 1273/2438/840 +f 1276/2340/837 1295/2433/837 1270/2391/837 1269/2335/837 +f 1247/2345/836 1242/2348/836 1241/2389/836 1246/2398/836 +o Tech_thingy_Cylinder.011 +v -1.457017 0.997796 3.139627 +v -1.457017 1.110929 3.189700 +v -1.405270 1.098405 3.216824 +v -1.405270 0.985272 3.166751 +v -1.405270 1.073357 3.271072 +v -1.405270 0.960224 3.220999 +v -1.457017 1.060833 3.298196 +v -1.457017 0.947700 3.248123 +v -1.508763 1.073357 3.271072 +v -1.508763 0.960224 3.220999 +v -1.508763 1.098405 3.216824 +v -1.508763 0.985272 3.166751 +v -1.322476 0.997796 3.139627 +v -1.322476 1.110929 3.189700 +v -1.270730 1.098405 3.216824 +v -1.270730 0.985272 3.166751 +v -1.270730 1.073357 3.271072 +v -1.270730 0.960224 3.220999 +v -1.322476 1.060833 3.298196 +v -1.322476 0.947700 3.248123 +v -1.374223 1.073357 3.271072 +v -1.374223 0.960224 3.220999 +v -1.374223 1.098405 3.216824 +v -1.374223 0.985272 3.166751 +v -1.187935 0.997796 3.139627 +v -1.187935 1.110929 3.189700 +v -1.136189 1.098405 3.216824 +v -1.136189 0.985272 3.166751 +v -1.136189 1.073357 3.271072 +v -1.136189 0.960224 3.220999 +v -1.187935 1.060833 3.298196 +v -1.187935 0.947700 3.248123 +v -1.239682 1.073357 3.271072 +v -1.239682 0.960224 3.220999 +v -1.239682 1.098405 3.216824 +v -1.239682 0.985272 3.166751 +v -1.551588 0.824089 3.270719 +v -1.551588 0.906574 3.321562 +v -1.551588 1.018668 3.066710 +v -1.551588 0.936183 3.015867 +v -1.097206 1.018668 3.066710 +v -1.097206 0.936183 3.015867 +v -1.097206 0.906574 3.321562 +v -1.097206 0.824089 3.270719 +v -1.521210 0.950031 3.320343 +v -1.521210 1.047137 3.099566 +v -1.127583 1.047137 3.099566 +v -1.127583 0.950031 3.320343 +v -1.457017 0.997796 2.860373 +v -1.405271 0.985272 2.833249 +v -1.405271 1.098405 2.783176 +v -1.457017 1.110929 2.810300 +v -1.405271 0.960224 2.779001 +v -1.405271 1.073357 2.728928 +v -1.457017 0.947700 2.751877 +v -1.457017 1.060833 2.701804 +v -1.508764 0.960224 2.779001 +v -1.508764 1.073357 2.728928 +v -1.508764 1.098405 2.783176 +v -1.508764 0.985272 2.833249 +v -1.322476 0.997796 2.860373 +v -1.270730 0.985272 2.833249 +v -1.270730 1.098405 2.783176 +v -1.322476 1.110929 2.810300 +v -1.270730 0.960224 2.779001 +v -1.270730 1.073357 2.728928 +v -1.322476 0.947700 2.751877 +v -1.322476 1.060833 2.701804 +v -1.374223 0.960224 2.779001 +v -1.374223 1.073357 2.728928 +v -1.374223 1.098405 2.783176 +v -1.374223 0.985272 2.833249 +v -1.187936 0.997796 2.860373 +v -1.136189 0.985272 2.833249 +v -1.136189 1.098405 2.783176 +v -1.187936 1.110929 2.810300 +v -1.136189 0.960224 2.779001 +v -1.136189 1.073357 2.728928 +v -1.187936 0.947700 2.751877 +v -1.187936 1.060833 2.701804 +v -1.239682 0.960224 2.779001 +v -1.239682 1.073357 2.728928 +v -1.239682 1.098405 2.783176 +v -1.239682 0.985272 2.833249 +v -1.551588 0.824089 2.729281 +v -1.551588 0.936183 2.984133 +v -1.551588 1.018668 2.933290 +v -1.551588 0.906574 2.678438 +v -1.097206 0.936183 2.984133 +v -1.097206 1.018668 2.933290 +v -1.097206 0.824089 2.729281 +v -1.097206 0.906574 2.678438 +v -1.521211 1.047137 2.900434 +v -1.521211 0.950031 2.679657 +v -1.127584 1.047137 2.900434 +v -1.127584 0.950031 2.679657 +vt 0.803021 0.000268 +vt 0.908675 0.000268 +vt 0.908270 0.051294 +vt 0.802616 0.051294 +vt 0.907459 0.102314 +vt 0.801805 0.102314 +vt 0.907054 0.153340 +vt 0.801400 0.153340 +vt 0.907459 0.204365 +vt 0.801805 0.204365 +vt 0.611293 0.613624 +vt 0.662320 0.613624 +vt 0.687833 0.657815 +vt 0.662320 0.702005 +vt 0.611293 0.702005 +vt 0.585779 0.657814 +vt 0.908270 0.255385 +vt 0.802616 0.255385 +vt 0.908675 0.306410 +vt 0.803021 0.306410 +vt 0.587400 0.306946 +vt 0.693054 0.306946 +vt 0.692649 0.357971 +vt 0.586995 0.357971 +vt 0.691839 0.408991 +vt 0.586185 0.408991 +vt 0.691434 0.460016 +vt 0.585779 0.460016 +vt 0.691839 0.511042 +vt 0.586185 0.511042 +vt 0.693590 0.746948 +vt 0.737780 0.721434 +vt 0.781971 0.746948 +vt 0.781971 0.797974 +vt 0.737780 0.823488 +vt 0.693590 0.797974 +vt 0.692649 0.562062 +vt 0.586995 0.562062 +vt 0.693054 0.613088 +vt 0.587400 0.613088 +vt 0.693590 0.719278 +vt 0.693590 0.613624 +vt 0.744615 0.614029 +vt 0.744615 0.719683 +vt 0.795635 0.614839 +vt 0.795635 0.720493 +vt 0.846660 0.615245 +vt 0.846660 0.720899 +vt 0.897686 0.614839 +vt 0.897686 0.720493 +vt 0.782507 0.746948 +vt 0.826697 0.721434 +vt 0.870889 0.746948 +vt 0.870889 0.797974 +vt 0.826697 0.823488 +vt 0.782507 0.797974 +vt 0.948706 0.614029 +vt 0.948706 0.719683 +vt 0.999732 0.613624 +vt 0.999732 0.719278 +vt 0.000349 0.115597 +vt 0.082314 0.104241 +vt 0.082232 0.342003 +vt 0.000268 0.353358 +vt 0.098665 0.445986 +vt 0.098694 0.363239 +vt 0.486728 0.363373 +vt 0.486700 0.446120 +vt 0.585161 0.353560 +vt 0.503205 0.342148 +vt 0.503287 0.104387 +vt 0.585244 0.115799 +vt 0.486854 0.000402 +vt 0.486825 0.083149 +vt 0.098790 0.083015 +vt 0.098819 0.000268 +vt 0.124720 0.120150 +vt 0.124649 0.326122 +vt 0.460800 0.326238 +vt 0.460871 0.120266 +vt 0.695211 0.306410 +vt 0.694805 0.255385 +vt 0.800460 0.255385 +vt 0.800865 0.306410 +vt 0.693995 0.204365 +vt 0.799649 0.204365 +vt 0.693590 0.153340 +vt 0.799244 0.153340 +vt 0.693995 0.102314 +vt 0.799649 0.102314 +vt 0.801400 0.486076 +vt 0.801400 0.435049 +vt 0.845590 0.409535 +vt 0.889782 0.435049 +vt 0.889782 0.486076 +vt 0.845590 0.511589 +vt 0.694805 0.051294 +vt 0.800460 0.051294 +vt 0.695211 0.000268 +vt 0.800865 0.000268 +vt 0.587400 0.306410 +vt 0.586995 0.255385 +vt 0.692649 0.255385 +vt 0.693054 0.306410 +vt 0.586185 0.204365 +vt 0.691839 0.204365 +vt 0.585779 0.153340 +vt 0.691434 0.153340 +vt 0.586185 0.102314 +vt 0.691839 0.102314 +vt 0.801400 0.383486 +vt 0.801400 0.332459 +vt 0.845591 0.306946 +vt 0.889782 0.332459 +vt 0.889782 0.383486 +vt 0.845591 0.409000 +vt 0.586995 0.051294 +vt 0.692649 0.051294 +vt 0.587400 0.000268 +vt 0.693054 0.000268 +vt 0.695211 0.613088 +vt 0.694805 0.562063 +vt 0.800460 0.562062 +vt 0.800865 0.613088 +vt 0.693995 0.511042 +vt 0.799649 0.511042 +vt 0.693590 0.460016 +vt 0.799244 0.460016 +vt 0.693995 0.408991 +vt 0.799649 0.408991 +vt 0.585779 0.779081 +vt 0.585779 0.728054 +vt 0.629971 0.702541 +vt 0.674161 0.728055 +vt 0.674161 0.779081 +vt 0.629971 0.804595 +vt 0.694805 0.357971 +vt 0.800459 0.357971 +vt 0.695211 0.306946 +vt 0.800865 0.306946 +vt 0.000268 0.777012 +vt 0.000268 0.539250 +vt 0.082229 0.550634 +vt 0.082229 0.788396 +vt 0.098698 0.446656 +vt 0.486733 0.446656 +vt 0.486733 0.529404 +vt 0.098698 0.529403 +vt 0.585162 0.539250 +vt 0.585162 0.777011 +vt 0.503202 0.788396 +vt 0.503201 0.550634 +vt 0.486733 0.892375 +vt 0.098698 0.892375 +vt 0.098698 0.809627 +vt 0.486733 0.809627 +vt 0.124639 0.566530 +vt 0.124639 0.772501 +vt 0.460790 0.566530 +vt 0.460790 0.772501 +vn 0.4999 0.3505 -0.7920 +vn 1.0000 0.0000 0.0000 +vn 0.4999 -0.3505 0.7920 +vn -0.5000 -0.3505 0.7919 +vn 0.0000 0.9079 0.4192 +vn -1.0000 0.0000 0.0000 +vn -0.5000 0.3505 -0.7919 +vn 0.5000 0.3505 -0.7919 +vn 0.5000 -0.3505 0.7919 +vn -0.5000 -0.3505 0.7920 +vn -0.4999 0.3505 -0.7920 +vn 0.0000 0.5247 -0.8513 +vn 0.0000 -0.5247 0.8513 +vn -0.7911 0.5599 0.2463 +vn 0.0000 0.9154 0.4026 +vn 0.0000 0.0280 0.9996 +vn 0.0000 0.7558 -0.6548 +vn 0.7911 0.5599 0.2463 +vn 0.5000 0.3505 0.7919 +vn 0.5000 -0.3505 -0.7919 +vn -0.4999 -0.3505 -0.7920 +vn 0.0000 0.9079 -0.4192 +vn -0.4999 0.3505 0.7920 +vn 0.4999 0.3505 0.7920 +vn 0.4999 -0.3505 -0.7920 +vn -0.5000 -0.3505 -0.7919 +vn -0.5000 0.3505 0.7919 +vn 0.0000 0.5247 0.8513 +vn 0.0000 -0.5247 -0.8513 +vn -0.7911 0.5599 -0.2463 +vn 0.0000 0.9154 -0.4026 +vn 0.0000 0.0280 -0.9996 +vn 0.0000 0.7558 0.6548 +vn 0.7911 0.5599 -0.2463 +s off +f 1297/2439/861 1298/2440/861 1299/2441/861 1300/2442/861 +f 1300/2442/862 1299/2441/862 1301/2443/862 1302/2444/862 +f 1302/2444/863 1301/2443/863 1303/2445/863 1304/2446/863 +f 1304/2446/864 1303/2445/864 1305/2447/864 1306/2448/864 +f 1299/2449/865 1298/2450/865 1307/2451/865 1305/2452/865 1303/2453/865 1301/2454/865 +f 1306/2448/866 1305/2447/866 1307/2455/866 1308/2456/866 +f 1308/2456/867 1307/2455/867 1298/2457/867 1297/2458/867 +f 1309/2459/868 1310/2460/868 1311/2461/868 1312/2462/868 +f 1312/2462/862 1311/2461/862 1313/2463/862 1314/2464/862 +f 1314/2464/869 1313/2463/869 1315/2465/869 1316/2466/869 +f 1316/2466/870 1315/2465/870 1317/2467/870 1318/2468/870 +f 1311/2469/865 1310/2470/865 1319/2471/865 1317/2472/865 1315/2473/865 1313/2474/865 +f 1318/2468/866 1317/2467/866 1319/2475/866 1320/2476/866 +f 1320/2476/871 1319/2475/871 1310/2477/871 1309/2478/871 +f 1321/2479/868 1322/2480/868 1323/2481/868 1324/2482/868 +f 1324/2482/862 1323/2481/862 1325/2483/862 1326/2484/862 +f 1326/2484/869 1325/2483/869 1327/2485/869 1328/2486/869 +f 1328/2486/870 1327/2485/870 1329/2487/870 1330/2488/870 +f 1323/2489/865 1322/2490/865 1331/2491/865 1329/2492/865 1327/2493/865 1325/2494/865 +f 1330/2488/866 1329/2487/866 1331/2495/866 1332/2496/866 +f 1332/2496/871 1331/2495/871 1322/2497/871 1321/2498/871 +f 1333/2499/866 1334/2500/866 1335/2501/866 1336/2502/866 +f 1336/2503/872 1335/2504/872 1337/2505/872 1338/2506/872 +f 1338/2507/862 1337/2508/862 1339/2509/862 1340/2510/862 +f 1340/2511/873 1339/2512/873 1334/2513/873 1333/2514/873 +f 1335/2501/874 1334/2500/874 1341/2515/874 1342/2516/874 +f 1343/2517/875 1342/2516/875 1341/2515/875 1344/2518/875 +f 1334/2513/876 1339/2512/876 1344/2518/876 1341/2515/876 +f 1337/2505/877 1335/2504/877 1342/2516/877 1343/2517/877 +f 1339/2509/878 1337/2508/878 1343/2517/878 1344/2518/878 +f 1345/2519/879 1346/2520/879 1347/2521/879 1348/2522/879 +f 1346/2520/862 1349/2523/862 1350/2524/862 1347/2521/862 +f 1349/2523/880 1351/2525/880 1352/2526/880 1350/2524/880 +f 1351/2525/881 1353/2527/881 1354/2528/881 1352/2526/881 +f 1347/2529/882 1350/2530/882 1352/2531/882 1354/2532/882 1355/2533/882 1348/2534/882 +f 1353/2527/866 1356/2535/866 1355/2536/866 1354/2528/866 +f 1356/2535/883 1345/2537/883 1348/2538/883 1355/2536/883 +f 1357/2539/879 1358/2540/879 1359/2541/879 1360/2542/879 +f 1358/2540/862 1361/2543/862 1362/2544/862 1359/2541/862 +f 1361/2543/880 1363/2545/880 1364/2546/880 1362/2544/880 +f 1363/2545/881 1365/2547/881 1366/2548/881 1364/2546/881 +f 1359/2549/882 1362/2550/882 1364/2551/882 1366/2552/882 1367/2553/882 1360/2554/882 +f 1365/2547/866 1368/2555/866 1367/2556/866 1366/2548/866 +f 1368/2555/883 1357/2557/883 1360/2558/883 1367/2556/883 +f 1369/2559/884 1370/2560/884 1371/2561/884 1372/2562/884 +f 1370/2560/862 1373/2563/862 1374/2564/862 1371/2561/862 +f 1373/2563/885 1375/2565/885 1376/2566/885 1374/2564/885 +f 1375/2565/886 1377/2567/886 1378/2568/886 1376/2566/886 +f 1371/2569/882 1374/2570/882 1376/2571/882 1378/2572/882 1379/2573/882 1372/2574/882 +f 1377/2567/866 1380/2575/866 1379/2576/866 1378/2568/866 +f 1380/2575/887 1369/2577/887 1372/2578/887 1379/2576/887 +f 1381/2579/866 1382/2580/866 1383/2581/866 1384/2582/866 +f 1382/2583/888 1385/2584/888 1386/2585/888 1383/2586/888 +f 1385/2587/862 1387/2588/862 1388/2589/862 1386/2590/862 +f 1387/2591/889 1381/2592/889 1384/2593/889 1388/2594/889 +f 1383/2581/890 1389/2595/890 1390/2596/890 1384/2582/890 +f 1391/2597/891 1392/2598/891 1390/2596/891 1389/2595/891 +f 1384/2593/892 1390/2596/892 1392/2598/892 1388/2594/892 +f 1386/2585/893 1391/2597/893 1389/2595/893 1383/2586/893 +f 1388/2589/894 1392/2598/894 1391/2597/894 1386/2590/894 +o Coils_Cylinder.012 +v -0.463562 0.524760 2.571894 +v -0.237813 0.524760 2.571894 +v -0.237813 0.222044 2.697284 +v -0.463562 0.222044 2.697284 +v -0.237813 0.096655 3.000000 +v -0.463562 0.096655 3.000000 +v -0.237813 0.222044 3.302716 +v -0.463562 0.222044 3.302716 +v -0.237813 0.524760 3.428106 +v -0.463562 0.524760 3.428106 +v -0.237813 0.827477 3.302716 +v -0.463562 0.827477 3.302716 +v -0.237813 0.952866 3.000000 +v -0.463562 0.952866 3.000000 +v -0.237813 0.827477 2.697284 +v -0.463562 0.827477 2.697284 +v -0.170088 0.524760 2.571894 +v 0.055660 0.524760 2.571894 +v 0.055660 0.222044 2.697284 +v -0.170088 0.222044 2.697284 +v 0.055660 0.096655 3.000000 +v -0.170088 0.096655 3.000000 +v 0.055660 0.222044 3.302716 +v -0.170088 0.222044 3.302716 +v 0.055660 0.524760 3.428106 +v -0.170088 0.524760 3.428106 +v 0.055660 0.827477 3.302716 +v -0.170088 0.827477 3.302716 +v 0.055660 0.952866 3.000000 +v -0.170088 0.952866 3.000000 +v 0.055660 0.827477 2.697284 +v -0.170088 0.827477 2.697284 +v 0.123385 0.524760 2.571894 +v 0.349134 0.524760 2.571894 +v 0.349134 0.222044 2.697284 +v 0.123385 0.222044 2.697284 +v 0.349134 0.096655 3.000000 +v 0.123385 0.096655 3.000000 +v 0.349134 0.222044 3.302716 +v 0.123385 0.222044 3.302716 +v 0.349134 0.524760 3.428106 +v 0.123385 0.524760 3.428106 +v 0.349134 0.827477 3.302716 +v 0.123385 0.827477 3.302716 +v 0.349134 0.952866 3.000000 +v 0.123385 0.952866 3.000000 +v 0.349134 0.827477 2.697284 +v 0.123385 0.827477 2.697284 +v 0.416858 0.524760 2.571894 +v 0.642607 0.524760 2.571894 +v 0.642607 0.222044 2.697284 +v 0.416858 0.222044 2.697284 +v 0.642607 0.096655 3.000000 +v 0.416858 0.096655 3.000000 +v 0.642607 0.222044 3.302716 +v 0.416858 0.222044 3.302716 +v 0.642607 0.524760 3.428106 +v 0.416858 0.524760 3.428106 +v 0.642607 0.827477 3.302716 +v 0.416858 0.827477 3.302716 +v 0.642607 0.952866 3.000000 +v 0.416858 0.952866 3.000000 +v 0.642607 0.827477 2.697284 +v 0.416858 0.827477 2.697284 +v 0.710331 0.524760 2.571894 +v 0.936080 0.524760 2.571894 +v 0.936080 0.222044 2.697284 +v 0.710331 0.222044 2.697284 +v 0.936080 0.096655 3.000000 +v 0.710331 0.096655 3.000000 +v 0.936080 0.222044 3.302716 +v 0.710331 0.222044 3.302716 +v 0.936080 0.524760 3.428106 +v 0.710331 0.524760 3.428106 +v 0.936080 0.827477 3.302716 +v 0.710331 0.827477 3.302716 +v 0.936080 0.952866 3.000000 +v 0.710331 0.952866 3.000000 +v 0.936080 0.827477 2.697284 +v 0.710331 0.827477 2.697284 +vt 0.781097 0.399443 +vt 0.718903 0.399443 +vt 0.718903 0.309173 +vt 0.781097 0.309173 +vt 0.718903 0.218903 +vt 0.781097 0.218903 +vt 0.781097 0.941064 +vt 0.718903 0.941064 +vt 0.718903 0.850794 +vt 0.781097 0.850794 +vt 0.718903 0.760524 +vt 0.781097 0.760524 +vt 0.718903 0.670254 +vt 0.781097 0.670254 +vt 0.718903 0.579984 +vt 0.781097 0.579984 +vt 0.218903 0.282734 +vt 0.282733 0.218903 +vt 0.373004 0.218903 +vt 0.436834 0.282734 +vt 0.436834 0.373004 +vt 0.373003 0.436835 +vt 0.282733 0.436834 +vt 0.218903 0.373004 +vt 0.718903 0.489714 +vt 0.781097 0.489714 +vt 0.064155 0.437482 +vt 0.154425 0.437483 +vt 0.218255 0.501313 +vt 0.218255 0.591583 +vt 0.154425 0.655414 +vt 0.064154 0.655414 +vt 0.000324 0.591583 +vt 0.000324 0.501313 +vt 0.999676 0.180864 +vt 0.937482 0.180864 +vt 0.937482 0.090594 +vt 0.999676 0.090594 +vt 0.937482 0.000324 +vt 0.999676 0.000324 +vt 0.999676 0.722485 +vt 0.937482 0.722485 +vt 0.937482 0.632215 +vt 0.999676 0.632215 +vt 0.937482 0.541944 +vt 0.999676 0.541944 +vt 0.937482 0.451674 +vt 0.999676 0.451674 +vt 0.937482 0.361404 +vt 0.999676 0.361404 +vt 0.000324 0.282734 +vt 0.064154 0.218903 +vt 0.154425 0.218903 +vt 0.218255 0.282734 +vt 0.218255 0.373004 +vt 0.154424 0.436835 +vt 0.064154 0.436834 +vt 0.000324 0.373004 +vt 0.937482 0.271134 +vt 0.999676 0.271134 +vt 0.501313 0.218903 +vt 0.591583 0.218903 +vt 0.655413 0.282734 +vt 0.655413 0.373004 +vt 0.591583 0.436835 +vt 0.501313 0.436834 +vt 0.437482 0.373004 +vt 0.437482 0.282734 +vt 0.718255 0.399443 +vt 0.656061 0.399443 +vt 0.656061 0.309173 +vt 0.718255 0.309173 +vt 0.656061 0.218903 +vt 0.718255 0.218903 +vt 0.718255 0.941064 +vt 0.656061 0.941064 +vt 0.656061 0.850794 +vt 0.718255 0.850794 +vt 0.656061 0.760524 +vt 0.718255 0.760524 +vt 0.656061 0.670254 +vt 0.718255 0.670254 +vt 0.656061 0.579984 +vt 0.718255 0.579984 +vt 0.218903 0.501313 +vt 0.282733 0.437482 +vt 0.373004 0.437483 +vt 0.436834 0.501313 +vt 0.436834 0.591583 +vt 0.373003 0.655414 +vt 0.282733 0.655414 +vt 0.218903 0.591583 +vt 0.656061 0.489714 +vt 0.718255 0.489714 +vt 0.501313 0.437482 +vt 0.591583 0.437483 +vt 0.655413 0.501313 +vt 0.655413 0.591583 +vt 0.591583 0.655414 +vt 0.501313 0.655414 +vt 0.437482 0.591583 +vt 0.437482 0.501313 +vt 0.936834 0.180864 +vt 0.874640 0.180864 +vt 0.874640 0.090594 +vt 0.936834 0.090594 +vt 0.874640 0.000324 +vt 0.936834 0.000324 +vt 0.936834 0.722484 +vt 0.874640 0.722484 +vt 0.874640 0.632214 +vt 0.936834 0.632214 +vt 0.874640 0.541944 +vt 0.936834 0.541944 +vt 0.874640 0.451674 +vt 0.936834 0.451674 +vt 0.874640 0.361404 +vt 0.936834 0.361404 +vt 0.656061 0.064155 +vt 0.719891 0.000324 +vt 0.810162 0.000324 +vt 0.873992 0.064155 +vt 0.873992 0.154425 +vt 0.810162 0.218255 +vt 0.719891 0.218255 +vt 0.656061 0.154425 +vt 0.874640 0.271134 +vt 0.936834 0.271134 +vt 0.501313 0.000324 +vt 0.591583 0.000324 +vt 0.655413 0.064155 +vt 0.655413 0.154425 +vt 0.591583 0.218255 +vt 0.501313 0.218255 +vt 0.437482 0.154425 +vt 0.437482 0.064155 +vt 0.873992 0.399443 +vt 0.811798 0.399443 +vt 0.811798 0.309173 +vt 0.873992 0.309173 +vt 0.811798 0.218903 +vt 0.873992 0.218903 +vt 0.873992 0.941064 +vt 0.811798 0.941064 +vt 0.811798 0.850794 +vt 0.873992 0.850794 +vt 0.811798 0.760524 +vt 0.873992 0.760524 +vt 0.811798 0.670253 +vt 0.873992 0.670253 +vt 0.811798 0.579983 +vt 0.873992 0.579983 +vt 0.218903 0.064155 +vt 0.282733 0.000324 +vt 0.373004 0.000324 +vt 0.436834 0.064155 +vt 0.436834 0.154425 +vt 0.373003 0.218255 +vt 0.282733 0.218255 +vt 0.218903 0.154425 +vt 0.811798 0.489713 +vt 0.873992 0.489713 +vt 0.064155 0.000324 +vt 0.154425 0.000324 +vt 0.218255 0.064155 +vt 0.218255 0.154425 +vt 0.154425 0.218255 +vt 0.064154 0.218255 +vt 0.000324 0.154425 +vt 0.000324 0.064155 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.9239 0.3827 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 0.3827 -0.9239 +vn -1.0000 0.0000 0.0000 +s off +f 1393/2599/895 1394/2600/895 1395/2601/895 1396/2602/895 +f 1396/2602/896 1395/2601/896 1397/2603/896 1398/2604/896 +f 1398/2605/897 1397/2606/897 1399/2607/897 1400/2608/897 +f 1400/2608/898 1399/2607/898 1401/2609/898 1402/2610/898 +f 1402/2610/899 1401/2609/899 1403/2611/899 1404/2612/899 +f 1404/2612/900 1403/2611/900 1405/2613/900 1406/2614/900 +f 1395/2615/901 1394/2616/901 1407/2617/901 1405/2618/901 1403/2619/901 1401/2620/901 1399/2621/901 1397/2622/901 +f 1406/2614/902 1405/2613/902 1407/2623/902 1408/2624/902 +f 1408/2624/903 1407/2623/903 1394/2600/903 1393/2599/903 +f 1393/2625/904 1396/2626/904 1398/2627/904 1400/2628/904 1402/2629/904 1404/2630/904 1406/2631/904 1408/2632/904 +f 1409/2633/895 1410/2634/895 1411/2635/895 1412/2636/895 +f 1412/2636/896 1411/2635/896 1413/2637/896 1414/2638/896 +f 1414/2639/897 1413/2640/897 1415/2641/897 1416/2642/897 +f 1416/2642/898 1415/2641/898 1417/2643/898 1418/2644/898 +f 1418/2644/899 1417/2643/899 1419/2645/899 1420/2646/899 +f 1420/2646/900 1419/2645/900 1421/2647/900 1422/2648/900 +f 1411/2649/901 1410/2650/901 1423/2651/901 1421/2652/901 1419/2653/901 1417/2654/901 1415/2655/901 1413/2656/901 +f 1422/2648/902 1421/2647/902 1423/2657/902 1424/2658/902 +f 1424/2658/903 1423/2657/903 1410/2634/903 1409/2633/903 +f 1409/2659/904 1412/2660/904 1414/2661/904 1416/2662/904 1418/2663/904 1420/2664/904 1422/2665/904 1424/2666/904 +f 1425/2667/895 1426/2668/895 1427/2669/895 1428/2670/895 +f 1428/2670/896 1427/2669/896 1429/2671/896 1430/2672/896 +f 1430/2673/897 1429/2674/897 1431/2675/897 1432/2676/897 +f 1432/2676/898 1431/2675/898 1433/2677/898 1434/2678/898 +f 1434/2678/899 1433/2677/899 1435/2679/899 1436/2680/899 +f 1436/2680/900 1435/2679/900 1437/2681/900 1438/2682/900 +f 1427/2683/901 1426/2684/901 1439/2685/901 1437/2686/901 1435/2687/901 1433/2688/901 1431/2689/901 1429/2690/901 +f 1438/2682/902 1437/2681/902 1439/2691/902 1440/2692/902 +f 1440/2692/903 1439/2691/903 1426/2668/903 1425/2667/903 +f 1425/2693/904 1428/2694/904 1430/2695/904 1432/2696/904 1434/2697/904 1436/2698/904 1438/2699/904 1440/2700/904 +f 1441/2701/895 1442/2702/895 1443/2703/895 1444/2704/895 +f 1444/2704/896 1443/2703/896 1445/2705/896 1446/2706/896 +f 1446/2707/897 1445/2708/897 1447/2709/897 1448/2710/897 +f 1448/2710/898 1447/2709/898 1449/2711/898 1450/2712/898 +f 1450/2712/899 1449/2711/899 1451/2713/899 1452/2714/899 +f 1452/2714/900 1451/2713/900 1453/2715/900 1454/2716/900 +f 1443/2717/901 1442/2718/901 1455/2719/901 1453/2720/901 1451/2721/901 1449/2722/901 1447/2723/901 1445/2724/901 +f 1454/2716/902 1453/2715/902 1455/2725/902 1456/2726/902 +f 1456/2726/903 1455/2725/903 1442/2702/903 1441/2701/903 +f 1441/2727/904 1444/2728/904 1446/2729/904 1448/2730/904 1450/2731/904 1452/2732/904 1454/2733/904 1456/2734/904 +f 1457/2735/895 1458/2736/895 1459/2737/895 1460/2738/895 +f 1460/2738/896 1459/2737/896 1461/2739/896 1462/2740/896 +f 1462/2741/897 1461/2742/897 1463/2743/897 1464/2744/897 +f 1464/2744/898 1463/2743/898 1465/2745/898 1466/2746/898 +f 1466/2746/899 1465/2745/899 1467/2747/899 1468/2748/899 +f 1468/2748/900 1467/2747/900 1469/2749/900 1470/2750/900 +f 1459/2751/901 1458/2752/901 1471/2753/901 1469/2754/901 1467/2755/901 1465/2756/901 1463/2757/901 1461/2758/901 +f 1470/2750/902 1469/2749/902 1471/2759/902 1472/2760/902 +f 1472/2760/903 1471/2759/903 1458/2736/903 1457/2735/903 +f 1457/2761/904 1460/2762/904 1462/2763/904 1464/2764/904 1466/2765/904 1468/2766/904 1470/2767/904 1472/2768/904 From 0239ea79682ccdbad9931af6d8cb17c4f894e1a8 Mon Sep 17 00:00:00 2001 From: Vaern Date: Fri, 9 Jun 2023 13:36:57 -0700 Subject: [PATCH 053/109] finished enough --- .../java/com/hbm/lib/HbmChestContents.java | 52 +++++++++++++++++++ src/main/java/com/hbm/lib/HbmWorld.java | 2 + .../com/hbm/world/gen/MapGenNTMFeatures.java | 4 ++ .../world/gen/component/BunkerComponents.java | 30 ++++++----- 4 files changed, 74 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/hbm/lib/HbmChestContents.java b/src/main/java/com/hbm/lib/HbmChestContents.java index 343a46e75..3cdf8a771 100644 --- a/src/main/java/com/hbm/lib/HbmChestContents.java +++ b/src/main/java/com/hbm/lib/HbmChestContents.java @@ -8,6 +8,7 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBreedingRod.*; import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType; import com.hbm.items.special.ItemBookLore.BookLoreType; +import com.hbm.items.tool.ItemBlowtorch; import net.minecraft.init.Items; import net.minecraft.item.Item; @@ -355,6 +356,57 @@ public class HbmChestContents { new WeightedRandomChestContent(ModItems.ink, 0, 1, 1, 1), //make that mf rare; 1:555 weight }; + public static WeightedRandomChestContent[] solidFuel = new WeightedRandomChestContent[] { + new WeightedRandomChestContent(ModItems.solid_fuel, 0, 1, 5, 1), + new WeightedRandomChestContent(ModItems.solid_fuel_presto, 0, 1, 2, 2), + new WeightedRandomChestContent(ModItems.ball_dynamite, 0, 1, 4, 2), + new WeightedRandomChestContent(Items.redstone, 0, 1, 3, 1), + new WeightedRandomChestContent(ModItems.niter, 0, 1, 3, 1) + }; + + public static WeightedRandomChestContent[] labVault = new WeightedRandomChestContent[] { + new WeightedRandomChestContent(ItemBlowtorch.getEmptyTool(ModItems.blowtorch), 1, 1, 4), + new WeightedRandomChestContent(ModItems.chemistry_set, 0, 1, 1, 15), + new WeightedRandomChestContent(ModItems.screwdriver, 0, 1, 1, 10), + new WeightedRandomChestContent(ModItems.nugget_mercury, 0, 1, 1, 3), + new WeightedRandomChestContent(ModItems.morning_glory, 0, 1, 1, 1), + new WeightedRandomChestContent(ModItems.filter_coal, 0, 1, 1, 5), + new WeightedRandomChestContent(ModItems.dust, 0, 1, 3, 25), + new WeightedRandomChestContent(Items.paper, 0, 1, 2, 15), + new WeightedRandomChestContent(ModItems.cell_empty, 0, 1, 1, 5), + new WeightedRandomChestContent(Items.glass_bottle, 0, 1, 1, 5), + new WeightedRandomChestContent(ModItems.powder_iodine, 0, 1, 1, 1), + new WeightedRandomChestContent(ModItems.powder_bromine, 0, 1, 1, 1), + new WeightedRandomChestContent(ModItems.powder_cobalt, 0, 1, 1, 1), + new WeightedRandomChestContent(ModItems.powder_neodymium, 0, 1, 1, 1), + new WeightedRandomChestContent(ModItems.powder_boron, 0, 1, 1, 1), + }; + + public static WeightedRandomChestContent[] lockersVault = new WeightedRandomChestContent[] { + new WeightedRandomChestContent(ModItems.robes_helmet, 0, 1, 1, 1), + new WeightedRandomChestContent(ModItems.robes_plate, 0, 1, 1, 1), + new WeightedRandomChestContent(ModItems.robes_legs, 0, 1, 1, 1), + new WeightedRandomChestContent(ModItems.robes_boots, 0, 1, 1, 1), + new WeightedRandomChestContent(ModItems.jackt, 0, 1, 1, 1), + new WeightedRandomChestContent(ModItems.jackt2, 0, 1, 1, 1), + new WeightedRandomChestContent(ModItems.gas_mask_m65, 0, 1, 1, 2), + new WeightedRandomChestContent(ModItems.gas_mask_mono, 0, 1, 1, 2), + new WeightedRandomChestContent(ModItems.goggles, 0, 1, 1, 2), + new WeightedRandomChestContent(ModItems.gas_mask_filter, 0, 1, 1, 4), + new WeightedRandomChestContent(ModItems.flame_opinion, 0, 1, 3, 5), + new WeightedRandomChestContent(ModItems.flame_conspiracy, 0, 1, 3, 5), + new WeightedRandomChestContent(ModItems.flame_politics, 0, 1, 3, 5), + new WeightedRandomChestContent(ModItems.cigarette, 0, 1, 8, 5), + new WeightedRandomChestContent(ModItems.canteen_13, 0, 1, 1, 2), + new WeightedRandomChestContent(ModItems.armor_polish, 0, 1, 1, 3), + new WeightedRandomChestContent(ModItems.gun_kit_1, 0, 1, 1, 3), + new WeightedRandomChestContent(ModItems.rag, 0, 1, 3, 5), + new WeightedRandomChestContent(Items.paper, 0, 1, 6, 7), + new WeightedRandomChestContent(Items.clock, 0, 1, 1, 3), + new WeightedRandomChestContent(Items.book, 0, 1, 5, 10), + new WeightedRandomChestContent(Items.experience_bottle, 0, 1, 3, 1), + }; + /** ITEMBOOKLORE ARRAYS */ //might make a wrapper class for this, if game-state knowledge using the nbt system becomes that relevant public final static BookLoreType[] books_office_sch = new BookLoreType[] { diff --git a/src/main/java/com/hbm/lib/HbmWorld.java b/src/main/java/com/hbm/lib/HbmWorld.java index c12dd3f6c..4a24a192f 100644 --- a/src/main/java/com/hbm/lib/HbmWorld.java +++ b/src/main/java/com/hbm/lib/HbmWorld.java @@ -6,6 +6,7 @@ import com.hbm.world.gen.component.BunkerComponents; import com.hbm.world.gen.component.CivilianFeatures; import com.hbm.world.gen.component.OfficeFeatures; import com.hbm.world.gen.component.RuinFeatures; +import com.hbm.world.gen.component.BunkerComponents.BunkerStart; import cpw.mods.fml.common.IWorldGenerator; import cpw.mods.fml.common.registry.GameRegistry; @@ -23,6 +24,7 @@ public class HbmWorld { //MapGenStructureIO.registerStructure(StructureStartTest.class, "HFR_STRUCTURE"); //MapGenStructureIO.func_143031_a(StructureComponentTest.class, "HFR_COMPONENT"); MapGenStructureIO.registerStructure(MapGenNTMFeatures.Start.class, "NTMFeatures"); + MapGenStructureIO.registerStructure(BunkerStart.class, "NTMBunker"); registerNTMFeatures(); registerWorldGen(new HbmWorldGen(), 1); diff --git a/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java b/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java index 9c1a55339..c5383cca0 100644 --- a/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java +++ b/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java @@ -7,6 +7,7 @@ import java.util.Random; import com.hbm.config.GeneralConfig; import com.hbm.config.StructureConfig; +import com.hbm.world.gen.component.BunkerComponents.BunkerStart; import com.hbm.world.gen.component.CivilianFeatures.*; import com.hbm.world.gen.component.OfficeFeatures.*; import com.hbm.world.gen.component.RuinFeatures.*; @@ -89,6 +90,9 @@ public class MapGenNTMFeatures extends MapGenStructure { /** Returns new StructureStart if structure can be spawned at coords */ @Override protected StructureStart getStructureStart(int chunkX, int chunkZ) { + if(this.rand.nextInt(15) == 0) { //eh might as well, they'll already be prettty rare anyway + return new BunkerStart(this.worldObj, this.rand, chunkX, chunkZ); + } return new MapGenNTMFeatures.Start(this.worldObj, this.rand, chunkX, chunkZ); } diff --git a/src/main/java/com/hbm/world/gen/component/BunkerComponents.java b/src/main/java/com/hbm/world/gen/component/BunkerComponents.java index d23b1f733..acb8481c3 100644 --- a/src/main/java/com/hbm/world/gen/component/BunkerComponents.java +++ b/src/main/java/com/hbm/world/gen/component/BunkerComponents.java @@ -20,6 +20,8 @@ public class BunkerComponents { public static class BunkerStart extends ProceduralStructureStart { + public BunkerStart() {} + public BunkerStart(World world, Random rand, int chunkX, int chunkZ) { super(chunkX, chunkZ); @@ -373,13 +375,13 @@ public class BunkerComponents { placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaE | 4, 4, 1, 9, box); placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaS, 5, 1, 8, box); placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(0), 5, 2, 9, box); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 3, 1, 9, HbmChestContents.antenna/*TODO change */, 5); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 3, 1, 9, HbmChestContents.filingCabinet, 5); //lockers - generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 1, 7, HbmChestContents.antenna/*TODO change */, 3); - generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 2, 7, HbmChestContents.antenna/*TODO change */, 3); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 1, 7, HbmChestContents.lockersVault, 3); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 2, 7, HbmChestContents.lockersVault, 5); fillWithBlocks(world, box, 8, 1, 8, 8, 2, 8, ModBlocks.deco_tungsten); - generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 1, 9, HbmChestContents.antenna/*TODO change */, 3); - generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 2, 9, HbmChestContents.antenna/*TODO change */, 3); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 1, 9, HbmChestContents.lockersVault, 4); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 2, 9, HbmChestContents.lockersVault, 5); fillWithMetadataBlocks(world, box, 8, 3, 7, 8, 3, 9, Blocks.trapdoor, getDecoModelMeta(2) >> 2); //doors placeDoor(world, box, ModBlocks.door_bunker, 1, true, rand.nextBoolean(), 7, 1, 0); @@ -472,7 +474,7 @@ public class BunkerComponents { //table & chest placeBlockAtCurrentPosition(world, Blocks.fence, 0, 6, 1, 2, box); placeBlockAtCurrentPosition(world, Blocks.wooden_pressure_plate, 0, 6, 2, 2, box); - generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 6, 1, 3, HbmChestContents.antenna/*TODO change */, 7); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 6, 1, 3, HbmChestContents.lockersVault, 8); //desk w/ computer + bobblehead placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | 4, 1, 1, 8, box); placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaE | 4, 1, 1, 9, box); @@ -677,12 +679,12 @@ public class BunkerComponents { fillWithMetadataBlocks(world, box, 1, 3, 9, 1, 3, 10, ModBlocks.tape_recorder, decoMetaW); fillWithBlocks(world, box, 1, 1, 11, 1, 3, 11, ModBlocks.deco_tungsten); //desks w/ computers - generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(2), 3, 1, 4, HbmChestContents.antenna, 4); //wip + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(2), 3, 1, 4, HbmChestContents.machineParts, 6); placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | 4, 3, 1, 5, box); fillWithMetadataBlocks(world, box, 4, 1, 5, 4, 1, 7, ModBlocks.concrete_smooth_stairs, stairMetaW | 4); placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaN, 3, 1, 7, box); placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | 4, 3, 1, 9, box); - fillWithMetadataBlocks(world, box, 4, 1, 9, 4, 1, 11, ModBlocks.concrete_smooth_stairs, 4); + fillWithMetadataBlocks(world, box, 4, 1, 9, 4, 1, 11, ModBlocks.concrete_smooth_stairs, stairMetaW | 4); placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaN, 3, 1, 11, box); placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 3, 2, 5, box); placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, decoModelMetaW, 4, 2, 6, box); @@ -702,7 +704,7 @@ public class BunkerComponents { //table w/ chest placeBlockAtCurrentPosition(world, Blocks.fence, 0, 7, 1, 9, box); placeBlockAtCurrentPosition(world, Blocks.wooden_pressure_plate, 0, 7, 2, 9, box); - generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 7, 1, 10, HbmChestContents.antenna, 4); //wip + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 7, 1, 10, HbmChestContents.labVault, 8); //doors placeDoor(world, box, ModBlocks.door_bunker, 1, true, rand.nextBoolean(), 5, 1, 0); placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 6, 1, 0); @@ -817,8 +819,8 @@ public class BunkerComponents { placeBlockAtCurrentPosition(world, ModBlocks.fluid_duct_gauge, decoMetaW, 10, 2, 5, box); placeBlockAtCurrentPosition(world, ModBlocks.barrel_plastic, 0, 6, 1, 5, box); //chests - generateInvContents(world, box, rand, Blocks.chest, decoMetaS, 7, 1, 5, HbmChestContents.antenna, 4); //WIP - generateInvContents(world, box, rand, Blocks.chest, decoMetaS, 9, 1, 5, HbmChestContents.antenna, 4); + generateInvContents(world, box, rand, Blocks.chest, decoMetaS, 7, 1, 5, HbmChestContents.solidFuel, 5); + generateInvContents(world, box, rand, Blocks.chest, decoMetaS, 9, 1, 5, HbmChestContents.solidFuel, 6); break; case 1: placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 5, 6, 1, 1, box); @@ -871,7 +873,7 @@ public class BunkerComponents { placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_quad_rusted, getPillarMeta(4), 7, 3, 1, box); placeBlockAtCurrentPosition(world, ModBlocks.fluid_duct_gauge, decoMetaN, 6, 3, 1, box); //chest - generateInvContents(world, box, rand, Blocks.chest, decoMetaN, 6, 1, 2, HbmChestContents.antenna, 4); //WIP + generateInvContents(world, box, rand, Blocks.chest, decoMetaN, 6, 1, 2, HbmChestContents.nuclearFuel, 8); break; } //transformer @@ -903,8 +905,8 @@ public class BunkerComponents { placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 8, 2, 10, box); placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(0), 9, 2, 10, box); //loot - generateInvContents(world, box, rand, Blocks.chest, decoMetaE, 1, 1, 7, HbmChestContents.antenna, 4); //WIP - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 7, 1, 10, HbmChestContents.antenna, 4); + generateInvContents(world, box, rand, Blocks.chest, decoMetaE, 1, 1, 7, HbmChestContents.machineParts, 6); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 7, 1, 10, HbmChestContents.filingCabinet, 4); //doors placeDoor(world, box, ModBlocks.door_bunker, 1, true, rand.nextBoolean(), 3, 1, 0); placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 4, 1, 0); From 5df2465a169f1db0ba70ff4ff6528f21bb50c90d Mon Sep 17 00:00:00 2001 From: Vaern Date: Fri, 9 Jun 2023 13:41:04 -0700 Subject: [PATCH 054/109] o --- src/main/java/com/hbm/items/tool/ItemWandD.java | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index a9c9a49ae..1debe2a22 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -3,14 +3,12 @@ package com.hbm.items.tool; import java.util.List; import com.hbm.lib.Library; -import com.hbm.world.gen.component.BunkerComponents; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; -import net.minecraft.world.gen.structure.StructureBoundingBox; public class ItemWandD extends Item { @@ -52,13 +50,6 @@ public class ItemWandD extends Item { tom.destructionRange = 600; world.spawnEntityInWorld(tom);*/ - //use sparingly - int k = ((pos.blockX >> 4) << 4) + 8; - int l = ((pos.blockZ >> 4) << 4) + 8; - - BunkerComponents.BunkerStart start = new BunkerComponents.BunkerStart(world, world.rand, pos.blockX >> 4, pos.blockZ >> 4); - start.generateStructure(world, world.rand, new StructureBoundingBox(k - 124, l - 124, k + 15 + 124, l + 15 + 124)); - /*EntityNukeTorex torex = new EntityNukeTorex(world); torex.setPositionAndRotation(pos.blockX, pos.blockY + 1, pos.blockZ, 0, 0); torex.getDataWatcher().updateObject(10, 1.5F); From 55d2330219e606b397e0935b61cf9e1bffb3ebbe Mon Sep 17 00:00:00 2001 From: Vaern Date: Fri, 9 Jun 2023 13:50:07 -0700 Subject: [PATCH 055/109] destroy --- src/main/java/com/hbm/config/WorldConfig.java | 3 - src/main/java/com/hbm/lib/HbmWorldGen.java | 9 - .../java/com/hbm/world/dungeon/Bunker.java | 1596 ----------------- 3 files changed, 1608 deletions(-) delete mode 100644 src/main/java/com/hbm/world/dungeon/Bunker.java diff --git a/src/main/java/com/hbm/config/WorldConfig.java b/src/main/java/com/hbm/config/WorldConfig.java index faedff279..cf0f08a67 100644 --- a/src/main/java/com/hbm/config/WorldConfig.java +++ b/src/main/java/com/hbm/config/WorldConfig.java @@ -78,7 +78,6 @@ public class WorldConfig { public static int dungeonStructure = 64; public static int relayStructure = 500; public static int satelliteStructure = 500; - public static int bunkerStructure = 1000; public static int siloStructure = 1000; public static int factoryStructure = 1000; public static int dudStructure = 500; @@ -185,7 +184,6 @@ public class WorldConfig { dungeonStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.04_dungeonSpawn", "Spawn library dungeon on every nTH chunk", 64); relayStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.05_relaySpawn", "Spawn relay on every nTH chunk", 500); satelliteStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.06_satelliteSpawn", "Spawn satellite dish on every nTH chunk", 500); - bunkerStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.07_bunkerSpawn", "Spawn bunker on every nTH chunk", 1000); siloStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.08_siloSpawn", "Spawn missile silo on every nTH chunk", 1000); factoryStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.09_factorySpawn", "Spawn factory on every nTH chunk", 1000); dudStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.10_dudSpawn", "Spawn dud on every nTH chunk", 500); @@ -220,7 +218,6 @@ public class WorldConfig { dungeonStructure = CommonConfig.setDefZero(dungeonStructure, 1000); relayStructure = CommonConfig.setDefZero(relayStructure, 1000); satelliteStructure = CommonConfig.setDefZero(satelliteStructure, 1000); - bunkerStructure = CommonConfig.setDefZero(bunkerStructure, 1000); siloStructure = CommonConfig.setDefZero(siloStructure, 1000); factoryStructure = CommonConfig.setDefZero(factoryStructure, 1000); dudStructure = CommonConfig.setDefZero(dudStructure, 1000); diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index dac6fed84..2d1bd69c5 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -18,7 +18,6 @@ import com.hbm.world.dungeon.AncientTomb; import com.hbm.world.dungeon.Antenna; import com.hbm.world.dungeon.ArcticVault; import com.hbm.world.dungeon.Barrel; -import com.hbm.world.dungeon.Bunker; import com.hbm.world.dungeon.CrashedVertibird; import com.hbm.world.dungeon.DesertAtom001; import com.hbm.world.dungeon.Factory; @@ -314,14 +313,6 @@ public class HbmWorldGen implements IWorldGenerator { } } - if(WorldConfig.bunkerStructure > 0 && rand.nextInt(WorldConfig.bunkerStructure) == 0) { - int x = i + rand.nextInt(16); - int z = j + rand.nextInt(16); - int y = world.getHeightValue(x, z); - - new Bunker().generate(world, rand, x, y, z); - } - if(WorldConfig.siloStructure > 0 && rand.nextInt(WorldConfig.siloStructure) == 0) { int x = i + rand.nextInt(16); int z = j + rand.nextInt(16); diff --git a/src/main/java/com/hbm/world/dungeon/Bunker.java b/src/main/java/com/hbm/world/dungeon/Bunker.java deleted file mode 100644 index 3290d5ebd..000000000 --- a/src/main/java/com/hbm/world/dungeon/Bunker.java +++ /dev/null @@ -1,1596 +0,0 @@ -//Schematic to java Structure by jajo_11 | inspired by "MITHION'S .SCHEMATIC TO JAVA CONVERTINGTOOL" - -package com.hbm.world.dungeon; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.generic.BlockBobble.BobbleType; -import com.hbm.blocks.generic.BlockBobble.TileEntityBobble; -import com.hbm.config.GeneralConfig; -import com.hbm.lib.HbmChestContents; -import com.hbm.lib.Library; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemDoor; -import net.minecraft.tileentity.TileEntityChest; -import net.minecraft.util.WeightedRandomChestContent; -import net.minecraft.world.World; -import net.minecraft.world.gen.feature.WorldGenerator; - -public class Bunker extends WorldGenerator { - Block Block1 = ModBlocks.reinforced_brick; - Block Block3 = ModBlocks.reinforced_light; - Block Block4 = ModBlocks.deco_steel; - Block Block5 = ModBlocks.deco_tungsten; - - protected Block[] GetValidSpawnBlocks() { - return new Block[] { Blocks.grass, Blocks.dirt, Blocks.stone, Blocks.sand, Blocks.sandstone, }; - } - - @Override - public boolean generate(World world, Random rand, int x, int y, int z) { - int i = rand.nextInt(1); - - if(i == 0) { - generate_r0(world, rand, x, y, z); - } - - return true; - - } - - public boolean LocationIsValidSpawn(World world, int x, int y, int z) { - - Block checkBlock = world.getBlock(x, y - 1, z); - Block blockAbove = world.getBlock(x, y, z); - Block blockBelow = world.getBlock(x, y - 2, z); - - for(Block i : GetValidSpawnBlocks()) { - if(blockAbove != Blocks.air) { - return false; - } - if(checkBlock == i) { - return true; - } else if(checkBlock == Blocks.snow_layer && blockBelow == i) { - return true; - } else if(checkBlock.getMaterial() == Material.plants && blockBelow == i) { - return true; - } - } - return false; - } - - public boolean generate_r0(World world, Random rand, int x, int y, int z) { - y += 1; - - if(!LocationIsValidSpawn(world, x + 9, y, z + 9)) { - return false; - } - - if(!LocationIsValidSpawn(world, x, y, z)) - { - return false; - } - - for(int i = 0; i < 11; i++) { - for(int j = 0; j < 9; j++) { - for(int k = 0; k < 15; k++) { - world.setBlock(x + i, y + j - 25, z + k, Blocks.air, 0, 3); - } - } - } - - world.setBlock(x + 0, y + -25, z + 0, Block1, 0, 3); - world.setBlock(x + 1, y + -25, z + 0, Block1, 0, 3); - world.setBlock(x + 2, y + -25, z + 0, Block1, 0, 3); - world.setBlock(x + 3, y + -25, z + 0, Block1, 0, 3); - world.setBlock(x + 4, y + -25, z + 0, Block1, 0, 3); - world.setBlock(x + 5, y + -25, z + 0, Block1, 0, 3); - world.setBlock(x + 6, y + -25, z + 0, Block1, 0, 3); - world.setBlock(x + 7, y + -25, z + 0, Block1, 0, 3); - world.setBlock(x + 8, y + -25, z + 0, Block1, 0, 3); - world.setBlock(x + 9, y + -25, z + 0, Block1, 0, 3); - world.setBlock(x + 10, y + -25, z + 0, Block1, 0, 3); - world.setBlock(x + 11, y + -25, z + 0, Block1, 0, 3); - world.setBlock(x + 0, y + -25, z + 1, Block1, 0, 3); - world.setBlock(x + 1, y + -25, z + 1, Block1, 0, 3); - world.setBlock(x + 2, y + -25, z + 1, Block1, 0, 3); - world.setBlock(x + 3, y + -25, z + 1, Block1, 0, 3); - world.setBlock(x + 4, y + -25, z + 1, Block1, 0, 3); - world.setBlock(x + 5, y + -25, z + 1, Block1, 0, 3); - world.setBlock(x + 6, y + -25, z + 1, Block1, 0, 3); - world.setBlock(x + 7, y + -25, z + 1, Block1, 0, 3); - world.setBlock(x + 8, y + -25, z + 1, Block1, 0, 3); - world.setBlock(x + 9, y + -25, z + 1, Block1, 0, 3); - world.setBlock(x + 10, y + -25, z + 1, Block1, 0, 3); - world.setBlock(x + 11, y + -25, z + 1, Block1, 0, 3); - world.setBlock(x + 0, y + -25, z + 2, Block1, 0, 3); - world.setBlock(x + 1, y + -25, z + 2, Block1, 0, 3); - world.setBlock(x + 2, y + -25, z + 2, Block1, 0, 3); - world.setBlock(x + 3, y + -25, z + 2, Block1, 0, 3); - world.setBlock(x + 4, y + -25, z + 2, Block1, 0, 3); - world.setBlock(x + 5, y + -25, z + 2, Block1, 0, 3); - world.setBlock(x + 6, y + -25, z + 2, Block1, 0, 3); - world.setBlock(x + 7, y + -25, z + 2, Block1, 0, 3); - world.setBlock(x + 8, y + -25, z + 2, Block1, 0, 3); - world.setBlock(x + 9, y + -25, z + 2, Block1, 0, 3); - world.setBlock(x + 10, y + -25, z + 2, Block1, 0, 3); - world.setBlock(x + 11, y + -25, z + 2, Block1, 0, 3); - world.setBlock(x + 0, y + -25, z + 3, Block1, 0, 3); - world.setBlock(x + 1, y + -25, z + 3, Block1, 0, 3); - world.setBlock(x + 2, y + -25, z + 3, Block1, 0, 3); - world.setBlock(x + 3, y + -25, z + 3, Block1, 0, 3); - world.setBlock(x + 4, y + -25, z + 3, Block1, 0, 3); - world.setBlock(x + 5, y + -25, z + 3, Block1, 0, 3); - world.setBlock(x + 6, y + -25, z + 3, Block1, 0, 3); - world.setBlock(x + 7, y + -25, z + 3, Block1, 0, 3); - world.setBlock(x + 8, y + -25, z + 3, Block1, 0, 3); - world.setBlock(x + 9, y + -25, z + 3, Block1, 0, 3); - world.setBlock(x + 10, y + -25, z + 3, Block1, 0, 3); - world.setBlock(x + 11, y + -25, z + 3, Block1, 0, 3); - world.setBlock(x + 0, y + -25, z + 4, Block1, 0, 3); - world.setBlock(x + 1, y + -25, z + 4, Block1, 0, 3); - world.setBlock(x + 2, y + -25, z + 4, Block1, 0, 3); - world.setBlock(x + 3, y + -25, z + 4, Block1, 0, 3); - world.setBlock(x + 4, y + -25, z + 4, Block1, 0, 3); - world.setBlock(x + 5, y + -25, z + 4, Block1, 0, 3); - world.setBlock(x + 6, y + -25, z + 4, Block1, 0, 3); - world.setBlock(x + 7, y + -25, z + 4, Block1, 0, 3); - world.setBlock(x + 8, y + -25, z + 4, Block1, 0, 3); - world.setBlock(x + 9, y + -25, z + 4, Block1, 0, 3); - world.setBlock(x + 10, y + -25, z + 4, Block1, 0, 3); - world.setBlock(x + 11, y + -25, z + 4, Block1, 0, 3); - world.setBlock(x + 0, y + -25, z + 5, Block1, 0, 3); - world.setBlock(x + 1, y + -25, z + 5, Block1, 0, 3); - world.setBlock(x + 2, y + -25, z + 5, Block1, 0, 3); - world.setBlock(x + 3, y + -25, z + 5, Block1, 0, 3); - world.setBlock(x + 4, y + -25, z + 5, Block1, 0, 3); - world.setBlock(x + 5, y + -25, z + 5, Block1, 0, 3); - world.setBlock(x + 6, y + -25, z + 5, Block1, 0, 3); - world.setBlock(x + 7, y + -25, z + 5, Block1, 0, 3); - world.setBlock(x + 8, y + -25, z + 5, Block1, 0, 3); - world.setBlock(x + 9, y + -25, z + 5, Block1, 0, 3); - world.setBlock(x + 10, y + -25, z + 5, Block1, 0, 3); - world.setBlock(x + 11, y + -25, z + 5, Block1, 0, 3); - world.setBlock(x + 0, y + -25, z + 6, Block1, 0, 3); - world.setBlock(x + 1, y + -25, z + 6, Block1, 0, 3); - world.setBlock(x + 2, y + -25, z + 6, Block1, 0, 3); - world.setBlock(x + 3, y + -25, z + 6, Block1, 0, 3); - world.setBlock(x + 4, y + -25, z + 6, Block1, 0, 3); - world.setBlock(x + 5, y + -25, z + 6, Block1, 0, 3); - world.setBlock(x + 6, y + -25, z + 6, Block1, 0, 3); - world.setBlock(x + 7, y + -25, z + 6, Block1, 0, 3); - world.setBlock(x + 8, y + -25, z + 6, Block1, 0, 3); - world.setBlock(x + 9, y + -25, z + 6, Block1, 0, 3); - world.setBlock(x + 10, y + -25, z + 6, Block1, 0, 3); - world.setBlock(x + 11, y + -25, z + 6, Block1, 0, 3); - world.setBlock(x + 0, y + -25, z + 7, Block1, 0, 3); - world.setBlock(x + 1, y + -25, z + 7, Block1, 0, 3); - world.setBlock(x + 2, y + -25, z + 7, Block1, 0, 3); - world.setBlock(x + 3, y + -25, z + 7, Block1, 0, 3); - world.setBlock(x + 4, y + -25, z + 7, Block1, 0, 3); - world.setBlock(x + 5, y + -25, z + 7, Block1, 0, 3); - world.setBlock(x + 6, y + -25, z + 7, Block1, 0, 3); - world.setBlock(x + 7, y + -25, z + 7, Block1, 0, 3); - world.setBlock(x + 8, y + -25, z + 7, Block1, 0, 3); - world.setBlock(x + 9, y + -25, z + 7, Block1, 0, 3); - world.setBlock(x + 10, y + -25, z + 7, Block1, 0, 3); - world.setBlock(x + 11, y + -25, z + 7, Block1, 0, 3); - world.setBlock(x + 0, y + -25, z + 8, Block1, 0, 3); - world.setBlock(x + 1, y + -25, z + 8, Block1, 0, 3); - world.setBlock(x + 2, y + -25, z + 8, Block1, 0, 3); - world.setBlock(x + 3, y + -25, z + 8, Block1, 0, 3); - world.setBlock(x + 4, y + -25, z + 8, Block1, 0, 3); - world.setBlock(x + 5, y + -25, z + 8, Block1, 0, 3); - world.setBlock(x + 6, y + -25, z + 8, Block1, 0, 3); - world.setBlock(x + 7, y + -25, z + 8, Block1, 0, 3); - world.setBlock(x + 8, y + -25, z + 8, Block1, 0, 3); - world.setBlock(x + 9, y + -25, z + 8, Block1, 0, 3); - world.setBlock(x + 10, y + -25, z + 8, Block1, 0, 3); - world.setBlock(x + 11, y + -25, z + 8, Block1, 0, 3); - world.setBlock(x + 0, y + -25, z + 9, Block1, 0, 3); - world.setBlock(x + 1, y + -25, z + 9, Block1, 0, 3); - world.setBlock(x + 2, y + -25, z + 9, Block1, 0, 3); - world.setBlock(x + 3, y + -25, z + 9, Block1, 0, 3); - world.setBlock(x + 4, y + -25, z + 9, Block1, 0, 3); - world.setBlock(x + 5, y + -25, z + 9, Block1, 0, 3); - world.setBlock(x + 6, y + -25, z + 9, Block1, 0, 3); - world.setBlock(x + 7, y + -25, z + 9, Block1, 0, 3); - world.setBlock(x + 8, y + -25, z + 9, Block1, 0, 3); - world.setBlock(x + 9, y + -25, z + 9, Block1, 0, 3); - world.setBlock(x + 10, y + -25, z + 9, Block1, 0, 3); - world.setBlock(x + 11, y + -25, z + 9, Block1, 0, 3); - world.setBlock(x + 0, y + -25, z + 10, Block1, 0, 3); - world.setBlock(x + 1, y + -25, z + 10, Block1, 0, 3); - world.setBlock(x + 2, y + -25, z + 10, Block1, 0, 3); - world.setBlock(x + 3, y + -25, z + 10, Block1, 0, 3); - world.setBlock(x + 4, y + -25, z + 10, Block1, 0, 3); - world.setBlock(x + 5, y + -25, z + 10, Block1, 0, 3); - world.setBlock(x + 6, y + -25, z + 10, Block1, 0, 3); - world.setBlock(x + 7, y + -25, z + 10, Block1, 0, 3); - world.setBlock(x + 8, y + -25, z + 10, Block1, 0, 3); - world.setBlock(x + 9, y + -25, z + 10, Block1, 0, 3); - world.setBlock(x + 10, y + -25, z + 10, Block1, 0, 3); - world.setBlock(x + 11, y + -25, z + 10, Block1, 0, 3); - world.setBlock(x + 0, y + -25, z + 11, Block1, 0, 3); - world.setBlock(x + 1, y + -25, z + 11, Block1, 0, 3); - world.setBlock(x + 2, y + -25, z + 11, Block1, 0, 3); - world.setBlock(x + 3, y + -25, z + 11, Block1, 0, 3); - world.setBlock(x + 4, y + -25, z + 11, Block1, 0, 3); - world.setBlock(x + 5, y + -25, z + 11, Block1, 0, 3); - world.setBlock(x + 6, y + -25, z + 11, Block1, 0, 3); - world.setBlock(x + 7, y + -25, z + 11, Block1, 0, 3); - world.setBlock(x + 8, y + -25, z + 11, Block1, 0, 3); - world.setBlock(x + 9, y + -25, z + 11, Block1, 0, 3); - world.setBlock(x + 10, y + -25, z + 11, Block1, 0, 3); - world.setBlock(x + 11, y + -25, z + 11, Block1, 0, 3); - world.setBlock(x + 0, y + -25, z + 12, Block1, 0, 3); - world.setBlock(x + 1, y + -25, z + 12, Block1, 0, 3); - world.setBlock(x + 2, y + -25, z + 12, Block1, 0, 3); - world.setBlock(x + 3, y + -25, z + 12, Block1, 0, 3); - world.setBlock(x + 4, y + -25, z + 12, Block1, 0, 3); - world.setBlock(x + 5, y + -25, z + 12, Block1, 0, 3); - world.setBlock(x + 6, y + -25, z + 12, Block1, 0, 3); - world.setBlock(x + 7, y + -25, z + 12, Block1, 0, 3); - world.setBlock(x + 8, y + -25, z + 12, Block1, 0, 3); - world.setBlock(x + 9, y + -25, z + 12, Block1, 0, 3); - world.setBlock(x + 10, y + -25, z + 12, Block1, 0, 3); - world.setBlock(x + 11, y + -25, z + 12, Block1, 0, 3); - world.setBlock(x + 0, y + -25, z + 13, Block1, 0, 3); - world.setBlock(x + 1, y + -25, z + 13, Block1, 0, 3); - world.setBlock(x + 2, y + -25, z + 13, Block1, 0, 3); - world.setBlock(x + 3, y + -25, z + 13, Block1, 0, 3); - world.setBlock(x + 4, y + -25, z + 13, Block1, 0, 3); - world.setBlock(x + 5, y + -25, z + 13, Block1, 0, 3); - world.setBlock(x + 6, y + -25, z + 13, Block1, 0, 3); - world.setBlock(x + 7, y + -25, z + 13, Block1, 0, 3); - world.setBlock(x + 8, y + -25, z + 13, Block1, 0, 3); - world.setBlock(x + 9, y + -25, z + 13, Block1, 0, 3); - world.setBlock(x + 10, y + -25, z + 13, Block1, 0, 3); - world.setBlock(x + 11, y + -25, z + 13, Block1, 0, 3); - world.setBlock(x + 0, y + -25, z + 14, Block1, 0, 3); - world.setBlock(x + 1, y + -25, z + 14, Block1, 0, 3); - world.setBlock(x + 2, y + -25, z + 14, Block1, 0, 3); - world.setBlock(x + 3, y + -25, z + 14, Block1, 0, 3); - world.setBlock(x + 4, y + -25, z + 14, Block1, 0, 3); - world.setBlock(x + 5, y + -25, z + 14, Block1, 0, 3); - world.setBlock(x + 6, y + -25, z + 14, Block1, 0, 3); - world.setBlock(x + 7, y + -25, z + 14, Block1, 0, 3); - world.setBlock(x + 8, y + -25, z + 14, Block1, 0, 3); - world.setBlock(x + 9, y + -25, z + 14, Block1, 0, 3); - world.setBlock(x + 10, y + -25, z + 14, Block1, 0, 3); - world.setBlock(x + 11, y + -25, z + 14, Block1, 0, 3); - world.setBlock(x + 0, y + -24, z + 0, Block1, 0, 3); - world.setBlock(x + 1, y + -24, z + 0, Block1, 0, 3); - world.setBlock(x + 2, y + -24, z + 0, Block1, 0, 3); - world.setBlock(x + 3, y + -24, z + 0, Block1, 0, 3); - world.setBlock(x + 4, y + -24, z + 0, Block1, 0, 3); - world.setBlock(x + 5, y + -24, z + 0, Block1, 0, 3); - world.setBlock(x + 6, y + -24, z + 0, Block1, 0, 3); - world.setBlock(x + 7, y + -24, z + 0, Block1, 0, 3); - world.setBlock(x + 8, y + -24, z + 0, Block1, 0, 3); - world.setBlock(x + 9, y + -24, z + 0, Block1, 0, 3); - world.setBlock(x + 10, y + -24, z + 0, Block1, 0, 3); - world.setBlock(x + 11, y + -24, z + 0, Block1, 0, 3); - world.setBlock(x + 0, y + -24, z + 1, Block1, 0, 3); - world.setBlock(x + 1, y + -24, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -24, z + 1, Blocks.chest, 3, 3); - world.setBlockMetadataWithNotify(x + 2, y + -24, z + 1, 3, 3); - if(world.getBlock(x + 2, y + -24, z + 1) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.expensive, (TileEntityChest) world.getTileEntity(x + 2, y + -24, z + 1), rand.nextInt(2) + 6); - } - - if(world.rand.nextInt(10) > 0) { - world.setBlock(x + 2, y + -23, z + 1, ModBlocks.geiger, 2, 3); - } else { - world.setBlock(x + 2, y + -23, z + 1, ModBlocks.bobblehead, 0, 3); - TileEntityBobble bobble = (TileEntityBobble) world.getTileEntity(x + 2, y + -23, z + 1); - - if(bobble != null) { - bobble.type = BobbleType.values()[world.rand.nextInt(BobbleType.values().length - 1) + 1]; - bobble.markDirty(); - } - } - - world.setBlock(x + 3, y + -24, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -24, z + 1, Block1, 0, 3); - world.setBlock(x + 11, y + -24, z + 1, Block1, 0, 3); - world.setBlock(x + 0, y + -24, z + 2, Block1, 0, 3); - world.setBlock(x + 1, y + -24, z + 2, Blocks.chest, 5, 3); - world.setBlockMetadataWithNotify(x + 1, y + -24, z + 5, 3, 3); - if(world.getBlock(x + 2, y + -24, z + 1) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.modGeneric, (TileEntityChest) world.getTileEntity(x + 1, y + -24, z + 2), 8); - } - world.setBlock(x + 3, y + -24, z + 2, Blocks.chest, 4, 3); - world.setBlockMetadataWithNotify(x + 3, y + -24, z + 2, 4, 3); - if(world.getBlock(x + 3, y + -24, z + 2) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.modGeneric, (TileEntityChest) world.getTileEntity(x + 3, y + -24, z + 2), 8); - } - world.setBlock(x + 4, y + -24, z + 2, Block1, 0, 3); - world.setBlock(x + 11, y + -24, z + 2, Block1, 0, 3); - world.setBlock(x + 0, y + -24, z + 3, Block1, 0, 3); - world.setBlock(x + 1, y + -24, z + 3, Blocks.chest, 5, 3); - world.setBlockMetadataWithNotify(x + 1, y + -24, z + 3, 5, 3); - if(world.getBlock(x + 1, y + -24, z + 3) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.modGeneric, (TileEntityChest) world.getTileEntity(x + 1, y + -24, z + 3), 8); - } - world.setBlock(x + 3, y + -24, z + 3, Blocks.chest, 4, 3); - world.setBlockMetadataWithNotify(x + 3, y + -24, z + 3, 5, 3); - if(world.getBlock(x + 3, y + -24, z + 3) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.modGeneric, (TileEntityChest) world.getTileEntity(x + 3, y + -24, z + 3), 8); - } - world.setBlock(x + 4, y + -24, z + 3, Block1, 0, 3); - world.setBlock(x + 7, y + -24, z + 3, Block1, 0, 3); - world.setBlock(x + 8, y + -24, z + 3, Block1, 0, 3); - world.setBlock(x + 9, y + -24, z + 3, Blocks.iron_door, 5, 3); - ItemDoor.placeDoorBlock(world, x + 9, y + -24, z + 3, 5, Blocks.iron_door); - world.setBlock(x + 10, y + -24, z + 3, Block1, 0, 3); - world.setBlock(x + 11, y + -24, z + 3, Block1, 0, 3); - world.setBlock(x + 0, y + -24, z + 4, Block1, 0, 3); - world.setBlock(x + 1, y + -24, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -24, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -24, z + 4, Block1, 0, 3); - world.setBlock(x + 7, y + -24, z + 4, Block1, 0, 3); - world.setBlock(x + 10, y + -24, z + 4, Blocks.cauldron, 0, 3); - world.setBlock(x + 11, y + -24, z + 4, Block1, 0, 3); - world.setBlock(x + 0, y + -24, z + 5, Block1, 0, 3); - world.setBlock(x + 1, y + -24, z + 5, Block1, 0, 3); - world.setBlock(x + 2, y + -24, z + 5, Blocks.iron_door, 3, 3); - ItemDoor.placeDoorBlock(world, x + 2, y + -24, z + 5, 3, Blocks.iron_door); - world.setBlock(x + 3, y + -24, z + 5, Block1, 0, 3); - world.setBlock(x + 4, y + -24, z + 5, Block1, 0, 3); - world.setBlock(x + 7, y + -24, z + 5, Block1, 0, 3); - world.setBlock(x + 10, y + -24, z + 5, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 11, y + -24, z + 5, Block1, 0, 3); - world.setBlock(x + 0, y + -24, z + 6, Block1, 0, 3); - world.setBlock(x + 7, y + -24, z + 6, Block1, 0, 3); - world.setBlock(x + 10, y + -24, z + 6, Blocks.cauldron, 0, 3); - world.setBlock(x + 11, y + -24, z + 6, Block1, 0, 3); - world.setBlock(x + 0, y + -24, z + 7, Block1, 0, 3); - world.setBlock(x + 7, y + -24, z + 7, Block1, 0, 3); - world.setBlock(x + 10, y + -24, z + 7, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 11, y + -24, z + 7, Block1, 0, 3); - world.setBlock(x + 0, y + -24, z + 8, Block1, 0, 3); - world.setBlock(x + 3, y + -24, z + 8, Block1, 0, 3); - world.setBlock(x + 4, y + -24, z + 8, Block1, 0, 3); - world.setBlock(x + 5, y + -24, z + 8, Block1, 0, 3); - world.setBlock(x + 6, y + -24, z + 8, Block1, 0, 3); - world.setBlock(x + 7, y + -24, z + 8, Block1, 0, 3); - world.setBlock(x + 10, y + -24, z + 8, Blocks.cauldron, 0, 3); - world.setBlock(x + 11, y + -24, z + 8, Block1, 0, 3); - world.setBlock(x + 0, y + -24, z + 9, Block1, 0, 3); - world.setBlock(x + 3, y + -24, z + 9, Block1, 0, 3); - world.setBlock(x + 7, y + -24, z + 9, Blocks.iron_door, 1, 3); - ItemDoor.placeDoorBlock(world, x + 7, y + -24, z + 9, 1, Blocks.iron_door); - world.setBlock(x + 10, y + -24, z + 9, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 11, y + -24, z + 9, Block1, 0, 3); - world.setBlock(x + 0, y + -24, z + 10, Block1, 0, 3); - world.setBlock(x + 3, y + -24, z + 10, Block1, 0, 3); - world.setBlock(x + 4, y + -24, z + 10, Blocks.hopper, 4, 3); - world.setBlock(x + 6, y + -24, z + 10, Blocks.cauldron, 0, 3); - world.setBlock(x + 7, y + -24, z + 10, Block1, 0, 3); - world.setBlock(x + 10, y + -24, z + 10, Blocks.cauldron, 0, 3); - world.setBlock(x + 11, y + -24, z + 10, Block1, 0, 3); - world.setBlock(x + 0, y + -24, z + 11, Block1, 0, 3); - world.setBlock(x + 3, y + -24, z + 11, Block1, 0, 3); - world.setBlock(x + 4, y + -24, z + 11, Block1, 0, 3); - world.setBlock(x + 5, y + -24, z + 11, Block1, 0, 3); - world.setBlock(x + 6, y + -24, z + 11, Block1, 0, 3); - world.setBlock(x + 7, y + -24, z + 11, Block1, 0, 3); - world.setBlock(x + 8, y + -24, z + 11, Block1, 0, 3); - world.setBlock(x + 9, y + -24, z + 11, Block1, 0, 3); - world.setBlock(x + 10, y + -24, z + 11, Block1, 0, 3); - world.setBlock(x + 11, y + -24, z + 11, Block1, 0, 3); - world.setBlock(x + 0, y + -24, z + 12, Block1, 0, 3); - world.setBlock(x + 11, y + -24, z + 12, Block1, 0, 3); - world.setBlock(x + 0, y + -24, z + 13, Block1, 0, 3); - world.setBlock(x + 11, y + -24, z + 13, Block1, 0, 3); - world.setBlock(x + 0, y + -24, z + 14, Block1, 0, 3); - world.setBlock(x + 1, y + -24, z + 14, Block1, 0, 3); - world.setBlock(x + 2, y + -24, z + 14, Block1, 0, 3); - world.setBlock(x + 3, y + -24, z + 14, Block1, 0, 3); - world.setBlock(x + 4, y + -24, z + 14, Block1, 0, 3); - world.setBlock(x + 5, y + -24, z + 14, Block1, 0, 3); - world.setBlock(x + 6, y + -24, z + 14, Block1, 0, 3); - world.setBlock(x + 7, y + -24, z + 14, Block1, 0, 3); - world.setBlock(x + 8, y + -24, z + 14, Block1, 0, 3); - world.setBlock(x + 9, y + -24, z + 14, Block1, 0, 3); - world.setBlock(x + 10, y + -24, z + 14, Block1, 0, 3); - world.setBlock(x + 11, y + -24, z + 14, Block1, 0, 3); - world.setBlock(x + 0, y + -23, z + 0, Block1, 0, 3); - world.setBlock(x + 1, y + -23, z + 0, Block1, 0, 3); - world.setBlock(x + 2, y + -23, z + 0, Block1, 0, 3); - world.setBlock(x + 3, y + -23, z + 0, Block1, 0, 3); - world.setBlock(x + 4, y + -23, z + 0, Block1, 0, 3); - world.setBlock(x + 5, y + -23, z + 0, Block1, 0, 3); - world.setBlock(x + 6, y + -23, z + 0, Block3, 0, 3); - world.setBlock(x + 7, y + -23, z + 0, Block1, 0, 3); - world.setBlock(x + 8, y + -23, z + 0, Block1, 0, 3); - world.setBlock(x + 9, y + -23, z + 0, Block3, 0, 3); - world.setBlock(x + 10, y + -23, z + 0, Block1, 0, 3); - world.setBlock(x + 11, y + -23, z + 0, Block1, 0, 3); - world.setBlock(x + 0, y + -23, z + 1, Block1, 0, 3); - world.setBlock(x + 1, y + -23, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -23, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -23, z + 1, Block1, 0, 3); - world.setBlock(x + 5, y + -23, z + 1, Blocks.web, 0, 3); - world.setBlock(x + 10, y + -23, z + 1, Blocks.web, 0, 3); - world.setBlock(x + 11, y + -23, z + 1, Block1, 0, 3); - world.setBlock(x + 0, y + -23, z + 2, Block1, 0, 3); - world.setBlock(x + 4, y + -23, z + 2, Block1, 0, 3); - world.setBlock(x + 11, y + -23, z + 2, Block1, 0, 3); - world.setBlock(x + 0, y + -23, z + 3, Block1, 0, 3); - world.setBlock(x + 4, y + -23, z + 3, Block1, 0, 3); - world.setBlock(x + 7, y + -23, z + 3, Block1, 0, 3); - world.setBlock(x + 8, y + -23, z + 3, Block1, 0, 3); - // world.setBlock(x + 9, y + -23, z + 3, Blocks.iron_door, 8, 3); - world.setBlock(x + 10, y + -23, z + 3, Block1, 0, 3); - world.setBlock(x + 11, y + -23, z + 3, Block1, 0, 3); - world.setBlock(x + 0, y + -23, z + 4, Block1, 0, 3); - world.setBlock(x + 1, y + -23, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -23, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -23, z + 4, Block1, 0, 3); - world.setBlock(x + 7, y + -23, z + 4, Block1, 0, 3); - world.setBlock(x + 11, y + -23, z + 4, Block1, 0, 3); - world.setBlock(x + 0, y + -23, z + 5, Block1, 0, 3); - world.setBlock(x + 1, y + -23, z + 5, Block1, 0, 3); - // world.setBlock(x + 2, y + -23, z + 5, Blocks.iron_door, 8, 3); - world.setBlock(x + 3, y + -23, z + 5, Block1, 0, 3); - world.setBlock(x + 4, y + -23, z + 5, Block3, 0, 3); - world.setBlock(x + 7, y + -23, z + 5, Block1, 0, 3); - world.setBlock(x + 11, y + -23, z + 5, Block1, 0, 3); - world.setBlock(x + 0, y + -23, z + 6, Block1, 0, 3); - world.setBlock(x + 7, y + -23, z + 6, Block1, 0, 3); - world.setBlock(x + 11, y + -23, z + 6, Block1, 0, 3); - world.setBlock(x + 0, y + -23, z + 7, Block1, 0, 3); - world.setBlock(x + 7, y + -23, z + 7, Block1, 0, 3); - world.setBlock(x + 11, y + -23, z + 7, Block1, 0, 3); - world.setBlock(x + 0, y + -23, z + 8, Block1, 0, 3); - world.setBlock(x + 3, y + -23, z + 8, Block1, 0, 3); - world.setBlock(x + 4, y + -23, z + 8, Block1, 0, 3); - world.setBlock(x + 5, y + -23, z + 8, Block1, 0, 3); - world.setBlock(x + 6, y + -23, z + 8, Block1, 0, 3); - world.setBlock(x + 7, y + -23, z + 8, Block1, 0, 3); - world.setBlock(x + 11, y + -23, z + 8, Block1, 0, 3); - world.setBlock(x + 0, y + -23, z + 9, Block1, 0, 3); - world.setBlock(x + 1, y + -23, z + 9, Blocks.web, 0, 3); - world.setBlock(x + 3, y + -23, z + 9, Block3, 0, 3); - // world.setBlock(x + 7, y + -23, z + 9, Blocks.iron_door, 8, 3); - world.setBlock(x + 11, y + -23, z + 9, Block1, 0, 3); - world.setBlock(x + 0, y + -23, z + 10, Block1, 0, 3); - world.setBlock(x + 3, y + -23, z + 10, Block1, 0, 3); - world.setBlock(x + 4, y + -23, z + 10, Blocks.trapdoor, 7, 3); - world.setBlock(x + 7, y + -23, z + 10, Block1, 0, 3); - world.setBlock(x + 11, y + -23, z + 10, Block1, 0, 3); - world.setBlock(x + 0, y + -23, z + 11, Block1, 0, 3); - world.setBlock(x + 3, y + -23, z + 11, Block1, 0, 3); - world.setBlock(x + 4, y + -23, z + 11, Block1, 0, 3); - world.setBlock(x + 5, y + -23, z + 11, Block1, 0, 3); - world.setBlock(x + 6, y + -23, z + 11, Block1, 0, 3); - world.setBlock(x + 7, y + -23, z + 11, Block1, 0, 3); - world.setBlock(x + 8, y + -23, z + 11, Block1, 0, 3); - world.setBlock(x + 9, y + -23, z + 11, Block1, 0, 3); - world.setBlock(x + 10, y + -23, z + 11, Block1, 0, 3); - world.setBlock(x + 11, y + -23, z + 11, Block1, 0, 3); - world.setBlock(x + 0, y + -23, z + 12, Block1, 0, 3); - world.setBlock(x + 11, y + -23, z + 12, Block1, 0, 3); - world.setBlock(x + 0, y + -23, z + 13, Block1, 0, 3); - world.setBlock(x + 1, y + -23, z + 13, Blocks.web, 0, 3); - world.setBlock(x + 11, y + -23, z + 13, Block1, 0, 3); - world.setBlock(x + 0, y + -23, z + 14, Block1, 0, 3); - world.setBlock(x + 1, y + -23, z + 14, Block1, 0, 3); - // prevent geiger displacement - // world.setBlock(x + 2, y + -23, z + 14, Block1, 0, 3); - world.setBlock(x + 3, y + -23, z + 14, Block1, 0, 3); - world.setBlock(x + 4, y + -23, z + 14, Block3, 0, 3); - world.setBlock(x + 5, y + -23, z + 14, Block1, 0, 3); - world.setBlock(x + 6, y + -23, z + 14, Block1, 0, 3); - world.setBlock(x + 7, y + -23, z + 14, Block3, 0, 3); - world.setBlock(x + 8, y + -23, z + 14, Block1, 0, 3); - world.setBlock(x + 9, y + -23, z + 14, Block1, 0, 3); - world.setBlock(x + 10, y + -23, z + 14, Block1, 0, 3); - world.setBlock(x + 11, y + -23, z + 14, Block1, 0, 3); - world.setBlock(x + 0, y + -22, z + 0, Block1, 0, 3); - world.setBlock(x + 1, y + -22, z + 0, Block1, 0, 3); - world.setBlock(x + 2, y + -22, z + 0, Block1, 0, 3); - world.setBlock(x + 3, y + -22, z + 0, Block1, 0, 3); - world.setBlock(x + 4, y + -22, z + 0, Block1, 0, 3); - world.setBlock(x + 5, y + -22, z + 0, Block1, 0, 3); - world.setBlock(x + 6, y + -22, z + 0, Block1, 0, 3); - world.setBlock(x + 7, y + -22, z + 0, Block1, 0, 3); - world.setBlock(x + 8, y + -22, z + 0, Block1, 0, 3); - world.setBlock(x + 9, y + -22, z + 0, Block1, 0, 3); - world.setBlock(x + 10, y + -22, z + 0, Block1, 0, 3); - world.setBlock(x + 11, y + -22, z + 0, Block1, 0, 3); - world.setBlock(x + 0, y + -22, z + 1, Block1, 0, 3); - world.setBlock(x + 1, y + -22, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -22, z + 1, Block3, 0, 3); - world.setBlock(x + 3, y + -22, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -22, z + 1, Block1, 0, 3); - world.setBlock(x + 5, y + -22, z + 1, Blocks.web, 0, 3); - world.setBlock(x + 6, y + -22, z + 1, Blocks.web, 0, 3); - world.setBlock(x + 9, y + -22, z + 1, Blocks.web, 0, 3); - world.setBlock(x + 11, y + -22, z + 1, Block1, 0, 3); - world.setBlock(x + 0, y + -22, z + 2, Block1, 0, 3); - world.setBlock(x + 4, y + -22, z + 2, Block1, 0, 3); - world.setBlock(x + 5, y + -22, z + 2, Blocks.web, 0, 3); - world.setBlock(x + 10, y + -22, z + 2, Blocks.web, 0, 3); - world.setBlock(x + 11, y + -22, z + 2, Block1, 0, 3); - world.setBlock(x + 0, y + -22, z + 3, Block1, 0, 3); - world.setBlock(x + 4, y + -22, z + 3, Block1, 0, 3); - world.setBlock(x + 7, y + -22, z + 3, Block1, 0, 3); - world.setBlock(x + 8, y + -22, z + 3, Block1, 0, 3); - world.setBlock(x + 9, y + -22, z + 3, Block1, 0, 3); - world.setBlock(x + 10, y + -22, z + 3, Block1, 0, 3); - world.setBlock(x + 11, y + -22, z + 3, Block1, 0, 3); - world.setBlock(x + 0, y + -22, z + 4, Block1, 0, 3); - world.setBlock(x + 1, y + -22, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -22, z + 4, Block3, 0, 3); - world.setBlock(x + 3, y + -22, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -22, z + 4, Block1, 0, 3); - world.setBlock(x + 7, y + -22, z + 4, Block1, 0, 3); - world.setBlock(x + 8, y + -22, z + 4, Blocks.web, 0, 3); - world.setBlock(x + 10, y + -22, z + 4, Block3, 0, 3); - world.setBlock(x + 11, y + -22, z + 4, Block1, 0, 3); - world.setBlock(x + 0, y + -22, z + 5, Block1, 0, 3); - world.setBlock(x + 1, y + -22, z + 5, Block1, 0, 3); - world.setBlock(x + 2, y + -22, z + 5, Block1, 0, 3); - world.setBlock(x + 3, y + -22, z + 5, Block1, 0, 3); - world.setBlock(x + 4, y + -22, z + 5, Block1, 0, 3); - world.setBlock(x + 7, y + -22, z + 5, Block1, 0, 3); - world.setBlock(x + 11, y + -22, z + 5, Block1, 0, 3); - world.setBlock(x + 0, y + -22, z + 6, Block1, 0, 3); - world.setBlock(x + 1, y + -22, z + 6, Blocks.web, 0, 3); - world.setBlock(x + 6, y + -22, z + 6, Blocks.web, 0, 3); - world.setBlock(x + 7, y + -22, z + 6, Block1, 0, 3); - world.setBlock(x + 10, y + -22, z + 6, Block3, 0, 3); - world.setBlock(x + 11, y + -22, z + 6, Block1, 0, 3); - world.setBlock(x + 0, y + -22, z + 7, Block1, 0, 3); - world.setBlock(x + 5, y + -22, z + 7, Blocks.web, 0, 3); - world.setBlock(x + 6, y + -22, z + 7, Blocks.web, 0, 3); - world.setBlock(x + 7, y + -22, z + 7, Block1, 0, 3); - world.setBlock(x + 10, y + -22, z + 7, Blocks.web, 0, 3); - world.setBlock(x + 11, y + -22, z + 7, Block1, 0, 3); - world.setBlock(x + 0, y + -22, z + 8, Block1, 0, 3); - world.setBlock(x + 1, y + -22, z + 8, Blocks.web, 0, 3); - world.setBlock(x + 3, y + -22, z + 8, Block1, 0, 3); - world.setBlock(x + 4, y + -22, z + 8, Block1, 0, 3); - world.setBlock(x + 5, y + -22, z + 8, Block1, 0, 3); - world.setBlock(x + 6, y + -22, z + 8, Block1, 0, 3); - world.setBlock(x + 7, y + -22, z + 8, Block1, 0, 3); - world.setBlock(x + 10, y + -22, z + 8, Block3, 0, 3); - world.setBlock(x + 11, y + -22, z + 8, Block1, 0, 3); - world.setBlock(x + 0, y + -22, z + 9, Block1, 0, 3); - world.setBlock(x + 2, y + -22, z + 9, Blocks.web, 0, 3); - world.setBlock(x + 3, y + -22, z + 9, Block1, 0, 3); - world.setBlock(x + 6, y + -22, z + 9, Blocks.web, 0, 3); - world.setBlock(x + 7, y + -22, z + 9, Block1, 0, 3); - world.setBlock(x + 8, y + -22, z + 9, Blocks.web, 0, 3); - world.setBlock(x + 11, y + -22, z + 9, Block1, 0, 3); - world.setBlock(x + 0, y + -22, z + 10, Block1, 0, 3); - world.setBlock(x + 1, y + -22, z + 10, Blocks.web, 0, 3); - world.setBlock(x + 3, y + -22, z + 10, Block1, 0, 3); - world.setBlock(x + 7, y + -22, z + 10, Block1, 0, 3); - world.setBlock(x + 8, y + -22, z + 10, Blocks.web, 0, 3); - world.setBlock(x + 10, y + -22, z + 10, Block3, 0, 3); - world.setBlock(x + 11, y + -22, z + 10, Block1, 0, 3); - world.setBlock(x + 0, y + -22, z + 11, Block1, 0, 3); - world.setBlock(x + 3, y + -22, z + 11, Block1, 0, 3); - world.setBlock(x + 4, y + -22, z + 11, Block1, 0, 3); - world.setBlock(x + 5, y + -22, z + 11, Block1, 0, 3); - world.setBlock(x + 6, y + -22, z + 11, Block1, 0, 3); - world.setBlock(x + 7, y + -22, z + 11, Block1, 0, 3); - world.setBlock(x + 8, y + -22, z + 11, Block1, 0, 3); - world.setBlock(x + 9, y + -22, z + 11, Block1, 0, 3); - world.setBlock(x + 10, y + -22, z + 11, Block1, 0, 3); - world.setBlock(x + 11, y + -22, z + 11, Block1, 0, 3); - world.setBlock(x + 0, y + -22, z + 12, Block1, 0, 3); - world.setBlock(x + 1, y + -22, z + 12, Blocks.web, 0, 3); - world.setBlock(x + 5, y + -22, z + 12, Blocks.web, 0, 3); - world.setBlock(x + 11, y + -22, z + 12, Block1, 0, 3); - world.setBlock(x + 0, y + -22, z + 13, Block1, 0, 3); - world.setBlock(x + 1, y + -22, z + 13, Blocks.web, 0, 3); - world.setBlock(x + 2, y + -22, z + 13, Blocks.web, 0, 3); - world.setBlock(x + 3, y + -22, z + 13, Blocks.web, 0, 3); - world.setBlock(x + 6, y + -22, z + 13, Blocks.web, 0, 3); - world.setBlock(x + 7, y + -22, z + 13, Blocks.web, 0, 3); - world.setBlock(x + 8, y + -22, z + 13, Blocks.web, 0, 3); - world.setBlock(x + 11, y + -22, z + 13, Block1, 0, 3); - world.setBlock(x + 0, y + -22, z + 14, Block1, 0, 3); - world.setBlock(x + 1, y + -22, z + 14, Block1, 0, 3); - world.setBlock(x + 2, y + -22, z + 14, Block1, 0, 3); - world.setBlock(x + 3, y + -22, z + 14, Block1, 0, 3); - world.setBlock(x + 4, y + -22, z + 14, Block1, 0, 3); - world.setBlock(x + 5, y + -22, z + 14, Block1, 0, 3); - world.setBlock(x + 6, y + -22, z + 14, Block1, 0, 3); - world.setBlock(x + 7, y + -22, z + 14, Block1, 0, 3); - world.setBlock(x + 8, y + -22, z + 14, Block1, 0, 3); - world.setBlock(x + 9, y + -22, z + 14, Block1, 0, 3); - world.setBlock(x + 10, y + -22, z + 14, Block1, 0, 3); - world.setBlock(x + 11, y + -22, z + 14, Block1, 0, 3); - world.setBlock(x + 0, y + -21, z + 0, Block1, 0, 3); - world.setBlock(x + 1, y + -21, z + 0, Block1, 0, 3); - world.setBlock(x + 2, y + -21, z + 0, Block1, 0, 3); - world.setBlock(x + 3, y + -21, z + 0, Block1, 0, 3); - world.setBlock(x + 4, y + -21, z + 0, Block1, 0, 3); - world.setBlock(x + 5, y + -21, z + 0, Block1, 0, 3); - world.setBlock(x + 6, y + -21, z + 0, Block1, 0, 3); - world.setBlock(x + 7, y + -21, z + 0, Block1, 0, 3); - world.setBlock(x + 8, y + -21, z + 0, Block1, 0, 3); - world.setBlock(x + 9, y + -21, z + 0, Block1, 0, 3); - world.setBlock(x + 10, y + -21, z + 0, Block1, 0, 3); - world.setBlock(x + 11, y + -21, z + 0, Block1, 0, 3); - world.setBlock(x + 0, y + -21, z + 1, Block1, 0, 3); - world.setBlock(x + 1, y + -21, z + 1, Block1, 0, 3); - world.setBlock(x + 2, y + -21, z + 1, Block1, 0, 3); - world.setBlock(x + 3, y + -21, z + 1, Block1, 0, 3); - world.setBlock(x + 4, y + -21, z + 1, Block1, 0, 3); - world.setBlock(x + 5, y + -21, z + 1, Block1, 0, 3); - world.setBlock(x + 6, y + -21, z + 1, Block1, 0, 3); - world.setBlock(x + 7, y + -21, z + 1, Block1, 0, 3); - world.setBlock(x + 8, y + -21, z + 1, Block1, 0, 3); - world.setBlock(x + 9, y + -21, z + 1, Block1, 0, 3); - world.setBlock(x + 10, y + -21, z + 1, Block1, 0, 3); - world.setBlock(x + 11, y + -21, z + 1, Block1, 0, 3); - world.setBlock(x + 0, y + -21, z + 2, Block1, 0, 3); - world.setBlock(x + 1, y + -21, z + 2, Block1, 0, 3); - world.setBlock(x + 2, y + -21, z + 2, Block1, 0, 3); - world.setBlock(x + 3, y + -21, z + 2, Block1, 0, 3); - world.setBlock(x + 4, y + -21, z + 2, Block1, 0, 3); - world.setBlock(x + 5, y + -21, z + 2, Block1, 0, 3); - world.setBlock(x + 6, y + -21, z + 2, Block1, 0, 3); - world.setBlock(x + 7, y + -21, z + 2, Block1, 0, 3); - world.setBlock(x + 8, y + -21, z + 2, Block1, 0, 3); - world.setBlock(x + 9, y + -21, z + 2, Block1, 0, 3); - world.setBlock(x + 10, y + -21, z + 2, Block1, 0, 3); - world.setBlock(x + 11, y + -21, z + 2, Block1, 0, 3); - world.setBlock(x + 0, y + -21, z + 3, Block1, 0, 3); - world.setBlock(x + 1, y + -21, z + 3, Block1, 0, 3); - world.setBlock(x + 2, y + -21, z + 3, Block1, 0, 3); - world.setBlock(x + 3, y + -21, z + 3, Block1, 0, 3); - world.setBlock(x + 4, y + -21, z + 3, Block1, 0, 3); - world.setBlock(x + 5, y + -21, z + 3, Block1, 0, 3); - world.setBlock(x + 6, y + -21, z + 3, Block1, 0, 3); - world.setBlock(x + 7, y + -21, z + 3, Block1, 0, 3); - world.setBlock(x + 8, y + -21, z + 3, Block1, 0, 3); - world.setBlock(x + 9, y + -21, z + 3, Block1, 0, 3); - world.setBlock(x + 10, y + -21, z + 3, Block1, 0, 3); - world.setBlock(x + 11, y + -21, z + 3, Block1, 0, 3); - world.setBlock(x + 0, y + -21, z + 4, Block1, 0, 3); - world.setBlock(x + 1, y + -21, z + 4, Block1, 0, 3); - world.setBlock(x + 2, y + -21, z + 4, Block1, 0, 3); - world.setBlock(x + 3, y + -21, z + 4, Block1, 0, 3); - world.setBlock(x + 4, y + -21, z + 4, Block1, 0, 3); - world.setBlock(x + 5, y + -21, z + 4, Block1, 0, 3); - world.setBlock(x + 6, y + -21, z + 4, Block1, 0, 3); - world.setBlock(x + 7, y + -21, z + 4, Block1, 0, 3); - world.setBlock(x + 8, y + -21, z + 4, Block1, 0, 3); - world.setBlock(x + 9, y + -21, z + 4, Block1, 0, 3); - world.setBlock(x + 10, y + -21, z + 4, Block1, 0, 3); - world.setBlock(x + 11, y + -21, z + 4, Block1, 0, 3); - world.setBlock(x + 0, y + -21, z + 5, Block1, 0, 3); - world.setBlock(x + 1, y + -21, z + 5, Block1, 0, 3); - world.setBlock(x + 2, y + -21, z + 5, Block1, 0, 3); - world.setBlock(x + 3, y + -21, z + 5, Block1, 0, 3); - world.setBlock(x + 4, y + -21, z + 5, Block1, 0, 3); - world.setBlock(x + 5, y + -21, z + 5, Block1, 0, 3); - world.setBlock(x + 6, y + -21, z + 5, Block1, 0, 3); - world.setBlock(x + 7, y + -21, z + 5, Block1, 0, 3); - world.setBlock(x + 8, y + -21, z + 5, Block1, 0, 3); - world.setBlock(x + 9, y + -21, z + 5, Block1, 0, 3); - world.setBlock(x + 10, y + -21, z + 5, Block1, 0, 3); - world.setBlock(x + 11, y + -21, z + 5, Block1, 0, 3); - world.setBlock(x + 0, y + -21, z + 6, Block1, 0, 3); - world.setBlock(x + 1, y + -21, z + 6, Block1, 0, 3); - world.setBlock(x + 2, y + -21, z + 6, Block1, 0, 3); - world.setBlock(x + 3, y + -21, z + 6, Block1, 0, 3); - world.setBlock(x + 4, y + -21, z + 6, Block1, 0, 3); - world.setBlock(x + 5, y + -21, z + 6, Block1, 0, 3); - world.setBlock(x + 6, y + -21, z + 6, Block1, 0, 3); - world.setBlock(x + 7, y + -21, z + 6, Block1, 0, 3); - world.setBlock(x + 8, y + -21, z + 6, Block1, 0, 3); - world.setBlock(x + 9, y + -21, z + 6, Block1, 0, 3); - world.setBlock(x + 10, y + -21, z + 6, Block1, 0, 3); - world.setBlock(x + 11, y + -21, z + 6, Block1, 0, 3); - world.setBlock(x + 0, y + -21, z + 7, Block1, 0, 3); - world.setBlock(x + 1, y + -21, z + 7, Block1, 0, 3); - world.setBlock(x + 2, y + -21, z + 7, Block1, 0, 3); - world.setBlock(x + 3, y + -21, z + 7, Block1, 0, 3); - world.setBlock(x + 4, y + -21, z + 7, Block1, 0, 3); - world.setBlock(x + 5, y + -21, z + 7, Block1, 0, 3); - world.setBlock(x + 6, y + -21, z + 7, Block1, 0, 3); - world.setBlock(x + 7, y + -21, z + 7, Block1, 0, 3); - world.setBlock(x + 8, y + -21, z + 7, Block1, 0, 3); - world.setBlock(x + 9, y + -21, z + 7, Block1, 0, 3); - world.setBlock(x + 10, y + -21, z + 7, Block1, 0, 3); - world.setBlock(x + 11, y + -21, z + 7, Block1, 0, 3); - world.setBlock(x + 0, y + -21, z + 8, Block1, 0, 3); - world.setBlock(x + 1, y + -21, z + 8, Block1, 0, 3); - world.setBlock(x + 2, y + -21, z + 8, Block1, 0, 3); - world.setBlock(x + 3, y + -21, z + 8, Block1, 0, 3); - world.setBlock(x + 4, y + -21, z + 8, Block1, 0, 3); - world.setBlock(x + 5, y + -21, z + 8, Block1, 0, 3); - world.setBlock(x + 6, y + -21, z + 8, Block1, 0, 3); - world.setBlock(x + 7, y + -21, z + 8, Block1, 0, 3); - world.setBlock(x + 8, y + -21, z + 8, Block1, 0, 3); - world.setBlock(x + 9, y + -21, z + 8, Block1, 0, 3); - world.setBlock(x + 10, y + -21, z + 8, Block1, 0, 3); - world.setBlock(x + 11, y + -21, z + 8, Block1, 0, 3); - world.setBlock(x + 0, y + -21, z + 9, Block1, 0, 3); - world.setBlock(x + 1, y + -21, z + 9, Block1, 0, 3); - world.setBlock(x + 2, y + -21, z + 9, Block1, 0, 3); - world.setBlock(x + 3, y + -21, z + 9, Block1, 0, 3); - world.setBlock(x + 4, y + -21, z + 9, Block1, 0, 3); - world.setBlock(x + 5, y + -21, z + 9, Block1, 0, 3); - world.setBlock(x + 6, y + -21, z + 9, Block1, 0, 3); - world.setBlock(x + 7, y + -21, z + 9, Block1, 0, 3); - world.setBlock(x + 8, y + -21, z + 9, Block1, 0, 3); - world.setBlock(x + 9, y + -21, z + 9, Block1, 0, 3); - world.setBlock(x + 10, y + -21, z + 9, Block1, 0, 3); - world.setBlock(x + 11, y + -21, z + 9, Block1, 0, 3); - world.setBlock(x + 0, y + -21, z + 10, Block1, 0, 3); - world.setBlock(x + 1, y + -21, z + 10, Block1, 0, 3); - world.setBlock(x + 2, y + -21, z + 10, Block1, 0, 3); - world.setBlock(x + 3, y + -21, z + 10, Block1, 0, 3); - world.setBlock(x + 4, y + -21, z + 10, Block1, 0, 3); - world.setBlock(x + 5, y + -21, z + 10, Block1, 0, 3); - world.setBlock(x + 6, y + -21, z + 10, Block1, 0, 3); - world.setBlock(x + 7, y + -21, z + 10, Block1, 0, 3); - world.setBlock(x + 8, y + -21, z + 10, Block1, 0, 3); - world.setBlock(x + 9, y + -21, z + 10, Block1, 0, 3); - world.setBlock(x + 10, y + -21, z + 10, Block1, 0, 3); - world.setBlock(x + 11, y + -21, z + 10, Block1, 0, 3); - world.setBlock(x + 0, y + -21, z + 11, Block1, 0, 3); - world.setBlock(x + 1, y + -21, z + 11, Block1, 0, 3); - world.setBlock(x + 2, y + -21, z + 11, Block1, 0, 3); - world.setBlock(x + 3, y + -21, z + 11, Block1, 0, 3); - world.setBlock(x + 4, y + -21, z + 11, Block1, 0, 3); - world.setBlock(x + 5, y + -21, z + 11, Block1, 0, 3); - world.setBlock(x + 6, y + -21, z + 11, Block1, 0, 3); - world.setBlock(x + 7, y + -21, z + 11, Block1, 0, 3); - world.setBlock(x + 8, y + -21, z + 11, Block1, 0, 3); - world.setBlock(x + 9, y + -21, z + 11, Block1, 0, 3); - world.setBlock(x + 10, y + -21, z + 11, Block1, 0, 3); - world.setBlock(x + 11, y + -21, z + 11, Block1, 0, 3); - world.setBlock(x + 0, y + -21, z + 12, Block1, 0, 3); - world.setBlock(x + 1, y + -21, z + 12, Block1, 0, 3); - world.setBlock(x + 2, y + -21, z + 12, Block1, 0, 3); - world.setBlock(x + 3, y + -21, z + 12, Block1, 0, 3); - world.setBlock(x + 4, y + -21, z + 12, Block1, 0, 3); - world.setBlock(x + 5, y + -21, z + 12, Block1, 0, 3); - world.setBlock(x + 6, y + -21, z + 12, Block1, 0, 3); - world.setBlock(x + 7, y + -21, z + 12, Block1, 0, 3); - world.setBlock(x + 8, y + -21, z + 12, Block1, 0, 3); - world.setBlock(x + 9, y + -21, z + 12, Block1, 0, 3); - world.setBlock(x + 11, y + -21, z + 12, Block1, 0, 3); - world.setBlock(x + 0, y + -21, z + 13, Block1, 0, 3); - world.setBlock(x + 1, y + -21, z + 13, Block1, 0, 3); - world.setBlock(x + 2, y + -21, z + 13, Block1, 0, 3); - world.setBlock(x + 3, y + -21, z + 13, Block1, 0, 3); - world.setBlock(x + 4, y + -21, z + 13, Block1, 0, 3); - world.setBlock(x + 5, y + -21, z + 13, Block1, 0, 3); - world.setBlock(x + 6, y + -21, z + 13, Block1, 0, 3); - world.setBlock(x + 7, y + -21, z + 13, Block1, 0, 3); - world.setBlock(x + 8, y + -21, z + 13, Block1, 0, 3); - world.setBlock(x + 9, y + -21, z + 13, Block1, 0, 3); - world.setBlock(x + 11, y + -21, z + 13, Block1, 0, 3); - world.setBlock(x + 0, y + -21, z + 14, Block1, 0, 3); - world.setBlock(x + 1, y + -21, z + 14, Block1, 0, 3); - world.setBlock(x + 2, y + -21, z + 14, Block1, 0, 3); - world.setBlock(x + 3, y + -21, z + 14, Block1, 0, 3); - world.setBlock(x + 4, y + -21, z + 14, Block1, 0, 3); - world.setBlock(x + 5, y + -21, z + 14, Block1, 0, 3); - world.setBlock(x + 6, y + -21, z + 14, Block1, 0, 3); - world.setBlock(x + 7, y + -21, z + 14, Block1, 0, 3); - world.setBlock(x + 8, y + -21, z + 14, Block1, 0, 3); - world.setBlock(x + 9, y + -21, z + 14, Block1, 0, 3); - world.setBlock(x + 10, y + -21, z + 14, Block1, 0, 3); - world.setBlock(x + 11, y + -21, z + 14, Block1, 0, 3); - world.setBlock(x + 0, y + -20, z + 0, Block1, 0, 3); - world.setBlock(x + 1, y + -20, z + 0, Block1, 0, 3); - world.setBlock(x + 2, y + -20, z + 0, Block1, 0, 3); - world.setBlock(x + 3, y + -20, z + 0, Block1, 0, 3); - world.setBlock(x + 4, y + -20, z + 0, Block1, 0, 3); - world.setBlock(x + 5, y + -20, z + 0, Block1, 0, 3); - world.setBlock(x + 6, y + -20, z + 0, Block1, 0, 3); - world.setBlock(x + 7, y + -20, z + 0, Block1, 0, 3); - world.setBlock(x + 8, y + -20, z + 0, Block1, 0, 3); - world.setBlock(x + 9, y + -20, z + 0, Block1, 0, 3); - world.setBlock(x + 10, y + -20, z + 0, Block1, 0, 3); - world.setBlock(x + 11, y + -20, z + 0, Block1, 0, 3); - world.setBlock(x + 0, y + -20, z + 1, Block1, 0, 3); - world.setBlock(x + 3, y + -20, z + 1, Block1, 0, 3); - world.setBlock(x + 4, y + -20, z + 1, Blocks.chest, 5, 3); - world.setBlockMetadataWithNotify(x + 4, y + -20, z + 1, 5, 3); - if(world.getBlock(x + 4, y + -20, z + 1) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.modGeneric, (TileEntityChest) world.getTileEntity(x + 4, y + -20, z + 1), 12); - } - world.setBlock(x + 8, y + -20, z + 1, Block4, 0, 3); - world.setBlock(x + 9, y + -20, z + 1, Block4, 0, 3); - world.setBlock(x + 10, y + -20, z + 1, Block4, 0, 3); - world.setBlock(x + 11, y + -20, z + 1, Block1, 0, 3); - world.setBlock(x + 0, y + -20, z + 2, Block1, 0, 3); - world.setBlock(x + 3, y + -20, z + 2, Block1, 0, 3); - world.setBlock(x + 8, y + -20, z + 2, Block4, 0, 3); - world.setBlock(x + 9, y + -20, z + 2, Block4, 0, 3); - world.setBlock(x + 10, y + -20, z + 2, Block4, 0, 3); - world.setBlock(x + 11, y + -20, z + 2, Block1, 0, 3); - world.setBlock(x + 0, y + -20, z + 3, Block1, 0, 3); - world.setBlock(x + 3, y + -20, z + 3, Block1, 0, 3); - world.setBlock(x + 8, y + -20, z + 3, Block4, 0, 3); - world.setBlock(x + 9, y + -20, z + 3, Block4, 0, 3); - world.setBlock(x + 10, y + -20, z + 3, Block4, 0, 3); - world.setBlock(x + 11, y + -20, z + 3, Block1, 0, 3); - world.setBlock(x + 0, y + -20, z + 4, Block1, 0, 3); - world.setBlock(x + 3, y + -20, z + 4, Block1, 0, 3); - world.setBlock(x + 4, y + -20, z + 4, Block1, 0, 3); - world.setBlock(x + 5, y + -20, z + 4, Blocks.iron_door, 3, 3); - ItemDoor.placeDoorBlock(world, x + 5, y + -20, z + 4, 3, Blocks.iron_door); - world.setBlock(x + 6, y + -20, z + 4, Block1, 0, 3); - world.setBlock(x + 7, y + -20, z + 4, Block1, 0, 3); - world.setBlock(x + 8, y + -20, z + 4, Block1, 0, 3); - world.setBlock(x + 9, y + -20, z + 4, Block1, 0, 3); - world.setBlock(x + 10, y + -20, z + 4, Block1, 0, 3); - world.setBlock(x + 11, y + -20, z + 4, Block1, 0, 3); - world.setBlock(x + 0, y + -20, z + 5, Block1, 0, 3); - world.setBlock(x + 3, y + -20, z + 5, Block1, 0, 3); - world.setBlock(x + 11, y + -20, z + 5, Block1, 0, 3); - world.setBlock(x + 0, y + -20, z + 6, Block1, 0, 3); - world.setBlock(x + 3, y + -20, z + 6, Blocks.iron_door, 0, 3); - ItemDoor.placeDoorBlock(world, x + 3, y + -20, z + 6, 0, Blocks.iron_door); - world.setBlock(x + 11, y + -20, z + 6, Block1, 0, 3); - world.setBlock(x + 0, y + -20, z + 7, Block1, 0, 3); - world.setBlock(x + 3, y + -20, z + 7, Block1, 0, 3); - world.setBlock(x + 8, y + -20, z + 7, Blocks.iron_door, 1, 3); - ItemDoor.placeDoorBlock(world, x + 8, y + -20, z + 7, 1, Blocks.iron_door); - world.setBlock(x + 10, y + -20, z + 7, Blocks.iron_door, 1, 3); - ItemDoor.placeDoorBlock(world, x + 10, y + -20, z + 7, 1, Blocks.iron_door); - world.setBlock(x + 11, y + -20, z + 7, Block1, 0, 3); - world.setBlock(x + 0, y + -20, z + 8, Block1, 0, 3); - world.setBlock(x + 3, y + -20, z + 8, Block1, 0, 3); - world.setBlock(x + 4, y + -20, z + 8, Blocks.iron_door, 3, 3); - ItemDoor.placeDoorBlock(world, x + 4, y + -20, z + 8, 3, Blocks.iron_door); - world.setBlock(x + 6, y + -20, z + 8, Blocks.iron_door, 3, 3); - ItemDoor.placeDoorBlock(world, x + 6, y + -20, z + 8, 3, Blocks.iron_door); - world.setBlock(x + 8, y + -20, z + 8, Blocks.iron_door, 3, 3); - ItemDoor.placeDoorBlock(world, x + 8, y + -20, z + 8, 3, Blocks.iron_door); - world.setBlock(x + 10, y + -20, z + 8, Blocks.iron_door, 3, 3); - ItemDoor.placeDoorBlock(world, x + 10, y + -20, z + 8, 3, Blocks.iron_door); - world.setBlock(x + 11, y + -20, z + 8, Block1, 0, 3); - world.setBlock(x + 0, y + -20, z + 9, Block1, 0, 3); - world.setBlock(x + 3, y + -20, z + 9, Block1, 0, 3); - world.setBlock(x + 11, y + -20, z + 9, Block1, 0, 3); - world.setBlock(x + 0, y + -20, z + 10, Block1, 0, 3); - world.setBlock(x + 3, y + -20, z + 10, Block1, 0, 3); - world.setBlock(x + 11, y + -20, z + 10, Block1, 0, 3); - world.setBlock(x + 0, y + -20, z + 11, Block1, 0, 3); - world.setBlock(x + 3, y + -20, z + 11, Block1, 0, 3); - world.setBlock(x + 4, y + -20, z + 11, Block1, 0, 3); - world.setBlock(x + 5, y + -20, z + 11, Block1, 0, 3); - world.setBlock(x + 6, y + -20, z + 11, Block1, 0, 3); - world.setBlock(x + 7, y + -20, z + 11, Block1, 0, 3); - world.setBlock(x + 8, y + -20, z + 11, Block1, 0, 3); - world.setBlock(x + 9, y + -20, z + 11, Block1, 0, 3); - world.setBlock(x + 10, y + -20, z + 11, Block1, 0, 3); - world.setBlock(x + 11, y + -20, z + 11, Block1, 0, 3); - world.setBlock(x + 0, y + -20, z + 12, Block1, 0, 3); - world.setBlock(x + 11, y + -20, z + 12, Block1, 0, 3); - world.setBlock(x + 0, y + -20, z + 13, Block1, 0, 3); - world.setBlock(x + 11, y + -20, z + 13, Block1, 0, 3); - world.setBlock(x + 0, y + -20, z + 14, Block1, 0, 3); - world.setBlock(x + 1, y + -20, z + 14, Block1, 0, 3); - world.setBlock(x + 2, y + -20, z + 14, Block1, 0, 3); - world.setBlock(x + 3, y + -20, z + 14, Block1, 0, 3); - world.setBlock(x + 4, y + -20, z + 14, Block1, 0, 3); - world.setBlock(x + 5, y + -20, z + 14, Block1, 0, 3); - world.setBlock(x + 6, y + -20, z + 14, Block1, 0, 3); - world.setBlock(x + 7, y + -20, z + 14, Block1, 0, 3); - world.setBlock(x + 8, y + -20, z + 14, Block1, 0, 3); - world.setBlock(x + 9, y + -20, z + 14, Block1, 0, 3); - world.setBlock(x + 10, y + -20, z + 14, Block1, 0, 3); - world.setBlock(x + 11, y + -20, z + 14, Block1, 0, 3); - world.setBlock(x + 0, y + -19, z + 0, Block1, 0, 3); - world.setBlock(x + 1, y + -19, z + 0, Block1, 0, 3); - world.setBlock(x + 2, y + -19, z + 0, Block1, 0, 3); - world.setBlock(x + 3, y + -19, z + 0, Block1, 0, 3); - world.setBlock(x + 4, y + -19, z + 0, Block1, 0, 3); - world.setBlock(x + 5, y + -19, z + 0, Block1, 0, 3); - world.setBlock(x + 6, y + -19, z + 0, Block3, 0, 3); - world.setBlock(x + 7, y + -19, z + 0, Block1, 0, 3); - world.setBlock(x + 8, y + -19, z + 0, Block1, 0, 3); - world.setBlock(x + 9, y + -19, z + 0, Block1, 0, 3); - world.setBlock(x + 10, y + -19, z + 0, Block1, 0, 3); - world.setBlock(x + 11, y + -19, z + 0, Block1, 0, 3); - world.setBlock(x + 0, y + -19, z + 1, Block1, 0, 3); - world.setBlock(x + 1, y + -19, z + 1, Blocks.web, 0, 3); - world.setBlock(x + 3, y + -19, z + 1, Block1, 0, 3); - world.setBlock(x + 8, y + -19, z + 1, Block4, 0, 3); - world.setBlock(x + 9, y + -19, z + 1, Block4, 0, 3); - world.setBlock(x + 10, y + -19, z + 1, Block4, 0, 3); - world.setBlock(x + 11, y + -19, z + 1, Block1, 0, 3); - world.setBlock(x + 0, y + -19, z + 2, Block1, 0, 3); - world.setBlock(x + 3, y + -19, z + 2, Block1, 0, 3); - world.setBlock(x + 7, y + -19, z + 2, Block5, 0, 3); - world.setBlock(x + 8, y + -19, z + 2, Block5, 0, 3); - world.setBlock(x + 9, y + -19, z + 2, Block5, 0, 3); - world.setBlock(x + 10, y + -19, z + 2, Block5, 0, 3); - world.setBlock(x + 11, y + -19, z + 2, Block1, 0, 3); - world.setBlock(x + 0, y + -19, z + 3, Block1, 0, 3); - world.setBlock(x + 3, y + -19, z + 3, Block1, 0, 3); - world.setBlock(x + 4, y + -19, z + 3, Blocks.web, 0, 3); - world.setBlock(x + 8, y + -19, z + 3, Block4, 0, 3); - world.setBlock(x + 9, y + -19, z + 3, Block4, 0, 3); - world.setBlock(x + 10, y + -19, z + 3, Block4, 0, 3); - world.setBlock(x + 11, y + -19, z + 3, Block1, 0, 3); - world.setBlock(x + 0, y + -19, z + 4, Block1, 0, 3); - world.setBlock(x + 3, y + -19, z + 4, Block1, 0, 3); - world.setBlock(x + 4, y + -19, z + 4, Block1, 0, 3); - // world.setBlock(x + 5, y + -19, z + 4, Blocks.iron_door, 8, 3); - world.setBlock(x + 6, y + -19, z + 4, Block1, 0, 3); - world.setBlock(x + 7, y + -19, z + 4, Block1, 0, 3); - world.setBlock(x + 8, y + -19, z + 4, Block1, 0, 3); - world.setBlock(x + 9, y + -19, z + 4, Block3, 0, 3); - world.setBlock(x + 10, y + -19, z + 4, Block1, 0, 3); - world.setBlock(x + 11, y + -19, z + 4, Block1, 0, 3); - world.setBlock(x + 0, y + -19, z + 5, Block1, 0, 3); - world.setBlock(x + 3, y + -19, z + 5, Block1, 0, 3); - world.setBlock(x + 11, y + -19, z + 5, Block1, 0, 3); - world.setBlock(x + 0, y + -19, z + 6, Block1, 0, 3); - // world.setBlock(x + 3, y + -19, z + 6, Blocks.iron_door, 8, 3); - world.setBlock(x + 11, y + -19, z + 6, Block1, 0, 3); - world.setBlock(x + 0, y + -19, z + 7, Block1, 0, 3); - world.setBlock(x + 3, y + -19, z + 7, Block3, 0, 3); - // world.setBlock(x + 8, y + -19, z + 7, Blocks.iron_door, 8, 3); - // world.setBlock(x + 10, y + -19, z + 7, Blocks.iron_door, 8, 3); - world.setBlock(x + 11, y + -19, z + 7, Block1, 0, 3); - world.setBlock(x + 0, y + -19, z + 8, Block1, 0, 3); - world.setBlock(x + 3, y + -19, z + 8, Block1, 0, 3); - // world.setBlock(x + 4, y + -19, z + 8, Blocks.iron_door, 8, 3); - // world.setBlock(x + 6, y + -19, z + 8, Blocks.iron_door, 8, 3); - // world.setBlock(x + 8, y + -19, z + 8, Blocks.iron_door, 8, 3); - // world.setBlock(x + 10, y + -19, z + 8, Blocks.iron_door, 9, 3); - world.setBlock(x + 11, y + -19, z + 8, Block1, 0, 3); - world.setBlock(x + 0, y + -19, z + 9, Block1, 0, 3); - world.setBlock(x + 3, y + -19, z + 9, Block1, 0, 3); - world.setBlock(x + 11, y + -19, z + 9, Block1, 0, 3); - world.setBlock(x + 0, y + -19, z + 10, Block1, 0, 3); - world.setBlock(x + 3, y + -19, z + 10, Block1, 0, 3); - world.setBlock(x + 11, y + -19, z + 10, Block1, 0, 3); - world.setBlock(x + 0, y + -19, z + 11, Block1, 0, 3); - world.setBlock(x + 3, y + -19, z + 11, Block1, 0, 3); - world.setBlock(x + 4, y + -19, z + 11, Block1, 0, 3); - world.setBlock(x + 5, y + -19, z + 11, Block3, 0, 3); - world.setBlock(x + 6, y + -19, z + 11, Block1, 0, 3); - world.setBlock(x + 7, y + -19, z + 11, Block1, 0, 3); - world.setBlock(x + 8, y + -19, z + 11, Block1, 0, 3); - world.setBlock(x + 9, y + -19, z + 11, Block3, 0, 3); - world.setBlock(x + 10, y + -19, z + 11, Block1, 0, 3); - world.setBlock(x + 11, y + -19, z + 11, Block1, 0, 3); - world.setBlock(x + 0, y + -19, z + 12, Block1, 0, 3); - world.setBlock(x + 11, y + -19, z + 12, Block1, 0, 3); - world.setBlock(x + 0, y + -19, z + 13, Block1, 0, 3); - world.setBlock(x + 1, y + -19, z + 13, Blocks.web, 0, 3); - world.setBlock(x + 11, y + -19, z + 13, Block1, 0, 3); - world.setBlock(x + 0, y + -19, z + 14, Block1, 0, 3); - world.setBlock(x + 1, y + -19, z + 14, Block1, 0, 3); - world.setBlock(x + 2, y + -19, z + 14, Block1, 0, 3); - world.setBlock(x + 3, y + -19, z + 14, Block1, 0, 3); - world.setBlock(x + 4, y + -19, z + 14, Block1, 0, 3); - world.setBlock(x + 5, y + -19, z + 14, Block1, 0, 3); - world.setBlock(x + 6, y + -19, z + 14, Block1, 0, 3); - world.setBlock(x + 7, y + -19, z + 14, Block1, 0, 3); - world.setBlock(x + 8, y + -19, z + 14, Block1, 0, 3); - world.setBlock(x + 9, y + -19, z + 14, Block1, 0, 3); - world.setBlock(x + 10, y + -19, z + 14, Block1, 0, 3); - world.setBlock(x + 11, y + -19, z + 14, Block1, 0, 3); - world.setBlock(x + 0, y + -18, z + 0, Block1, 0, 3); - world.setBlock(x + 1, y + -18, z + 0, Block1, 0, 3); - world.setBlock(x + 2, y + -18, z + 0, Block1, 0, 3); - world.setBlock(x + 3, y + -18, z + 0, Block1, 0, 3); - world.setBlock(x + 4, y + -18, z + 0, Block1, 0, 3); - world.setBlock(x + 5, y + -18, z + 0, Block1, 0, 3); - world.setBlock(x + 6, y + -18, z + 0, Block1, 0, 3); - world.setBlock(x + 7, y + -18, z + 0, Block1, 0, 3); - world.setBlock(x + 8, y + -18, z + 0, Block1, 0, 3); - world.setBlock(x + 9, y + -18, z + 0, Block1, 0, 3); - world.setBlock(x + 10, y + -18, z + 0, Block1, 0, 3); - world.setBlock(x + 11, y + -18, z + 0, Block1, 0, 3); - world.setBlock(x + 0, y + -18, z + 1, Block1, 0, 3); - world.setBlock(x + 1, y + -18, z + 1, Blocks.web, 0, 3); - world.setBlock(x + 2, y + -18, z + 1, Blocks.web, 0, 3); - world.setBlock(x + 3, y + -18, z + 1, Block1, 0, 3); - world.setBlock(x + 9, y + -18, z + 1, Blocks.web, 0, 3); - world.setBlock(x + 10, y + -18, z + 1, Blocks.web, 0, 3); - world.setBlock(x + 11, y + -18, z + 1, Block1, 0, 3); - world.setBlock(x + 0, y + -18, z + 2, Block1, 0, 3); - world.setBlock(x + 3, y + -18, z + 2, Block1, 0, 3); - world.setBlock(x + 4, y + -18, z + 2, Blocks.web, 0, 3); - world.setBlock(x + 8, y + -18, z + 2, Block4, 0, 3); - world.setBlock(x + 9, y + -18, z + 2, Block4, 0, 3); - world.setBlock(x + 10, y + -18, z + 2, Block4, 0, 3); - world.setBlock(x + 11, y + -18, z + 2, Block1, 0, 3); - world.setBlock(x + 0, y + -18, z + 3, Block1, 0, 3); - world.setBlock(x + 3, y + -18, z + 3, Block1, 0, 3); - world.setBlock(x + 5, y + -18, z + 3, Blocks.web, 0, 3); - world.setBlock(x + 8, y + -18, z + 3, Blocks.web, 0, 3); - world.setBlock(x + 9, y + -18, z + 3, Blocks.web, 0, 3); - world.setBlock(x + 10, y + -18, z + 3, Blocks.web, 0, 3); - world.setBlock(x + 11, y + -18, z + 3, Block1, 0, 3); - world.setBlock(x + 0, y + -18, z + 4, Block1, 0, 3); - world.setBlock(x + 3, y + -18, z + 4, Block1, 0, 3); - world.setBlock(x + 4, y + -18, z + 4, Block1, 0, 3); - world.setBlock(x + 5, y + -18, z + 4, Block1, 0, 3); - world.setBlock(x + 6, y + -18, z + 4, Block1, 0, 3); - world.setBlock(x + 7, y + -18, z + 4, Block1, 0, 3); - world.setBlock(x + 8, y + -18, z + 4, Block1, 0, 3); - world.setBlock(x + 9, y + -18, z + 4, Block1, 0, 3); - world.setBlock(x + 10, y + -18, z + 4, Block1, 0, 3); - world.setBlock(x + 11, y + -18, z + 4, Block1, 0, 3); - world.setBlock(x + 0, y + -18, z + 5, Block1, 0, 3); - world.setBlock(x + 3, y + -18, z + 5, Block1, 0, 3); - world.setBlock(x + 4, y + -18, z + 5, Blocks.web, 0, 3); - world.setBlock(x + 9, y + -18, z + 5, Blocks.web, 0, 3); - world.setBlock(x + 10, y + -18, z + 5, Blocks.web, 0, 3); - world.setBlock(x + 11, y + -18, z + 5, Block1, 0, 3); - world.setBlock(x + 0, y + -18, z + 6, Block1, 0, 3); - world.setBlock(x + 3, y + -18, z + 6, Block1, 0, 3); - world.setBlock(x + 10, y + -18, z + 6, Blocks.web, 0, 3); - world.setBlock(x + 11, y + -18, z + 6, Block1, 0, 3); - world.setBlock(x + 0, y + -18, z + 7, Block1, 0, 3); - world.setBlock(x + 2, y + -18, z + 7, Blocks.web, 0, 3); - world.setBlock(x + 3, y + -18, z + 7, Block1, 0, 3); - world.setBlock(x + 11, y + -18, z + 7, Block1, 0, 3); - world.setBlock(x + 0, y + -18, z + 8, Block1, 0, 3); - world.setBlock(x + 1, y + -18, z + 8, Blocks.web, 0, 3); - world.setBlock(x + 3, y + -18, z + 8, Block1, 0, 3); - world.setBlock(x + 11, y + -18, z + 8, Block1, 0, 3); - world.setBlock(x + 0, y + -18, z + 9, Block1, 0, 3); - world.setBlock(x + 2, y + -18, z + 9, Blocks.web, 0, 3); - world.setBlock(x + 3, y + -18, z + 9, Block1, 0, 3); - world.setBlock(x + 4, y + -18, z + 9, Blocks.web, 0, 3); - world.setBlock(x + 11, y + -18, z + 9, Block1, 0, 3); - world.setBlock(x + 0, y + -18, z + 10, Block1, 0, 3); - world.setBlock(x + 3, y + -18, z + 10, Block1, 0, 3); - world.setBlock(x + 5, y + -18, z + 10, Blocks.web, 0, 3); - world.setBlock(x + 8, y + -18, z + 10, Blocks.web, 0, 3); - world.setBlock(x + 9, y + -18, z + 10, Blocks.web, 0, 3); - world.setBlock(x + 11, y + -18, z + 10, Block1, 0, 3); - world.setBlock(x + 0, y + -18, z + 11, Block1, 0, 3); - world.setBlock(x + 3, y + -18, z + 11, Block1, 0, 3); - world.setBlock(x + 4, y + -18, z + 11, Block1, 0, 3); - world.setBlock(x + 5, y + -18, z + 11, Block1, 0, 3); - world.setBlock(x + 6, y + -18, z + 11, Block1, 0, 3); - world.setBlock(x + 7, y + -18, z + 11, Block1, 0, 3); - world.setBlock(x + 8, y + -18, z + 11, Block1, 0, 3); - world.setBlock(x + 9, y + -18, z + 11, Block1, 0, 3); - world.setBlock(x + 10, y + -18, z + 11, Block1, 0, 3); - world.setBlock(x + 11, y + -18, z + 11, Block1, 0, 3); - world.setBlock(x + 0, y + -18, z + 12, Block1, 0, 3); - world.setBlock(x + 1, y + -18, z + 12, Blocks.web, 0, 3); - world.setBlock(x + 7, y + -18, z + 12, Blocks.web, 0, 3); - world.setBlock(x + 8, y + -18, z + 12, Blocks.web, 0, 3); - world.setBlock(x + 10, y + -18, z + 12, Blocks.web, 0, 3); - world.setBlock(x + 11, y + -18, z + 12, Block1, 0, 3); - world.setBlock(x + 0, y + -18, z + 13, Block1, 0, 3); - world.setBlock(x + 2, y + -18, z + 13, Blocks.web, 0, 3); - world.setBlock(x + 11, y + -18, z + 13, Block1, 0, 3); - world.setBlock(x + 0, y + -18, z + 14, Block1, 0, 3); - world.setBlock(x + 1, y + -18, z + 14, Block1, 0, 3); - world.setBlock(x + 2, y + -18, z + 14, Block1, 0, 3); - world.setBlock(x + 3, y + -18, z + 14, Block1, 0, 3); - world.setBlock(x + 4, y + -18, z + 14, Block1, 0, 3); - world.setBlock(x + 5, y + -18, z + 14, Block1, 0, 3); - world.setBlock(x + 6, y + -18, z + 14, Block1, 0, 3); - world.setBlock(x + 7, y + -18, z + 14, Block1, 0, 3); - world.setBlock(x + 8, y + -18, z + 14, Block1, 0, 3); - world.setBlock(x + 9, y + -18, z + 14, Block1, 0, 3); - world.setBlock(x + 10, y + -18, z + 14, Block1, 0, 3); - world.setBlock(x + 11, y + -18, z + 14, Block1, 0, 3); - world.setBlock(x + 0, y + -17, z + 0, Block1, 0, 3); - world.setBlock(x + 1, y + -17, z + 0, Block1, 0, 3); - world.setBlock(x + 2, y + -17, z + 0, Block1, 0, 3); - world.setBlock(x + 3, y + -17, z + 0, Block1, 0, 3); - world.setBlock(x + 4, y + -17, z + 0, Block1, 0, 3); - world.setBlock(x + 5, y + -17, z + 0, Block1, 0, 3); - world.setBlock(x + 6, y + -17, z + 0, Block1, 0, 3); - world.setBlock(x + 7, y + -17, z + 0, Block1, 0, 3); - world.setBlock(x + 8, y + -17, z + 0, Block1, 0, 3); - world.setBlock(x + 9, y + -17, z + 0, Block1, 0, 3); - world.setBlock(x + 10, y + -17, z + 0, Block1, 0, 3); - world.setBlock(x + 11, y + -17, z + 0, Block1, 0, 3); - world.setBlock(x + 0, y + -17, z + 1, Block1, 0, 3); - world.setBlock(x + 1, y + -17, z + 1, Block1, 0, 3); - world.setBlock(x + 2, y + -17, z + 1, Block1, 0, 3); - world.setBlock(x + 3, y + -17, z + 1, Block1, 0, 3); - world.setBlock(x + 4, y + -17, z + 1, Block1, 0, 3); - world.setBlock(x + 5, y + -17, z + 1, Block1, 0, 3); - world.setBlock(x + 6, y + -17, z + 1, Block1, 0, 3); - world.setBlock(x + 7, y + -17, z + 1, Block1, 0, 3); - world.setBlock(x + 8, y + -17, z + 1, Block1, 0, 3); - world.setBlock(x + 9, y + -17, z + 1, Block1, 0, 3); - world.setBlock(x + 10, y + -17, z + 1, Block1, 0, 3); - world.setBlock(x + 11, y + -17, z + 1, Block1, 0, 3); - world.setBlock(x + 0, y + -17, z + 2, Block1, 0, 3); - world.setBlock(x + 1, y + -17, z + 2, Block1, 0, 3); - world.setBlock(x + 3, y + -17, z + 2, Block1, 0, 3); - world.setBlock(x + 4, y + -17, z + 2, Block1, 0, 3); - world.setBlock(x + 5, y + -17, z + 2, Block1, 0, 3); - world.setBlock(x + 6, y + -17, z + 2, Block1, 0, 3); - world.setBlock(x + 7, y + -17, z + 2, Block1, 0, 3); - world.setBlock(x + 8, y + -17, z + 2, Block1, 0, 3); - world.setBlock(x + 9, y + -17, z + 2, Block1, 0, 3); - world.setBlock(x + 10, y + -17, z + 2, Block1, 0, 3); - world.setBlock(x + 11, y + -17, z + 2, Block1, 0, 3); - world.setBlock(x + 0, y + -17, z + 3, Block1, 0, 3); - world.setBlock(x + 1, y + -17, z + 3, Block1, 0, 3); - world.setBlock(x + 2, y + -17, z + 3, Block1, 0, 3); - world.setBlock(x + 3, y + -17, z + 3, Block1, 0, 3); - world.setBlock(x + 4, y + -17, z + 3, Block1, 0, 3); - world.setBlock(x + 5, y + -17, z + 3, Block1, 0, 3); - world.setBlock(x + 6, y + -17, z + 3, Block1, 0, 3); - world.setBlock(x + 7, y + -17, z + 3, Block1, 0, 3); - world.setBlock(x + 8, y + -17, z + 3, Block1, 0, 3); - world.setBlock(x + 9, y + -17, z + 3, Block1, 0, 3); - world.setBlock(x + 10, y + -17, z + 3, Block1, 0, 3); - world.setBlock(x + 11, y + -17, z + 3, Block1, 0, 3); - world.setBlock(x + 0, y + -17, z + 4, Block1, 0, 3); - world.setBlock(x + 1, y + -17, z + 4, Block1, 0, 3); - world.setBlock(x + 2, y + -17, z + 4, Block1, 0, 3); - world.setBlock(x + 3, y + -17, z + 4, Block1, 0, 3); - world.setBlock(x + 4, y + -17, z + 4, Block1, 0, 3); - world.setBlock(x + 5, y + -17, z + 4, Block1, 0, 3); - world.setBlock(x + 6, y + -17, z + 4, Block1, 0, 3); - world.setBlock(x + 7, y + -17, z + 4, Block1, 0, 3); - world.setBlock(x + 8, y + -17, z + 4, Block1, 0, 3); - world.setBlock(x + 9, y + -17, z + 4, Block1, 0, 3); - world.setBlock(x + 10, y + -17, z + 4, Block1, 0, 3); - world.setBlock(x + 11, y + -17, z + 4, Block1, 0, 3); - world.setBlock(x + 0, y + -17, z + 5, Block1, 0, 3); - world.setBlock(x + 1, y + -17, z + 5, Block1, 0, 3); - world.setBlock(x + 2, y + -17, z + 5, Block1, 0, 3); - world.setBlock(x + 3, y + -17, z + 5, Block1, 0, 3); - world.setBlock(x + 4, y + -17, z + 5, Block1, 0, 3); - world.setBlock(x + 5, y + -17, z + 5, Block1, 0, 3); - world.setBlock(x + 6, y + -17, z + 5, Block1, 0, 3); - world.setBlock(x + 7, y + -17, z + 5, Block1, 0, 3); - world.setBlock(x + 8, y + -17, z + 5, Block1, 0, 3); - world.setBlock(x + 9, y + -17, z + 5, Block1, 0, 3); - world.setBlock(x + 10, y + -17, z + 5, Block1, 0, 3); - world.setBlock(x + 11, y + -17, z + 5, Block1, 0, 3); - world.setBlock(x + 0, y + -17, z + 6, Block1, 0, 3); - world.setBlock(x + 1, y + -17, z + 6, Block1, 0, 3); - world.setBlock(x + 2, y + -17, z + 6, Block1, 0, 3); - world.setBlock(x + 3, y + -17, z + 6, Block1, 0, 3); - world.setBlock(x + 4, y + -17, z + 6, Block1, 0, 3); - world.setBlock(x + 5, y + -17, z + 6, Block1, 0, 3); - world.setBlock(x + 6, y + -17, z + 6, Block1, 0, 3); - world.setBlock(x + 7, y + -17, z + 6, Block1, 0, 3); - world.setBlock(x + 8, y + -17, z + 6, Block1, 0, 3); - world.setBlock(x + 9, y + -17, z + 6, Block1, 0, 3); - world.setBlock(x + 10, y + -17, z + 6, Block1, 0, 3); - world.setBlock(x + 11, y + -17, z + 6, Block1, 0, 3); - world.setBlock(x + 0, y + -17, z + 7, Block1, 0, 3); - world.setBlock(x + 1, y + -17, z + 7, Block1, 0, 3); - world.setBlock(x + 2, y + -17, z + 7, Block1, 0, 3); - world.setBlock(x + 3, y + -17, z + 7, Block1, 0, 3); - world.setBlock(x + 4, y + -17, z + 7, Block1, 0, 3); - world.setBlock(x + 5, y + -17, z + 7, Block1, 0, 3); - world.setBlock(x + 6, y + -17, z + 7, Block1, 0, 3); - world.setBlock(x + 7, y + -17, z + 7, Block1, 0, 3); - world.setBlock(x + 8, y + -17, z + 7, Block1, 0, 3); - world.setBlock(x + 9, y + -17, z + 7, Block1, 0, 3); - world.setBlock(x + 10, y + -17, z + 7, Block1, 0, 3); - world.setBlock(x + 11, y + -17, z + 7, Block1, 0, 3); - world.setBlock(x + 0, y + -17, z + 8, Block1, 0, 3); - world.setBlock(x + 1, y + -17, z + 8, Block1, 0, 3); - world.setBlock(x + 2, y + -17, z + 8, Block1, 0, 3); - world.setBlock(x + 3, y + -17, z + 8, Block1, 0, 3); - world.setBlock(x + 4, y + -17, z + 8, Block1, 0, 3); - world.setBlock(x + 5, y + -17, z + 8, Block1, 0, 3); - world.setBlock(x + 6, y + -17, z + 8, Block1, 0, 3); - world.setBlock(x + 7, y + -17, z + 8, Block1, 0, 3); - world.setBlock(x + 8, y + -17, z + 8, Block1, 0, 3); - world.setBlock(x + 9, y + -17, z + 8, Block1, 0, 3); - world.setBlock(x + 10, y + -17, z + 8, Block1, 0, 3); - world.setBlock(x + 11, y + -17, z + 8, Block1, 0, 3); - world.setBlock(x + 0, y + -17, z + 9, Block1, 0, 3); - world.setBlock(x + 1, y + -17, z + 9, Block1, 0, 3); - world.setBlock(x + 2, y + -17, z + 9, Block1, 0, 3); - world.setBlock(x + 3, y + -17, z + 9, Block1, 0, 3); - world.setBlock(x + 4, y + -17, z + 9, Block1, 0, 3); - world.setBlock(x + 5, y + -17, z + 9, Block1, 0, 3); - world.setBlock(x + 6, y + -17, z + 9, Block1, 0, 3); - world.setBlock(x + 7, y + -17, z + 9, Block1, 0, 3); - world.setBlock(x + 8, y + -17, z + 9, Block1, 0, 3); - world.setBlock(x + 9, y + -17, z + 9, Block1, 0, 3); - world.setBlock(x + 10, y + -17, z + 9, Block1, 0, 3); - world.setBlock(x + 11, y + -17, z + 9, Block1, 0, 3); - world.setBlock(x + 0, y + -17, z + 10, Block1, 0, 3); - world.setBlock(x + 1, y + -17, z + 10, Block1, 0, 3); - world.setBlock(x + 2, y + -17, z + 10, Block1, 0, 3); - world.setBlock(x + 3, y + -17, z + 10, Block1, 0, 3); - world.setBlock(x + 4, y + -17, z + 10, Block1, 0, 3); - world.setBlock(x + 5, y + -17, z + 10, Block1, 0, 3); - world.setBlock(x + 6, y + -17, z + 10, Block1, 0, 3); - world.setBlock(x + 7, y + -17, z + 10, Block1, 0, 3); - world.setBlock(x + 8, y + -17, z + 10, Block1, 0, 3); - world.setBlock(x + 9, y + -17, z + 10, Block1, 0, 3); - world.setBlock(x + 10, y + -17, z + 10, Block1, 0, 3); - world.setBlock(x + 11, y + -17, z + 10, Block1, 0, 3); - world.setBlock(x + 0, y + -17, z + 11, Block1, 0, 3); - world.setBlock(x + 1, y + -17, z + 11, Block1, 0, 3); - world.setBlock(x + 2, y + -17, z + 11, Block1, 0, 3); - world.setBlock(x + 3, y + -17, z + 11, Block1, 0, 3); - world.setBlock(x + 4, y + -17, z + 11, Block1, 0, 3); - world.setBlock(x + 5, y + -17, z + 11, Block1, 0, 3); - world.setBlock(x + 6, y + -17, z + 11, Block1, 0, 3); - world.setBlock(x + 7, y + -17, z + 11, Block1, 0, 3); - world.setBlock(x + 8, y + -17, z + 11, Block1, 0, 3); - world.setBlock(x + 9, y + -17, z + 11, Block1, 0, 3); - world.setBlock(x + 10, y + -17, z + 11, Block1, 0, 3); - world.setBlock(x + 11, y + -17, z + 11, Block1, 0, 3); - world.setBlock(x + 0, y + -17, z + 12, Block1, 0, 3); - world.setBlock(x + 1, y + -17, z + 12, Block1, 0, 3); - world.setBlock(x + 2, y + -17, z + 12, Block1, 0, 3); - world.setBlock(x + 3, y + -17, z + 12, Block1, 0, 3); - world.setBlock(x + 4, y + -17, z + 12, Block1, 0, 3); - world.setBlock(x + 5, y + -17, z + 12, Block1, 0, 3); - world.setBlock(x + 6, y + -17, z + 12, Block1, 0, 3); - world.setBlock(x + 7, y + -17, z + 12, Block1, 0, 3); - world.setBlock(x + 8, y + -17, z + 12, Block1, 0, 3); - world.setBlock(x + 9, y + -17, z + 12, Block1, 0, 3); - world.setBlock(x + 10, y + -17, z + 12, Block1, 0, 3); - world.setBlock(x + 11, y + -17, z + 12, Block1, 0, 3); - world.setBlock(x + 0, y + -17, z + 13, Block1, 0, 3); - world.setBlock(x + 1, y + -17, z + 13, Block1, 0, 3); - world.setBlock(x + 2, y + -17, z + 13, Block1, 0, 3); - world.setBlock(x + 3, y + -17, z + 13, Block1, 0, 3); - world.setBlock(x + 4, y + -17, z + 13, Block1, 0, 3); - world.setBlock(x + 5, y + -17, z + 13, Block1, 0, 3); - world.setBlock(x + 6, y + -17, z + 13, Block1, 0, 3); - world.setBlock(x + 7, y + -17, z + 13, Block1, 0, 3); - world.setBlock(x + 8, y + -17, z + 13, Block1, 0, 3); - world.setBlock(x + 9, y + -17, z + 13, Block1, 0, 3); - world.setBlock(x + 10, y + -17, z + 13, Block1, 0, 3); - world.setBlock(x + 11, y + -17, z + 13, Block1, 0, 3); - world.setBlock(x + 0, y + -17, z + 14, Block1, 0, 3); - world.setBlock(x + 1, y + -17, z + 14, Block1, 0, 3); - world.setBlock(x + 2, y + -17, z + 14, Block1, 0, 3); - world.setBlock(x + 3, y + -17, z + 14, Block1, 0, 3); - world.setBlock(x + 4, y + -17, z + 14, Block1, 0, 3); - world.setBlock(x + 5, y + -17, z + 14, Block1, 0, 3); - world.setBlock(x + 6, y + -17, z + 14, Block1, 0, 3); - world.setBlock(x + 7, y + -17, z + 14, Block1, 0, 3); - world.setBlock(x + 8, y + -17, z + 14, Block1, 0, 3); - world.setBlock(x + 9, y + -17, z + 14, Block1, 0, 3); - world.setBlock(x + 10, y + -17, z + 14, Block1, 0, 3); - world.setBlock(x + 11, y + -17, z + 14, Block1, 0, 3); - world.setBlock(x + 1, y + -16, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -16, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -16, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -16, z + 2, Block3, 0, 3); - world.setBlock(x + 3, y + -16, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -16, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -16, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -16, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -15, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -15, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -15, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -15, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -15, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -15, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -15, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -15, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -14, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -14, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -14, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -14, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -14, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -14, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -14, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -14, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -13, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -13, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -13, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -13, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -13, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -13, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -13, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -13, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -12, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -12, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -12, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -12, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -12, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -12, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -12, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -12, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -11, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -11, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -11, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -11, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -11, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -11, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -11, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -11, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -10, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -10, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -10, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -10, z + 2, Block3, 0, 3); - world.setBlock(x + 3, y + -10, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -10, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -10, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -10, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -9, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -9, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -9, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -9, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -9, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -9, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -9, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -9, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -8, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -8, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -8, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -8, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -8, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -8, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -8, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -8, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -7, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -7, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -7, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -7, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -7, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -7, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -7, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -7, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -6, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -6, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -6, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -6, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -6, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -6, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -6, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -6, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -5, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -5, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -5, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -5, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -5, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -5, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -5, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -5, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -4, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -4, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -4, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -4, z + 2, Block3, 0, 3); - world.setBlock(x + 3, y + -4, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -4, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -4, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -4, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + -3, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -3, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -3, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -3, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -3, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + -3, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -3, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -3, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -3, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -3, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + -3, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -3, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -3, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -3, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + -3, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -3, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -3, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -3, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -3, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + -3, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -3, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -3, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -3, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -3, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -3, z + 5, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -3, z + 5, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -3, z + 5, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + -2, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -2, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -2, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -2, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -2, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + -2, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -2, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -2, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -2, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -2, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + -2, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -2, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -2, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -2, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + -2, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -2, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -2, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -2, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -2, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + -2, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -2, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -2, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -2, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -2, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -2, z + 5, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -2, z + 5, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -2, z + 5, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + -1, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -1, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -1, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -1, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -1, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + -1, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -1, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -1, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -1, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -1, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + -1, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -1, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -1, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -1, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + -1, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -1, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -1, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -1, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -1, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + -1, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -1, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -1, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -1, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -1, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -1, z + 5, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -1, z + 5, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -1, z + 5, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + 0, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + 0, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + 0, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + 0, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + 0, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + 0, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + 0, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + 0, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + 0, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + 0, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + 0, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + 0, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + 0, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + 0, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + 0, z + 5, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + 0, z + 5, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + 0, z + 5, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + 1, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + 1, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + 1, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + 1, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + 1, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + 1, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + 1, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + 1, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + 1, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + 1, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + 1, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + 1, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + 1, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + 2, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + 2, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + 2, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + 2, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + 2, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + 2, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + 2, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + 2, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + 2, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + 2, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + 2, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + 2, z + 2, Block3, 0, 3); - world.setBlock(x + 3, y + 2, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + 2, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + 2, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + 2, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + 2, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + 2, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + 2, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + 2, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + 2, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + 2, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + 2, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + 2, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + 2, z + 5, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + 2, z + 5, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + 2, z + 5, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + 3, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + 3, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + 3, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + 3, z + 1, Blocks.trapdoor, 1, 3); - - generate_r02_last(world, rand, x, y, z); - return true; - - } - - public boolean generate_r02_last(World world, Random rand, int x, int y, int z) { - - world.setBlock(x + 10, y + -24, z + 12, Blocks.ladder, 4, 3); - world.setBlock(x + 10, y + -24, z + 13, Blocks.ladder, 4, 3); - world.setBlock(x + 8, y + -23, z + 2, Blocks.lever, 12, 3); - world.setBlock(x + 10, y + -23, z + 4, Blocks.lever, 10, 3); - world.setBlock(x + 10, y + -23, z + 6, Blocks.lever, 10, 3); - world.setBlock(x + 10, y + -23, z + 8, Blocks.lever, 10, 3); - world.setBlock(x + 6, y + -23, z + 10, Blocks.lever, 12, 3); - world.setBlock(x + 10, y + -23, z + 10, Blocks.lever, 10, 3); - world.setBlock(x + 10, y + -23, z + 12, Blocks.ladder, 4, 3); - world.setBlock(x + 10, y + -23, z + 13, Blocks.ladder, 4, 3); - world.setBlock(x + 10, y + -22, z + 12, Blocks.ladder, 4, 3); - world.setBlock(x + 10, y + -22, z + 13, Blocks.ladder, 4, 3); - world.setBlock(x + 10, y + -21, z + 12, Blocks.ladder, 4, 3); - world.setBlock(x + 10, y + -21, z + 13, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -20, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 10, y + -20, z + 12, Blocks.ladder, 4, 3); - world.setBlock(x + 10, y + -20, z + 13, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -19, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -19, z + 5, Blocks.lever, 2, 3); - world.setBlock(x + 5, y + -19, z + 5, Blocks.wall_sign, 3, 3); - world.setBlock(x + 2, y + -18, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -17, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -16, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -15, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -14, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -13, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -12, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -11, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -10, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -9, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -8, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -7, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -6, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -5, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -4, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -3, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -2, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -1, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + 0, z + 1, Blocks.ladder, 3, 3); - world.setBlock(x + 2, y + 0, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + 1, z + 1, Blocks.ladder, 3, 3); - world.setBlock(x + 2, y + 2, z + 1, Blocks.ladder, 3, 3); - world.setBlock(x + 8, y + -20, z + 5, Blocks.bed, 10, 3); - world.setBlock(x + 10, y + -20, z + 5, Blocks.bed, 10, 3); - world.setBlock(x + 8, y + -20, z + 6, Blocks.bed, 2, 3); - world.setBlock(x + 10, y + -20, z + 6, Blocks.bed, 2, 3); - world.setBlock(x + 4, y + -20, z + 9, Blocks.bed, 0, 3); - world.setBlock(x + 6, y + -20, z + 9, Blocks.bed, 0, 3); - world.setBlock(x + 8, y + -20, z + 9, Blocks.bed, 0, 3); - world.setBlock(x + 10, y + -20, z + 9, Blocks.bed, 0, 3); - world.setBlock(x + 4, y + -20, z + 10, Blocks.bed, 8, 3); - world.setBlock(x + 6, y + -20, z + 10, Blocks.bed, 8, 3); - world.setBlock(x + 8, y + -20, z + 10, Blocks.bed, 8, 3); - world.setBlock(x + 10, y + -20, z + 10, Blocks.bed, 8, 3); - world.setBlock(x + 8, y + -19, z + 5, Blocks.bed, 10, 3); - world.setBlock(x + 10, y + -19, z + 5, Blocks.bed, 10, 3); - world.setBlock(x + 8, y + -19, z + 6, Blocks.bed, 2, 3); - world.setBlock(x + 10, y + -19, z + 6, Blocks.bed, 2, 3); - world.setBlock(x + 4, y + -19, z + 9, Blocks.bed, 0, 3); - world.setBlock(x + 6, y + -19, z + 9, Blocks.bed, 0, 3); - world.setBlock(x + 8, y + -19, z + 9, Blocks.bed, 0, 3); - world.setBlock(x + 10, y + -19, z + 9, Blocks.bed, 0, 3); - world.setBlock(x + 4, y + -19, z + 10, Blocks.bed, 8, 3); - world.setBlock(x + 6, y + -19, z + 10, Blocks.bed, 8, 3); - world.setBlock(x + 8, y + -19, z + 10, Blocks.bed, 8, 3); - world.setBlock(x + 10, y + -19, z + 10, Blocks.bed, 8, 3); - if(GeneralConfig.enableDebugMode) - System.out.print("[Debug] Successfully spawned bunker at " + x + " " + y + " " + z + "\n"); - return true; - - } - -} \ No newline at end of file From 189c861cf09e649ea881a49494b3fe03fbcc0d9d Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Fri, 9 Jun 2023 21:19:19 -0500 Subject: [PATCH 056/109] added something to outgasser OC compat the smallest change imaginable (added a callback for checking gas type) --- .../tileentity/machine/rbmk/TileEntityRBMKOutgasser.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java index c3c2665bf..8e3f71a6a 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java @@ -237,6 +237,12 @@ public class TileEntityRBMKOutgasser extends TileEntityRBMKSlottedBase implement public Object[] getGasMax(Context context, Arguments args) { return new Object[] {gas.getMaxFill()}; } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] getGasType(Context context, Arguments args) { + return new Object[] {gas.getTankType().getID()}; + } @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") @@ -253,7 +259,7 @@ public class TileEntityRBMKOutgasser extends TileEntityRBMKSlottedBase implement @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { - return new Object[] {gas.getFill(), gas.getMaxFill(), progress, xCoord, yCoord, zCoord}; + return new Object[] {gas.getFill(), gas.getMaxFill(), progress, gas.getTankType().getID(), xCoord, yCoord, zCoord}; } @Override From de28eff0c792dec1224febc63e2789314bc208b4 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Sat, 10 Jun 2023 02:04:56 -0500 Subject: [PATCH 057/109] Another small addition --- .../java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java index 7c161a15e..f02f229ca 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java @@ -450,7 +450,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM OC_enrich_buf = "N/A"; OC_poison_buf = "N/A"; } - return new Object[] {heat, fluxSlow, fluxFast, OC_enrich_buf, OC_poison_buf, ((RBMKRod)this.getBlockType()).moderated, xCoord, yCoord, zCoord}; + return new Object[] {heat, ItemRBMKRod.getHullHeat(slots[0]), ItemRBMKRod.getCoreHeat(slots[0]), fluxSlow, fluxFast, OC_enrich_buf, OC_poison_buf, ((RBMKRod)this.getBlockType()).moderated, xCoord, yCoord, zCoord}; } @Callback(direct = true, limit = 8) From c2f05f4d114c42bd9a9589c12e18bff15d3c8381 Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 10 Jun 2023 10:16:15 +0200 Subject: [PATCH 058/109] gold capacitor --- src/main/java/com/hbm/blocks/ModBlocks.java | 5 ++++- .../hbm/blocks/machine/MachineCapacitor.java | 20 ++++++++++++------ .../java/com/hbm/tileentity/TileMappings.java | 2 ++ .../hbm/textures/blocks/capacitor_bus_out.png | Bin 195 -> 301 bytes .../textures/blocks/capacitor_gold_bottom.png | Bin 0 -> 551 bytes .../blocks/capacitor_gold_inner_side.png | Bin 0 -> 169 bytes .../blocks/capacitor_gold_inner_top.png | Bin 0 -> 272 bytes .../textures/blocks/capacitor_gold_side.png | Bin 0 -> 357 bytes .../textures/blocks/capacitor_gold_top.png | Bin 0 -> 219 bytes 9 files changed, 20 insertions(+), 7 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_gold_bottom.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_gold_inner_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_gold_inner_top.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_gold_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_gold_top.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 0d2b78975..da8ec07e3 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -759,6 +759,7 @@ public class ModBlocks { public static Block capacitor_bus; public static Block capacitor_copper; + public static Block capacitor_gold; public static Block machine_coal_off; public static Block machine_coal_on; @@ -1883,7 +1884,8 @@ public class ModBlocks { machine_fensu = new MachineFENSU(Material.iron).setBlockName("machine_fensu").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_fensu"); capacitor_bus = new MachineCapacitorBus(Material.iron).setBlockName("capacitor_bus").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - capacitor_copper = new MachineCapacitor(Material.iron, 1_000_000L).setBlockName("capacitor_copper").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_copper"); + capacitor_copper = new MachineCapacitor(Material.iron, 1_000_000L, "copper").setBlockName("capacitor_copper").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_copper"); + capacitor_gold = new MachineCapacitor(Material.iron, 5_000_000L, "gold").setBlockName("capacitor_gold").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName("gold_block"); machine_coal_off = new MachineCoal(false).setBlockName("machine_coal_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_coal_on = new MachineCoal(true).setBlockName("machine_coal_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); @@ -3200,6 +3202,7 @@ public class ModBlocks { register(machine_fensu); register(capacitor_bus); register(capacitor_copper); + register(capacitor_gold); GameRegistry.registerBlock(machine_transformer, machine_transformer.getUnlocalizedName()); GameRegistry.registerBlock(machine_transformer_20, machine_transformer_20.getUnlocalizedName()); GameRegistry.registerBlock(machine_transformer_dnt, machine_transformer_dnt.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java b/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java index ad9effd70..64a76e113 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java @@ -21,6 +21,7 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -41,21 +42,23 @@ public class MachineCapacitor extends BlockContainer implements ILookOverlay, IP @SideOnly(Side.CLIENT) public IIcon iconInnerSide; protected long power; + String name; - public MachineCapacitor(Material mat, long power) { + public MachineCapacitor(Material mat, long power, String name) { super(mat); this.power = power; + this.name = name; } @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { super.registerBlockIcons(iconRegister); - this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":capacitor_copper_top"); - this.iconSide = iconRegister.registerIcon(RefStrings.MODID + ":capacitor_copper_side"); - this.iconBottom = iconRegister.registerIcon(RefStrings.MODID + ":capacitor_copper_bottom"); - this.iconInnerTop = iconRegister.registerIcon(RefStrings.MODID + ":capacitor_copper_inner_top"); - this.iconInnerSide = iconRegister.registerIcon(RefStrings.MODID + ":capacitor_copper_inner_side"); + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":capacitor_" + name + "_top"); + this.iconSide = iconRegister.registerIcon(RefStrings.MODID + ":capacitor_" + name + "_side"); + this.iconBottom = iconRegister.registerIcon(RefStrings.MODID + ":capacitor_" + name + "_bottom"); + this.iconInnerTop = iconRegister.registerIcon(RefStrings.MODID + ":capacitor_" + name + "_inner_top"); + this.iconInnerSide = iconRegister.registerIcon(RefStrings.MODID + ":capacitor_" + name + "_inner_side"); } public static int renderID = RenderingRegistry.getNextAvailableRenderId(); @@ -104,6 +107,11 @@ public class MachineCapacitor extends BlockContainer implements ILookOverlay, IP return IPersistentNBT.getDrops(world, x, y, z, this); } + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { + IPersistentNBT.restoreData(world, x, y, z, itemStack); + } + @Override public void onBlockHarvested(World world, int x, int y, int z, int meta, EntityPlayer player) { diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 824ecb205..f7098e052 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -13,6 +13,7 @@ import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; import com.hbm.blocks.generic.BlockMotherOfAllOres.TileEntityRandomOre; import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe; import com.hbm.blocks.generic.PartEmitter.TileEntityPartEmitter; +import com.hbm.blocks.machine.MachineCapacitor.TileEntityCapacitor; import com.hbm.blocks.machine.MachineFan.TileEntityFan; import com.hbm.blocks.machine.PistonInserter.TileEntityPistonInserter; import com.hbm.blocks.machine.WatzPump.TileEntityWatzPump; @@ -61,6 +62,7 @@ public class TileMappings { put(TileEntityDecoPoleTop.class, "tileentity_poletop"); put(TileEntityDecoPoleSatelliteReceiver.class, "tileentity_satellitereceicer"); put(TileEntityMachineBattery.class, "tileentity_battery"); + put(TileEntityCapacitor.class, "tileentity_capacitor"); put(TileEntityMachineCoal.class, "tileentity_coal"); put(TileEntityRedBarrel.class, "tileentity_barrel"); put(TileEntityYellowBarrel.class, "tileentity_nukebarrel"); diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_bus_out.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_bus_out.png index c9a207e23aea062507bc44b8c20b64fa7bdda6c9..2cb5d71316a30234599dfb6a09c8febbc20eeb40 100644 GIT binary patch delta 257 zcmV+c0sj8O0j&a%G=JntL_t(Ijir;j4Z<)KMNd9-AS@~`f#f0sz!srp3?^a=Qd5K! z86u^nNGSjX3a}JAHs4dl&%XEh$}f>p>c$_W078hL#9HfzfmwXYuwfe705}u{0PEGt zs!J(png)P4)WwM1Z zOs9}#bC$~)N#Z{c52G=F+YL_t(Ijjd9#4Zt7_GZjNePRR-Ma&i(M(4ndXs168fDHE|{ zCpZx)*nkIs5W*5U=Zs@#IsjWBsUoSa3DiVO#IuJhMsqTC@J>soHpQGY0;9ZNJ^x-| zCU@WCM5OF|BzlEDD|1J8P!p_Z)WL{2bTA7KJj+S}R002ovPDHLk FV1h-rI`aSk diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_gold_bottom.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_gold_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..bac7489b5696a6071c4e64f6c43050616c9102da GIT binary patch literal 551 zcmV+?0@(eDP)+m-}(6XK-P8T^YfEZ z3IHNP&Y6@FkB^U}ln5cl)^Mkgb*6YIF6K3=(>(`^?eUO z*LA$Syzu?~jn-NtBCQ#~7(rw62-I5dsGet~ zR0Cd?g>Bo=BGL*W1cqTiMDFySbpY=@-g}&LSZmSyzPDnGk$Ik*)^q>s$F^-PYNZr< z7=}B_N-0Vy?O&WA-upZHXQVoW(A*c1|It4a*|rU!{fm9ye^bag^YHM{SX?d_o}Qin zsI_8@;q=KEb7%5@DgElP){=8(o@bO&)LI+u7-N%Xtp(sXj$a8{>z4oJa%s({7cs`h zqSi{SwV5a)h;xo{9C>|xy_>k>IN0~SO=SpyX_{Eqm3`mo`~EkHx3{{%VX0;LbY8&!uO2B+@Qzt0phd OE(T9mKbLh*2~7am={vdr literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_gold_inner_top.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_gold_inner_top.png new file mode 100644 index 0000000000000000000000000000000000000000..52ffe26c57d2f80c46e565d1f7c7555ba099fade GIT binary patch literal 272 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfyU$h+x$s-jxHO5bVLpwx^#{CiOju&X6_%^2C z+f}UZ9;$nP_Kn~34NsdBk19qmEPlDE)Z&w{l6@#c!*&~U{`OOO)|+`44Cbwuni0H6 z;b~>C)9Q+cs(xD^S_GsmpWhq9#NZ?LI&1U%4?CW*PGx8~n>WL{`rW*H3v7~f85}qm z8>Vdf<`>SM5p;{MBu)20o#msQZL%S@A;}IOyQ3KYO}*L8UB z*=#m=?`hkXG)?i|qm)7jfiZ^r{Z5i)8F`+w+wGoQhGD=tM@-VTEqR{PG!4!?j-Sr$Y3AWvlv(X@`2)X4)02y3We4W>vNW*YX>1L3h?pz_ PbRC1ItDnm{r-UW|aA!_` literal 0 HcmV?d00001 From 6710370f81d524e77e23503f258dfea62319b750 Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 10 Jun 2023 16:06:53 +0200 Subject: [PATCH 059/109] more capacitors, rail stuff --- changelog | 12 +- .../java/com/hbm/blocks/BlockDummyable.java | 12 +- src/main/java/com/hbm/blocks/ModBlocks.java | 6 + .../hbm/blocks/machine/MachineCapacitor.java | 33 +- .../blocks/machine/MachineCapacitorBus.java | 11 +- .../hbm/blocks/rail/RailStandardCurve.java | 6 +- .../com/hbm/blocks/rail/RailStandardRamp.java | 9 +- .../hbm/blocks/rail/RailStandardStraight.java | 4 +- .../hbm/entity/train/EntityRailCarBase.java | 18 +- .../entity/train/EntityRailCarRidable.java | 3 + .../java/com/hbm/main/CraftingManager.java | 5 + .../com/hbm/main/ModEventHandlerClient.java | 25 +- .../entity/item/RenderTrainCargoTram.java | 6 +- .../item/RenderTrainCargoTramTrailer.java | 19 +- .../machine/TileEntityMachineTurbofan.java | 4 +- .../hbm/world/gen/component/Component.java | 1 - src/main/resources/assets/hbm/lang/de_DE.lang | 6 + src/main/resources/assets/hbm/lang/en_US.lang | 6 + .../hbm/models/blocks/rail_standard_ramp.obj | 486 ++++++++++++++++-- .../blocks/capacitor_niobium_bottom.png | Bin 0 -> 550 bytes .../blocks/capacitor_niobium_inner_side.png | Bin 0 -> 187 bytes .../blocks/capacitor_niobium_inner_top.png | Bin 0 -> 280 bytes .../blocks/capacitor_niobium_side.png | Bin 0 -> 378 bytes .../textures/blocks/capacitor_niobium_top.png | Bin 0 -> 226 bytes .../blocks/capacitor_tantalium_bottom.png | Bin 0 -> 555 bytes .../blocks/capacitor_tantalium_inner_side.png | Bin 0 -> 174 bytes .../blocks/capacitor_tantalium_inner_top.png | Bin 0 -> 272 bytes .../blocks/capacitor_tantalium_side.png | Bin 0 -> 327 bytes .../blocks/capacitor_tantalium_top.png | Bin 0 -> 182 bytes 29 files changed, 580 insertions(+), 92 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_niobium_bottom.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_niobium_inner_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_niobium_inner_top.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_niobium_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_niobium_top.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_tantalium_bottom.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_tantalium_inner_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_tantalium_inner_top.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_tantalium_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_tantalium_top.png diff --git a/changelog b/changelog index 5060b78ac..99abe8ebc 100644 --- a/changelog +++ b/changelog @@ -6,12 +6,22 @@ * Mustard gas * Euphemium capacitor * Used for schrabidium transmutation, has infinite durability +* Capacitor blocks + * Like batteries without GUIs that are constantly in input/output mode + * Input is on the top of the capacitor block, for output the capacitor has to be placed onto a capaictor bus + * Capacitor buses have one side for the output, multiple buses can be chained up given they are placed in a straight line + * Incentivizes splitting the power grid, looping the output back into the input will yield the same weirdness as combining multiple IO energy storage blocks +* Desh bullet stamps + * Like regular bullets stamps but with infinite durability ## Changed * Updated russian localization * Mist now spawns cloud particles with the correct color instead of standard white * HE artillery shells and rockets now turn blocks into slag +* The old static bunker structure has been removed and replaced with dynamically generated ones, using the same style of generation as vanilla strongholds. ## Fixed * Fixed the TOXIC trait not respecting protection when applying potion effects -* Fixed some armor recipes only accepting polymer and not bakelite \ No newline at end of file +* Fixed some armor recipes only accepting polymer and not bakelite +* Fixed turbofans not sucking in players +* Fixed NTM skybox not applying to superflat worlds \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/BlockDummyable.java b/src/main/java/com/hbm/blocks/BlockDummyable.java index 3c1869089..4d7b35b2e 100644 --- a/src/main/java/com/hbm/blocks/BlockDummyable.java +++ b/src/main/java/com/hbm/blocks/BlockDummyable.java @@ -490,12 +490,10 @@ public abstract class BlockDummyable extends BlockContainer implements ICustomBl int[] pos = this.findCore(world, x, y, z); if(pos == null) return; - TileEntity tile = world.getTileEntity(pos[0], pos[1], pos[2]); - if(tile == null) return; - x = tile.xCoord; - y = tile.yCoord; - z = tile.zCoord; + x = pos[0]; + y = pos[1]; + z = pos[2]; EntityPlayer player = event.player; float interp = event.partialTicks; @@ -503,9 +501,11 @@ public abstract class BlockDummyable extends BlockContainer implements ICustomBl double dY = player.lastTickPosY + (player.posY - player.lastTickPosY) * (double) interp; double dZ = player.lastTickPosZ + (player.posZ - player.lastTickPosZ) * (double)interp; float exp = 0.002F; + + int meta = world.getBlockMetadata(x, y, z); ICustomBlockHighlight.setup(); - for(AxisAlignedBB aabb : this.bounding) event.context.drawOutlinedBoundingBox(getAABBRotationOffset(aabb.expand(exp, exp, exp), 0, 0, 0, ForgeDirection.getOrientation(tile.getBlockMetadata() - offset).getRotation(ForgeDirection.UP)).getOffsetBoundingBox(x - dX + 0.5, y - dY, z - dZ + 0.5), -1); + for(AxisAlignedBB aabb : this.bounding) event.context.drawOutlinedBoundingBox(getAABBRotationOffset(aabb.expand(exp, exp, exp), 0, 0, 0, ForgeDirection.getOrientation(meta - offset).getRotation(ForgeDirection.UP)).getOffsetBoundingBox(x - dX + 0.5, y - dY, z - dZ + 0.5), -1); ICustomBlockHighlight.cleanup(); } } diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index da8ec07e3..1a9438c41 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -760,6 +760,8 @@ public class ModBlocks { public static Block capacitor_bus; public static Block capacitor_copper; public static Block capacitor_gold; + public static Block capacitor_niobium; + public static Block capacitor_tantalium; public static Block machine_coal_off; public static Block machine_coal_on; @@ -1886,6 +1888,8 @@ public class ModBlocks { capacitor_bus = new MachineCapacitorBus(Material.iron).setBlockName("capacitor_bus").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); capacitor_copper = new MachineCapacitor(Material.iron, 1_000_000L, "copper").setBlockName("capacitor_copper").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_copper"); capacitor_gold = new MachineCapacitor(Material.iron, 5_000_000L, "gold").setBlockName("capacitor_gold").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName("gold_block"); + capacitor_niobium = new MachineCapacitor(Material.iron, 25_000_000L, "niobium").setBlockName("capacitor_niobium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_niobium"); + capacitor_tantalium = new MachineCapacitor(Material.iron, 100_000_000L, "tantalium").setBlockName("capacitor_tantalium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_tantalium"); machine_coal_off = new MachineCoal(false).setBlockName("machine_coal_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_coal_on = new MachineCoal(true).setBlockName("machine_coal_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); @@ -3203,6 +3207,8 @@ public class ModBlocks { register(capacitor_bus); register(capacitor_copper); register(capacitor_gold); + register(capacitor_niobium); + register(capacitor_tantalium); GameRegistry.registerBlock(machine_transformer, machine_transformer.getUnlocalizedName()); GameRegistry.registerBlock(machine_transformer_20, machine_transformer_20.getUnlocalizedName()); GameRegistry.registerBlock(machine_transformer_dnt, machine_transformer_dnt.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java b/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java index 64a76e113..be083f6e3 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java @@ -3,8 +3,11 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import org.lwjgl.input.Keyboard; + import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.IPersistentInfoProvider; +import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ModBlocks; import com.hbm.lib.RefStrings; import com.hbm.tileentity.INBTPacketReceiver; @@ -33,7 +36,7 @@ import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; import net.minecraftforge.common.util.ForgeDirection; -public class MachineCapacitor extends BlockContainer implements ILookOverlay, IPersistentInfoProvider { +public class MachineCapacitor extends BlockContainer implements ILookOverlay, IPersistentInfoProvider, ITooltipProvider { @SideOnly(Side.CLIENT) public IIcon iconTop; @SideOnly(Side.CLIENT) public IIcon iconSide; @@ -93,6 +96,8 @@ public class MachineCapacitor extends BlockContainer implements ILookOverlay, IP int charge = (int) Math.floor(percent * 10_000D); int color = ((int) (0xFF - 0xFF * percent)) << 16 | ((int)(0xFF * percent) << 8); text.add("&[" + color + "&]" + (charge / 100D) + "%"); + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + "+" + BobMathUtil.getShortNumber(battery.powerReceived) + "HE/t"); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + "-" + BobMathUtil.getShortNumber(battery.powerSent) + "HE/t"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } @@ -101,6 +106,18 @@ public class MachineCapacitor extends BlockContainer implements ILookOverlay, IP public void addInformation(ItemStack stack, NBTTagCompound persistentTag, EntityPlayer player, List list, boolean ext) { list.add(EnumChatFormatting.YELLOW + "" + BobMathUtil.getShortNumber(persistentTag.getLong("power")) + "/" + BobMathUtil.getShortNumber(persistentTag.getLong("maxPower")) + "HE"); } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + + if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { + for(String s : I18nUtil.resolveKeyArray("tile.capacitor.desc")) list.add(EnumChatFormatting.YELLOW + s); + } else { + list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" + + EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" + + EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "> to display more info"); + } + } @Override public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { @@ -132,6 +149,9 @@ public class MachineCapacitor extends BlockContainer implements ILookOverlay, IP public long power; protected long maxPower; + public long prevPower; + public long powerReceived; + public long powerSent; public TileEntityCapacitor() { } @@ -143,6 +163,8 @@ public class MachineCapacitor extends BlockContainer implements ILookOverlay, IP public void updateEntity() { if(!worldObj.isRemote) { + + long gain = power - prevPower; ForgeDirection opp = ForgeDirection.getOrientation(this.getBlockMetadata()); ForgeDirection dir = opp.getOpposite(); @@ -165,23 +187,32 @@ public class MachineCapacitor extends BlockContainer implements ILookOverlay, IP pos = pos.offset(current); } + long preSend = power; if(pos != null && last != null) { this.tryUnsubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ()); this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), last); } + long sent = preSend - power; this.trySubscribe(worldObj, xCoord + opp.offsetX, yCoord+ opp.offsetY, zCoord + opp.offsetZ, opp); NBTTagCompound data = new NBTTagCompound(); data.setLong("power", power); data.setLong("maxPower", maxPower); + data.setLong("rec", gain); + data.setLong("sent", sent); INBTPacketReceiver.networkPack(this, data, 15); + + this.prevPower = power; } } @Override public void networkUnpack(NBTTagCompound nbt) { this.power = nbt.getLong("power"); + this.maxPower = nbt.getLong("maxPower"); + this.powerReceived = nbt.getLong("rec"); + this.powerSent = nbt.getLong("sent"); } @Override diff --git a/src/main/java/com/hbm/blocks/machine/MachineCapacitorBus.java b/src/main/java/com/hbm/blocks/machine/MachineCapacitorBus.java index 8ed5b2ed1..fa7aa8dbe 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCapacitorBus.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCapacitorBus.java @@ -1,5 +1,8 @@ package com.hbm.blocks.machine; +import java.util.List; + +import com.hbm.blocks.ITooltipProvider; import com.hbm.lib.RefStrings; import api.hbm.energy.IEnergyConnectorBlock; @@ -10,13 +13,14 @@ import net.minecraft.block.BlockPistonBase; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class MachineCapacitorBus extends Block implements IEnergyConnectorBlock { +public class MachineCapacitorBus extends Block implements IEnergyConnectorBlock, ITooltipProvider { @SideOnly(Side.CLIENT) private IIcon topIcon; @@ -47,4 +51,9 @@ public class MachineCapacitorBus extends Block implements IEnergyConnectorBlock ForgeDirection busDir = ForgeDirection.getOrientation(meta); return dir == busDir; } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } } diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java b/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java index 49394f6a8..bc3401b04 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java @@ -100,7 +100,7 @@ public class RailStandardCurve extends BlockDummyable implements IRailNTM { moveAngle -= angleOvershoot; double lengthOvershoot = angleOvershoot * length90Deg / 90D; info.dist(lengthOvershoot * Math.signum(speed * angularChange)).pos(new BlockPos(cX - dir.offsetX * 4 + rot.offsetX * 5, y, cZ - dir.offsetZ * 4 + rot.offsetZ * 5)).yaw((float) moveAngle); - return Vec3.createVectorHelper(axisX - dir.offsetX * turnRadius, y, axisZ - dir.offsetZ * turnRadius); + return Vec3.createVectorHelper(axisX - dir.offsetX * turnRadius, y + 0.1875, axisZ - dir.offsetZ * turnRadius); } if(effAngle < 0) { @@ -108,13 +108,13 @@ public class RailStandardCurve extends BlockDummyable implements IRailNTM { moveAngle -= angleOvershoot; double lengthOvershoot = angleOvershoot * length90Deg / 90D; info.dist(-lengthOvershoot * Math.signum(speed * angularChange)).pos(new BlockPos(cX + dir.offsetX , y, cZ + dir.offsetZ)).yaw((float) moveAngle); - return Vec3.createVectorHelper(axisX - rot.offsetX * turnRadius, y, axisZ -rot.offsetZ * turnRadius); + return Vec3.createVectorHelper(axisX - rot.offsetX * turnRadius, y + 0.1875, axisZ -rot.offsetZ * turnRadius); } double radianChange = angularChange * Math.PI / 180D; dist.rotateAroundY((float) radianChange); - return Vec3.createVectorHelper(axisX + dist.xCoord, y, axisZ + dist.zCoord); + return Vec3.createVectorHelper(axisX + dist.xCoord, y + 0.1875, axisZ + dist.zCoord); } @Override diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java b/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java index d8cd3fdff..d6911418c 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java @@ -19,6 +19,11 @@ public class RailStandardRamp extends BlockDummyable implements IRailNTM { public RailStandardRamp() { super(Material.iron); + this.bounding.add(AxisAlignedBB.getBoundingBox(-2.5, 0.0, -1.5, -1.5, 0.1, 0.5)); + this.bounding.add(AxisAlignedBB.getBoundingBox(-1.5, 0.0, -1.5, -0.5, 0.3, 0.5)); + this.bounding.add(AxisAlignedBB.getBoundingBox(-0.5, 0.0, -1.5, 0.5, 0.5, 0.5)); + this.bounding.add(AxisAlignedBB.getBoundingBox(0.5, 0.0, -1.5, 1.5, 0.7, 0.5)); + this.bounding.add(AxisAlignedBB.getBoundingBox(1.5, 0.0, -1.5, 2.5, 0.9, 0.5)); } @Override @@ -92,7 +97,7 @@ public class RailStandardRamp extends BlockDummyable implements IRailNTM { } double dist = (cX + 0.5 - targetX + 2.5) / 5; vec.xCoord = MathHelper.clamp_double(targetX, cX - 2, cX + 3); - vec.yCoord = MathHelper.clamp_double(dir == Library.POS_X ? cY + dist : cY + 1 - dist, cY, cY + 1); + vec.yCoord = MathHelper.clamp_double(dir == Library.POS_X ? cY + dist : cY + 1 - dist, cY, cY + 1) + 0.1875; vec.zCoord = cZ + 0.5 + rot.offsetZ * 0.5; info.dist(Math.abs(targetX - vec.xCoord) * Math.signum(speed)); info.pos(new BlockPos(cX + (motionX * speed > 0 ? 3 : -3), cY + (motionX * speed > 0 ^ dir == Library.POS_X ? 1 : 0), cZ)); @@ -107,7 +112,7 @@ public class RailStandardRamp extends BlockDummyable implements IRailNTM { } double dist = (cZ + 0.5 - targetZ + 2.5) / 5; vec.xCoord = cX + 0.5 + rot.offsetX * 0.5; - vec.yCoord = MathHelper.clamp_double(dir == Library.POS_Z ? cY + dist : cY + 1 - dist, cY, cY + 1); + vec.yCoord = MathHelper.clamp_double(dir == Library.POS_Z ? cY + dist : cY + 1 - dist, cY, cY + 1) + 0.1875; vec.zCoord = MathHelper.clamp_double(targetZ, cZ - 2,cZ + 3); info.dist(Math.abs(targetZ - vec.zCoord) * Math.signum(speed)); info.pos(new BlockPos(cX, cY + (motionZ * speed > 0 ^ dir == Library.POS_Z ? 1 : 0), cZ + (motionZ * speed > 0 ? 3 : -3))); diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java b/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java index 72c4be7b5..b68aedd68 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java @@ -90,7 +90,7 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM { info.yaw(90F); } vec.xCoord = MathHelper.clamp_double(targetX, cX - 2, cX + 3); - vec.yCoord = y; + vec.yCoord = y + 0.1875; vec.zCoord = cZ + 0.5 + rot.offsetZ * 0.5; info.dist(Math.abs(targetX - vec.xCoord) * Math.signum(speed)); info.pos(new BlockPos(cX + (motionX * speed > 0 ? 3 : -3), y, cZ)); @@ -104,7 +104,7 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM { info.yaw(180F); } vec.xCoord = cX + 0.5 + rot.offsetX * 0.5; - vec.yCoord = y; + vec.yCoord = y + 0.1875; vec.zCoord = MathHelper.clamp_double(targetZ, cZ - 2,cZ + 3); info.dist(Math.abs(targetZ - vec.zCoord) * Math.signum(speed)); info.pos(new BlockPos(cX, y, cZ + (motionZ * speed > 0 ? 3 : -3))); diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index 7b39c014b..2f0a97813 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -47,6 +47,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { private double trainYaw; private double trainPitch; private float movementYaw; + private float movementPitch; @SideOnly(Side.CLIENT) private double velocityX; @SideOnly(Side.CLIENT) private double velocityY; @SideOnly(Side.CLIENT) private double velocityZ; @@ -179,6 +180,9 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { } } else { + + PacketDispatcher.wrapper.sendToAllAround(new PlayerInformPacket(ChatBuilder.start("" + this.rotationPitch).color(EnumChatFormatting.RED).flush(), 1), + new TargetPoint(dimension, posX, posY + 1, posZ, 50)); if(this.coupledFront != null && this.coupledFront.isDead) { this.coupledFront = null; @@ -393,11 +397,13 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { this.motionY = this.velocityY; this.motionZ = this.velocityZ; this.trainYaw = this.movementYaw; + this.trainPitch = this.movementPitch; } @SideOnly(Side.CLIENT) public void setVelocity(double mX, double mY, double mZ) { this.movementYaw = (float) this.motionX * 360F; + this.movementPitch = (float) this.motionY * 360F; this.velocityX = this.motionX = mX; this.velocityY = this.motionY = mY; this.velocityZ = this.motionZ = mZ; @@ -614,7 +620,8 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { Vec3 nextLoc = moving.getCouplingPos(nextCouple); Vec3 delta = Vec3.createVectorHelper(prevLoc.xCoord - nextLoc.xCoord, 0, prevLoc.zCoord - nextLoc.zCoord); double len = delta.lengthVector(); - len *= 0.75; //suspension, causes movements to be less rigid + //len *= 0.25; //suspension, causes movements to be less rigid + len = (len / (0.5D / (len * len) + 1D)); //smart suspension BlockPos anchor = new BlockPos(moving.posX, moving.posY, moving.posZ); Vec3 trainPos = Vec3.createVectorHelper(moving.posX, moving.posY, moving.posZ); float yaw = EntityRailCarBase.generateYaw(prevLoc, nextLoc); @@ -740,15 +747,13 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { EntityRailCarBase first = this.trains[0]; - for(int i = forward ? 0 : this.trains.length - 1; forward ? i < this.trains.length : i >= 0; i += forward ? 1 : -1) { + for(int i = !forward ? 0 : this.trains.length - 1; !forward ? i < this.trains.length : i >= 0; i += !forward ? 1 : -1) { EntityRailCarBase current = this.trains[i]; if(previous == null) { - PacketDispatcher.wrapper.sendToAllAround(new PlayerInformPacket(ChatBuilder.start("" + current.getClass() + " " + origSpeed).color(EnumChatFormatting.RED).flush(), 1), - new TargetPoint(current.dimension, current.posX, current.posY + 1, current.posZ, 50)); boolean inReverse = first.getCouplingFrom(null) == current.getCouplingFrom(null); - int sigNum = inReverse ? -1 : 1; + int sigNum = inReverse ? 1 : -1; BlockPos anchor = current.getCurrentAnchorPos(); Vec3 corePos = current.getRelPosAlongRail(anchor, speed * sigNum, new MoveContext(RailCheckType.CORE)); @@ -786,7 +791,10 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { current.renderZ = (frontPos.zCoord + backPos.zCoord) / 2D; current.prevRotationYaw = current.rotationYaw; current.rotationYaw = current.movementYaw = generateYaw(frontPos, backPos); + Vec3 delta = Vec3.createVectorHelper(frontPos.xCoord - backPos.xCoord, frontPos.yCoord - backPos.yCoord, frontPos.zCoord - backPos.zCoord); + current.rotationPitch = current.movementPitch = (float) (Math.asin(delta.yCoord / delta.lengthVector()) * 180D / Math.PI); current.motionX = current.rotationYaw / 360D; // hijacking this crap for easy syncing + current.motionY = current.rotationPitch / 360D; current.velocityChanged = true; } } diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java index b7ae2784a..da9a66f4e 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java @@ -173,6 +173,7 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { seat.setDead(); } else { Vec3 rot = seats[i]; + rot.rotateAroundX((float) (this.rotationPitch * Math.PI / 180)); rot.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); double x = renderX + rot.xCoord; double y = renderY + rot.yCoord; @@ -188,6 +189,7 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { public void updateRiderPosition() { Vec3 offset = getRiderSeatPosition(); + offset.rotateAroundX((float) (this.rotationPitch * Math.PI / 180)); offset.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); if(this.riddenByEntity != null) { @@ -271,6 +273,7 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { //mmhmhmhm silky smooth int index = this.dataWatcher.getWatchableObjectInt(4); Vec3 rot = this.train.getPassengerSeats()[index]; + rot.rotateAroundX((float) (train.rotationPitch * Math.PI / 180)); rot.rotateAroundY((float) (-train.rotationYaw * Math.PI / 180)); double x = train.renderX + rot.xCoord; double y = train.renderY + rot.yCoord; diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 0e1c20035..29b6606ed 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -281,6 +281,11 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.red_connector, 4), new Object[] { "C", "I", "S", 'C', ModItems.coil_copper, 'I', ModItems.plate_polymer, 'S', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.red_pylon, 4), new Object[] { "CWC", "PWP", " T ", 'C', ModItems.coil_copper, 'W', KEY_PLANKS, 'P', ModItems.plate_polymer, 'T', ModBlocks.red_wire_coated }); addRecipeAuto(new ItemStack(ModBlocks.machine_battery_potato, 1), new Object[] { "PCP", "WRW", "PCP", 'P', ItemBattery.getEmptyBattery(ModItems.battery_potato), 'C', CU.ingot(), 'R', REDSTONE.block(), 'W', KEY_PLANKS }); + addRecipeAuto(new ItemStack(ModBlocks.capacitor_bus, 1), new Object[] { "PIP", "PIP", "PIP", 'P', ModItems.plate_polymer, 'I', MINGRADE.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.capacitor_copper, 1), new Object[] { "PPP", "PCP", "WWW", 'P', STEEL.plate(), 'C', CU.block(), 'W', KEY_PLANKS }); + addRecipeAuto(new ItemStack(ModBlocks.capacitor_gold, 1), new Object[] { "PPP", "ICI", "WWW", 'P', STEEL.plate(), 'I', ANY_PLASTIC.ingot(), 'C', GOLD.block(), 'W', STEEL.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.capacitor_niobium, 1), new Object[] { "PPP", "ICI", "WWW", 'P', STEEL.plate(), 'I', RUBBER.ingot(), 'C', NB.block(), 'W', STEEL.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.capacitor_tantalium, 1), new Object[] { "PPP", "ICI", "WWW", 'P', STEEL.plate(), 'I', ANY_RESISTANTALLOY.ingot(), 'C', TA.block(), 'W', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.machine_coal_off, 1), new Object[] { "STS", "SCS", "SFS", 'S', STEEL.ingot(), 'T', ModItems.tank_steel, 'C', MINGRADE.ingot(), 'F', Blocks.furnace }); addRecipeAuto(new ItemStack(ModBlocks.machine_boiler_off, 1), new Object[] { "SPS", "TFT", "SPS", 'S', STEEL.ingot(), 'P', ModItems.board_copper, 'T', ModItems.tank_steel, 'F', Blocks.furnace }); addRecipeAuto(new ItemStack(ModBlocks.machine_boiler_electric_off, 1), new Object[] { "SPS", "TFT", "SPS", 'S', DESH.ingot(), 'P', ModItems.board_copper, 'T', ModItems.tank_steel, 'F', ModBlocks.machine_electric_furnace_off }); diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 31ef5a08e..3a7624b0b 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -13,10 +13,6 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockAshes; -import com.hbm.blocks.rail.IRailNTM; -import com.hbm.blocks.rail.IRailNTM.MoveContext; -import com.hbm.blocks.rail.IRailNTM.RailCheckType; -import com.hbm.blocks.rail.IRailNTM.RailContext; import com.hbm.config.GeneralConfig; import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.mob.EntityHunterChopper; @@ -70,7 +66,6 @@ import com.hbm.tileentity.machine.TileEntityNukeFurnace; import com.hbm.util.I18nUtil; import com.hbm.util.ItemStackUtil; import com.hbm.util.LoggingUtil; -import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.wiaj.GuiWorldInAJar; import com.hbm.wiaj.cannery.CanneryBase; import com.hbm.wiaj.cannery.Jars; @@ -953,22 +948,26 @@ public class ModEventHandlerClient { if(event.phase == Phase.START && GeneralConfig.enableSkyboxes) { World world = Minecraft.getMinecraft().theWorld; + if(world == null) return; - if(world != null && world.provider instanceof WorldProviderSurface) { - - IRenderHandler sky = world.provider.getSkyRenderer(); + IRenderHandler sky = world.provider.getSkyRenderer(); + + if(world.provider instanceof WorldProviderSurface) { if(ImpactWorldHandler.getDustForClient(world) > 0 || ImpactWorldHandler.getFireForClient(world) > 0) { //using a chainloader isn't necessary since none of the sky effects should render anyway if(!(sky instanceof RenderNTMSkyboxImpact)) { world.provider.setSkyRenderer(new RenderNTMSkyboxImpact()); + return; } - } else { - - if(!(sky instanceof RenderNTMSkyboxChainloader)) { - world.provider.setSkyRenderer(new RenderNTMSkyboxChainloader(sky)); - } + } + } + + if(world.provider.dimensionId == 0) { + + if(!(sky instanceof RenderNTMSkyboxChainloader)) { + world.provider.setSkyRenderer(new RenderNTMSkyboxChainloader(sky)); } } } diff --git a/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java b/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java index 7f50e2bef..93cb9cf29 100644 --- a/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java +++ b/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java @@ -37,7 +37,11 @@ public class RenderTrainCargoTram extends Render { float yawInterp = prevYaw + (yaw - prevYaw) * interp - 720; GL11.glRotated(-yawInterp, 0, 1, 0); - GL11.glRotated(-entity.rotationPitch, 0, 0, 1); + + float pitch = entity.rotationPitch; + float prevPitch = entity.prevRotationPitch; + float pitchInterp = prevPitch + (pitch - prevPitch) * interp; + GL11.glRotated(-pitchInterp, 1, 0, 0); GL11.glDisable(GL11.GL_CULL_FACE); bindTexture(ResourceManager.train_tram); diff --git a/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTramTrailer.java b/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTramTrailer.java index 58d150ea8..867a396ba 100644 --- a/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTramTrailer.java +++ b/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTramTrailer.java @@ -3,6 +3,7 @@ package com.hbm.render.entity.item; import org.lwjgl.opengl.GL11; import com.hbm.blocks.ModBlocks; +import com.hbm.entity.train.EntityRailCarBase; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.entity.Render; @@ -18,6 +19,18 @@ public class RenderTrainCargoTramTrailer extends Render { @Override public void doRender(Entity entity, double x, double y, double z, float swing, float interp) { GL11.glPushMatrix(); + + EntityRailCarBase train = (EntityRailCarBase) entity; + double iX = train.prevPosX + (train.posX - train.prevPosX) * interp; + double iY = train.prevPosY + (train.posY - train.prevPosY) * interp; + double iZ = train.prevPosZ + (train.posZ - train.prevPosZ) * interp; + double rX = train.lastRenderX + (train.renderX - train.lastRenderX) * interp; + double rY = train.lastRenderY + (train.renderY - train.lastRenderY) * interp; + double rZ = train.lastRenderZ + (train.renderZ - train.lastRenderZ) * interp; + x -= iX - rX; + y -= iY - rY; + z -= iZ - rZ; + GL11.glTranslated(x, y, z); float yaw = entity.rotationYaw; @@ -29,7 +42,11 @@ public class RenderTrainCargoTramTrailer extends Render { float yawInterp = prevYaw + (yaw - prevYaw) * interp - 720; GL11.glRotated(-yawInterp, 0, 1, 0); - GL11.glRotated(-entity.rotationPitch, 0, 0, 1); + + float pitch = entity.rotationPitch; + float prevPitch = entity.prevRotationPitch; + float pitchInterp = prevPitch + (pitch - prevPitch) * interp; + GL11.glRotated(-pitchInterp, 1, 0, 0); GL11.glDisable(GL11.GL_CULL_FACE); bindTexture(ResourceManager.tram_trailer); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java index 4610b5216..613032cb6 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java @@ -326,9 +326,9 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements * Otherwise this could lead to desync since the motion is never sent form the server */ if(tank.getFill() > 0 && !MainRegistry.proxy.me().capabilities.isCreativeMode) { - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10).getRotation(ForgeDirection.UP); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - + double minX = this.xCoord + 0.5 - dir.offsetX * 3.5 - rot.offsetX * 1.5; double maxX = this.xCoord + 0.5 - dir.offsetX * 19.5 + rot.offsetX * 1.5; double minZ = this.zCoord + 0.5 - dir.offsetZ * 3.5 - rot.offsetZ * 1.5; diff --git a/src/main/java/com/hbm/world/gen/component/Component.java b/src/main/java/com/hbm/world/gen/component/Component.java index 73a1ce5f8..9757ab534 100644 --- a/src/main/java/com/hbm/world/gen/component/Component.java +++ b/src/main/java/com/hbm/world/gen/component/Component.java @@ -16,7 +16,6 @@ import net.minecraft.block.BlockWeb; import net.minecraft.block.material.Material; import net.minecraft.init.Blocks; import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemDoor; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 6d02868f9..a717921bf 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -3586,6 +3586,12 @@ tile.c4.name=C4 tile.cable_detector.name=Redstone-Stromschalter tile.cable_diode.name=Rote Kupferdiode tile.cable_switch.name=Stromschalter +tile.capacitor_bus.name=Kondensator-Bus +tile.capacitor_bus.desc=Output für Kondensatoren$Kann in einer geraden Linie aneinandergereit werden +tile.capacitor_copper.name=Kupferkondensator +tile.capacitor_gold.name=Goldkondensator +tile.capacitor_niobium.name=Niobkondensator +tile.capacitor.desc=Input: Oben$Output: Unten, über Kondensator-Bus tile.charge_c4.name=Abrissladung tile.charge_dynamite.name=Zeitbombe tile.charge_miner.name=Bergbauladung mit Zeitzünder diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index a0519159d..f8ad73e4a 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -4404,6 +4404,12 @@ tile.c4.name=C-4 tile.cable_detector.name=Redstone Power Switch tile.cable_diode.name=Red Copper Diode tile.cable_switch.name=Power Switch +tile.capacitor_bus.name=Capacitor Bus +tile.capacitor_bus.desc=Output block for capacitors$Can be chained up in a straight line +tile.capacitor_copper.name=Copper Capacitor +tile.capacitor_gold.name=Golden Capacitor +tile.capacitor_niobium.name=Niobium Capacitor +tile.capacitor.desc=Input: Top$Output: Bottom, via Capacitor Bus tile.charge_c4.name=Demolition Charge tile.charge_dynamite.name=Time Bomb tile.charge_miner.name=Timed Mining Charge diff --git a/src/main/resources/assets/hbm/models/blocks/rail_standard_ramp.obj b/src/main/resources/assets/hbm/models/blocks/rail_standard_ramp.obj index 2dec4fc8c..f1667d19b 100644 --- a/src/main/resources/assets/hbm/models/blocks/rail_standard_ramp.obj +++ b/src/main/resources/assets/hbm/models/blocks/rail_standard_ramp.obj @@ -13,10 +13,10 @@ v -1.000000 0.700000 -0.812500 v 1.000000 0.700000 -0.812500 v -1.000000 0.700000 -1.187500 v 1.000000 0.700000 -1.187500 -v -1.000000 0.800000 -1.812500 -v 1.000000 0.800000 -1.812500 -v -1.000000 0.800000 -2.187500 -v 1.000000 0.800000 -2.187500 +v -1.000000 0.900000 -1.812500 +v 1.000000 0.900000 -1.812500 +v -1.000000 0.900000 -2.187500 +v 1.000000 0.900000 -2.187500 v -1.000000 0.100000 2.187500 v 1.000000 0.100000 2.187500 v -1.000000 0.100000 1.812500 @@ -29,10 +29,10 @@ v -1.000000 0.762500 -1.187500 v -1.000000 0.762500 -0.812500 v 1.000000 0.762500 -0.812500 v 1.000000 0.762500 -1.187500 -v -1.000000 0.862500 -2.187500 -v -1.000000 0.862500 -1.812500 -v 1.000000 0.862500 -1.812500 -v 1.000000 0.862500 -2.187500 +v -1.000000 0.962500 -2.187500 +v -1.000000 0.962500 -1.812500 +v 1.000000 0.962500 -1.812500 +v 1.000000 0.962500 -2.187500 v -1.000000 0.162500 1.812500 v -1.000000 0.162500 2.187500 v 1.000000 0.162500 2.187500 @@ -121,22 +121,22 @@ v -0.937500 0.825000 -0.937500 v -0.625000 0.825000 -0.937500 v -0.937500 0.825000 -1.062500 v -0.625000 0.825000 -1.062500 -v 0.625000 0.862500 -1.937500 -v 0.937500 0.862500 -1.937500 -v 0.625000 0.862500 -2.062500 -v 0.937500 0.862500 -2.062500 -v 0.625000 0.925000 -1.937500 -v 0.937500 0.925000 -1.937500 -v 0.625000 0.925000 -2.062500 -v 0.937500 0.925000 -2.062500 -v -0.937500 0.862500 -1.937500 -v -0.625000 0.862500 -1.937500 -v -0.937500 0.862500 -2.062500 -v -0.625000 0.862500 -2.062500 -v -0.937500 0.925000 -1.937500 -v -0.625000 0.925000 -1.937500 -v -0.937500 0.925000 -2.062500 -v -0.625000 0.925000 -2.062500 +v 0.625000 0.962500 -1.937500 +v 0.937500 0.962500 -1.937500 +v 0.625000 0.962500 -2.062500 +v 0.937500 0.962500 -2.062500 +v 0.625000 1.025000 -1.937500 +v 0.937500 1.025000 -1.937500 +v 0.625000 1.025000 -2.062500 +v 0.937500 1.025000 -2.062500 +v -0.937500 0.962500 -1.937500 +v -0.625000 0.962500 -1.937500 +v -0.937500 0.962500 -2.062500 +v -0.625000 0.962500 -2.062500 +v -0.937500 1.025000 -1.937500 +v -0.625000 1.025000 -1.937500 +v -0.937500 1.025000 -2.062500 +v -0.625000 1.025000 -2.062500 v -0.812500 0.862500 -1.500000 v -0.812500 0.662500 -0.500000 v -0.812500 0.462500 0.500000 @@ -169,6 +169,86 @@ v -0.750000 0.987500 -1.500000 v -0.750000 0.787500 -0.500000 v -0.750000 0.587500 0.500000 v -0.750000 0.387500 1.500000 +v 0.625000 0.900000 -1.875000 +v 0.875000 0.900000 -1.875000 +v 0.625000 0.900000 -2.125000 +v 0.875000 0.900000 -2.125000 +v 0.625000 -0.037500 -2.125000 +v 0.625000 -0.037500 -1.875000 +v 0.875000 -0.037500 -1.875000 +v 0.875000 -0.037500 -2.125000 +v -0.875000 0.900000 -1.875000 +v -0.625000 0.900000 -1.875000 +v -0.875000 0.900000 -2.125000 +v -0.625000 0.900000 -2.125000 +v -0.875000 -0.037500 -2.125000 +v -0.875000 -0.037500 -1.875000 +v -0.625000 -0.037500 -1.875000 +v -0.625000 -0.037500 -2.125000 +v 0.625000 0.700000 -0.875000 +v 0.875000 0.700000 -0.875000 +v 0.625000 0.700000 -1.125000 +v 0.875000 0.700000 -1.125000 +v 0.625000 -0.050000 -1.125000 +v 0.625000 -0.050000 -0.875000 +v 0.875000 -0.050000 -0.875000 +v 0.875000 -0.050000 -1.125000 +v -0.875000 0.700000 -0.875000 +v -0.625000 0.700000 -0.875000 +v -0.875000 0.700000 -1.125000 +v -0.625000 0.700000 -1.125000 +v -0.875000 -0.050000 -1.125000 +v -0.875000 -0.050000 -0.875000 +v -0.625000 -0.050000 -0.875000 +v -0.625000 -0.050000 -1.125000 +v 0.625000 0.500000 0.125000 +v 0.875000 0.500000 0.125000 +v 0.625000 0.500000 -0.125000 +v 0.875000 0.500000 -0.125000 +v 0.625000 0.000000 -0.125000 +v 0.625000 0.000000 0.125000 +v 0.875000 0.000000 0.125000 +v 0.875000 0.000000 -0.125000 +v -0.875000 0.500000 0.125000 +v -0.625000 0.500000 0.125000 +v -0.875000 0.500000 -0.125000 +v -0.625000 0.500000 -0.125000 +v -0.875000 0.000000 -0.125000 +v -0.875000 0.000000 0.125000 +v -0.625000 0.000000 0.125000 +v -0.625000 0.000000 -0.125000 +v 0.625000 0.300000 1.125000 +v 0.875000 0.300000 1.125000 +v 0.625000 0.300000 0.875000 +v 0.875000 0.300000 0.875000 +v 0.625000 -0.012500 0.875000 +v 0.625000 -0.012500 1.125000 +v 0.875000 -0.012500 1.125000 +v 0.875000 -0.012500 0.875000 +v -0.875000 0.300000 1.125000 +v -0.625000 0.300000 1.125000 +v -0.875000 0.300000 0.875000 +v -0.625000 0.300000 0.875000 +v -0.875000 -0.012500 0.875000 +v -0.875000 -0.012500 1.125000 +v -0.625000 -0.012500 1.125000 +v -0.625000 -0.012500 0.875000 +v 0.625000 0.100000 2.125000 +v 0.875000 0.100000 2.125000 +v 0.625000 0.100000 1.875000 +v 0.875000 0.100000 1.875000 +v 0.625000 -0.025000 1.875000 +v 0.625000 -0.025000 2.125000 +v 0.875000 -0.025000 2.125000 +v 0.875000 -0.025000 1.875000 +v -0.875000 0.100000 2.125000 +v -0.625000 0.100000 2.125000 +v -0.875000 0.100000 1.875000 +v -0.625000 0.100000 1.875000 +v -0.875000 -0.025000 1.875000 +v -0.875000 -0.025000 2.125000 +v -0.625000 -0.025000 2.125000 +v -0.625000 -0.025000 1.875000 vt -0.000000 0.000000 vt 0.187500 1.000000 vt -0.000000 1.000000 @@ -471,6 +551,156 @@ vt 0.593750 0.156250 vt 0.593750 0.656250 vt 0.593750 0.156250 vt 0.593750 0.656250 +vt 0.031250 0.968750 +vt 0.156250 0.843750 +vt 0.031250 0.843750 +vt 0.031250 0.968750 +vt 0.156250 0.843750 +vt 0.031250 0.843750 +vt 0.156250 0.468750 +vt 0.031250 0.968750 +vt 0.156250 0.968750 +vt 0.156250 0.468750 +vt 0.031250 0.968750 +vt 0.156250 0.968750 +vt 0.156250 0.468750 +vt 0.031250 0.968750 +vt 0.156250 0.968750 +vt 0.156250 0.468750 +vt 0.031250 0.968750 +vt 0.156250 0.968750 +vt 0.156250 0.468750 +vt 0.031250 0.968750 +vt 0.156250 0.968750 +vt 0.156250 0.468750 +vt 0.031250 0.968750 +vt 0.156250 0.968750 +vt 0.156250 0.468750 +vt 0.031250 0.968750 +vt 0.156250 0.968750 +vt 0.156250 0.468750 +vt 0.031250 0.968750 +vt 0.156250 0.968750 +vt 0.031250 0.968750 +vt 0.156250 0.843750 +vt 0.031250 0.843750 +vt 0.031250 0.968750 +vt 0.156250 0.843750 +vt 0.031250 0.843750 +vt 0.156250 0.468750 +vt 0.031250 0.843750 +vt 0.156250 0.843750 +vt 0.156250 0.468750 +vt 0.031250 0.843750 +vt 0.156250 0.843750 +vt 0.156250 0.468750 +vt 0.031250 0.843750 +vt 0.156250 0.843750 +vt 0.156250 0.468750 +vt 0.031250 0.843750 +vt 0.156250 0.843750 +vt 0.156250 0.468750 +vt 0.031250 0.843750 +vt 0.156250 0.843750 +vt 0.156250 0.468750 +vt 0.031250 0.843750 +vt 0.156250 0.843750 +vt 0.156250 0.468750 +vt 0.031250 0.843750 +vt 0.156250 0.843750 +vt 0.156250 0.468750 +vt 0.031250 0.843750 +vt 0.156250 0.843750 +vt 0.031250 0.968750 +vt 0.156250 0.843750 +vt 0.031250 0.843750 +vt 0.031250 0.968750 +vt 0.156250 0.843750 +vt 0.031250 0.843750 +vt 0.156250 0.468750 +vt 0.031250 0.718750 +vt 0.156250 0.718750 +vt 0.156250 0.468750 +vt 0.031250 0.718750 +vt 0.156250 0.718750 +vt 0.156250 0.468750 +vt 0.031250 0.718750 +vt 0.156250 0.718750 +vt 0.156250 0.468750 +vt 0.031250 0.718750 +vt 0.156250 0.718750 +vt 0.156250 0.468750 +vt 0.031250 0.718750 +vt 0.156250 0.718750 +vt 0.156250 0.468750 +vt 0.031250 0.718750 +vt 0.156250 0.718750 +vt 0.156250 0.468750 +vt 0.031250 0.718750 +vt 0.156250 0.718750 +vt 0.156250 0.468750 +vt 0.031250 0.718750 +vt 0.156250 0.718750 +vt 0.031250 0.968750 +vt 0.156250 0.843750 +vt 0.031250 0.843750 +vt 0.031250 0.968750 +vt 0.156250 0.843750 +vt 0.031250 0.843750 +vt 0.156250 0.468750 +vt 0.031250 0.625000 +vt 0.156250 0.625000 +vt 0.156250 0.468750 +vt 0.031250 0.625000 +vt 0.156250 0.625000 +vt 0.156250 0.468750 +vt 0.031250 0.625000 +vt 0.156250 0.625000 +vt 0.156250 0.468750 +vt 0.031250 0.625000 +vt 0.156250 0.625000 +vt 0.156250 0.468750 +vt 0.031250 0.625000 +vt 0.156250 0.625000 +vt 0.156250 0.468750 +vt 0.031250 0.625000 +vt 0.156250 0.625000 +vt 0.156250 0.468750 +vt 0.031250 0.625000 +vt 0.156250 0.625000 +vt 0.156250 0.468750 +vt 0.031250 0.625000 +vt 0.156250 0.625000 +vt 0.031250 0.968750 +vt 0.156250 0.843750 +vt 0.031250 0.843750 +vt 0.031250 0.968750 +vt 0.156250 0.843750 +vt 0.031250 0.843750 +vt 0.156250 0.468750 +vt 0.031250 0.531250 +vt 0.156250 0.531250 +vt 0.156250 0.468750 +vt 0.031250 0.531250 +vt 0.156250 0.531250 +vt 0.156250 0.468750 +vt 0.031250 0.531250 +vt 0.156250 0.531250 +vt 0.156250 0.468750 +vt 0.031250 0.531250 +vt 0.156250 0.531250 +vt 0.156250 0.468750 +vt 0.031250 0.531250 +vt 0.156250 0.531250 +vt 0.156250 0.468750 +vt 0.031250 0.531250 +vt 0.156250 0.531250 +vt 0.156250 0.468750 +vt 0.031250 0.531250 +vt 0.156250 0.531250 +vt 0.156250 0.468750 +vt 0.031250 0.531250 +vt 0.156250 0.531250 vt 0.406250 -0.000000 vt 0.187500 1.000000 vt 0.187500 1.000000 @@ -500,6 +730,56 @@ vt 0.593750 0.656250 vt 0.593750 0.656250 vt 0.593750 0.656250 vt 0.593750 0.656250 +vt 0.156250 0.968750 +vt 0.156250 0.968750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.156250 0.968750 +vt 0.156250 0.968750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.156250 0.968750 +vt 0.156250 0.968750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.156250 0.968750 +vt 0.156250 0.968750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.156250 0.968750 +vt 0.156250 0.968750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 vn 0.0000 1.0000 0.0000 vn 0.0000 -1.0000 0.0000 vn -1.0000 0.0000 0.0000 @@ -633,6 +913,56 @@ f 44/267/5 152/95/5 144/265/5 f 144/270/5 151/286/5 143/268/5 f 143/273/5 150/283/5 142/271/5 f 142/276/5 149/280/5 141/274/5 +f 181/303/2 183/304/2 182/305/2 +f 173/306/2 175/307/2 174/308/2 +f 176/309/6 171/310/6 172/311/6 +f 174/312/4 170/313/4 169/314/4 +f 175/315/5 172/316/5 170/317/5 +f 173/318/3 169/319/3 171/320/3 +f 184/321/6 179/322/6 180/323/6 +f 182/324/4 178/325/4 177/326/4 +f 183/327/5 180/328/5 178/329/5 +f 181/330/3 177/331/3 179/332/3 +f 197/333/2 199/334/2 198/335/2 +f 189/336/2 191/337/2 190/338/2 +f 192/339/6 187/340/6 188/341/6 +f 190/342/4 186/343/4 185/344/4 +f 191/345/5 188/346/5 186/347/5 +f 189/348/3 185/349/3 187/350/3 +f 200/351/6 195/352/6 196/353/6 +f 198/354/4 194/355/4 193/356/4 +f 199/357/5 196/358/5 194/359/5 +f 197/360/3 193/361/3 195/362/3 +f 213/363/2 215/364/2 214/365/2 +f 205/366/2 207/367/2 206/368/2 +f 208/369/6 203/370/6 204/371/6 +f 206/372/4 202/373/4 201/374/4 +f 207/375/5 204/376/5 202/377/5 +f 205/378/3 201/379/3 203/380/3 +f 216/381/6 211/382/6 212/383/6 +f 214/384/4 210/385/4 209/386/4 +f 215/387/5 212/388/5 210/389/5 +f 213/390/3 209/391/3 211/392/3 +f 229/393/2 231/394/2 230/395/2 +f 221/396/2 223/397/2 222/398/2 +f 224/399/6 219/400/6 220/401/6 +f 222/402/4 218/403/4 217/404/4 +f 223/405/5 220/406/5 218/407/5 +f 221/408/3 217/409/3 219/410/3 +f 232/411/6 227/412/6 228/413/6 +f 230/414/4 226/415/4 225/416/4 +f 231/417/5 228/418/5 226/419/5 +f 229/420/3 225/421/3 227/422/3 +f 245/423/2 247/424/2 246/425/2 +f 237/426/2 239/427/2 238/428/2 +f 240/429/6 235/430/6 236/431/6 +f 238/432/4 234/433/4 233/434/4 +f 239/435/5 236/436/5 234/437/5 +f 237/438/3 233/439/3 235/440/3 +f 248/441/6 243/442/6 244/443/6 +f 246/444/4 242/445/4 241/446/4 +f 247/447/5 244/448/5 242/449/5 +f 245/450/3 241/451/3 243/452/3 f 2/1/1 1/70/1 4/2/1 f 7/4/2 8/71/2 6/5/2 f 11/7/2 12/45/2 10/8/2 @@ -643,38 +973,38 @@ f 27/19/1 28/44/1 25/20/1 f 31/22/1 32/74/1 29/23/1 f 35/25/1 36/49/1 33/26/1 f 39/28/1 40/79/1 37/29/1 -f 17/31/3 34/303/3 33/32/3 -f 10/34/4 27/304/4 26/35/4 -f 18/37/4 35/305/4 34/38/4 -f 12/40/5 28/306/5 27/41/5 -f 20/42/5 36/307/5 35/43/5 +f 17/31/3 34/453/3 33/32/3 +f 10/34/4 27/454/4 26/35/4 +f 18/37/4 35/455/4 34/38/4 +f 12/40/5 28/456/5 27/41/5 +f 20/42/5 36/457/5 35/43/5 f 11/7/6 25/20/6 28/44/6 -f 5/46/3 3/308/3 4/47/3 +f 5/46/3 3/458/3 4/47/3 f 19/13/6 33/26/6 36/49/6 -f 13/51/3 30/309/3 29/52/3 -f 6/54/4 2/310/4 3/55/4 -f 21/57/3 38/311/3 37/58/3 -f 14/60/4 31/312/4 30/61/4 -f 8/63/5 1/313/5 2/64/5 -f 22/65/4 39/314/4 38/66/4 -f 16/68/5 32/315/5 31/69/5 +f 13/51/3 30/459/3 29/52/3 +f 6/54/4 2/460/4 3/55/4 +f 21/57/3 38/461/3 37/58/3 +f 14/60/4 31/462/4 30/61/4 +f 8/63/5 1/463/5 2/64/5 +f 22/65/4 39/464/4 38/66/4 +f 16/68/5 32/465/5 31/69/5 f 7/4/6 4/2/6 1/70/6 -f 24/72/5 40/316/5 39/73/5 +f 24/72/5 40/466/5 39/73/5 f 15/10/6 29/23/6 32/74/6 -f 9/76/3 26/317/3 25/77/3 +f 9/76/3 26/467/3 25/77/3 f 23/16/6 37/29/6 40/79/6 f 141/81/5 149/277/5 46/82/5 f 145/84/3 47/247/3 43/85/3 -f 153/87/3 49/318/3 51/88/3 -f 46/90/4 51/319/4 49/91/4 +f 153/87/3 49/468/3 51/88/3 +f 46/90/4 51/469/4 49/91/4 f 48/93/7 52/288/7 160/94/7 -f 42/83/8 49/320/8 153/96/8 -f 44/97/6 50/321/6 52/98/6 +f 42/83/8 49/470/8 153/96/8 +f 44/97/6 50/471/6 52/98/6 f 53/100/5 55/246/5 165/101/5 f 45/103/7 56/258/7 168/104/7 f 43/106/8 53/100/8 161/102/8 -f 47/108/6 55/322/6 53/109/6 -f 41/111/4 54/323/4 56/112/4 +f 47/108/6 55/472/6 53/109/6 +f 41/111/4 54/473/4 56/112/4 f 61/114/3 63/117/3 59/115/3 f 63/117/6 64/123/6 60/118/6 f 62/120/4 61/114/4 57/121/4 @@ -737,18 +1067,18 @@ f 164/257/5 168/104/5 56/258/5 f 163/259/5 167/255/5 168/260/5 f 162/261/5 166/252/5 167/262/5 f 161/263/5 165/249/5 166/264/5 -f 144/265/8 156/324/8 50/266/8 -f 143/268/8 155/325/8 156/269/8 -f 142/271/8 154/326/8 155/272/8 -f 141/274/8 153/327/8 154/275/8 +f 144/265/8 156/474/8 50/266/8 +f 143/268/8 155/475/8 156/269/8 +f 142/271/8 154/476/8 155/272/8 +f 141/274/8 153/477/8 154/275/8 f 149/277/7 157/89/7 51/88/7 f 150/278/7 158/294/7 157/279/7 f 151/281/7 159/292/7 158/282/7 f 152/284/7 160/290/7 159/285/7 -f 50/287/3 156/328/3 160/94/3 -f 156/289/3 155/329/3 159/285/3 -f 155/291/3 154/330/3 158/282/3 -f 154/293/3 153/331/3 157/279/3 +f 50/287/3 156/478/3 160/94/3 +f 156/289/3 155/479/3 159/285/3 +f 155/291/3 154/480/3 158/282/3 +f 154/293/3 153/481/3 157/279/3 f 45/103/3 148/105/3 140/295/3 f 148/254/3 147/256/3 139/297/3 f 147/251/3 146/253/3 138/299/3 @@ -757,3 +1087,53 @@ f 44/267/5 48/93/5 152/95/5 f 144/270/5 152/284/5 151/286/5 f 143/273/5 151/281/5 150/283/5 f 142/276/5 150/278/5 149/280/5 +f 181/303/2 184/482/2 183/304/2 +f 173/306/2 176/483/2 175/307/2 +f 176/309/6 173/484/6 171/310/6 +f 174/312/4 175/485/4 170/313/4 +f 175/315/5 176/486/5 172/316/5 +f 173/318/3 174/487/3 169/319/3 +f 184/321/6 181/488/6 179/322/6 +f 182/324/4 183/489/4 178/325/4 +f 183/327/5 184/490/5 180/328/5 +f 181/330/3 182/491/3 177/331/3 +f 197/333/2 200/492/2 199/334/2 +f 189/336/2 192/493/2 191/337/2 +f 192/339/6 189/494/6 187/340/6 +f 190/342/4 191/495/4 186/343/4 +f 191/345/5 192/496/5 188/346/5 +f 189/348/3 190/497/3 185/349/3 +f 200/351/6 197/498/6 195/352/6 +f 198/354/4 199/499/4 194/355/4 +f 199/357/5 200/500/5 196/358/5 +f 197/360/3 198/501/3 193/361/3 +f 213/363/2 216/502/2 215/364/2 +f 205/366/2 208/503/2 207/367/2 +f 208/369/6 205/504/6 203/370/6 +f 206/372/4 207/505/4 202/373/4 +f 207/375/5 208/506/5 204/376/5 +f 205/378/3 206/507/3 201/379/3 +f 216/381/6 213/508/6 211/382/6 +f 214/384/4 215/509/4 210/385/4 +f 215/387/5 216/510/5 212/388/5 +f 213/390/3 214/511/3 209/391/3 +f 229/393/2 232/512/2 231/394/2 +f 221/396/2 224/513/2 223/397/2 +f 224/399/6 221/514/6 219/400/6 +f 222/402/4 223/515/4 218/403/4 +f 223/405/5 224/516/5 220/406/5 +f 221/408/3 222/517/3 217/409/3 +f 232/411/6 229/518/6 227/412/6 +f 230/414/4 231/519/4 226/415/4 +f 231/417/5 232/520/5 228/418/5 +f 229/420/3 230/521/3 225/421/3 +f 245/423/2 248/522/2 247/424/2 +f 237/426/2 240/523/2 239/427/2 +f 240/429/6 237/524/6 235/430/6 +f 238/432/4 239/525/4 234/433/4 +f 239/435/5 240/526/5 236/436/5 +f 237/438/3 238/527/3 233/439/3 +f 248/441/6 245/528/6 243/442/6 +f 246/444/4 247/529/4 242/445/4 +f 247/447/5 248/530/5 244/448/5 +f 245/450/3 246/531/3 241/451/3 diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_niobium_bottom.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_niobium_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..63aa941787e559b859ea4c70ff59b6bd6e232473 GIT binary patch literal 550 zcmV+>0@?kEP)+-5+5HQ$hxk4etuF) z0YF5^IkWFOkB^V+`%VY}?>+mzW35Fg#W;@KZZ||kD5Wq>6Cs2KGL9pq6uPeCTz%gI z&~+UzFE4z5f1|b5h)8P&FvbvLWZ!pUj3}jeetzcf$~gm|{~q>z2cVSF?sCpd)5P_9 zy#p5!YOQGJTtih#(RE#GE~OwMEX%^}cB9rxDFtH;-g`s@y{;?97y!m`B!ob%^^WR! zR!TMCWm(v^4J{(A5JF%W21Mje?^y@%-s8Q;Ifu0tolbLA>{O^v_6j2%)(zBLAa*CbDfCK>HUdrQZ~C&OAIkG!~c3g{P+{ z0BWrmV>o>>#@w0wUrN7vthMBvndcd$6t&hyJI2`LS!)3}j^kH?*1F|?xm;TF=|zmO zv8c6DYi%Zq2;!V$97kSXU+*UFI1W-uZ7M?uOw+`=uB4Rc`~DZ?>+6eoo_T+N$2mu> owN2eQh1OcG*DKcA_WGI5Km3a=t@U7-mH+?%07*qoM6N<$f`QTZ-v9sr literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_niobium_inner_side.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_niobium_inner_side.png new file mode 100644 index 0000000000000000000000000000000000000000..a91a791a5b60b36731df7403635d09d935e97dc3 GIT binary patch literal 187 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfyU$hYy6uPI|?1l{S+!1VjPP2-#@CnQ@v2ZLidVUliHH1h1{;ahLe_*#s2wU z7g`>D`Q#h7gIq@wn7_=rd*_+AipEzKh7QYgGxlQw9gZu1Ni!Jad^c7NS5llH>mb7* z;I{lrN~KEpsorpXMh1yewv#D>>n18%erAfw-g2#C z-t<*JxlaVG)MogxFP>+E&6+|T@$@&(*#GQWai-zwb>XK>HFbS=8rJUDPGQ?Hb(Odo b^BqR<4bEC^+3AyjUSsfd^>bP0l+XkK<;H74 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_niobium_side.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_niobium_side.png new file mode 100644 index 0000000000000000000000000000000000000000..121a437c42e24f1eb35c834631bc6270f3191a6d GIT binary patch literal 378 zcmV-=0fqjFP)wWKyM_6kI{!t3RIrp`&EK8hozksv}V67EnqL?-{l<`p4wTKU6W2NG{ zuEiT*3i3$|JdY3|>-Bml%kl{_CVoqhLel#u@khWnH3~>)cFyrS&LrUV!~WWioD#?W z6hv5ShZu8AoL1aUEax1`dyg@O^ZCqtKF1itX0sXkzDG()mSspOxn8dTbX^C4_nyPy zfNGkC-EPPIeg{A)Mb~wN5Lhf0gb--k7Gn${1hm!&Ay}E|(mSN7R15=X5%;-EPUUjA0laPSIIw&E;}IYyC(FFq_Tz Y0i-$8rr{cFB>(^b07*qoM6N<$f;rlr)Bpeg literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_niobium_top.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_niobium_top.png new file mode 100644 index 0000000000000000000000000000000000000000..1a02b2e461c01c0c573dd368e7784c992bab36f5 GIT binary patch literal 226 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfc6uZH`~noyy(vukWwrlznnn=nuNa<9F^XA)1HNdo8o_Yc-S@C{;| zfAj7}x#c2jn17dByR#mzQq5dtwJ43P_)(eCJ3I3g54L)y{Nh`c__m09-=B#L1x%5l W9sm6NqHKVUWbkzLb6Mw<&;$U+vQQ8J literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_tantalium_bottom.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_tantalium_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..c8b9428758d2d2e7627387747b4c690be36523d4 GIT binary patch literal 555 zcmV+`0@VG9P)X2M5QRUWz{Ksy-bGntnVZfL<^Xe=+#yO1;iTO**kESS zV-#!HASl)2{ZQ)H??2`H`y1yRZQC-ABi?)VeMf7Ja}KRF(=-9lbsYffy7K=1j?DAS z$HxabX8=TmloH#v@%Z@2wrzwE@ZPg+8`fHsQuKY#?RG;%gq$Mz(Du#)wji=jUgBu9Ol0`sZQWHUM(Y^)98v zFbrI;*AuviP)b2N=PIgFil%95bIutNVVWjxw;QDta?TiI@ZKXL=y{$o#sJXwJs|{2 zDJQDOSt(V4r)gqY7PN@eLI{Db>kyHX-lGoSy~lfxa}H}QdR^CAj4?8fW7T@>KmAyi zrADokLU&zvqO6o6=Uo5A0ph(s(LW;9A%yC_i2O(YNMuZ87{lR{G3I3Qzm)EJthJ<+7{?K%6s43(JH}Y$S!)5<_x&zGYhCldTrRcw z@FK=oS(H*JrBo9|1aZ#M_dTz#ucwLI_nmcJ>r{pi7>0p)o>|wGwr%eqpP!$MUHx3vIVCg!05t46eEHR1;=A=0jL)mZNr@Ag3ul2G@*D^HdoMt%j zdC%6g9HtV^$1G}_1qEc4TR7T%FKk(HuHnD_E7l*jefJu^NAfX6Y%|^=`G9lVduNAj TLM3y6USjZc^>bP0l+XkKlJ#j? literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_tantalium_side.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_tantalium_side.png new file mode 100644 index 0000000000000000000000000000000000000000..ec7eb74da7722870fffbb67a6f898aaa2c53d222 GIT binary patch literal 327 zcmV-N0l5B&P)* z<*41XO_g0|<@uK9&9`WpX6KJG#-PICQB_q1@DUJnI-LYS(=@v==35`$h;SJaA6-EP zQ`fZ!!@91;PyYE0eoOvLe{O?+{0Hjg)o{677~U*tnlg?fNs_Q_8&XQ*I7UjzJkJ1R zSq6Y}j;`xa%d*h-J?pvxpp@cvyWzbj&vU%@SZhg=1n)gsYlILS4hOE+D=Nz}%Ch8m zJbs~U+lF)Q-o#o<=76I$zgLx3oX Zcn7$F-IaVTarXcK002ovPDHLkV1hABj7|Um literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_tantalium_top.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_tantalium_top.png new file mode 100644 index 0000000000000000000000000000000000000000..50d47236507763e224cafed0c15a4f2c3a0237da GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfvQHg~oS9z8;SG;x2IE$nS@y3wirZ7&&J1c%E*$xZ^h?!=h_a zNwF_B{t{|XsPvNwxe+oYXwo_LHT%wrT@JbM{N77bQIjiod!O`+PW%2Kx-~8?a>-Ni cC)tLRWxwlnsPHdL2DysC)78&qol`;+0O&qMbpQYW literal 0 HcmV?d00001 From 792a75e32416966e7990d9314df056e711715475 Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 10 Jun 2023 17:49:44 +0200 Subject: [PATCH 060/109] brick by brick, suck my di --- changelog | 4 +++- .../java/com/hbm/inventory/fluid/Fluids.java | 20 +++++++++++++++++- .../inventory/recipes/ChemplantRecipes.java | 10 +++++++++ .../hbm/inventory/recipes/CokerRecipes.java | 1 + .../inventory/recipes/CombinationRecipes.java | 2 +- .../inventory/recipes/FractionRecipes.java | 1 + .../hbm/inventory/recipes/MixerRecipes.java | 4 ++++ .../tileentity/machine/TileEntityITER.java | 2 ++ src/main/resources/assets/hbm/lang/de_DE.lang | 8 +++++++ src/main/resources/assets/hbm/lang/en_US.lang | 8 +++++++ .../textures/gui/fluids/calcium_chloride.png | Bin 0 -> 708 bytes .../gui/fluids/chlorocalcite_cleaned.png | Bin 0 -> 708 bytes .../textures/gui/fluids/chlorocalcite_mix.png | Bin 0 -> 708 bytes .../gui/fluids/chlorocalcite_solution.png | Bin 0 -> 708 bytes .../gui/fluids/potassium_chloride.png | Bin 0 -> 708 bytes .../items/chem_icon_CC_CENTRIFUGE.png | Bin 0 -> 160 bytes .../items/chem_icon_CC_ELECTROLYSIS.png | Bin 0 -> 155 bytes .../items/chem_icon_PC_ELECTROLYSIS.png | Bin 0 -> 171 bytes 18 files changed, 57 insertions(+), 3 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/calcium_chloride.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/chlorocalcite_cleaned.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/chlorocalcite_mix.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/chlorocalcite_solution.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/potassium_chloride.png create mode 100644 src/main/resources/assets/hbm/textures/items/chem_icon_CC_CENTRIFUGE.png create mode 100644 src/main/resources/assets/hbm/textures/items/chem_icon_CC_ELECTROLYSIS.png create mode 100644 src/main/resources/assets/hbm/textures/items/chem_icon_PC_ELECTROLYSIS.png diff --git a/changelog b/changelog index 99abe8ebc..697dbb496 100644 --- a/changelog +++ b/changelog @@ -19,9 +19,11 @@ * Mist now spawns cloud particles with the correct color instead of standard white * HE artillery shells and rockets now turn blocks into slag * The old static bunker structure has been removed and replaced with dynamically generated ones, using the same style of generation as vanilla strongholds. +* Changed the processing for chlorocalcite, instead of using a combination furnace it now requires a six step cleaning and electrolysis process ## Fixed * Fixed the TOXIC trait not respecting protection when applying potion effects * Fixed some armor recipes only accepting polymer and not bakelite * Fixed turbofans not sucking in players -* Fixed NTM skybox not applying to superflat worlds \ No newline at end of file +* Fixed NTM skybox not applying to superflat worlds +* Fixed breeding slot in the fusion reactor never resettingthe progress after completing an operation \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index c62591afc..6a779d673 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -134,6 +134,12 @@ public class Fluids { public static FluidType SUNFLOWEROIL; public static FluidType NITROGLYCERIN; public static FluidType REDMUD; + public static FluidType CHLOROCALCITE_SOLUTION; + public static FluidType CHLOROCALCITE_MIX; + public static FluidType CHLOROCALCITE_CLEANED; + public static FluidType POTASSIUM_CHLORIDE; + public static FluidType CALCIUM_CHLORIDE; + public static FluidType CALCIUM_SOLUTION; private static final HashMap idMapping = new HashMap(); private static final HashMap nameMapping = new HashMap(); @@ -278,7 +284,13 @@ public class Fluids { FISHOIL = new FluidType("FISHOIL", 0x4B4A45, 0, 1, 0, EnumSymbol.NONE).addTraits(LIQUID); SUNFLOWEROIL = new FluidType("SUNFLOWEROIL", 0xCBAD45, 0, 1, 0, EnumSymbol.NONE).addTraits(LIQUID); NITROGLYCERIN = new FluidType("NITROGLYCERIN", 0x92ACA6, 0, 4, 0, EnumSymbol.NONE).addTraits(LIQUID); - REDMUD = new FluidType(113, "REDMUD", 0xD85638, 3, 0, 4, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, LEADCON, new FT_Corrosive(60), new FT_Flammable(1_000)); + REDMUD = new FluidType("REDMUD", 0xD85638, 3, 0, 4, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, LEADCON, new FT_Corrosive(60), new FT_Flammable(1_000)); + CHLOROCALCITE_SOLUTION = new FluidType("CHLOROCALCITE_SOLUTION", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, NOCON, new FT_Corrosive(60)); + CHLOROCALCITE_MIX = new FluidType("CHLOROCALCITE_MIX", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, NOCON, new FT_Corrosive(60)); + CHLOROCALCITE_CLEANED = new FluidType("CHLOROCALCITE_CLEANED", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, NOCON, new FT_Corrosive(60)); + POTASSIUM_CHLORIDE = new FluidType("POTASSIUM_CHLORIDE", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, NOCON, new FT_Corrosive(60)); + CALCIUM_CHLORIDE = new FluidType("CALCIUM_CHLORIDE", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, NOCON, new FT_Corrosive(60)); + CALCIUM_SOLUTION = new FluidType(119, "CALCIUM_SOLUTION", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, NOCON, new FT_Corrosive(60)); // ^ ^ ^ ^ ^ ^ ^ ^ //ADD NEW FLUIDS HERE @@ -389,6 +401,12 @@ public class Fluids { metaOrder.add(REDMUD); metaOrder.add(EGG); metaOrder.add(CHOLESTEROL); + metaOrder.add(CHLOROCALCITE_SOLUTION); + metaOrder.add(CHLOROCALCITE_MIX); + metaOrder.add(CHLOROCALCITE_CLEANED); + metaOrder.add(POTASSIUM_CHLORIDE); + metaOrder.add(CALCIUM_CHLORIDE); + metaOrder.add(CALCIUM_SOLUTION); //solutions and working fluids metaOrder.add(FRACKSOL); //the fun guys diff --git a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java index f05689475..248073743 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java @@ -398,6 +398,16 @@ public class ChemplantRecipes extends SerializableRecipe { new OreDictStack(ANY_PLASTIC.ingot(), 1)) .inputFluids(new FluidStack(Fluids.MUSTARDGAS, 4000)) .outputItems(new ItemStack(ModItems.ammo_arty, 1, 11))); + recipes.add(new ChemRecipe(101, "CC_CENTRIFUGE", 200) + .inputFluids(new FluidStack(Fluids.CHLOROCALCITE_CLEANED, 500), new FluidStack(Fluids.WATER, 1_000)) + .outputFluids(new FluidStack(Fluids.POTASSIUM_CHLORIDE, 250), new FluidStack(Fluids.CALCIUM_CHLORIDE, 250))); + recipes.add(new ChemRecipe(102, "PC_ELECTROLYSIS", 200) + .inputFluids(new FluidStack(Fluids.POTASSIUM_CHLORIDE, 250)) + .outputItems(new ItemStack(ModItems.dust)) + .outputFluids(new FluidStack(Fluids.CHLORINE, 125))); + recipes.add(new ChemRecipe(103, "CC_ELECTROLYSIS", 200) + .inputFluids(new FluidStack(Fluids.CALCIUM_CHLORIDE, 250)) + .outputFluids(new FluidStack(Fluids.CHLORINE, 125), new FluidStack(Fluids.CALCIUM_SOLUTION, 125))); } public static void registerFuelProcessing() { diff --git a/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java b/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java index 7dad7530d..3696d82d4 100644 --- a/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java @@ -59,6 +59,7 @@ public class CokerRecipes extends SerializableRecipe { registerRecipe(REDMUD, 1_000, new ItemStack(Items.iron_ingot, 2), new FluidStack(MERCURY, 50)); registerRecipe(BITUMEN, 16_000, DictFrame.fromOne(ModItems.coke, EnumCokeType.PETROLEUM), new FluidStack(OIL_COKER, 1_600)); registerRecipe(LUBRICANT, 12_000, DictFrame.fromOne(ModItems.coke, EnumCokeType.PETROLEUM), new FluidStack(OIL_COKER, 1_200)); + registerRecipe(CALCIUM_SOLUTION, 125, new ItemStack(ModItems.powder_calcium), new FluidStack(SPENTSTEAM, 100)); } private static void registerAuto(FluidType fluid, FluidType type) { diff --git a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java index 3442fcee4..f1d5d7658 100644 --- a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java @@ -44,7 +44,7 @@ public class CombinationRecipes extends SerializableRecipe { recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.briquette, EnumBriquetteType.LIGNITE)), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.LIGNITE), new FluidStack(Fluids.COALCREOSOTE, 100))); recipes.put(CINNABAR.crystal(), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.MERCURY, 100))); - recipes.put(CHLOROCALCITE.dust(), new Pair(new ItemStack(ModItems.powder_calcium), new FluidStack(Fluids.CHLORINE, 250))); + //recipes.put(CHLOROCALCITE.dust(), new Pair(new ItemStack(ModItems.powder_calcium), new FluidStack(Fluids.CHLORINE, 250))); recipes.put(new ComparableStack(Items.glowstone_dust), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.CHLORINE, 50))); recipes.put(new ComparableStack(DictFrame.fromOne(ModBlocks.stone_resource, EnumStoneType.BAUXITE)), new Pair(new ItemStack(ModItems.ingot_aluminium, 2), new FluidStack(Fluids.REDMUD, 250))); diff --git a/src/main/java/com/hbm/inventory/recipes/FractionRecipes.java b/src/main/java/com/hbm/inventory/recipes/FractionRecipes.java index 00f49aeae..b3b673a6a 100644 --- a/src/main/java/com/hbm/inventory/recipes/FractionRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/FractionRecipes.java @@ -63,6 +63,7 @@ public class FractionRecipes extends SerializableRecipe { fractions.put(Fluids.OIL_COKER, new Pair(new FluidStack(Fluids.CRACKOIL, 30), new FluidStack(Fluids.HEATINGOIL, 70))); fractions.put(Fluids.NAPHTHA_COKER, new Pair(new FluidStack(Fluids.NAPHTHA_CRACK, 75), new FluidStack(Fluids.LIGHTOIL_CRACK, 25))); fractions.put(Fluids.GAS_COKER, new Pair(new FluidStack(Fluids.AROMATICS, 25), new FluidStack(Fluids.CARBONDIOXIDE, 75))); + fractions.put(Fluids.CHLOROCALCITE_MIX, new Pair(new FluidStack(Fluids.CHLOROCALCITE_CLEANED, 50), new FluidStack(Fluids.COLLOID, 50))); } public static Pair getFractions(FluidType oil) { diff --git a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java index e9bcf6ffc..0a68397d6 100644 --- a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java @@ -76,6 +76,10 @@ public class MixerRecipes extends SerializableRecipe { register(Fluids.DIESEL_REFORM, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.DIESEL, 900)).setStack2(new FluidStack(Fluids.REFORMATE, 100))); register(Fluids.DIESEL_CRACK_REFORM, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.DIESEL_CRACK, 900)).setStack2(new FluidStack(Fluids.REFORMATE, 100))); register(Fluids.KEROSENE_REFORM, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.KEROSENE, 900)).setStack2(new FluidStack(Fluids.REFORMATE, 100))); + + + register(Fluids.CHLOROCALCITE_SOLUTION, new MixerRecipe(500, 50).setStack1(new FluidStack(Fluids.WATER, 250)).setStack2(new FluidStack(Fluids.NITRIC_ACID, 250)).setSolid(new OreDictStack(CHLOROCALCITE.dust()))); + register(Fluids.CHLOROCALCITE_MIX, new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.CHLOROCALCITE_SOLUTION, 500)).setStack2(new FluidStack(Fluids.SULFURIC_ACID, 500))); } public static void register(FluidType type, MixerRecipe... rec) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java index 1e7d206f2..9802070ac 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java @@ -293,6 +293,8 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser if(progress > this.duration) { + this.progress = 0; + if(slots[2] != null) { slots[2].stackSize++; } else { diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index a717921bf..90eda0803 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -178,6 +178,8 @@ chem.BALEFIRE=BF-Raketentreibstoffherstellung chem.BP_BIOFUEL=Biodieselumesterung chem.BP_BIOGAS=Biogasherstellung chem.C4=C4-Synthese +chem.CC_CENTRIFUGE=Chlorokalzitspaltung +chem.CC_ELECTROLYSIS=Kalziumchloridelektrolyse chem.CC_HEATING=Fortgeschrittene Kohleverflüssigung chem.CC_HEAVY=Einfache Kohleverflüssigung chem.CC_I=Erweiterte Kohleverflüssigung @@ -225,6 +227,7 @@ chem.NITAN=NITAN-Supertreibstoff mischen chem.NITRIC_ACID=Salpetersäureherstellung chem.OIL_SAND=Teersand-Extraktion chem.OSMIRIDIUM_DEATH=Osmiridiumlösung-Herstellung +chem.PC_ELECTROLYSIS=Kaliumchloridelektrolyse chem.PEROXIDE=Wasserstoffperoxidherstellung chem.PET=PET-Synthese chem.PETROIL_LEADED=Bleigemisch mischen @@ -605,8 +608,12 @@ hbmfluid.biogas=Biogas hbmfluid.bitumen=Bitumen hbmfluid.blood=Blut hbmfluid.blood_hot=Heißes Blut +hbmfluid.calcium_chloride=Kalziumchlorid-Lösung hbmfluid.carbondioxide=Kohlenstoffdioxid hbmfluid.chlorine=Chlorgas +hbmfluid.chlorocalcite_cleaned=Gereinigten Chlorokalzit-Lösung +hbmfluid.chlorocalcite_mix=Gemischte Chlorokalzit-Lösung +hbmfluid.chlorocalcite_solution=Chlorokalzit-Lösung hbmfluid.cholesterol=Cholesterinlösung hbmfluid.coalcreosote=Kohleteer-Kreosot hbmfluid.coalgas=Kohlebenzin @@ -678,6 +685,7 @@ hbmfluid.plasma_dt=Deuterium-Tritium-Plasma hbmfluid.plasma_hd=Wasserstoff-Deuterium-Plasma hbmfluid.plasma_ht=Wasserstoff-Tritium-Plasma hbmfluid.plasma_xm=Xenon-Quecksilber-Plasma +hbmfluid.potassium_chloride=Kaliumchlorid-Lösung hbmfluid.puf6=Plutoniumhexafluorid hbmfluid.radiosolvent=Hochleistungs-Lösungsmittel hbmfluid.reclaimed=Wiederaufbetreitetes Industrieöl diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index f8ad73e4a..bcc027726 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -465,6 +465,8 @@ chem.BALEFIRE=BF Rocket Fuel Mixing chem.BP_BIOFUEL=Biofuel Transesterification chem.BP_BIOGAS=Biogas Production chem.C4=C-4 Synthesis +chem.CC_CENTRIFUGE=Chlorocalcite Separation +chem.CC_ELECTROLYSIS=Calcium Chloride Electrolysis chem.CC_HEATING=Advanced Coal Liquefaction chem.CC_HEAVY=Basic Coal Liquefaction chem.CC_I=Enhanced Coal Liquefaction @@ -516,6 +518,7 @@ chem.NITAN=NITAN Super Fuel Mixing chem.NITRIC_ACID=Nitric Acid Production chem.OIL_SAND=Tar Sand Extraction chem.OSMIRIDIUM_DEATH=Osmiridic Solution Production +chem.PC_ELECTROLYSIS=Potassium Chloride Electrolysis chem.PEROXIDE=Hydrogen Peroxide Production chem.PET=PET Synthesis chem.PETROIL_LEADED=Leaded Petroil Mixing @@ -1177,8 +1180,12 @@ hbmfluid.biogas=Biogas hbmfluid.bitumen=Bitumen hbmfluid.blood=Blood hbmfluid.blood_hot=Hot Blood +hbmfluid.calcium_chloride=Calciumchloride Solution hbmfluid.carbondioxide=Carbon Dioxide hbmfluid.chlorine=Chlorine Gas +hbmfluid.chlorocalcite_cleaned=Cleaned Chlorocalcite Solution +hbmfluid.chlorocalcite_mix=Mixed Chlorocalcite Solution +hbmfluid.chlorocalcite_solution=Chlorocalcite Solution hbmfluid.cholesterol=Cholesterol Solution hbmfluid.coalcreosote=Coal Tar Creosote hbmfluid.coalgas=Coal Gasoline @@ -1250,6 +1257,7 @@ hbmfluid.plasma_dt=Deuterium-Tritium Plasma hbmfluid.plasma_hd=Hydrogen-Deuterium Plasma hbmfluid.plasma_ht=Hydrogen-Tritium Plasma hbmfluid.plasma_xm=Xenon-Mercury Plasma +hbmfluid.potassium_chloride=Potassiumchloride Solution hbmfluid.puf6=Plutonium Hexafluoride hbmfluid.radiosolvent=High-Performance Solvent hbmfluid.reclaimed=Reclaimed Industrial Oil diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/calcium_chloride.png b/src/main/resources/assets/hbm/textures/gui/fluids/calcium_chloride.png new file mode 100644 index 0000000000000000000000000000000000000000..f1ebd5aba4619ce2699a1d0678639c73f5345e78 GIT binary patch literal 708 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/chem_icon_PC_ELECTROLYSIS.png b/src/main/resources/assets/hbm/textures/items/chem_icon_PC_ELECTROLYSIS.png new file mode 100644 index 0000000000000000000000000000000000000000..7d41a1928783e9374879e92835040f9c73f0e714 GIT binary patch literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfEy=Isvj^1OC)U_CG9f`{;H{Wl3TN!%+r?U_ Date: Sat, 10 Jun 2023 21:57:52 -0500 Subject: [PATCH 061/109] added some stuff, removed some useless and stupid things --- .../machine/rbmk/TileEntityRBMKAbsorber.java | 26 +------------------ .../machine/rbmk/TileEntityRBMKBoiler.java | 18 ++++++------- .../machine/rbmk/TileEntityRBMKControl.java | 12 ++++----- .../rbmk/TileEntityRBMKControlManual.java | 2 +- .../machine/rbmk/TileEntityRBMKCooler.java | 10 +++---- .../machine/rbmk/TileEntityRBMKHeater.java | 18 ++++++------- .../machine/rbmk/TileEntityRBMKOutgasser.java | 12 ++++----- .../machine/rbmk/TileEntityRBMKReflector.java | 24 +---------------- .../machine/rbmk/TileEntityRBMKRod.java | 20 +++++++------- .../machine/rbmk/TileEntityRBMKStorage.java | 8 +++--- 10 files changed, 52 insertions(+), 98 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKAbsorber.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKAbsorber.java index 69610b38f..20512c206 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKAbsorber.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKAbsorber.java @@ -2,14 +2,8 @@ package com.hbm.tileentity.machine.rbmk; import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; -import cpw.mods.fml.common.Optional; -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; -@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityRBMKAbsorber extends TileEntityRBMKBase implements SimpleComponent { +public class TileEntityRBMKAbsorber extends TileEntityRBMKBase { @Override public void onMelt(int reduce) { @@ -23,24 +17,6 @@ public class TileEntityRBMKAbsorber extends TileEntityRBMKBase implements Simple super.onMelt(reduce); } - @Override - public String getComponentName() { - return "rbmk_absorber_rod"; - } - - @Callback(direct = true, limit = 4) - @Optional.Method(modid = "OpenComputers") - public Object[] getHeat(Context context, Arguments args) { - return new Object[] {heat}; - } - - - @Callback(direct = true, limit = 4) - @Optional.Method(modid = "OpenComputers") - public Object[] getCoordinates(Context context, Arguments args) { - return new Object[] {xCoord, yCoord, zCoord}; - } - @Override public ColumnType getConsoleType() { return ColumnType.ABSORBER; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java index 6c1a784e6..6faf888fa 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java @@ -332,41 +332,41 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I return "rbmk_boiler"; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getHeat(Context context, Arguments args) { return new Object[] {heat}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getSteam(Context context, Arguments args) { return new Object[] {steam.getFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getSteamMax(Context context, Arguments args) { return new Object[] {steam.getMaxFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getWater(Context context, Arguments args) { return new Object[] {feed.getFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getWaterMax(Context context, Arguments args) { return new Object[] {feed.getMaxFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getCoordinates(Context context, Arguments args) { return new Object[] {xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { FluidType type = steam.getTankType(); @@ -379,7 +379,7 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I return new Object[] {heat, steam.getFill(), steam.getMaxFill(), feed.getFill(), feed.getMaxFill(), type_1, xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getSteamType(Context context, Arguments args) { FluidType type = steam.getTankType(); @@ -390,7 +390,7 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I else {return new Object[] {"Unknown Error"};} } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] setSteamType(Context context, Arguments args) { int type = args.checkInteger(0); diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java index 8f23e5555..945638b7e 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java @@ -126,37 +126,37 @@ public abstract class TileEntityRBMKControl extends TileEntityRBMKSlottedBase im return "rbmk_control_rod"; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getLevel(Context context, Arguments args) { return new Object[] {getMult() * 100}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getTargetLevel(Context context, Arguments args) { return new Object[] {targetLevel * 100}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getCoordinates(Context context, Arguments args) { return new Object[] {xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getHeat(Context context, Arguments args) { return new Object[] {heat}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {heat, getMult() * 100, targetLevel * 100, xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] setLevel(Context context, Arguments args) { double newLevel = args.checkDouble(0)/100.0; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlManual.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlManual.java index d9fb3bfe0..f22e00b47 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlManual.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlManual.java @@ -133,7 +133,7 @@ public class TileEntityRBMKControlManual extends TileEntityRBMKControl implement return data; } - @Callback + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getColor(Context context, Arguments args) { return new Object[] {this.color}; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java index b82bc546b..8c15cd8d7 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java @@ -149,31 +149,31 @@ public class TileEntityRBMKCooler extends TileEntityRBMKBase implements IFluidAc return "rbmk_cooler"; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getHeat(Context context, Arguments args) { return new Object[]{heat}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getCryo(Context context, Arguments args) { return new Object[]{tank.getFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getCryoMax(Context context, Arguments args) { return new Object[]{tank.getMaxFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getCoordinates(Context context, Arguments args) { return new Object[] {xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[]{heat, tank.getFill(), tank.getMaxFill(), xCoord, yCoord, zCoord}; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java index 3d408086d..618f41a96 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java @@ -280,54 +280,54 @@ public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements I return "rbmk_heater"; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getHeat(Context context, Arguments args) { return new Object[] {heat}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getFill(Context context, Arguments args) { return new Object[] {feed.getFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getFillMax(Context context, Arguments args) { return new Object[] {feed.getMaxFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getExport(Context context, Arguments args) { return new Object[] {steam.getFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getExportMax(Context context, Arguments args) { return new Object[] {steam.getMaxFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getFillType(Context context, Arguments args) { return new Object[] {feed.getTankType().getID()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getExportType(Context context, Arguments args) { return new Object[] {steam.getTankType().getID()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {heat, feed.getFill(), feed.getMaxFill(), steam.getFill(), steam.getMaxFill(), feed.getTankType().getID(), steam.getTankType().getID(), xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getCoordinates(Context context, Arguments args) { return new Object[] {xCoord, yCoord, zCoord}; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java index 8e3f71a6a..8dbaa6360 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java @@ -226,37 +226,37 @@ public class TileEntityRBMKOutgasser extends TileEntityRBMKSlottedBase implement return "rbmk_outgasser"; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getGas(Context context, Arguments args) { return new Object[] {gas.getFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getGasMax(Context context, Arguments args) { return new Object[] {gas.getMaxFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getGasType(Context context, Arguments args) { return new Object[] {gas.getTankType().getID()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getProgress(Context context, Arguments args) { return new Object[] {progress}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getCoordinates(Context context, Arguments args) { return new Object[] {xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {gas.getFill(), gas.getMaxFill(), progress, gas.getTankType().getID(), xCoord, yCoord, zCoord}; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKReflector.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKReflector.java index 91ab94a89..ed5b1afc0 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKReflector.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKReflector.java @@ -2,14 +2,8 @@ package com.hbm.tileentity.machine.rbmk; import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; -import cpw.mods.fml.common.Optional; -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; -@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityRBMKReflector extends TileEntityRBMKBase implements SimpleComponent { +public class TileEntityRBMKReflector extends TileEntityRBMKBase { @Override public void onMelt(int reduce) { @@ -22,22 +16,6 @@ public class TileEntityRBMKReflector extends TileEntityRBMKBase implements Simpl super.onMelt(reduce); } - @Override - public String getComponentName() { - return "rbmk_reflector_rod"; - } - - @Callback(direct = true, limit = 4) - @Optional.Method(modid = "OpenComputers") - public Object[] getHeat(Context context, Arguments args) { - return new Object[] {heat}; - } - - @Callback(direct = true, limit = 4) - @Optional.Method(modid = "OpenComputers") - public Object[] getCoordinates(Context context, Arguments args) { - return new Object[] {xCoord, yCoord, zCoord}; - } @Override public ColumnType getConsoleType() { diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java index f02f229ca..38aab6d83 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java @@ -384,25 +384,25 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM return "rbmk_fuel_rod"; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getHeat(Context context, Arguments args) { return new Object[] {heat}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getFluxSlow(Context context, Arguments args) { return new Object[] {fluxSlow}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getFluxFast(Context context, Arguments args) { return new Object[] {fluxFast}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getDepletion(Context context, Arguments args) { if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { @@ -411,7 +411,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM return new Object[] {"N/A"}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getXenonPoison(Context context, Arguments args) { if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { @@ -420,7 +420,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM return new Object[] {"N/A"}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getCoreHeat(Context context, Arguments args) { if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { @@ -429,7 +429,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM return new Object[] {"N/A"}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getSkinHeat(Context context, Arguments args) { if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { @@ -438,7 +438,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM return new Object[] {"N/A"}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { Object OC_enrich_buf; @@ -453,13 +453,13 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM return new Object[] {heat, ItemRBMKRod.getHullHeat(slots[0]), ItemRBMKRod.getCoreHeat(slots[0]), fluxSlow, fluxFast, OC_enrich_buf, OC_poison_buf, ((RBMKRod)this.getBlockType()).moderated, xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getModerated(Context context, Arguments args) { return new Object[] {((RBMKRod)this.getBlockType()).moderated}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getCoordinates(Context context, Arguments args) { return new Object[] {xCoord, yCoord, zCoord}; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKStorage.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKStorage.java index 11fba927a..baa22c2c3 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKStorage.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKStorage.java @@ -95,26 +95,26 @@ public class TileEntityRBMKStorage extends TileEntityRBMKSlottedBase implements public String getComponentName() { return "rbmk_storage_rod"; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getCoordinates(Context context, Arguments args) { return new Object[] {xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getHeat(Context context, Arguments args) { return new Object[] {heat}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getStored(Context context, Arguments args) { return new Object[] {slots[0], slots[1], slots[2], slots[3], slots[4], slots[5], slots[6], slots[7], slots[8], slots[9], slots[10], slots[11]}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {heat, slots[0], slots[1], slots[2], slots[3], slots[4], slots[5], slots[6], slots[7], slots[8], slots[9], slots[10], slots[11], xCoord, yCoord, zCoord}; From c050e099af9ab701b1d106ef37f7d61b1cfa1a59 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Sat, 10 Jun 2023 22:30:15 -0500 Subject: [PATCH 062/109] Urgent: `getInfo` function for fuel rods was fucked, and returned an unknown error when invoked. Fixed in this commit. --- .../hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java index 38aab6d83..f13f34952 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java @@ -443,14 +443,20 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM public Object[] getInfo(Context context, Arguments args) { Object OC_enrich_buf; Object OC_poison_buf; + Object OC_hull_buf; + Object OC_core_buf; if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { OC_enrich_buf = ItemRBMKRod.getEnrichment(slots[0]); OC_poison_buf = ItemRBMKRod.getPoison(slots[0]); + OC_hull_buf = ItemRBMKRod.getHullHeat(slots[0]); + OC_core_buf = ItemRBMKRod.getCoreHeat(slots[0]); } else { OC_enrich_buf = "N/A"; OC_poison_buf = "N/A"; + OC_hull_buf = "N/A"; + OC_core_buf = "N/A"; } - return new Object[] {heat, ItemRBMKRod.getHullHeat(slots[0]), ItemRBMKRod.getCoreHeat(slots[0]), fluxSlow, fluxFast, OC_enrich_buf, OC_poison_buf, ((RBMKRod)this.getBlockType()).moderated, xCoord, yCoord, zCoord}; + return new Object[] {heat, OC_hull_buf, OC_core_buf, fluxSlow, fluxFast, OC_enrich_buf, OC_poison_buf, ((RBMKRod)this.getBlockType()).moderated, xCoord, yCoord, zCoord}; } @Callback(direct = true, limit = 16) From 41648d4f68a4c28e06fc41d5fcad9f7513be47a9 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 11 Jun 2023 17:01:33 +0200 Subject: [PATCH 063/109] fixes, rail stuff --- changelog | 6 +++++- .../java/com/hbm/crafting/ToolRecipes.java | 1 + .../hbm/entity/train/EntityRailCarBase.java | 1 + .../hbm/entity/train/EntityRailCarCargo.java | 2 ++ .../hbm/items/tool/ItemPollutionDetector.java | 8 ++++---- src/main/java/com/hbm/potion/HbmPotion.java | 18 +++--------------- .../machine/storage/TileEntityBarrel.java | 2 ++ src/main/resources/assets/hbm/lang/de_DE.lang | 3 +++ src/main/resources/assets/hbm/lang/en_US.lang | 3 +++ 9 files changed, 24 insertions(+), 20 deletions(-) diff --git a/changelog b/changelog index 697dbb496..dcd735e35 100644 --- a/changelog +++ b/changelog @@ -1,5 +1,6 @@ ## Added * Machines now emit soot. Soot collects in units of 4x4 chunks, and spreads into neighboring regions. High levels of soot cause visible smog. + * The system has yet to be balanced, it's possible that only a few machines cause way too much soot or barely any * Gas artillery shells * Chlorine * Phosgene @@ -26,4 +27,7 @@ * Fixed some armor recipes only accepting polymer and not bakelite * Fixed turbofans not sucking in players * Fixed NTM skybox not applying to superflat worlds -* Fixed breeding slot in the fusion reactor never resettingthe progress after completing an operation \ No newline at end of file +* Fixed breeding slot in the fusion reactor never resettingthe progress after completing an operation +* Fixed potential issue where tanks would send fluids to invalidated tile entities, voiding themselves almost instantly +* Fixed cadmium and technetium steel blocks not having ore dict names +* Fixed potential crash regarding certain potion code running clientside \ No newline at end of file diff --git a/src/main/java/com/hbm/crafting/ToolRecipes.java b/src/main/java/com/hbm/crafting/ToolRecipes.java index 91ddd5338..7577f03d9 100644 --- a/src/main/java/com/hbm/crafting/ToolRecipes.java +++ b/src/main/java/com/hbm/crafting/ToolRecipes.java @@ -119,6 +119,7 @@ public class ToolRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.dosimeter, 1), new Object[] { "WGW", "WCW", "WBW", 'W', KEY_PLANKS, 'G', KEY_ANYPANE, 'C', ModItems.circuit_aluminium, 'B', BE.ingot() }); CraftingManager.addShapelessAuto(new ItemStack(ModBlocks.geiger), new Object[] { ModItems.geiger_counter }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.digamma_diagnostic), new Object[] { ModItems.geiger_counter, PO210.billet(), ASBESTOS.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.pollution_detector, 1), new Object[] { "SFS", "SCS", " S ", 'S', STEEL.plate(), 'F', ModItems.filter_coal, 'C', ModItems.circuit_copper }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.defuser, 1), new Object[] { " PS", "P P", " P ", 'P', POLYMER.ingot(), 'S', STEEL.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.coltan_tool, 1), new Object[] { "ACA", "CXC", "ACA", 'A', ALLOY.ingot(), 'C', CINNABAR.crystal(), 'X', Items.compass }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.reacher, 1), new Object[] { "BIB", "P P", "B B", 'B', ModItems.bolt_tungsten, 'I', W.ingot(), 'P', ModItems.plate_polymer }); diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index 2f0a97813..afd7b25ab 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -224,6 +224,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { DummyConfig def = definitions[i]; BoundingBoxDummyEntity dummy = dummies[i]; Vec3 rot = Vec3.createVectorHelper(def.offset.xCoord, def.offset.yCoord, def.offset.zCoord); + rot.rotateAroundX((float) (this.rotationPitch * Math.PI / 180D)); rot.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); double x = renderX + rot.xCoord; double y = renderY + rot.yCoord; diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarCargo.java b/src/main/java/com/hbm/entity/train/EntityRailCarCargo.java index 31823285b..4bf5f2ee2 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarCargo.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarCargo.java @@ -82,6 +82,8 @@ public abstract class EntityRailCarCargo extends EntityRailCarBase implements II if(stack != null && stack.stackSize > this.getInventoryStackLimit()) { stack.stackSize = this.getInventoryStackLimit(); } + + if(!this.worldObj.isRemote) this.dataWatcher.updateObject(10, this.countVacantSlots()); } @Override diff --git a/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java b/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java index ef45af10d..5b0d27663 100644 --- a/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java +++ b/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java @@ -24,9 +24,9 @@ public class ItemPollutionDetector extends Item { PollutionData data = PollutionHandler.getPollutionData(world, (int) Math.floor(entity.posX), (int) Math.floor(entity.posY), (int) Math.floor(entity.posZ)); if(data == null) data = new PollutionData(); - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Soot: " + data.pollution[PollutionType.SOOT.ordinal()]).color(EnumChatFormatting.RED).flush(), 100), (EntityPlayerMP) entity); - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Poison: " + data.pollution[PollutionType.POISON.ordinal()]).color(EnumChatFormatting.RED).flush(), 101), (EntityPlayerMP) entity); - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Heavy metal: " + data.pollution[PollutionType.HEAVYMETAL.ordinal()]).color(EnumChatFormatting.RED).flush(), 102), (EntityPlayerMP) entity); - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Fallout: " + data.pollution[PollutionType.FALLOUT.ordinal()]).color(EnumChatFormatting.RED).flush(), 103), (EntityPlayerMP) entity); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Soot: " + data.pollution[PollutionType.SOOT.ordinal()]).color(EnumChatFormatting.YELLOW).flush(), 100, 2000), (EntityPlayerMP) entity); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Poison: " + data.pollution[PollutionType.POISON.ordinal()]).color(EnumChatFormatting.YELLOW).flush(), 101, 2000), (EntityPlayerMP) entity); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Heavy metal: " + data.pollution[PollutionType.HEAVYMETAL.ordinal()]).color(EnumChatFormatting.YELLOW).flush(), 102, 2000), (EntityPlayerMP) entity); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Fallout: " + data.pollution[PollutionType.FALLOUT.ordinal()]).color(EnumChatFormatting.YELLOW).flush(), 103, 2000), (EntityPlayerMP) entity); } } diff --git a/src/main/java/com/hbm/potion/HbmPotion.java b/src/main/java/com/hbm/potion/HbmPotion.java index 48031fddf..7d5855009 100644 --- a/src/main/java/com/hbm/potion/HbmPotion.java +++ b/src/main/java/com/hbm/potion/HbmPotion.java @@ -99,6 +99,8 @@ public class HbmPotion extends Potion { } public void performEffect(EntityLivingBase entity, int level) { + + if(entity.worldObj.isRemote) return; if(this == taint) { @@ -123,7 +125,6 @@ public class HbmPotion extends Potion { ContaminationUtil.contaminate(entity, HazardType.RADIATION, ContaminationType.CREATIVE, (float)(level + 1F) * 0.05F); } if(this == radaway) { - HbmLivingProps.incrementRadiation(entity, -(level + 1)); } @@ -145,22 +146,9 @@ public class HbmPotion extends Potion { } } if(this == lead) { - entity.attackEntityFrom(ModDamageSource.lead, (level + 1)); } - /*if(this == telekinesis) { - - int remaining = entity.getActivePotionEffect(this).getDuration(); - - if(remaining > 1) { - entity.motionY = 0.5; - } else { - entity.motionY = -2; - entity.fallDistance = 50; - } - }*/ - if(this == phosphorus && !entity.worldObj.isRemote) { - + if(this == phosphorus) { entity.setFire(1); } } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java index e8f941496..d0bb7e4f8 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java @@ -136,6 +136,8 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc if(fill > 0 && send) { List con = new ArrayList(); con.addAll(consumers); + + con.removeIf(x -> x == null || !(x instanceof TileEntity) || ((TileEntity)x).isInvalid()); if(PipeNet.trackingInstances == null) { PipeNet.trackingInstances = new ArrayList(); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 90eda0803..a92874167 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -609,6 +609,7 @@ hbmfluid.bitumen=Bitumen hbmfluid.blood=Blut hbmfluid.blood_hot=Heißes Blut hbmfluid.calcium_chloride=Kalziumchlorid-Lösung +hbmfluid.calcium_solution=Kalzium-Lösung hbmfluid.carbondioxide=Kohlenstoffdioxid hbmfluid.chlorine=Chlorgas hbmfluid.chlorocalcite_cleaned=Gereinigten Chlorokalzit-Lösung @@ -2633,6 +2634,7 @@ item.plate_schrabidium.name=Schrabidiumplatte item.plate_steel.name=Stahlplatte item.plate_titanium.name=Titanplatte item.polaroid.name=Das Polaroid +item.pollution_detector.name=Verschmutzungsdetektor item.powder_actinium.name=Actiniumstaub item.powder_actinium_tiny.name=Kleiner Haufen Actiniumstaub item.powder_advanced_alloy.name=Fortgeschrittener Legierungsstaub @@ -3599,6 +3601,7 @@ tile.capacitor_bus.desc=Output für Kondensatoren$Kann in einer geraden Linie an tile.capacitor_copper.name=Kupferkondensator tile.capacitor_gold.name=Goldkondensator tile.capacitor_niobium.name=Niobkondensator +tile.capacitor_tantalium.name=Tantalkondensator tile.capacitor.desc=Input: Oben$Output: Unten, über Kondensator-Bus tile.charge_c4.name=Abrissladung tile.charge_dynamite.name=Zeitbombe diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index bcc027726..a7feb2556 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1181,6 +1181,7 @@ hbmfluid.bitumen=Bitumen hbmfluid.blood=Blood hbmfluid.blood_hot=Hot Blood hbmfluid.calcium_chloride=Calciumchloride Solution +hbmfluid.calcium_solution=Calcium Solution hbmfluid.carbondioxide=Carbon Dioxide hbmfluid.chlorine=Chlorine Gas hbmfluid.chlorocalcite_cleaned=Cleaned Chlorocalcite Solution @@ -3359,6 +3360,7 @@ item.plate_schrabidium.name=Schrabidium Plate item.plate_steel.name=Steel Plate item.plate_titanium.name=Titanium Plate item.polaroid.name=The Polaroid +item.pollution_detector.name=Pollution Detector item.powder_actinium.name=Actinium Powder item.powder_actinium_tiny.name=Tiny Pile of Actinium Powder item.powder_advanced_alloy.name=Advanced Alloy Powder @@ -4417,6 +4419,7 @@ tile.capacitor_bus.desc=Output block for capacitors$Can be chained up in a strai tile.capacitor_copper.name=Copper Capacitor tile.capacitor_gold.name=Golden Capacitor tile.capacitor_niobium.name=Niobium Capacitor +tile.capacitor_tantalium.name=Tantalium Capacitor tile.capacitor.desc=Input: Top$Output: Bottom, via Capacitor Bus tile.charge_c4.name=Demolition Charge tile.charge_dynamite.name=Time Bomb From 692c8acc4599b70a1a63b889fd9e9314a722ec5c Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 11 Jun 2023 17:08:16 +0200 Subject: [PATCH 064/109] localization --- changelog | 2 +- gradle.properties | 2 +- src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/resources/assets/hbm/lang/zh_CN.lang | 4986 ++++++++--------- 4 files changed, 2474 insertions(+), 2518 deletions(-) diff --git a/changelog b/changelog index dcd735e35..4af358249 100644 --- a/changelog +++ b/changelog @@ -16,7 +16,7 @@ * Like regular bullets stamps but with infinite durability ## Changed -* Updated russian localization +* Updated russian and chinese localization * Mist now spawns cloud particles with the correct color instead of standard white * HE artillery shells and rockets now turn blocks into slag * The old static bunker structure has been removed and replaced with dynamically generated ones, using the same style of generation as vanilla strongholds. diff --git a/gradle.properties b/gradle.properties index 4c35fac9e..2f43c1817 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4621 +mod_build_number=4627 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 3d65e0ba6..4e3d4bdfc 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4621)"; + public static final String VERSION = "1.0.27 BETA (4627)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index a8de55f52..8876e8c0f 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -1,263 +1,212 @@ -achievement.acidizer.desc=嗷!我的皮肤! -achievement.acidizer=酸性的 -achievement.assembly.desc=等等,已经凌晨1点了? -achievement.assembly=科技线 第一阶段 -achievement.FOEQ.desc=向火星发射一个探测器…我是说发射到杜纳安轨道 +achievement.acidizer.desc=噢,我的皮肤 +achievement.acidizer=酸 +achievement.assembly.desc=Bobmazon 2级 (装配机) +achievement.assembly=制作 +achievement.FOEQ.desc=向火星传送信号!...其实我是说Duna achievement.FOEQ=飞马座运载火箭和发射架 -achievement.breeding.desc=谢谢你们啊,上帝保佑你们,上帝保佑美利坚合众国. -achievement.breeding=阴阳怪气 -achievement.bismuth.desc=还记得人们为此抱怨了一个月吗? 我记得. +achievement.breeding.desc=谢谢你们,上帝保佑你们,上帝保佑美利坚合众国。 +achievement.breeding=反话 +achievement.bismuth.desc=还记得有人抱怨了一个月吗?我愿意。 achievement.bismuth=铋 -achievement.blastFurnace.desc=他们为探险家1号打捞了一艘沉没的无畏舰. +achievement.blastFurnace.desc=他们为制造探险家1号去打捞了一艘沉没的无畏舰。 achievement.blastFurnace=煤和铁 -achievement.bossCreeper.desc='核爆爬行者? 那是啥玩意?!' -achievement.bossCreeper=四条腿上行走的核弹 -achievement.bossMaskman.desc=干♂爆那个大家伙. -achievement.bossMaskman=我被强制服役了6个月,到头来只得到一件糟糕的T恤 -achievement.bossMeltdown.desc=这可比预想的还要糟, 但我会尽我所能的. +achievement.bossCreeper.desc=核爆爬行者? 那是个什么玩意?! +achievement.bossCreeper=四条腿的行走核弹 +achievement.bossMaskman.desc=大男孩邦克 +achievement.bossMaskman=6个月的强制服务,我只得到一件糟糕的t恤 +achievement.bossMeltdown.desc=比伟大更可怕,但我会竭尽所能 achievement.bossMeltdown=3.6伦琴 -achievement.bossWorm.desc=用绝学法杖.我的屁股.你来算这个吧. -achievement.bossWorm=拆了 世-界-毁-灭-者 O-TRON -achievement.bossUFO.desc=哟,瞧瞧我们这儿有什么?一艘巨大的宇宙飞船正开向我们的星球? -achievement.bossUFO=Ayy Lmao -achievement.burnerPress.desc=压力压在我身上,也压在你身上 +achievement.bossWorm.desc=法布斯塔夫。我的屁股。你算算吧。 +achievement.bossWorm=拆掉机械蠕虫 +achievement.bossUFO.desc=哟,我们这儿有什么?一艘巨大的宇宙飞船正开向我们的星球? +achievement.bossUFO=呀哈哈哈,笑死我了 +achievement.burnerPress.desc=压力压在你我身上 achievement.burnerPress=压力之下 achievement.c20_5.desc=??? achievement.c20_5=第20.5章 achievement.c44.desc=镀锌!我是说,锌! achievement.c44=第四十四章 -achievement.centrifuge.desc=离心力是真的不要再@我了 -achievement.centrifuge=离心力 -achievement.chemplant.desc=现在你开始考虑化学物质了! -achievement.chemplant=科技线 第二阶段 -achievement.chicagoPile.desc="当地人怎么样?" / "非常友好." +achievement.centrifuge.desc=离心力是假的,不要再@我了 +achievement.centrifuge=向心力 +achievement.chemplant.desc=现在你在考虑化学物质! +achievement.chemplant=这家工厂正在成长。Pt.2 +achievement.chicagoPile.desc=“当地人怎么样?”“非常友好。” achievement.chicagoPile=领航员在新大陆着陆 -achievement.concrete.desc=一个布尔什维克的最爱. -achievement.concrete=老了但仍然可靠 -achievement.desh.desc="来吧,你们这群人. 有地方可去了!" -achievement.desh= 勒威耶 -achievement.digammaFeel.desc=内心的空虚. -achievement.digammaFeel=感受的恐惧 -achievement.digammaKauaiMoho.desc=这一切都糟透了不是吗,这里有些热巧克力. -achievement.digammaKauaiMoho=唱吧, 唱给我听那首最后一只奥亚吸蜜鸟之歌...... -achievement.digammaKnow.desc=这个世界的意义是什么. +achievement.concrete.desc=布尔什维克的最爱。 +achievement.concrete=老当益壮 +achievement.desh.desc=“来吧,你们这群人。有地方可去!” +achievement.desh=勒威耶 +achievement.digammaFeel.desc=内心的空虚 +achievement.digammaFeel=感觉的恐惧 +achievement.digammaKauaiMoho.desc=一切都糟透了,这里有些热巧克力 +achievement.digammaKauaiMoho=歌唱,为我歌唱《Kauai Moho》 +achievement.digammaKnow.desc=关于这个世界 achievement.digammaKnow=知晓的恐惧 -achievement.digammaSee.desc=坠入深渊. -achievement.digammaSee=直视真理的恐惧 +achievement.digammaSee.desc=坠入深渊 +achievement.digammaSee=可见的恐惧 achievement.digammaUpOnTop.desc=仰慕我的儿子,他是我的克隆人. achievement.digammaUpOnTop=仰慕我,仰慕我的家 achievement.fiend.desc=卑鄙 achievement.fiend2.desc=更卑鄙 -achievement.fiend2=残忍2:更加残忍 +achievement.fiend2=残忍2:更残忍 achievement.fiend=残忍 achievement.freytag.desc=英勇的救生员 achievement.freytag=弗雷塔格 -achievement.fusion.desc=氘核, 氚核和能量之舞. -achievement.fusion=热核聚变反应 -achievement.gasCent.desc=未浓缩的铀讨厌他! -achievement.gasCent=拉链式 -achievement.hidden.desc=使用一节坠落的车厢杀死一只污染爬行者 +achievement.fusion.desc=氘核、海卫一与能量的舞蹈。 +achievement.fusion=聚合 +achievement.gasCent.desc=贫铀讨厌他! +achievement.gasCent=链式 +achievement.goFish.desc=航海十字架 +achievement.goFish=去钓鱼 +achievement.hidden.desc=使用一节坠落的车厢杀死一只污染苦力怕 achievement.hidden=隐藏目录 -achievement.horizonsBonus.desc=噢老天爷你到底什么毛病?! +achievement.horizonsBonus.desc=说实话,你到底怎么了 achievement.horizonsBonus=地平线! -achievement.horizonsEnd.desc=送汤姆回家. -achievement.horizonsEnd=地平线. +achievement.horizonsEnd.desc=送他回家 +achievement.horizonsEnd=地平线。 achievement.horizonsStart.desc=将一个小伙子送上月球 achievement.horizonsStart=地平线? achievement.impossible.desc=你不可能取得该成就 achievement.impossible=简直不可能 -achievement.inferno.desc="把它化为灰烬! 这还不够! 投更多炸弹下去!" -achievement.inferno=食人者行动 -achievement.manhattan.desc=8:15; 八月六日, 1945 +achievement.inferno.desc=“把它变成灰烬!这还不够!投更多的炸弹!” +achievement.inferno=食人行动 +achievement.manhattan.desc=1945年8月6日 8:15 achievement.manhattan=曼哈顿计划 -achievement.meltdown.desc=你都走到了这一步,怎么还能把事情搞砸? -achievement.no9.desc="我希望我开采的铅能被用于你的绘画" -achievement.no9=老九号 -achievement.meltdown="快速"拆卸 -achievement.metalworks.desc=Bobmazon 1级 (高炉) -achievement.metalworks=金属制品 -achievement.nuclear.desc=Bobmazon 5级 (铀燃料) -achievement.nuclear=原子科学 -achievement.oil.desc=Bobmazon 4级 (电锅炉) -achievement.oil=石油 -achievement.omega12.desc=解决在这个荒凉的的星球上继续生存的问题. -achievement.omega12=欧米伽-12号粒子加速器 -achievement.polymer.desc=美味,美味的微塑料. -achievement.polymer=特氟隆 聚四氟乙烯 +achievement.meltdown.desc=你走了这么远,怎么能把事情搞砸? +achievement.meltdown=快速非计划拆卸 +achievement.no9.desc=“我希望我开采的铅能被用在你的油漆里” +achievement.no9=旧数字9 +achievement.omega12.desc=解决在这个可怜的星球上继续生存的问题 +achievement.omega12=欧米茄-12粒子加速器 +achievement.polymer.desc=美味、美味的微塑料。 +achievement.polymer=特氟隆 achievement.potato.desc=你居然捅我!你怎—喔哦哦哦哦哦! -achievement.potato=智 械 危 机(流氓AI) -achievement.radDeath.desc=居里夫人开创了放射性理论, 放射性治疗和放射性死亡。。。。 +achievement.potato=流氓AI +achievement.radDeath.desc=居里夫人开创了放射性理论、放射性治疗和放射性死亡。。。。 achievement.radDeath=噢, 辐射! achievement.radium.desc=你 因 为 往 我 的 咖 啡 里 倒 镭 而 被 解 雇 了 ! achievement.radium=不可思议先生 achievement.radPoison.desc=受辐射中毒的影响 achievement.radPoison=呀, 辐射! -achievement.RBMKBoom.desc=谎言的代价是什么? -achievement.RBMKBoom=是15000伦琴的辐射. -achievement.RBMK.desc=他有妄想症,带他去医院. -achievement.RBMK=3.6伦琴? -achievement.redBalloons.desc="这就是我们一直在等待的. 就这样, 小伙子们, 这就是战争." -achievement.redBalloons=99只红气球 -achievement.sacrifice.desc=直面火海,活下去. +achievement.RBMKBoom.desc=谎言的代价是什么? +achievement.RBMKBoom=是15000伦琴辐射 +achievement.RBMK.desc=他有妄想症,带他去医务室。 +achievement.RBMK=3.6伦琴? +achievement.redBalloons.desc=“这就是我们一直在等待的。就是这样,孩子们,这就是战争。” +achievement.redBalloons=99个红气球 +achievement.sacrifice.desc=直面火海并存活 achievement.sacrifice=牺牲 -achievement.schrab.desc=不管怎样,我不会看这玩意太久. +achievement.schrab.desc=不管怎样,我不会看太久。 achievement.schrab=稳定岛 -achievement.selenium.desc=是啊. -achievement.selenium=XVIII 号月神 -achievement.SILEX.desc=它比它听上去要更酷, 我保证. -achievement.SILEX=激光激发分离同位素 -achievement.slimeball.desc= -achievement.slimeball=我应该把我的蛋蛋浸在硫酸里. -achievement.stratum.desc=打中刹车, 手套. -achievement.stratum=发现岩层 +achievement.selenium.desc=耶! +achievement.selenium=XVIII 月亮女神 +achievement.SILEX.desc=我保证,它会比它听起来的要更酷 +achievement.SILEX=激光激发法分离同位素 +achievement.slimeball.desc=粘液球 +achievement.slimeball=我应该把蛋蛋浸在硫酸里。 +achievement.stratum.desc=快刹车, Mitts! +achievement.stratum=岩层 achievement.someWounds.desc=准备好 achievement.someWounds=有些伤口永远无法愈合 -achievement.soyuz.desc=被烤的酥脆 -achievement.soyuz=烤马铃薯 +achievement.soyuz.desc=变得松脆 +achievement.soyuz=土豆烹饪 achievement.space.desc=屡试屡败,浪费了价值9000万美元的资金 -achievement.space=最后战线-呃,算了吧 -achievement.sulfuric.desc= -achievement.sulfuric=我不该把我的蛋蛋浸在硫酸里. -achievement.tantalum.desc=一个难以捉摸但却永远需要的元素. -achievement.tantalum="钽" +achievement.space=最后战线—呃,算了吧 +achievement.sulfuric.desc=硫酸 +achievement.sulfuric=我不应该把蛋蛋浸在硫酸里的。 +achievement.tantalum.desc=一个难以捉摸但却永远需要的元素。 +achievement.tantalum=钽 achievement.tasteofblood.desc=这不是任何测试的一部分 achievement.tasteofblood=血的味道 -achievement.technetium.desc=它是药用的,它是药用的! -achievement.technetium=大个子, 猪人 -achievement.watzBoom.desc=下次记得把污物容器排干. -achievement.watzBoom=真恶心 -achievement.watz.desc=可能包含Fólkvangr弗尔克范格场. +achievement.technetium.desc=它是药用的,它是药用的! +achievement.technetium=大个子,猪人 +achievement.watzBoom.desc=下次记得把毒泥浆容器清空 +achievement.watzBoom=令人厌恶 +achievement.watz.desc=可能包括Fólkvangr弗尔克范格场 achievement.watz=126号元素的力量 -achievement.witchtaunter.desc=那些怪胎什么都没发现! -achievement.witchtaunter=女巫陶恩特 -achievement.ZIRNOXBoom.desc=处理, 遍地都是, 残骸碎片 -achievement.ZIRNOXBoom=CIRNOX - -armor.blastProtection=只受%s的爆炸伤害 -armor.cap=硬伤上限 %s -armor.damageModifier=只受%s的%s伤害 -armor.dash=提供 %s 次冲刺 -armor.electricJetpack=等离子推进器 +achievement.witchtaunter.desc=那些古怪的生物对你毫无兴趣! +achievement.witchtaunter=巫婆陶恩特 +achievement.ZIRNOXBoom.desc=处理, 看,满地是残骸碎片 +achievement.ZIRNOXBoom=锆诺克斯 +armor.blastProtection=修正 %s 的爆炸伤害 +armor.cap=伤害上限 %s +armor.damageModifier=修正 %s 对 %s 的伤害 +armor.dash=给予 %s 冲刺 +armor.electricJetpack=离子喷射背包 armor.explosionImmune=免疫除爆炸伤害外的一切伤害 armor.fastFall=快速降落 armor.fireproof=防火 -armor.fullSetBonus=完整套装增益: -armor.geigerHUD=内置盖格计数器 -armor.geigerSound=听觉式盖革计数器 -armor.glider=按下潜行以滑翔 -armor.gravity=重力效果调整为%s -armor.hardLanding=坠地AOE伤害 -armor.ignoreLimit=防御值不受防御值上限的影响 -armor.modifier=只受%s的一般伤害 -armor.nullDamage=免疫所有的%s伤害 -armor.projectileProtection=只受%s的弹射物伤害 +armor.fullSetBonus=全套效果: +armor.geigerHUD=盖革计数器HUD +armor.geigerSound=盖革计数器警报 +armor.glider=滑翔 +armor.gravity=重力修正 %s +armor.hardLanding=硬着陆 +armor.ignoreLimit=防御值不受防御上限的影响 +armor.modifier=伤害修正 %s +armor.nullDamage=免疫 %s 伤害 +armor.projectileProtection=免疫 %s 的弹射物伤害 armor.rocketBoots=火箭靴 armor.sprintBoost=冲刺辅助加速 armor.thermal=热成像 -armor.threshold=伤害阈值%s -armor.vats=敌对目标信息显示 -armor.yield=保护生效的最高伤害 :%s - -armorMod.all=任意盔甲部位 -armorMod.applicableTo=可安装于: +armor.threshold=伤害阈值 %s +armor.vats=敌对生物HUD +armor.yield=抵御低于%s的伤害 +armorMod.all=所有 +armorMod.applicableTo=适用于: armorMod.boots=靴子 armorMod.chestplates=胸甲 armorMod.helmets=头盔 -armorMod.insertHere=放入盔甲以进行改装... +armorMod.insertHere=插入装甲以改装。。。 armorMod.leggings=护腿 -armorMod.type.boots=靴子配件 -armorMod.type.chestplate=胸甲配件 +armorMod.type.boots=靴子 +armorMod.type.chestplate=胸甲 armorMod.type.cladding=覆层 -armorMod.type.helmet=头盔配件 -armorMod.type.insert=防弹插板 -armorMod.type.leggings=护腿配件 -armorMod.type.servo=伺服系统 -armorMod.type.special=特殊配件 - +armorMod.type.helmet=头盔 +armorMod.type.insert=插板 +armorMod.type.leggings=护腿 +armorMod.type.servo=伺服电机 +armorMod.type.special=特殊 battery.mode.buffer=输入/输出模式 battery.mode.input=输入模式 -battery.mode.off=OffW +battery.mode.off=关闭W battery.mode.output=输出模式 -battery.priority.high=充电优先级: 高 -battery.priority.high.desc=作为总是需要装满的$紧急缓冲电池的情况 -battery.priority.low=充电优先级: 低 -battery.priority.low.desc=在大多数$不影响机器性能的情况下$存储多余的能量使用 -battery.priority.normal=充电优先级: 中 -battery.priority.normal.desc=优先级无关紧要$的小型电网 -battery.priority.recommended=推荐用于: -battery.redstone.off=红石信号 OFF -battery.redstone.on=红石信号 ON - -bomb.detonated=成功引爆! -bomb.incompatible=目标无法被触发! -bomb.launched=成功发射! -bomb.missingComponent=组件缺失! -bomb.nobomb=链接位置不兼容或已被拆除! -bomb.triggered=成功触发! - +battery.priority.high=充电优先级:高 +battery.priority.high.desc=总是需要优先装满的紧急缓冲区 +battery.priority.low=充电优先级:低 +battery.priority.low.desc=在大多数情况下,需要在不影响机器性能的情况下$存储剩余的能量 +battery.priority.normal=充电优先级:正常 +battery.priority.normal.desc=较小的电网,其优先级无关紧要 +battery.priority.recommended=推荐用于: +battery.redstone.off=红石 关 +battery.redstone.on=红石 开 +bomb.detonated=成功引爆! +bomb.incompatible=设备无法触发! +bomb.launched=发射成功! +bomb.missingComponent=组件丢失! +bomb.nobomb=链接位置不兼容或已断开! +bomb.triggered=触发成功! book.test.cover=停车坐爱枫林晚 book.test.page1=测试页面1 - book.error.cover=粒子对撞机:$故障排除 -book.error.title1=错误 0x01 [电量不足] -book.error.page1=§l错误名称:§r "错误_电量不足" §l说明:§r 粒子到达了一个电量不足的部分. §l解决方法:§r 粒子成功通过的其中一个电源接口替换为更高级的 电源接口, 或者在粒子终止的部分之前的部分适当添加更多的 电源接口. -book.error.title2=错误 0x02 [无分析室] -book.error.page2=§l错误名称:§r "错误_无分析室" §l说明:§r 粒子没有通过分析室就已经再次到达加速器核心部件. §l解决方法:§r 确保你的加速器有一个分析室, 并仔细检查其设置的工作模式(直线型/环型). -book.error.title3=错误 0x03 [粒子通道堵塞] -book.error.page3=§l错误名称:§r "错误_粒子通道堵塞" §l说明:§r 粒子与碰撞器通道内的块碰撞. §l解决方法:§r 确保粒子对撞机内部没有任何障碍物, 肖特基粒子二极管和核心部件除外. -book.error.title4=错误 0x04 [线圈缺失] -book.error.page4=§l错误名称:§r "错误_线圈缺失" §l说明:§r 粒子通过了一个缺少一个或多个线圈的部分. §l解决方法:§r 移除冲突区域的对撞机镀层, 并检查是否所有线圈都在那里. 这种错误也会发生在没有二极管的T型交叉口上. -book.error.title5=错误 0x05 [加速器结构错误] -book.error.page5=§l错误名称:§r "错误_加速器结构错误" §l说明:§r 粒子通过了一个构建不正确的部分(但既没有阻塞也没有丢失线圈). §l解决方法:§r 确保有问题的部分在所有要求的空间中都有镀层, 没有线圈暴露在外. +book.error.title1=错误 0x01 [能量不足] +book.error.page1=§l错误类型:§r "错误_能量不足" §l描述:§r 粒子到达了能量不足的部分。 §l修复方式:§r 用更高级的电源接口替换粒子成功通过的 其中一个电源接口,或者在粒子终止的段之前额外添加多一个电源接口。 +book.error.title2=错误 0x02 [无法分析] +book.error.page2=§l错误类型:§r "错误_无法分析" §l描述:§r 尽管没有通过分析室,但粒子已经到达核心。 §l修复方式:§r 确保加速器有一个分析室,并再次检查工作模式(线性/环形)。 +book.error.title3=错误 0x03 [通道阻塞] +book.error.page3=§l错误类型:§r "错误_通道阻塞" §l描述:§r 粒子与对撞机通道内的方块碰撞。 §l修复方式:§r 确保粒子对撞机内部没有任何障碍物, 粒子二极管和核心块除外。 +book.error.title4=错误 0x04 [缺少线圈] +book.error.page4=§l错误类型:§r "错误_缺少线圈" §l描述:§r 粒子通过了缺少一个或多个线圈的段。 §l修复方式:§r 移除冲突区域的对撞机镀层,并检查线圈结构是否完整。 这种错误也会发生在没有二极管的T型交叉口上。 +book.error.title5=错误 0x05 [错误区段] +book.error.page5=§l错误类型:§r "错误_错误区段" §l描述:§r 粒子通过了一个结构不正确的段(但既没有被阻塞也没有缺少线圈)。 §l修复方式:§r 确保有问题的部分都有镀层包裹,没有线圈暴露。 book.error.title6=错误 0x06 [分析室过长] -book.error.page6=§l错误名称:§r "错误_分析室过长" §l说明:§r 粒子通过了三格以上的有效分析室. §l解决方法:§r 确保环形加速器的分析室长度正好为3格, 直线型加速器的分析室长度至少为2格. 还要检查粒子是否未通过分支或环形结构的加速器中的 多个分析室. +book.error.page6=§l错误类型:§r "错误_分析室过长" §l描述:§r 粒子已通过三个以上所需的有效分析室段。 §l修复方式:§r 确保环形加速器的分析室长度正好为3个方块, 直线加速器的分析室长度至少为2个方块。 还要检查粒子是否未通过分支或 环形加速器中的多个分析室。 book.error.title7=错误 0x07 [分析室过短] -book.error.page7=§l错误名称:§r "错误_分析室过短" §l说明:§r 粒子离开了分析室,尽管分析室不符合长度要求. §l解决方法:§r 确保环型加速器上的分析室正好有3格长. 有效的分析室部分没有线圈, 镀层完全由分析室壁/窗组成. 带有线圈的分析室会被视为普通加速部分. -book.error.title8=错误 0x08 [粒子与肖特基粒子二极管碰撞] -book.error.page8=§l错误名称:§r "错误_粒子与肖特基粒子二极管碰撞" §l说明:§r 该粒子与肖特基粒子二极管的非输入侧碰撞. §l解决方法:§r 检查二极管的方向配置是否正确. 粒子只能从带有绿色向内箭头的侧面进入二极管. -book.error.title9=错误 0x09 [转弯处分岔] -book.error.page9=§l错误名称:§r "错误_转弯处分岔" §l说明:§r 粒子已到达具有多个出口的转弯处. §l解决方法:§r 如果你的拐弯处是正常的, 检查所有需要的线圈是否都存在(即线圈层中没有孔). 如果转弯处打算进行分支, 则需要正确配置的肖特基粒子二极管. - -book.starter.cover=重建工业社会的$一本实业家$的指南 -book.starter.title1=介绍 -book.starter.page1=如果你读到这篇文章, 那么很有可能社会已经以这样或那样的方式完全崩溃了. 政府,国家和权威已经是过去的概念——以及文明生活 的所有便利设施. 因此,本指南将告诉你如何通过重新创造过去的行业和 科学技术 来改善你自己的生活. -book.starter.title2=煤尘与芥子气 -book.starter.page2=虽然不可能预测世界在后世界末日时代的实际状态, 但目前形式的战争和工业活动不太可能没有结束. 为了保护自己的肺部, 一种有效且廉价的方法是在一些 §l布料§r上小便来制作一个 §l战壕版粗制防护面罩§r, 以保护你免受煤尘或芥子气的伤害, 以防你遇到其中任何一种情况. -book.starter.title3=砧与锻压机 -book.starter.page3=开始你的工业振兴的核心是一个§lE合前期的机械, 如组装机, 而火力锻压机将允许您制作无法用砧锤击在一起的板材, 金属线和电路. -book.starter.title4=模板 -book.starter.page4=为了将金属冲压成有用的 形状,组装成机器并进行化 学反应,您需要创建一个 §l机器模板文件夹§r来制造右 侧显示的各种冲压和模板. -book.starter.title5=拾荒 -book.starter.page5=根据最初的世界末日事件对世界现有建筑的破坏程度, 你有可能直接从中回收许多有用的材料和机器. 钢铁等金属合金, 电路等零件, 甚至核电站的可裂变物质都可能在等着你. 然而, 要小心某些废墟, 因为那里可能潜伏着过度的危险, 就像草丛中的蛇一样; 等着用辐射, 陷阱或其他无法形容的恐怖袭击你... -book.starter.title6=早期机械 -book.starter.page6a=您应该首先组装的两台机器是§l高炉§r 和§l装配机§r. 前者将允许您制造合金, 如§l钢§r, §l紫铜§r, 和§l高级合金§r; 你需要将这些金属用于机器的机身, 电路的布线, 先进的电磁铁等等. -book.starter.page6b=装配机将用于制造本指南中描述的几乎所有其他机器. 您需要一个电源, 如§l火力§r§l发电机§r或§l太阳能锅炉§r. -book.starter.page7a=§l粉碎机§r以及一对粉碎机刀片将非常有用, 可以通过粉碎成可冶炼的粉末, 将大多数矿石的产量提高一倍. 这些粉末对于开始为合成各种机器而制造的电路 也至关重要,例如§l增强§r和§l超频§r电路. -book.starter.page7b=使用您的新机器, 您可以组装出§l化工装置§r, 用于合成更好的电路, 混凝土, 石化产品等. -book.starter.title8=黑金 -book.starter.page8a=使用§l石油§l储层§r§l探测仪§r, 您可以通过测量一个区域 来发现地下石油沉积物以 放置§l梁式抽油机§r或 §l石油钻井塔§r. 记住,石油储备会随着时间 的推移而耗尽. -book.starter.page8b=在§l炼油厂§r中提炼和分离石油 成分之前,你必须在§l锅炉§r中将 石油加热至300°C. -book.starter.title9=石油化工 -book.starter.page9=使用§l化工厂§r, §l分馏§r§l塔§r和§l催化裂化§r§l塔§r, 你可以将分离出的油转化为各种有用的产品. §l催化裂化§r§l塔§r, 可以将分离出的油转化为各种有用的产品. 例如:§l聚合物§r或§l电木§r, 耐用又柔性的塑料; §l德什§r, 一种非常耐用和耐热的稀土金属合金; §l固体燃料§r, 可燃烧获取能量; 甚至是§l液体燃料§r, 比如§l汽油§r, §l柴油§r, §l煤油§r等等. -book.starter.title10=高级机械 -book.starter.page10=通过一套成熟的石油加工系统,您可以制造§l离心机§r, 这将使矿石的产量增加三倍; §l矿物§l结晶机§r将 矿石结晶后,产量将进一步提高; 以及§lSILEX同位素激光分离室+§lFEL§r, 这两个现代工程的奇迹可以轻松地分离材料的同位素. 你需要更多的能量来驱动这些; 可通过§l柴油发电机§r,§l工业发电机§r, 甚至核反应堆等来源获取更多的能量. -book.starter.title11=特殊岩层 -book.starter.page11=在你行走的地面之下,有几个自 然形成的§l岩层§r,或者说特殊的矿 层和岩层. §l片岩地层§r是蓝色的含锂层,填充 有铀,铁,铜,石棉和其他矿石可供 你自己使用. §l深板岩层§r含有大量稀有矿物, 如§l锆§r和§l硼§r,但 需要炸药才能采集. -book.starter.title12=辐射 -book.starter.page12a=§o本书其余部分将讨论与§o辐射有关的问题. 为了您和其他人的安全,我将提供§o一些建议以说明如何缓解和处理暴露于此的风险.§r -book.starter.page12b=充分暴露在辐射中会导致身体伤害. 第一步是预防; 一定要限制接触,并穿戴防护装备,如§l防辐射套装§r, 或在衣服或盔甲上加装§l防辐射覆层/涂料§r; 你也可以服用§lRad-X防辐射药§r来限制你的辐射量. 多亏了现代医学,第二步可以在必要时移除; 例如,§l玩家§l去污器§r将缓慢减少身体吸收的辐射. §l消辐宁§r还可以用作暴露后预防,快速有效地逆转 电离辐射对身体造成的损害. -book.starter.title13=铀浓缩 -book.starter.page13=核反应堆的燃料有几个简单的选择; 例如,§l天然铀§r或§l钍燃料§r. 然而, 如果你寻找更强力的东西,你可以设置两台§l气体离心机§r 的浓缩级联,用剩余的§l铀-238§r生产§l铀燃料§r. 你必须将天然铀转化为§l黄饼§r,然后是§l六氟化§l铀§r. -book.starter.title14=芝加哥反应堆 -book.starter.page14=或者,您可以使用§l芝加哥反应堆§r从天然铀中增殖出 §l反应堆级钚§r,这是一种更强大的燃料. 通过堆叠石墨块并在其中钻孔,您可以将燃料棒插入钚 和中子源棒,例如§l镭226-铍中子源§r,以开始反应. 确保测试你的设计;为防止过热, 可能需要隔开或限制石墨块的数量. -book.starter.title15=ZIRNOX锆诺克斯 -book.starter.page15=最终,你可以制造你的第一个§o真正§r的能源来源: §lZIRNOX§r核反应堆. 与其他能量源相比,核反应堆需要更多的准备; 首先,你需要有一个强悍的水源,比如§l重型§l无限水罐§r. 要从反应堆堆芯中排出热量并将水煮沸成蒸汽, 你需要足够的§l二氧化碳§r. 你只需要足够的压力, 不要让压力§o太§r大! 你还需要三个蒸汽涡轮机来利用产生的蒸汽来制造能量; §l蒸汽§l轮机§r或§l大型工业§l汽轮机§r将是最佳的. 最后,需要一个§l冷凝器§r或§l冷却塔§r来将残余蒸汽冷凝成水, 在这个冷却回路中可以将其排空或回收. -book.starter.title16=结论 -book.starter.page16=如果你已经走到了这一步,你已经走在重建文明大道上了. 你已经成功地用核能, 石油化工等重新制造了世界末日前的那些先进机器. 我不知道你将如何利用这些新发现的科技, 但我个人希望你利用这些优势是为了自己和他人的利益 - 或者至少是为了自卫. 再见! -book.starter.title18=关于作者 -book.starter.page18=vær只是一个被困在"传声头像"的§o《一生一次》§r中的 灰色虚空中太久的人. 有一次, 他发现了一扇工作室的门, 但令他沮丧的是, 他发现那是一个纸板剪出来的. - - +book.error.page7=§l错误类型:§r "错误_分析室过短" §l描述:§r 粒子已离开分析室,尽管不符合长度要求。 §l修复方式:§r 确保环形加速器上的分析室正好有3个方块长。 有效的分析段没有线圈,镀层完全由分析室壁/窗组成。 带有线圈的分析室被视为规则段。 +book.error.title8=错误 0x08 [二极管方向错误] +book.error.page8=§l错误类型:§r "错误_二极管方向错误" §l描述:§r 该粒子与肖特基粒子二极管的非输入侧碰撞。§l修复方式:§r 检查二极管的配置是否正确。 粒子只能从带有绿色向内箭头的侧面进入二极管。 +book.error.title9=错误 0x09 [多处分支] +book.error.page9=§l错误类型:§r "错误_多处分支" §l描述:§r 粒子到达具有多个出口的转弯处。§l修复方式:§r 如果你的对撞机是正常的,检查所有需要的线圈是否都存在(即线圈中没有缺漏)。如果转弯处打算进行分支,则需要正确放置的肖特基粒子二极管。 book.rbmk.cover=$我的第一个$RBMK石墨式反应堆:$建造一个$反应堆$的基础知识 book.rbmk.title1=介绍 book.rbmk.page1=§lRBMK石墨式反应堆§r是一个完全模块化的核反应堆. 与大多数其他反应堆不同的是, 该反应堆没有"多方块结构核心"和尺寸上的限制, 而反应堆的性能和效率仅取决于你是如何建造它的, 以及各个组件如何相互作用. @@ -275,9 +224,9 @@ book.rbmk.page6=§L自动控制棒§r 与常规控制棒几乎相同, 但它们 book.rbmk.title7=蒸汽管道 book.rbmk.page7=反应堆中的 §l蒸汽管道§r 是唯一能有效降低反应堆热水平的组件. 如果一个蒸汽管道组件的沸点高于其设定的蒸汽类型的沸点, 那么它将试图消耗尽可能多的水 并产生尽可能多的蒸汽来冷却到沸点以下. book.rbmk.title8=碳化钨中子反射器 -book.rbmk.page8=反应堆中的 §l碳化钨中子反射器§r 将阻止中子的通过, 相反, 中子将被反射回它们来自的燃料棒上. 这对于使用中子是有用的, 否则这些中子一旦离开反应堆就会被浪费掉. +book.rbmk.page8=反应堆中的 §l碳化钨中子反射器§r 将阻止中子的通过, 相反,中子将被反射回它们来自的燃料棒上. 这对于使用中子是有用的, 否则这些中子一旦离开反应堆就会被浪费掉. book.rbmk.title9=硼中子吸收器 -book.rbmk.page9=§l硼中子吸收器§r 只是阻挡中子. 被吸收的中子不会产生热量, 会被有效地吸收. 这有助于防止燃料棒发生过度反应从而超出临界值. +book.rbmk.page9=§l硼中子吸收器§r 只是阻挡中子. 被吸收的中子不会产生热量,会被有效地吸收. 这有助于防止燃料棒发生过度反应从而超出临界值. book.rbmk.title10=石墨慢化剂 book.rbmk.page10=§l石墨慢化剂§r 把穿过它的快中子转换成慢中子. 大多数核燃料反应释放出快中子, 而引起裂变需要慢中子, 所以强烈建议使用慢化剂. book.rbmk.title11=结构柱 @@ -285,180 +234,229 @@ book.rbmk.page11=§l结构柱§r 对中子没有任何影响也没有任何特 book.rbmk.title12=控制台 book.rbmk.page12=§lRBMK石墨式反应堆控制台§r 允许你远程控制反应堆. 使用 §lRBMK石墨式反应堆连接装置记录反应堆§r 然后潜行右击控制台就能把反应堆和控制台连接起来. 一个控制台只能控制15x15个组件, 对于大型反应堆可以使用多个控制台. book.rbmk.title13=控制台的使用 -book.rbmk.page13=单击屏幕上的组件将选择或取消选择它们. 使用彩色按钮, 可以快速选择该颜色组中的所有控制棒. 按钮“A”将选择所有控制棒, “X”将取消选择所有控制棒. +book.rbmk.page13=单击屏幕上的组件将选择或取消选择它们. 使用彩色按钮,可以快速选择该颜色组中的所有控制棒. 按钮“A”将选择所有控制棒, “X”将取消选择所有控制棒. book.rbmk.page14=在绿色框中输入一个介于0和100之间的数字, 然后按下旁边的按钮, 将所有选定的控制棒拔出程度设置到该位置. 按钮“AZ-5”将使所有控制棒完全插入. book.rbmk.title15=核燃料 book.rbmk.page15= §l核燃料§r 的反应取决于许多因素. 主要是 §l核燃料强度§r, §l氙中毒程度§r 和接收到的 §l中子数量§r. 氙元素会在核燃料的中子含量较低时积聚起来, 并在正常运行时燃烧殆尽. 中子的效率取决于其类型, 大多数核燃料 §l用慢中子轰击来裂变效果最好§r. book.rbmk.title16=熔毁 book.rbmk.page16=§4§l尽量避免发生, 你不会想让这样一场核灾难发生在你的存档或服务器里的. - -book_lore.author= %s 著 +book.starter.cover=重建$社会的实业家$指南 +book.starter.title1=介绍 +book.starter.page1=如果你正在读这篇文章,很可能社会已经因这样或 那样的方式完全崩溃了。政府、国家和权威是过去的概念, 以及文明生活的所有便利设施。因此,本指南将 告诉您如何通过重新创造过去的行业和技术 来改善自己的生活,从而改变这种状况。 +book.starter.title2=煤和芥子气 +book.starter.page2=虽然无法预测世界末日后的实际状态, 但目前形式的战争和工业不太可能没有结束。 为了保护自己的肺部,一种有效且廉价的方法是 在§L布§r上小便,制作一个§L防毒面具§r, 以使你免受煤尘或芥子气的伤害. +book.starter.title3=铁砧和锻压机 +book.starter.page3=开始工业振兴的精髓是§l砧§r和§l火力锻压机§r. 铁砧将允许您手动组合早期机械,如组装机, 而火力锻压机将允许您制作 无法用铁砧制作的板材、电线和电路. +book.starter.title4=模板 +book.starter.page4=为了将金属冲压成有用的 形状、组装机械和执行 化学反应,您需要创建 一个§L机器模板文件夹§r, 以创建右侧显示的 各种锻模以及配方。 +book.starter.title5=废墟探索 +book.starter.page5=根据最初的世界末日事件对世界现有结构的影响程度, 有可能直接从中抢救出许多有用的材料和机器。 钢铁等金属合金、电路等部件,甚至核电站的 裂变材料都可能在等着你。 然而,要小心某些废墟,因为那里可能潜伏着过度的危险, 就像草丛中的蛇一样; 等待着用辐射、陷阱或无法形容的恐怖袭击你... +book.starter.title6=早期机械 +book.starter.page6a=您应首先装配的两台机器是§l高炉§r和§l装配机§r. 前者允许您制造合金,如§L钢§r、§l工业级铜§r和§l高级合金§r; 你需要将这些金属用于机器的机身、 电路的布线、高级电磁铁等. +book.starter.page6b=汇编程序将用于创建本指南中描述的几乎所有其他机器. 您需要一个电源,如§L火力§r§L发电机§r或§L太阳能锅炉§r. +book.starter.page7a=§l粉碎机§r以及一对粉碎机刀片将会非常有用, 能将大多数矿石粉碎成可熔炼的粉末,使其产量提高一倍. 这些粉末对于开始为各种机器制作电路也至关重要, 例如§l增强电路§r和§l超频电路§r。 +book.starter.page7b=使用您的新机器,您可以创建§L化工厂§r, 用于合成更好的电路、混凝土或进行石化产品加工等。 +book.starter.title8=黑金 +book.starter.page8a=使用§l石油§l储层§r§l探测仪§r, 您可以通过测量一个区域 来发现地下的油岩以 放置§l石油钻机§r或 §l钻油塔§r来开采 记住,石油储备会随着时间 的推移而耗尽 +book.starter.page8b=在§l炼油厂§r中提炼和分离石油 成分之前,你必须在§l锅炉§r中将 石油加热至300°C. +book.starter.title9=石油化工产品 +book.starter.page9=使用§l化工厂§r, §l分馏§r§l塔§r和§l催化裂化§r§l塔§r, 你可以将分离出的油转化为各种有用的产品. §l催化裂化§r§l塔§r, 可以将分离出的油转化为各种有用的产品。 例如:§l聚合物§r或§l电木§r, 耐用又柔性的塑料; §lDesh§r, 一种非常耐用和耐热的稀土金属合金; §l固体燃料§r, 可燃烧获取能量; 甚至是§l液体燃料§r, 比如§l汽油§r, §l柴油§r, §l煤油§r等等。 +book.starter.title10=先进的机械 +book.starter.page10=通过一套成熟的石油加工系统,您可以制造§l离心机§r, 这将使矿石的产量增加三倍; §l矿物§l结晶机§r将 矿石结晶后,产量将进一步提高; 以及§lSILEX同位素激光分离室+§lFEL§r, 这两个现代工程的奇迹可以轻松地分离材料的同位素. 你需要更多的能量来驱动这些; 可通过§l柴油发电机§r,§l工业发电机§r, 甚至核反应堆等来源获取更多的能量。 +book.starter.title11=特殊地层 +book.starter.page11=在你行走的地面之下,有几个 自然形成的§l岩层§r,或者说特殊的 矿层和岩层。 §l片岩地层§r是蓝色的含锂层, 其中有铀、铁、铜、石棉和其他矿石 可供你使用。 §l深板岩层§r含有大量稀有矿物, 如§l锆§r、§l硼§r和§l朱砂§r等, 但你需要炸药才能采集 +book.starter.title12=辐射 +book.starter.page12a=本书其余部分将讨论与辐射有关的问题。 为了您和他人的安全,我将提供一些建议以说明如何缓解和处理暴露于此的风险。 +book.starter.page12b=充分暴露在辐射中会导致身体伤害. 第一步是预防; 一定要限制接触,并穿戴防护装备,如§l防辐射套装§r, 或在衣服或盔甲上加装§l防辐射覆层/涂料§r; 你也可以服用§lRad-X防辐射药§r来限制你的辐射量. 多亏了现代医学,第二步可以在必要时移除; 例如,§l玩家§l去污器§r将缓慢减少身体吸收的辐射. §l消辐宁§r还可以用作暴露后预防,快速有效地逆转 电离辐射对身体造成的损害。 +book.starter.title13=铀浓缩 +book.starter.page13=核反应堆的燃料有几个简单的选择; 例如,§l天然铀§r或§l钍燃料§r。 然而, 如果你寻找更强力的东西,你可以设置两台§l气体离心机§r 的浓缩级联,用剩余的§l铀-238§r生产§l铀燃料§r. 你必须将天然铀转化为§l黄饼§r,然后是§l六氟化§l铀§r. +book.starter.title14=芝加哥反应堆 +book.starter.page14=或者,您可以使用§l芝加哥反应堆§r从天然铀中增殖出 §l反应堆级钚§r,这是一种更强大的燃料. 通过堆叠石墨块并在其中钻孔,您可以将燃料棒插入钚 和中子源棒,例如§l镭226-铍中子源§r,以开始反应. 确保测试你的设计;为防止过热, 可能需要隔开或限制石墨块的数量。 +book.starter.title15=ZIRNOX锆诺克斯 +book.starter.page15=最终,你可以制造你的第一个§o真正§r的能源来源: §lZIRNOX§r核反应堆. 与其他能量源相比,核反应堆需要更多的准备; 首先,你需要有一个强悍的水源,比如§l重型§l无限水罐§r. 要从反应堆堆芯中排出热量并将水煮沸成蒸汽, 你需要足够的§l二氧化碳§r. 你只需要足够的压力, 不要让压力§o太§r大! 你还需要三个蒸汽涡轮机来利用产生的蒸汽来制造能量; §l蒸汽§l轮机§r或§l大型工业§l汽轮机§r将是最佳的. 最后,需要一个§l冷凝器§r或§l冷却塔§r来将残余蒸汽冷凝成水, 在这个冷却回路中可以将其排空或回收。 +book.starter.title16=结论 +book.starter.page16=如果你已经走到了这一步,你已经走在重建文明大道上了. 你已经成功地用核能, 石油化工等重新制造了世界末日前的那些先进机器. 我不知道你将如何利用这些新发现的科技, 但我个人希望你利用这些优势是为了自己和他人的利益 - 或者至少是为了自卫. 再见! +book.starter.title18=关于作者 +book.starter.page18=v?r只是一个被困在"传声头像"的§o《一生一次》§r中的 灰色虚空中太久的人. 有一次, 他发现了一扇工作室的门, 但令他沮丧的是, 他发现那是一个纸板剪出来的 +#book.rbmk.cover=HOW 2 RBMK:$The Basics$of Reactor$Construction +#book.rbmk.title1=Introduction +#book.rbmk.page1=The §lRBMK§r is a fully modular nuclear reactor. Unlike most other reactors, there is no "core", and no size limitations, rather, the behavior and efficiency of the reactor comes from how it is built and how the different pieces interact with each other. +#book.rbmk.title2=Heat +#book.rbmk.page2=As the reactor operates, it will generate §lheat§r. Heat will spread between parts, slowly decreasing in the process. The goal is to produce as much heat as possible without melting the reactor, and to move that heat to a §lsteam channel§r which cools the reactor and produces steam. +#book.rbmk.title3=Fuel Rod +#book.rbmk.page3=The §lfuel rod§r will capture neutron flux, causing the fuel inside the fuel rod to react, giving off neutrons in the process. Neutrons are released in all four cardinal directions with a maximum range of 5 blocks. The amount of neutrons released depends on the §lfuel§r used. +#book.rbmk.title4=Control Rod +#book.rbmk.page4=The §lcontrol rod§r will decrease the amount of neutrons passing though it. Fully inserted, it will block all neutrons, at half insertion, it will only block half. Control rods are used to regulate the reactor's activity and to turn it off. +#book.rbmk.title5=Control Rod - Usage +#book.rbmk.page5=The center of the GUI will display the current rod insertion. The colored buttons on the left will add a control rod to a color group, which is useful to quickly select grouped rods from the §lRBMK console§r. The buttons on the right allow for manual insertion in increments of 25%%. +#book.rbmk.title6=Automatic Control Rod +#book.rbmk.page6=§lAutomatic control rods§r function nearly identical to regular control rods, but they cannot be configured manually, instead they will adjust the rod position based on the current temperature. What function to use and how deep to insert at what temperature has to be defined first. +#book.rbmk.title7=Steam Channel +#book.rbmk.page7=The §lsteam channel§r is the only part that will actively reduce the reactor's heat level. If the component's temperature exceeds the boiling point of the set steam type, it will try to consume as much water and produce as much steam as needed to cool back below the boiling point. +#book.rbmk.title8=Neutron Reflector +#book.rbmk.page8=The §lneutron reflector§r will block neutrons from passing it, instead the neutrons will be reflected back at the fuel rod they came from. This is useful for utilizing neutrons that would otherwise be wasted by simply exiting the reactor. +#book.rbmk.title9=Neutron Absorber +#book.rbmk.page9=The §lneutron absorber§r will simply block neutrons. Neutrons absorbed will not generate heat and be effectively voided. This is useful to prevent fuel rods from reacting that would otherwise be in range. +#book.rbmk.title10=Graphite Moderator +#book.rbmk.page10=The §lgraphite moderator§r will convert fast neutrons passing through it into slow neutrons. Most fuels fission into fast neutrons while needing slow neutrons to split, so using moderators is strongly recommended. +#book.rbmk.title11=Structural Column +#book.rbmk.page11=The §lstructural column§r will not interfere with neutrons, nor does it have special uses. It is recommended to fill the reactor with structural columns where no other parts will be, because structural columns are capable of transporting heat. +#book.rbmk.title12=Console +#book.rbmk.page12=The §lRBMK console§r lets you control the reactor from afar. Using the §lRBMK§r §lconsole linking device§r on an RBMK part and then the console will link the reactor to the console. The console can only manage 15x15 parts, for larger reactors you might want to use multiple consoles. +#book.rbmk.title13=Console Usage +#book.rbmk.page13=Clicking on the parts will select and deselect them. Using the colored buttons, you can quickly select all control rods of that color group. Button 'A' will select all control rods, 'X' will deselect all. +#book.rbmk.page14=Entering a number 0-100 in the green box and then hitting the button next to it will set all selected control rods to this position. Button 'AZ-5' will cause all control rods to fully insert. +#book.rbmk.title15=Fuel +#book.rbmk.page15=The §lfuel§r's reactivity is based on multiple factors. The main ones are the §lenrichment§r, §lxenon poison§r and the amount of incoming §lneutrons§r. Xenon builds up when the fuel receives few neutrons and burns away during normal operation. The effectivity of neutrons depends on the type, most fuels §lsplit best with slow neutrons§r. +#book.rbmk.title16=Meltdown +#book.rbmk.page16=§4§lAvoid. +book_lore.author=By %s book_lore.test.name=测试 book_lore.test.author=那个家伙 -book_lore.test.page.1=>在我开始之前,请允许我 澄清我不是同性恋. >做我 >今晚 >18点 >趁我的父母走了几天,和我最好 的朋友一起出去玩 >我们已经是一年的好朋友了 >喝了点酒,玩了很多电子游戏, 还点了一个比萨饼 >我们玩得很开心 >在晚上的某个时刻,比如9点 左右,他开了一个非常有趣的 玩笑,我不记得了, 但我知道这让我们都笑得很开心 > 我不假思索地用右手 -book_lore.test.page.2=拂过他半卷曲的黑发, 说他真是一个有趣的男孩 >他脸红了 >我意识到我很慌乱 >我们有点太亲近了 >突然他吻了我,出于某种原因 我回吻了他 >我们做爱了 >拥抱在一起睡着了 >半夜醒来,他的头紧贴在我的 胸口和脖子上 >这感觉很好, 但我仍是个钢铁直男 -book_lore.test.page.3=我在他在我怀里睡着的时候 写了这个. 我怎么能让我最好的 朋友失望呢? 我可不想成为一个 [弱智] /b/ +book_lore.test.page.1=>你好,在我开始之前,让我澄清我不是同性恋。>做我>今天晚上>18>和我最好的朋友和我的父母出去玩了几天>我们已经是最好的朋友一年了>喝了点酒,玩了很多电子游戏,还点了一份披萨>我们玩得很开心>在晚上的某个时候,比如9点左右,他开了一个非常有趣的玩笑,我不记得了,但我知道这让我们俩都笑得很厉害>没有我想我用右手摸了摸他那半卷曲的黑发,然后叫他一个有趣的男孩>他脸红了>我意识到我很慌张>我们有点亲密>突然他吻了我,出于某种原因我又吻了他>我们做爱>拥抱在一起睡着了>半夜醒来时,他的头贴在我的胸部和颈部>感觉很好,但我不是同性恋 +book_lore.test.page.2=他在我怀里睡着时,我正在打字。我怎么才能让我最好的朋友失望呢?我不想成为[编辑]/b/ +book_lore.test.page.3=3 book_lore.test.page.4=4 book_lore.test.page.5=5 - book_lore.book_iodine.name=笔记 book_lore.book_iodine.author=戴夫 -book_lore.book_iodine.page.1=好吧,你不会相信的, 但自从两周前离开后,这位老人终于再次出现了。更令人惊讶的是,他竟然决定把他们在峡谷里的所作所为泄露出去: -book_lore.book_iodine.page.2=显然,研发部门的白痴们发现了一种主要是无机的化合物, 很像自然界中的毒素, 但要记住:濒死的细胞会繁殖毒素并通过皮肤排出, 产生一种具有高度传染性的气溶胶. -book_lore.book_iodine.page.3=就像病毒一样, 但不是病毒. 它的成分很奇怪, 你可以把它放在任何家用瓶子里,但你必须把顺序弄对. 博士告诉我第一种成分是粉末状的碘晶体,要放进槽 %d - +book_lore.book_iodine.page.1=alright you will not believe this, but old man weathervane finally managed to show up again since he left two weeks ago and what's more surprising is the fact that he actually decided to spill the beans on what they were doing in the canyon: +book_lore.book_iodine.page.2=apparently the morons from R&D discovered a compound that is mostly inorganic, pretty much like a toxin in nature, but get this: the dying cells will reproduce said toxin and excrete it through the skin, creating an aerosol that is highly contagious. +book_lore.book_iodine.page.3=it's just like a virus, but not a virus. the composition is weird, you can mix it in any household bottle but you do have to get the order right. the doc told me that the first ingredient which is just powdered iodine crystals goes into slot %d book_lore.book_phosphorous.name=笔记 book_lore.book_phosphorous.author=戴夫 -book_lore.book_phosphorous.page.1=嘿,又是我. 我想你收到了我最后的备忘录,博士对此不太高兴. 我得动作快点, 研发部门的笨蛋们现在又在抱怨了, 可能是因为钱, 又一次. 无论如何, 风向标博士发现第二种 -book_lore.book_phosphorous.page.2=成分是红磷, 必须将其混入 %d槽中 - +book_lore.book_phosphorous.page.1=heyo, it's me again. i assume you got my last memo, the doc wasn't too happy about it. i'll have to do this quick, the dunderheads from R&D are currently moaning again, probably over money. again. anyway, doc weathervane found that the second +book_lore.book_phosphorous.page.2=ingredient is red phosphorous, whihc has to be mixed into slot %d book_lore.book_dust.name=笔记 book_lore.book_dust.author=戴夫 -book_lore.book_dust.page.1=当博士发现研发人员保留了剩下的一个样本时,他大发雷霆, 大喊大叫说这是严重的疏忽,简直是世界末日的剧本. 我告诉他冷静一分钟, 紧张起来对他的血压没有好处, 并 -book_lore.book_dust.page.2=不是说他还剩下很多血. 一个研发部的白痴在上周的通告中透露了更多信息, 他们称他们那宝贝混合物 \"MKU\" ,鬼知道这是啥意思, 它含有货真价实的家用棉绒. 你能相信吗? 这是他们 -book_lore.book_dust.page.3=最危险的发明之一而它含有灰尘. 奇怪的是,他们还提到它会进入槽 %d - +book_lore.book_dust.page.1=the doc was furious when he found out that the R&D dorks kept the one remaining sample, ranting about gross negligence this and a doomsday scenario that. i told him to chill for a minute, getting all worked up isn't good for his blood pressure, not +book_lore.book_dust.page.2=that he has much blood left to begin with. one of the R&D morons slipped some more info into last week's circular, they call their little concoction \"MKU\" whatever that means, and that it contains actual household lint. can you believe that? one of the most +book_lore.book_dust.page.3=dangerous inventions of theirs and it contains dust. strangely they also mentioned that it goes into slot %d book_lore.book_mercury.name=笔记 book_lore.book_mercury.author=戴夫 -book_lore.book_mercury.page.1=好吧,这就说得通了. 不包括呕吐的血液部分, 毒理学报告表明其主要类似于汞中毒. 为什么? 因为我们的小混合物也含有汞! 我只是想知道当这些东西 -book_lore.book_mercury.page.2=被身体复制时,它们从哪来? 不管怎样,水银要进入槽 %d - +book_lore.book_mercury.page.1=well that settles that. not counting the vomitting blood part, the toxicological report mostly resembles that of mercury poisoning. why? because our little mix also contains mercury! i just wonder where all that stuff comes from when being +book_lore.book_mercury.page.2=replicated by the body? whatever, the mercury goes into slot %d book_lore.book_flower.name=笔记 book_lore.book_flower.author=戴夫 -book_lore.book_flower.page.1=还记得我在第一份备忘录中提到的化合物大多是无机的吗? 好吧,你猜怎么着, 那个老家伙分享了第四种配料: 牵牛花, 花的一属. 就是喇叭花! 可能是因为它的硫含量低, 不管是什么情况, -book_lore.book_flower.page.2=其他花就是不起作用. 牵牛花要放入槽 %d - +book_lore.book_flower.page.1=remember when i mentioned in my first memo that the compound is mostly anorganic? well guess what, the old man shared the fourth ingredient: ipomoea nil, a genus of flower. morning glory! it might be due to its low sulfur content, whatever might be the case, +book_lore.book_flower.page.2=it does not work with other flowers. the morning glory goes into slot %d book_lore.book_syringe.name=笔记 book_lore.book_syringe.author=戴夫 -book_lore.book_syringe.page.1=我第五条留言的一个小附录, 显然你必须把这些叫MKU的东西放在一个容器里. 研发人员使用的是从医疗机构购买的普通金属注射器. 我猜是多余的, 他们有成千上万的针头. -book_lore.book_syringe.page.2=金属注射器要放入槽 %d - +book_lore.book_syringe.page.1=a little addendum to my fifth message, obviously you have to store this MKU stuff in a container. the R&D nuts used regular metal syringes that they got from medical. surplus ware i presume, they got thousands of needles just lying around. the metal +book_lore.book_syringe.page.2=syringe goes into slot %d book_lore.resignation_note.name=辞职信 book_lore.resignation_note.author=科斯马 -book_lore.resignation_note.page.1=管理层昨天又缩减了我们的 部门.那些白痴只能怪自己, 我不知道他们在那场惨败后 会还有什么期待. 到底是谁泄露了这种信息? 我们损失了数百万 -book_lore.resignation_note.page.2=现在是我失业了. 我是那个被要求辞职的人. 我希望你们这些混蛋们终于 从自己的错误中吸取教训, 把那根棍子从屁股里拿出来. -book_lore.resignation_note.page.3=我星期五不会回来的. 发工资就行了. - -book_lore.memo_stocks.name=内部备忘录 -book_lore.memo_stocks.page.1=投资者关系部 - $ $ 最新季度报告中提供的数据 存在一些明显的差异. 让财务部门进行一些调整是 谨慎的做法, 所以不用有任何顾虑. - +book_lore.resignation_note.page.1=管理层昨天又对我们的部门进行裁员了。那群白痴要怪只能怪他们自己,我都不知道他们在那场惨败后还在期待什么。到底是谁他妈泄露了那种程度的信息? +book_lore.resignation_note.page.2=我们损失了几百万,而且现在失业的还是爷。老子希望你们这帮混蛋最后能从你们的一堆问题中学到点教训然后给爷滚去自闭。 +book_lore.resignation_note.page.3=我周五不回来了。工资寄过来就行。 +book_lore.memo_stocks.name=公司内部备忘录 +book_lore.memo_stocks.page.1=投资者报告 - $$最新的季度报告中提供的数据存在一些明显的差异。财政部所作出一些调整是明智的,因此不必有任何担忧。 book_lore.memo_schrab_gsa.name=内部备忘录 -book_lore.memo_schrab_gsa.page.1=合同管理部 - $ $ 法律部与DLA取得了突破. 他们授予我们450亿GSA计划, 用于进一步采购和研究saralloy. 根据目前的估计 -book_lore.memo_schrab_gsa.page.2=相关业务的利润至少为 40%%, 更不用说未来合同的可能性了. 由于保密性质,所有财务证据 都应保密. - +book_lore.memo_schrab_gsa.page.1=合同管理记录 - 法务部在与美国国防部后勤局的谈判中取得了突破。他们批准了450亿的联邦采购服务总署投资资金用于异变金属的采购与研究。 +book_lore.memo_schrab_gsa.page.2=就目前预期来看,这将至少产生40%的利润,更不必说以后行动所产生的利润,同时这将使我们未来有机会签订更多合同。鉴于此事的保密性质,所有财政证据都将为机密级别 book_lore.memo_schrab_rd.name=内部备忘录 -book_lore.memo_schrab_rd.page.1=研究与开发部 - $ $ 我们生产saralloy的主要方法是 使用新型粒子加速器. 然而, 与产量相比,能源成本过高. -book_lore.memo_schrab_rd.page.2=然而,Schrabauer博士发现 了一种新的相互作用, 称为 "奇异轻子振荡",可以 显著降低成本. 通过一个不完 全被理解的过程, 所提供的电 子通过一种 -book_lore.memo_schrab_rd.page.3=奇特的作用被转化为极高能 量的光子. 这是许多既定粒子 转化定律的极端例外, 但初步 实验证明,这些质子转变为 上下夸克,最终形成了 saralloy. -book_lore.memo_schrab_rd.page.4=奇怪的是,原型需要钨合金 和少量的 saralloy. 此外, 需要一个特殊的电容器来 抵消剩余的正电荷. - +book_lore.memo_schrab_rd.page.1=研发 - 目前我们主要生产方法是使用新型粒子加速器。然而,与产出量相比,能源成本高得惊人。 +book_lore.memo_schrab_rd.page.2=然而,Schrabauer博士发现了一种全新的相互作用——暂称为“奇异轻子振荡”——该作用可以显著降低生产成本。通过一个目前未被完全理解的的过程,提供的电子被一种奇特的“魔力”转化为极高能量的光子。 +book_lore.memo_schrab_rd.page.3=这是许多已明确的粒子转换定律的极端例外。但初步实验证明,这些质子先转变为上下夸克,最终形成了异变金属。奇怪的是,原型机中需要钨与少量异变金属合金化所得到的合金。 +book_lore.memo_schrab_rd.page.4=除此之外,还需要一个特殊的电容器用来抵消掉多余的正电荷。 book_lore.memo_schrab_nuke.name=研究报告 book_lore.memo_schrab_nuke.author=Schrabauer博士 -book_lore.memo_schrab_nuke.page.1=我们最近的调查使我们了 解了核爆炸对材料的影响. 感谢给我们的赠款, 我们 *意外地* 测试了 我们从铀直接合成 saralloy的理论. -book_lore.memo_schrab_nuke.page.2=以前只有我们的回旋加速 器真正创造了saralloy. 然而,在我们在埃弗沃彭 的地下拍摄中,在现场的 铀矿中发现了微量的saralloy. 附近所有纯金属铀都发生了 裂变. -book_lore.memo_schrab_nuke.page.3=因此,如果有足够多的铀 矿石集中在炸药周围, 甚至可能是一枚富含可裂 变材料的脏弹,人们可以 理论上制造出足够多的 saralloy来人工收集. - -cannery.f1=[ 按下 F1 思索 ] +book_lore.memo_schrab_nuke.page.1=最近的调查使我们了解了核爆炸对材料造成的影响。多亏外界给我们的赠款,我们*意外地*测试了铀直接合成异变金属的理论。 +book_lore.memo_schrab_nuke.page.2=而此前我们只在回旋加速器中制作出异变金属。但这次,我们在对Everwerpen的地下拍摄中,在该地点的铀矿石中发现了微量的异变金属。其附近所有的纯金属铀则都发生了裂变。 +book_lore.memo_schrab_nuke.page.3=因此,如果有足够多的铀矿石集中在核弹周围,甚至可能只需要一个富含裂变物质废料的脏弹,就有可能制造出质量大到可以被直接收集的异变金属。 +cannery.f1=[按F1键获取帮助] cannery.centrifuge=气体离心机 -cannery.centrifuge.0=气体离心机可以使用常规流体管道提供流体. -cannery.centrifuge.1=大多数配方需要多台离心机. 中间产物不能通过管道运输. -cannery.centrifuge.2=这一侧充当连接器,将中间产品输出到相邻的离心机中. -cannery.centrifuge.3=六氟化铀只需两台离心机即可处理, 然而这将只能生产铀燃料和铀-238. -cannery.centrifuge.4=将其完全加工成铀-235和铀-238需要总共四台离心机. -cannery.centrifuge.5=一些配方还需要离心机超频升级. - +cannery.centrifuge.0=气体离心机可以使用通用流体管道传输流体。 +cannery.centrifuge.1=大多数配方需要多台离心机。中间产品不能通过管道运输。 +cannery.centrifuge.2=该侧用作将中间产品输出到相邻离心机的连接口。 +cannery.centrifuge.3=六氟化铀只需两台离心机即可加工,但这将只产出铀燃料和铀-238。 +cannery.centrifuge.4=将其完全加工成铀-235和铀-238总共需要四台离心机。 +cannery.centrifuge.5=一些配方还需要离心机超频升级。 cannery.crucible=坩埚 -cannery.crucible.0=坩埚用于熔炼矿石、铸锭或其他金属物品以进行合金化,并将其铸造成不同形状. -cannery.crucible.1=它需要一个连接到底部的外部热源,如燃烧室. -cannery.crucible.2=一旦加热,坩埚可以以两种方式使用,有或没有配方模板. -cannery.crucible.3=坩埚有两个材料储存缓冲区: -cannery.crucible.4=左边的缓冲区是§a副产品§r, 所有没有配方模板的熔炼材料都会储存在这里. -cannery.crucible.5=如果安装了配方,与配方不匹配的材料也将存储在这里. -cannery.crucible.6=该缓冲区中的材料不会相互反应,只能从绿色出口输出用于铸造. -cannery.crucible.7=右边的缓冲区是用于§c合金配方§r的, 如果安装了配方,并且该特定材料与该配方相关,它将储存在这里. -cannery.crucible.8=这些材料将慢慢结合成合金材料,从红色出口自动输出. -cannery.crucible.9=请注意,只有这个缓冲区处理配方. 如果先加原料后安装模板,副产品缓冲区中的材料将不会结合,也不会转移到配方缓冲区. -cannery.crucible.10=如果对着的方块正确,出口将自动输出材料,例如铸造通道或模具. -cannery.crucible.11=与所有铸造块一样,可以使用铲子从坩埚中移除所有材料. - -cannery.fensu=FEnSU飞轮储能系统 -cannery.fensu.0=FEnSU飞轮储能系统能够存储超过9EHE (即9后面接18个零)的荒谬能量. -cannery.fensu.1=只有底部有一个能量连接器. -cannery.fensu.2=这也是FEnSU唯一可以接收红石信号的地方. - +cannery.crucible.0=坩埚用于熔炼矿石、铸锭或其他金属物品以进行合金化,并将其铸造成不同形状。 +cannery.crucible.1=它需要一个外部热源连接到底部,例如燃烧室。 +cannery.crucible.2=一旦加热,坩埚可以以两种方式运行,有或没有配方模板。 +cannery.crucible.3=坩埚有两个材料储存缓冲区: +cannery.crucible.4=左边的缓冲区用于缓存§a副产品§r,所有没有配方模板的熔炼材料都将缓存在这里。 +cannery.crucible.5=如果有熔炼配方,与配方不匹配的材料也将存储在这里。 +cannery.crucible.6=该缓冲区中的材料不会相互反应,只能从绿色出口输出用于铸造。 +cannery.crucible.7=右侧的缓冲区用于放入§c配方§r,如果安装了一个配方,并且该特定材料与该配方相关,则它将储存在此处。 +cannery.crucible.8=这些材料将慢慢结合成输出材料,从红色出口自动输出。 +cannery.crucible.9=请注意,只有这个缓冲区处理配方。如果更换模板,副产品缓冲区中的材料不会结合,也不会转移到配方缓冲区。 +cannery.crucible.10=如果目标有效,例如铸造通道或模具,出口将自动输出材料。 +cannery.crucible.11=与所有铸造块一样,可以使用铲子从坩埚中移除所有材料。 +cannery.fensu=FEnSU +cannery.fensu.0=FEnSU能够存储超过9EHE(即9后18个零)的荒谬能量。 +cannery.fensu.1=只有在其底部有一个电线接口。 +cannery.fensu.2=这也是FEnSU唯一可以接收红石信号的地方。 cannery.firebox=燃烧室 -cannery.firebox.0=燃烧室燃烧易燃物品以产生热量. -cannery.firebox.1=它可以燃烧任何易燃物品, 尽管煤、焦炭和固体燃料等质量较高的燃料燃烧时间更长、温度更高. -cannery.firebox.2=燃烧室顶部的铜触点放出热量. 底部有相同铜触点的机器可以通过放置在燃烧室顶部来接收热量. -cannery.firebox.3=如果热量没有用完,并且热缓冲区已满,则火箱将关闭以防止浪费燃料. -cannery.firebox.4=斯特林发动机就是这些机器的其中之一,它将热量直接转化为能量. - -cannery.foundryChannel=浇筑道 -cannery.foundryChannel.0=浇筑道用于将熔融材料从坩埚或储罐输送到浇筑盆中. -cannery.foundryChannel.1=通道可以通过从顶部(通过浇筑口或从坩埚出口)或从其他通道的侧面倾倒来接收材料. -cannery.foundryChannel.2=运输材料时,浇筑道将优先考虑浇筑口和浅浇筑盆等块. -cannery.foundryChannel.3=当无法供应浇筑口和浇筑盆时,材料将流入相邻通道. -cannery.foundryChannel.4=剩余材料可使用铲子清除. - -cannery.silex=FEL & SILEX同位素激光分离室 -cannery.silex.0=自由电子激光器(FEL) 会利用能量和激光晶体产生一道强大的激光束. -cannery.silex.1=小心,因为激光会烧毁/熔化强度不足的方块... -cannery.silex.2=...而防爆方块则能够阻挡. -cannery.silex.3=FEL用于为激光同位素分离室(SILEX)供能. FEL和SILEX必须至少相隔两个方块. -cannery.silex.4=激光器必须从SILEX的玻璃开口进入. 瞄准了错误的地方可能会毁掉它. -cannery.silex.5=侧面的开口可用于将流体管道连接至SILEX. -cannery.silex.6=除了侧面的两个IO接口外,底部还有第三个隐藏IO接口,可以从中提取物品. -cannery.silex.7=每个配方都需要特定的激光类型. 使用比要求激光类型更强的类型将更快地处理. -cannery.silex.8=一个FEL最多可供应5个SILEX. 每个SILEX必须彼此相隔一个方块. - -cannery.stirling=斯特林发动机 -cannery.stirling.0=斯特林发动机利用外部热源产生的热能来发电. -cannery.stirling.1=它需要放置在发热机器的顶部,例如燃烧室. -cannery.stirling.2=然而,它可以利用的热量有限,超速旋转可能导致灾难性故障. -cannery.stirling.3=升级后的版本可以承受更大的热量而不损坏. - -cannery.willow=芥柳 -cannery.willow.0=芥柳是一种可以收获镉金属的植物. -cannery.willow.1=柳树可以种在泥土、草地上,甚至是荒土/油污上,但它们需要水才能生长. -cannery.willow.2=柳树可以用骨粉或工业肥料施肥. 它们不需要光就能生长. -cannery.willow.3=在第二阶段的生长之后,它们将需要上方额外的一块空间才能进一步生长. -cannery.willow.4=在生长的第四阶段之后,它们需要下面有荒土或油污. -cannery.willow.5=这可以通过在荒土/油污上手动种植柳树来实现,也可以通过在附近设置一个持续污染地面的水力压裂塔来实现. -cannery.willow.6=到达最后阶段后,柳树将清除地面上的污染物,将荒土/油污恢复为正常的泥土. -cannery.willow.7=现在柳树的叶子可以收割了。打破顶部的障碍物会掉落一株3-6片叶子的小柳树,并保持植物底部的完整. -cannery.willow.8=很快,这种植物就会重新开始生长,如果泥土被油性泥土取代,就会长出更多的叶子。叶子可以用矿物结晶机加工成镉粉. -cannery.willow.9=使用自动锯可以自动收割柳叶,它只会打碎准备收割的植物. - +cannery.firebox.0=燃烧室通过燃烧可燃物品产生热量。 +cannery.firebox.1=它可以燃烧任何可燃物品,但更高质量的燃料如煤、焦炭和固体燃料燃烧时间更长,温度更高。 +cannery.firebox.2=燃烧室顶部的铜触点可以传导热量。底部具有相同触点的机器可以通过放置在燃烧室顶部来接收热量。 +cannery.firebox.3=如果热量没有用完,且热量缓冲器变满,燃烧室将暂停运行,以防止燃料浪费。 +cannery.firebox.4=一种这样的机器是斯特林发动机,它将热量直接转化为能量。 +cannery.foundryChannel=铸造通道 +cannery.foundryChannel.0=铸造通道用于将熔融材料从坩埚或储罐输送到模具中。 +cannery.foundryChannel.1=通道可以通过从顶部(通过出口或直接连接坩埚)或从其他通道的侧面倾倒来接收材料。 +cannery.foundryChannel.2=运输材料时,渠道将优先考虑出口和浅铸造池等方块。 +cannery.foundryChannel.3=当无法供应出口或模具时,材料将流入相邻通道。 +cannery.foundryChannel.4=剩余材料可以用铲子清除。 +cannery.silex=FEL & SILEX +cannery.silex.0=自由电子激光器(FEL)利用能量和激光晶体产生强大的激光束。 +cannery.silex.1=小心,因为激光会烧毁或熔化较脆弱的方块… +cannery.silex.2=…但不是防爆的。 +cannery.silex.3=FEL用于为激光同位素分离室(SILEX)提供能量。FEL和SILEX必须至少相隔两个方块。 +cannery.silex.4=激光必须通过SILEX的玻璃开口进入。在错误的方向上入射可能会摧毁它。 +cannery.silex.5=侧面的开口可以使流体管道连接至SILEX上。 +cannery.silex.6=除了侧面的两个连接口之外,底部还有第三个隐藏连接口,可以从中抽取产品。 +cannery.silex.7=每个配方都需要特定的激光类型。使用比所需类型更强的激光将更快地处理项目。 +cannery.silex.8=一台FEL最多可以为5台SILEX供能。每个SILEX之间必须间隔一个方块。 +cannery.stirling=斯特林发电机 +cannery.stirling.0=斯特林发动机使用来自外部的热能来产生能量。 +cannery.stirling.1=它需要放置在发热机器的顶部,如燃烧室。 +cannery.stirling.2=然而,它可以利用的热量有限,过旋转可能导致灾难性故障。 +cannery.stirling.3=升级版可以在不损坏的情况下承受更多热量。 +cannery.willow=芥子柳 +cannery.willow.0=芥子柳是一种可以富集镉金属的植物。 +cannery.willow.1=芥子柳可以种植在泥土、草地上,甚至是死亡草地或油泥上,但它们需要水才能生长。 +cannery.willow.2=芥子柳可以用骨粉或工业肥料催熟。它们不需要光就可以生长。 +cannery.willow.3=在第二阶段的生长之后,它们将需要在上方有至少一个方块的空间才能进一步生长。 +cannery.willow.4=在生长的第四阶段之后,它们需要下面有死亡草地的或油泥。 +cannery.willow.5=这可以通过在死亡草地或油泥上手动种植芥子柳来实现,也可以通过在附近设置一个不断污染地面的水力压裂塔来实现。 +cannery.willow.6=到达最后阶段后,芥子柳将清除地面上的污染物,使死亡草地或油泥恢复为正常的泥土。 +cannery.willow.7=现在芥子柳的叶子可以收割了。打破顶部的块状物会掉落一株3-6片叶子的小芥子柳,并保持植物底部的完整。 +cannery.willow.8=很快,这种植物就会重新开始生长,如果泥土被油泥取代,就会长出更多的叶子。叶子可以用酸化骑加工成镉粉。 +cannery.willow.9=使用自动锯可以自动收割柳叶,它只会打碎准备收割的植物。 chem.ARSENIC=砷提取 chem.ASPHALT=沥青生产 chem.BAKELITE=电木生产 -chem.BALEFIRE=BF反物质火箭燃料混合 -chem.BP_BIOFUEL=生物燃料酯化合成 +chem.BALEFIRE=野火火箭燃料混合 +chem.BP_BIOFUEL=生物燃料酯化 chem.BP_BIOGAS=沼气生产 -chem.C4=C-4生产 -chem.CC_HEATING=民用燃油增产 -chem.CC_HEAVY=重油增产 -chem.CC_I=工业油增产 -chem.CC_NAPHTHA=石脑油增产 -chem.CC_OIL=原油增产 +chem.C4=C-4合成 +chem.CC_HEATING=高级煤液化 +chem.CC_HEAVY=初级煤液化 +chem.CC_I=强化煤液化 +chem.CC_NAPHTHA=煤液化石脑油 +chem.CC_OIL=煤液化 chem.CIRCUIT_4=超频电路生产 chem.CIRCUIT_5=高性能电路生产 chem.CO2=二氧化碳生产 -chem.COALGAS_LEADED=煤汽油铅混合 +chem.COALGAS_LEADED=含铅煤汽油混合 chem.COLTAN_CLEANING=钶钽铁矿提纯 chem.COLTAN_CRYSTAL=钽结晶 -chem.COLTAN_PAIN=潘地曼尼南(III)钽生产 +chem.COLTAN_PAIN=Pn(III)钽铁溶液生产 chem.CONCRETE=混凝土生产 chem.CONCRETE_ASBESTOS=石棉夹层混凝土生产 -chem.COOLANT=冷却液生产 +chem.COOLANT=冷却液混合 chem.CORDITE=无烟火药生产 -chem.CRYOGEL=超低温凝胶混合 -chem.DESH=德什金属锭生产 -chem.DEUTERIUM=氘提取 -chem.DUCRETE=贫化铀混凝土合成 +chem.CRYOGEL=冷凝胶混合 +chem.DESH=Desh生产 +chem.DEUTERIUM=氘萃取 +chem.DUCRETE=贫铀混凝土生产 chem.DYN_DNT=双聚中子态素合成 -chem.DYN_EUPH=Ep金属元素合成 -chem.DYN_SCHRAB=Sa326异变铀金属合成 +chem.DYN_EUPH=Ep合成 +chem.DYN_SCHRAB=Sa326合成 chem.DYNAMITE=炸药合成 chem.ELECTROLYSIS=低温电解水 chem.EPEARL=末影珍珠合成 @@ -472,98 +470,95 @@ chem.FP_HEAVYOIL=重油加工 chem.FP_LIGHTOIL=轻油加工 chem.FP_NAPHTHA=石脑油加工 chem.FP_SMEAR=工业油加工 -chem.FR_PETROIL=混机油汽油合成 -chem.FR_REOIL=再生工业油加工 -chem.FRACKSOL=压裂液合成 -chem.GASOLINE=精制汽油合成 -chem.GASOLINE_LEADED=精制汽油铅混合 -chem.HEAVY_ELECTROLYSIS=重水低温电解 -chem.HELIUM3=月壤氦-3提取 -chem.KEVLAR=凯夫拉材料生产 +chem.FR_PETROIL=汽油混合 +chem.FR_REOIL=原油再加工 +chem.FRACKSOL=压裂液生产 +chem.GASOLINE=含铅汽油生产 +chem.GASOLINE_LEADED=含铅汽油混合 +chem.HEAVY_ELECTROLYSIS=低温电解重水 +chem.HELIUM3=使用月球草皮提取氦-3 +chem.KEVLAR=凯夫拉生产 chem.LPG=石油天然气液化 -chem.LUBRICANT=混合润滑剂合成 +chem.LUBRICANT=润滑剂混合 chem.METH=甲基苯丙胺合成 -chem.NITAN=NITAN© 100 超级辛烷燃料混合 +chem.NITAN=NITAN牌超级燃料混合 chem.NITRIC_ACID=硝酸生产 chem.OIL_SAND=沥青砂提取 -chem.OSMIRIDIUM_DEATH=铱锇酸溶液生产 +chem.OSMIRIDIUM_DEATH=锇酸溶液生产 chem.PEROXIDE=过氧化氢生产 -chem.PET=PET聚酯合成 -chem.PETROIL_LEADED=混机油汽油铅混合 +chem.PET=PET合成 +chem.PETROIL_LEADED=含铅石油混合 chem.POLYMER=聚合物合成 chem.PUF6=六氟化钚生产 -chem.PC=硬质塑料棒合成 -chem.PVC=PVC聚乙烯棒合成 -chem.RUBBER=橡胶合成 -chem.SAS3=三硫化Sa326生产 +chem.RUBBER=橡胶生产 +chem.SAS3=三硫化Sa生产 chem.SATURN=土星锭生产 -chem.SCHRABIDATE=Sa326元素酸化铁生产 -chem.SCHRABIDIC=Sa326元素酸化混合 +chem.SCHRABIDATE=Sa酸铁生产 +chem.SCHRABIDIC=Sa酸合成 chem.SF_BIOFUEL=生物燃料固化 chem.SF_BIOGAS=沼气固化 chem.SF_DIESEL=柴油凝固 chem.SF_GAS=天然气固化 -chem.SF_HEATINGOIL=民用燃油固化 +chem.SF_HEATINGOIL=燃油固化 chem.SF_HEAVYOIL=重油固化 chem.SF_KEROSENE=煤油固化 chem.SF_LIGHTOIL=轻油固化 chem.SF_LUBRICANT=润滑剂固化 chem.SF_NAPHTHA=石脑油固化 chem.SF_OIL=原油固化 -chem.SF_PETROIL=混机油汽油固化 +chem.SF_PETROIL=石油固化 chem.SF_PETROLEUM=石油气固化 chem.SF_RECLAIMED=再生油固化 chem.SF_SMEAR=工业油固化 chem.SOLID_FUEL=固体火箭燃料生产 chem.SOLVENT=有机溶剂混合 -chem.STEAM=蒸汽生产 +chem.STEAM=烧水 chem.SULFURIC_ACID=硫酸生产 -chem.TATB=TATB三氨基三硝基苯合成 -chem.TEL=四乙基铅抗爆剂混合 +chem.TATB=TATB合成 +chem.TEL=四乙基铅混合 chem.TEST=测试 chem.TNT=TNT合成 chem.UF6=六氟化铀生产 chem.VIT_GAS=气态核废料玻璃化 chem.VIT_LIQUID=液态核废料玻璃化 chem.XENON=林德循环制氙 -chem.XENON_OXY=增强型林德循环制氙 +chem.XENON_OXY=增强林德循环制氙 chem.YELLOWCAKE=黄饼生产 - -container.amsBase=AMS基座 [装饰] -container.amsEmitter=AMS激发装置 [装饰] -container.amsLimiter=AMS稳定力场发生装置 [装饰] -container.anvil=%s 级砧 +container.amsBase=AMS基座(装饰) +container.amsEmitter=AMS发射极(装饰) +container.amsLimiter=AMS稳能器(装饰) +container.anvil=砧 container.arcFurnace=电弧炉 container.armorTable=装甲改装台 container.assembler=装配机 -container.autocrafter=自动化工作台 +container.autocrafter=自动工作台 container.barrel=桶 -container.bat9000="巨臀"9000号储罐 -container.battery=储能量 +container.bat9000=巨尻-9000 储罐 +container.battery=储能 container.bombMulti=多用途炸弹 -container.catalyticReformer=催化重整装置 +container.catalyticReformer=催化重整器 container.centrifuge=离心机 -container.chemplant=化工装置 +container.chemplant=化工厂 container.compactLauncher=紧凑型发射台 -container.craneBoxer=传送带打包器 -container.craneExtractor=传送带输出器 -container.craneGrabber=传送带抓取器 -container.craneInserter=传送带输入器 -container.craneRouter=传送带分流器 -container.craneUnboxer=传送带解包器 -container.crateDesh=德什制箱子 +container.craneBoxer=输送带打包机 +container.craneExtractor=输送带提取器 +container.craneGrabber=输送带抓斗 +container.craneInserter=输送带导入器 +container.craneRouter=传送路由器 +container.craneUnboxer=输送带解包机 +container.crateDesh=Desh箱 container.crateIron=铁箱 container.crateSteel=钢箱 container.crateTungsten=钨箱 -container.crystallizer=矿物结晶机 +container.crystallizer=矿物酸化器 container.cyclotron=回旋加速器 container.dfcCore=暗核聚变堆核心 -container.dfcEmitter=DFC激发装置 -container.dfcInjector=DFC燃料注入装置 -container.dfcReceiver=DFC接收装置 -container.dfcStabilizer=DFC聚变稳定器 +container.dfcEmitter=DFC发射器 +container.dfcInjector=DFC燃料喷射器 +container.dfcReceiver=DFC接收器 +container.dfcStabilizer=DFC稳定器 container.diFurnace=高炉 -container.diFurnaceRTG=核能高炉 +container.diFurnaceRTG=核高炉 container.electricFurnace=电炉 container.epress=电动锻压机 container.factoryAdvanced=高级工厂 @@ -571,623 +566,602 @@ container.factoryTitanium=工厂 container.fluidtank=储罐 container.fileCabinet=文件柜 container.forceField=力场发生器 -container.frackingTower=压裂式钻塔 -container.furnaceCombination=组合炉 -container.furnaceIron=铁制熔炉 -container.furnaceSteel=钢制熔炉 +container.frackingTower=水力压裂塔 +container.furnaceCombination=复式炼焦炉 +container.furnaceIron=铁炉 +container.furnaceSteel=钢炉 container.fusionMultiblock=大型聚变反应堆 container.fusionaryWatzPlant=Watz聚变反应堆 container.gasCentrifuge=气体离心机 -container.gasFlare=废气燃烧塔 -container.generator=核反应堆(旧) -container.hadron=粒子加速对撞分析机 +container.gasFlare=高架火炬 +container.generator=研究型反应堆 +container.hadron=粒子加速器 container.heaterFirebox=燃烧室 container.heaterHeatex=热交换器 -container.heaterOilburner=液体燃料燃烧室 +container.heaterOilburner=流体燃烧器 container.heaterOven=加热炉 container.iGenerator=工业发电机 container.keyForge=锁匠桌 container.launchPad=导弹发射台 -container.launchTable=大型导弹发射台 -container.leadBox=安全箱 -container.machineBoiler=原油加热器 +container.launchTable=大型发射台 +container.leadBox=安全盒 +container.machineBoiler=锅炉 container.machineCMB=CMB炼钢炉 container.machineCoal=火力发电机 container.machineCoker=焦化装置 container.machineCrucible=坩埚 container.machineDiesel=柴油发电机 -container.machineElectricBoiler=电力原油加热器 -container.machineFEL=FEL +container.machineElectricBoiler=电锅炉 +container.machineFEL=FEL自由电子激光器 container.machineITER=聚变反应堆 container.machineLargeTurbine=工业汽轮机 container.machineLiquefactor=液化机 -container.machineMixer=工业混合机 +container.machineMixer=工业搅拌机 container.machineRefinery=炼油厂 -container.machineSelenium=星型径向性能发电机 +container.machineSelenium=星型发动机 container.machineShredder=粉碎机 -container.machineSILEX=同位素激光分离室 +container.machineSILEX=SILEX激光同位素分离室 container.machineSolidifier=固化机 container.machineTurbine=汽轮机 -container.machineTurbofan=涡扇发电机 -container.machine_deuterium=氘提取器 -container.machine_schrabidium_transmutator=Sa326异变铀金属嬗变装置 -container.massStorage=存储器 +container.machineTurbofan=涡扇发动机 +container.machine_schrabidium_transmutator=Sa326嬗变装置 +container.massStorage=存储 container.microwave=微波炉 -container.miningDrill=采矿钻机 -container.miningLaser=自动激光采矿钻机 -container.missileAssembly=自定义导弹装配台 +container.miningDrill=自动采矿钻机 +container.miningLaser=采矿激光 +container.missileAssembly=导弹装配台 container.nukeBoy=小男孩 container.nukeCustom=自定义核弹 container.nukeFleija=F.L.E.I.J.A. -container.nukeFstbmb=BF炸弹 +container.nukeFstbmb=野火炸弹 container.nukeFurnace=核熔炉 container.nukeGadget=小玩意 container.nukeMan=胖子 container.nukeMike=常青藤迈克 -container.nukeN2=N²炸弹 +container.nukeN2=N2炸弹 container.nukeN45=N45水雷 container.nukePrototype=原型 container.nukeSolinium=蔚蓝洗礼 container.nukeTsar=沙皇炸弹 -container.oilWell=石油钻井塔 +container.oilWell=钻油塔 container.orbus=重型反物质储罐 container.plasmaHeater=等离子加热器 container.press=火力锻压机 container.puf6_tank=六氟化钚储罐 -container.pumpjack=梁式抽油机 +container.pumpjack=石油钻机 container.radGen=辐射能量发电机 container.radar=雷达 -container.radiobox=FM调频发射机 -container.radiolysis=RTG发电机与辐解室 -container.radiorec=FM调频收音机 +container.radiobox=FM发射机 +container.radiolysis=RTG辐射裂解室 +container.radiorec=FM收音机 container.rbmkBoiler=RBMK石墨式反应堆蒸汽管道 container.rbmkControl=RBMK石墨式反应堆控制棒 container.rbmkControlAuto=RBMK石墨式反应堆自动控制棒 -container.rbmkHeater=RBMK石墨式反应堆流体加热器 +container.rbmkHeater=RBMK流体加热器 container.rbmkOutgasser=RBMK石墨式反应堆辐照通道 -container.rbmkReaSim=RBMK石墨式反应堆燃料棒(雷西姆) +container.rbmkReaSim=RBMK石墨式反应堆燃料棒 (ReaSim) container.rbmkRod=RBMK石墨式反应堆燃料棒 -container.rbmkStorage=RBMK石墨式反应堆存储柱 +container.rbmkStorage=RBMK 燃料存储棒 container.reactorBreeding=增殖反应堆 -container.reactorControl=反应堆远程控模块 +container.reactorControl=反应堆遥控模块 container.reactorLarge=大型核反应堆 -container.reactorResearch=研究性核反应堆 +container.reactorResearch=研究型反应堆 container.reix=Rei-X主机 container.rtg=放射性同位素发电机 container.rtgFurnace=放射性同位素热力炉[RTG] -container.rttyReceiver=红石无线信号接收器 -container.rttySender=红石无线信号发送器 +container.rttyReceiver=无线红石接收器 +container.rttySender=无线红石发射器 container.safe=保险箱 container.satDock=卸货平台 -container.satLinker=卫星ID管理器 +container.satLinker=卫星ID管理 container.siren=警报器 container.soyuzCapsule=货物着陆舱 -container.soyuzLauncher=联盟号巨型运载火箭发射平台 +container.soyuzLauncher=联盟号发射平台 container.storageDrum=核废料处理桶 -container.teleLinker=炮塔ID管理器 +container.teleLinker=炮塔ID管理 container.teleporter=传送机 +container.trainTram=平板载货电车 container.turbinegas=联合循环燃气轮机 -container.turretArty=格雷格 -container.turretChekhov=契诃夫之枪 -container.turretFriendly=友好先生 -container.turretFritz=弗里茨 -container.turretHIMARS=亨利 -container.turretHoward=霍华德 -container.turretJeremy=杰里米 -container.turretMaxwell=麦克斯韦 -container.turretRichard=理查德 -container.turretSentry=布朗 -container.turretTauon=负陶子炮 +container.turretArty=重炮炮塔“格雷格” +container.turretChekhov=重机枪炮塔“契诃夫的枪” +container.turretFriendly=轻机枪炮塔“友好先生” +container.turretFritz=重型火焰喷射器炮塔“弗里茨” +container.turretHIMARS=火箭炮塔“亨利” +container.turretHoward=双联守门员近防系统“霍华德” +container.turretJeremy=重炮炮塔“杰里米” +container.turretMaxwell=高能微波炮塔”麦克斯韦” +container.turretRichard= 火箭炮塔“理查德” +container.turretSentry=哨兵炮塔“布朗” +container.turretTauon=陶子发射器炮塔“陶恩” container.uf6_tank=六氟化铀储罐 -container.vacuumDistill=真空精炼厂 -container.wasteDrum=乏核燃料冷却池 -container.watzPowerplant=Watz瓦茨发电塔 -container.zirnox=锆诺克斯反应堆 - +container.vacuumDistill=真空炼油厂 +container.wasteDrum=乏燃料池 +container.watzPowerplant=Watz发电厂 +container.zirnox=锆诺克斯核反应堆 crucible.aa=高级合金生产 -crucible.cdalloy=镉钢合金生产 +crucible.cdalloy=镉钢生产 crucible.cmb=CMB钢生产 crucible.ferro=铀铁合金生产 -crucible.hematite=赤铁矿->铁 生产 +crucible.hematite=赤铁矿炼铁 crucible.hss=高速钢生产 -crucible.malachite=孔雀石->铜 生产 +crucible.malachite=孔雀石炼铜 crucible.redcopper=紫铜生产 -crucible.steel=钢生产 -crucible.steelMeteoric=陨铁->钢 生产 -crucible.steelPig=生铁->钢 生产 -crucible.steelWrought=锻铁->钢 生产 -crucible.tcalloy=锝-钢合金生产 - -death.attack.acid=%1$s 掉进了酸里. -death.attack.acidPlayer=%1$s 被 %2$s 溶解了. -death.attack.ams=%1$s 沐浴在尚未被人类科学命名的致命粒子中. -death.attack.amsCore=%1$s 在高能奇点之火中蒸发. -death.attack.asbestos=%1$s 现在有权获得经济补偿. -death.attack.bang=%1$s 被炸成一口大小碎片. -death.attack.blackhole=%1$s 被黑洞拉成了意大利面. -death.attack.blender=%1$s 被切割成了很小的,以Byte计数的单位. -death.attack.boat=%1$s 被船砸扁了. -death.attack.boil=%1$s 被 %2$s 活生生煮沸了. -death.attack.boxcar=%1$s 被一节坠落的车厢砸扁了...好吧. -death.attack.broadcast=%1$s 的大脑融化了. -death.attack.building=%1$s 被从天而降的建筑砸中了. -death.attack.cheater=%1$s 的内脏变成了燕麦(???). -death.attack.chopperBullet=%1$s 被 %2$s 屠杀. -death.attack.cloud=%1$s 像在太阳下的冰棒一样融化. -death.attack.cmb=%1$s 被 %2$s 电的焦脆. -death.attack.digamma=%1$s 在追求真理时步入了深渊. -death.attack.electricity=%1$s 被电死. -death.attack.electrified=%1$s 被 %2$s 电死. -death.attack.euthanized=%1$s 被 %2$s 安乐死. -death.attack.euthanizedSelf2=%1$s 获得了达尔文奖. -death.attack.euthanizedSelf=%1$s 把自己安乐死了, 真鸡儿丢人. -death.attack.exhaust=%1$s 被火箭烤成了羊肉串. -death.attack.flamethrower=%1$s 被 %2$s 火化. -death.attack.flamethrower.item=%1$s 被 %2$s 用 %3$s火化. -death.attack.ice=%1$s 被 %2$s 冻成了冰棒. -death.attack.laser=%1$s 被 %2$s 变成了灰烬. -death.attack.laser.item=%1$s 被 %2$s 用 %3$s 变成了灰烬. -death.attack.lead=%1$s 死于铅中毒. -death.attack.lunar=%1$s 忘了给他的重要器官维持系统充电. -death.attack.meteorite=%1$s 被来自外太空的陨石击中,他可以去买彩票了. -death.attack.microwave=%1$s 被过量微波辐射而爆炸了. -death.attack.mku=%1$s 死于不知名的原因. -death.attack.monoxide=%1$s 忘了给一氧化碳探测器换电池. -death.attack.mudPoisoning=%1$s 死于毒泥浆中. -death.attack.nuclearBlast=%1$s 被核爆冲击波炸飞. -death.attack.overdose=%1$s 服药过量后窒息了. -death.attack.pc=%1$s 在粉红色的云中变成了一滩水. -death.attack.plasma=%1$s 被 %2$s 献祭了. -death.attack.radiation=%1$s 死于辐射. -death.attack.revolverBullet=%1$s 被 %2$s 爆头. -death.attack.revolverBullet.item=%1$s 被 %2$s 用 %3$s 爆头. -death.attack.rubble=%1$s 被挤压成了碎片. -death.attack.shrapnel=%1$s 被榴弹碎片炸得千疮百孔. -death.attack.spikes=%1$s 被刺了个透心凉. -death.attack.subAtomic1=%1$s 的原子被 %2$s 摧毁. -death.attack.subAtomic2=%1$s 因为被 %2$s 篡改了实际速度, 导致QPU没有对准. -death.attack.subAtomic3=由于 %2$s, 1$s 的偏差下降到1%以下. -death.attack.subAtomic4=%1$s 因为 %2$s 被零除了. -death.attack.subAtomic5=%1$s 因为 %2$s 无效了. -death.attack.suicide=%1$s 打爆了自己的头. -death.attack.taint=%1$s 死于恶性肿瘤. -death.attack.tau=%1$s 被 %2$s 用带负电荷的陶子打得千疮百孔. -death.attack.tauBlast=%1$s 对XVL1456充能时间过长, 被炸成碎片. -death.attack.teleporter=%1$s 被传送到虚空. - -desc.item.pileRod=§e用于插入钻削过的石墨$§e使用螺丝刀翘出$ -desc.item.rtgDecay=衰变为: %s -desc.item.rtgHeat=热量级别: %s -desc.item.wasteCooling=在乏燃料池中冷却 -desc.item.zirnoxBreedingRod=§2[ZIRNOX锆诺克斯反应堆增殖棒]$§e放在燃料棒旁边以增殖$§e持续 %d ticks -desc.item.zirnoxRod=§a[ZIRNOX锆诺克斯反应堆燃料棒]$§e产生 %1$d 热量每tick$§e持续 %2$d ticks -desc.gui.assembler.warning=§c错误:§r 错误:此装配机需要组装机模板! -desc.gui.chemplant.warning=§c错误:§r 此化工装置需要化学配方模板! -desc.gui.gasCent.enrichment=§2浓缩§r$铀浓缩需要多个离心机串联.$两个离心串联$将仅分离出铀238,$四个离心串联将完全分离六氟化铀. -desc.gui.gasCent.output=§6流体传输§r$液体可以通过输出端口转移到$另一台离心机进行进一步处理. -desc.gui.nukeBoy.desc=§1需要组件:§r$ * 中子屏蔽罩$ * 铀235弹头$ * 次临界铀235标靶$ * 炸药$ * 点火器 -desc.gui.nukeGadget.desc=§1需要组件:§r$ * 4 个初代高能$ 内爆炸药阵列$ * 大型钚核心$ * 线路 -desc.gui.nukeMan.desc=§1需要组件:§r$ * 4 个初代高能$ 内爆炸药阵列$ * 钚核心$ * 炸弹点火装置 -desc.gui.nukeMike.desc=§1需要组件:§r$ * 4 个高能内爆炸药阵列$ * 钚核心$ * 氘冷却装置$ * 铀涂层氘罐$ * 氘罐 -desc.gui.nukeTsar.desc=§1需要组件:§r$ * 4 个高能内爆炸药阵列$ * 钚核心$§9可选:§r$ * 沙皇炸弹核心 -desc.gui.radiolysis.desc=§9说明§r$这种RTG比其他RTG效率更高, $配有一个辐解室,$用于裂解和灭菌. -desc.gui.rtgBFurnace.desc=需要至少15级热量来进行加工$热量越多,运行速度越快$超过最大速度后多余的热量不会产生任何影响$短半衰期的靶丸可能会衰变 -desc.gui.rtg.heat=§e当前热量级别: %s -desc.gui.rtg.pellets=可接受的靶丸: +crucible.steel=钢铁生产 +crucible.steelMeteoric=陨铁炼钢 +crucible.steelPig=生铁炼钢 +crucible.steelWrought=锻铁炼钢 +crucible.tcalloy=锝钢合金生产 +death.attack.acid=%1$s 掉进了酸里 +death.attack.acidPlayer=%1$s 被 %2$s 溶解 +death.attack.ams=%1$s 沐浴在尚未被人类科学命名的致命粒子中 +death.attack.amsCore=%1$s 在奇点之火中蒸发 +death.attack.asbestos=%1$s现在有权获得经济补偿 +death.attack.bang=%1$s 被炸成小块碎片 +death.attack.blackhole=%1$s 粉身碎骨 +death.attack.blender=%1$s 被切成小块 +death.attack.boat=%1$s 被船撞了 +death.attack.boil=%1$s被%2$s活活煮沸 +death.attack.boxcar=%1$s 被一节坠落的车厢撞死了...好吧 +death.attack.broadcast=%1$s 的大脑融化了 +death.attack.building=%1$s 被从天而降的建筑砸中了 +death.attack.cheater=%1$s 的肠子变成了燕麦(???) +death.attack.chopperBullet=%1$s 被 %2$s 屠杀 +death.attack.cloud=%1$s 像冰棒一样在太阳下融化 +death.attack.cmb=%1$s 被 %2$s 搞得嘶嘶作响 +death.attack.digamma=%1$s 踏入深渊 +death.attack.electricity=%1$s 被电死 +death.attack.electrified=%1$s 被 %2$s 电死 +death.attack.euthanized=%1$s 被 %2$s 安乐死 +death.attack.euthanizedSelf2=%1$s 获得了达尔文奖 +death.attack.euthanizedSelf=%1$s 把自己安乐死了,可真傻 +death.attack.exhaust=%1$s 被火箭烤成了羊肉串 +death.attack.flamethrower=%1$s 被 %2$s 火化 +death.attack.flamethrower.item=%1$s 被 %2$s 使用 %3$s 火化 +death.attack.ice=%1$s 被 %2$s 做成了冰棒 +death.attack.laser=%1$s 被 %2$s 变成了灰烬 +death.attack.laser.item=%1$s 被 %2$s 使用 %3$s 变成灰烬 +death.attack.lead=%1$s 死于铅中毒 +death.attack.lunar=%1$s 忘记了给重要器官充电 +death.attack.meteorite=%1$s 被来自外太空的陨石击中 +death.attack.microwave=%1s 因微波辐射爆炸 +death.attack.mku=%1$s 死于不明原因 +death.attack.monoxide=%1$s忘了换一氧化碳探测器的电池 +death.attack.mudPoisoning=%1$s 死于毒泥浆中 +death.attack.nuclearBlast=%1$s 被核爆炸飞 +death.attack.overdose=%1$s 上瘾并窒息 +death.attack.pc=%1$s 在粉红色的云中变成了一个水坑 +death.attack.plasma=%1$s 被 %2$s 烧死 +death.attack.radiation=%1$s 死于辐射 +death.attack.revolverBullet=%1$s 被 %2$s 用 %3$s 击中头部 +death.attack.revolverBullet.item=%1$s 被 %2$s 使用 %3$s 爆头 +death.attack.rubble=%1$s 被碎片压扁了 +death.attack.shrapnel=%1$s 被榴弹碎片炸得千疮百孔 +death.attack.spikes=%1$s被刺穿了 +death.attack.subAtomic1=%1$s 的原子已被 %2$s 销毁. +death.attack.subAtomic2=%1$s 因为被 %2$s 篡改了实际速度,导致QPU没有对准 +death.attack.subAtomic3=由于 %2$s,1$s 的偏差下降到1%以下 +death.attack.subAtomic4=%1$s 因为 %2$s 被零除了 +death.attack.subAtomic5=%1$s 因为 %2$s 无效了 +death.attack.suicide=%1$s 打爆了自己的头 +death.attack.taint=%1$s 死于恶性肿瘤 +death.attack.tau=%1$s 被 %2$s 用带负电荷的陶子射穿 +death.attack.tauBlast=%1$s 对XVL1456充能时间过长,被炸成碎片 +death.attack.teleporter=%1$s 被传送到虚空 +desc.gui.assembler.warning=§c错误:§r此机器需要装配机模板! +desc.gui.chemplant.warning=§c错误:§r此机器需要化工厂模板! +desc.gui.gasCent.enrichment=§2浓缩§r$浓缩铀需要串联$两个离心机串联将离心出$铀燃料,四个离心机串联$将完全分离出铀235。 +desc.gui.gasCent.output=§6流体输送§r$流体可通过输出端口输送至另一台离心机$进行进一步处理。 +desc.gui.nukeBoy.desc=§1需要:§r$ * 中子屏蔽罩$ * 铀-235弹头$ * 次临界铀-235标靶$ * 炸药$ * 点火器 +desc.gui.nukeGadget.desc=§1需要:§r$ * 4个 初代$ 炸药透镜阵列$ * 钚核心$ * 线路 +desc.gui.nukeMan.desc=§1需要:§r$ * 4个 初代$ 炸药透镜阵列$ * 钚核心$ * 点火器 +desc.gui.nukeMike.desc=§1需要:§r$ * 4个 炸药透镜阵列$ * 钚核心$ * 氘冷却装置$ * 铀涂层氘罐 * 氘罐 +desc.gui.nukeTsar.desc=§1需要:§r$ * 4个 炸药透镜阵列$ * 钚核心$§9可选:§r$ * 沙皇炸弹核心 +desc.gui.radiolysis.desc=§9说明§r$该RTG比其他RTG更高效,并且$配备了一个用于$裂解和灭菌的辐解室。 +desc.gui.rtgBFurnace.desc=处理$金-198需要至少15热量。此外,热量越多,运行速度越快$金-198可能会衰变为水银 +desc.gui.rtg.heat=§e当前热等级:%s +desc.gui.rtg.pellets=接受的靶丸: desc.gui.rtg.pelletHeat=%s (%s 热量) -desc.gui.rtg.pelletPower=%s (%s HE/tick) -desc.gui.template=§9模板§r$可以使用机器模板$文件夹制作模板. -desc.gui.turbinegas.automode=§2燃汽轮机自动节流模式§r$通过点击 "AUTO" 按钮, 燃汽轮机$将根据电网所需功率$自动调整发电量 -desc.gui.turbinegas.fuels=§6可接受的燃气:§r$ -desc.gui.turbinegas.warning=§c燃油或润滑油液位低!§r -desc.gui.upgrade=§l可接受的升级:§r -desc.gui.upgrade.afterburner= * §d加力燃烧§r: 最高为3级 -desc.gui.upgrade.effectiveness= * §a效率§r: 最高为3级 -desc.gui.upgrade.overdrive= * §7超频§r: 最高为3级 -desc.gui.upgrade.power= * §1节能§r: 最高为3级 -desc.gui.upgrade.speed= * §4速度§r: 最高为3级 -desc.gui.zirnox.coolant=§3冷却§r$二氧化碳将热量从反应堆核心转移到水中.$这会把水加热成蒸汽. $冷却和蒸汽生产的$效率取决于压力大小. -desc.gui.zirnox.pressure=§6压力§r$可以通过减少反应堆中的CO2量来降低压力.$但是, 压力过低, 冷却效率和$蒸汽产量会降低.$小心熔毁! -desc.gui.zirnox.warning1=§c错误:§r 反应堆正常运行$需要水! -desc.gui.zirnox.warning2=§c错误:§r 反应堆正常运行$需要二氧化碳! - -desc.item.ammo.con_accuracy2=- 精确度大大降低 +desc.gui.rtg.pelletPower=%s (%s HE/刻) +desc.gui.template=§9模板§r$模板可由$机器模板文件夹制作。 +desc.gui.turbinegas.automode=§2自动涡轮机节流模式§r$通过单击“AUTO”按钮,涡轮机$将根据网络所需的功率自动调整发电量$ +desc.gui.turbinegas.fuels=§6可接受的燃料:§r +desc.gui.turbinegas.warning=§c燃油或润滑油液位低!§r +desc.gui.upgrade=§l可接受的升级:§r +desc.gui.upgrade.afterburner=*§d加力燃烧§r:堆叠至3级 +desc.gui.upgrade.effectiveness=*§a效率§r:堆叠至3级 +desc.gui.upgrade.overdrive=*§7超速§r:堆叠至3级 +desc.gui.upgrade.power=*§1节能§r:堆叠至3级 +desc.gui.upgrade.speed=*§4速度§r:堆叠至3级 +desc.gui.zirnox.coolant=§3冷却剂§r$CO2将热量从堆芯转移到水中$这会令它变成成超热蒸汽$冷却和蒸汽生产的效率取决于压力。 +desc.gui.zirnox.pressure=§6压力§r$排放二氧化碳可以降低压力$然而,压力过低,冷却效率和蒸汽产量将降低$小心熔毁! +desc.gui.zirnox.warning1=§c错误:§r反应堆正常运行需要水! +desc.gui.zirnox.warning2=§c错误:§r二氧化碳是反应堆正常运行所必需的! +desc.item.ammo.con_accuracy2=- 精度大幅降低 desc.item.ammo.con_damage=- 伤害大幅降低 -desc.item.ammo.con_heavy_wear=- 严重加剧枪械磨损 -desc.item.ammo.con_ling_fire=- 不会点燃方块 -desc.item.ammo.con_nn=- 甚至都不是一颗核弹 -desc.item.ammo.con_no_damage=- 无直接伤害 -desc.item.ammo.con_no_explode1=- 无爆炸 +desc.item.ammo.con_heavy_wear=- 大幅增加磨损 +desc.item.ammo.con_ling_fire=- 没有火焰 +desc.item.ammo.con_nn=- 甚至没有核爆 +desc.item.ammo.con_no_damage=- 没有伤害 +desc.item.ammo.con_no_explode1=- 非爆炸性 desc.item.ammo.con_no_explode2=- 不破坏方块 -desc.item.ammo.con_no_explode3=- 无溅射伤害 -desc.item.ammo.con_no_fire=- 无燃烧 -desc.item.ammo.con_no_mirv=- 不推荐使用分导式多弹头M24核弹发射器发射 -desc.item.ammo.con_no_projectile=- 无弹丸 -desc.item.ammo.con_penetration=- 没有穿透力 +desc.item.ammo.con_no_explode3=- 无破片伤害 +desc.item.ammo.con_no_fire=- 不能引起燃烧 +desc.item.ammo.con_no_mirv=- 不建议在原始MIRV上使用 +desc.item.ammo.con_no_projectile=- 无抛射物 +desc.item.ammo.con_penetration=- 无穿透能力 desc.item.ammo.con_radius=- 减小爆炸半径 -desc.item.ammo.con_range2=- 射程大大缩短 -desc.item.ammo.con_sing_projectile=- 弹头只有一个 -desc.item.ammo.con_speed=- 火箭弹速度减缓 -desc.item.ammo.con_super_wear=- 枪械磨损严重加剧 -desc.item.ammo.con_wear=- 加剧枪械磨损 -desc.item.ammo.neu_40mm=* 这是其实是一枚40毫米的榴弹! -desc.item.ammo.neu_blank=* 一片空白 +desc.item.ammo.con_range2=- 大幅降低射程 +desc.item.ammo.con_sing_projectile=- 单个弹头 +desc.item.ammo.con_speed=- 弹丸速度降低 +desc.item.ammo.con_super_wear=- 磨损严重增加 +desc.item.ammo.con_wear=- 加剧磨损 +desc.item.ammo.neu_40mm=* 这是一枚40毫米的榴弹,我们把它挤到枪管里! +desc.item.ammo.neu_blank=* 这是空包弹 desc.item.ammo.neu_boat=* 船 -desc.item.ammo.neu_boxcar=* 火车厢 +desc.item.ammo.neu_boxcar=* 车厢 desc.item.ammo.neu_building=* 建筑物 -desc.item.ammo.neu_chlorophyte=* 绿藻 -desc.item.ammo.neu_eraser=* 为了消除一些大麻烦 -desc.item.ammo.neu_fun=* 和你的核谐家庭一起快乐的来放烟花玩耍吧! -desc.item.ammo.neu_heavy_metal=* 含重金属 -desc.item.ammo.neu_homing=* 自动追踪目标 -desc.item.ammo.neu_jolt=* 颠簸 -desc.item.ammo.neu_less_bouncy=* 霰弹更少 -desc.item.ammo.neu_maskman_flechette=* 发射一个能召唤出一场铀涂层镖弹碎片风暴的示踪剂 -desc.item.ammo.neu_maskman_meteorite=* 发射高伤害的子弹并召唤一颗小陨石 -desc.item.ammo.neu_more_bouncy=* 更多霰弹 -desc.item.ammo.neu_no_bounce=* 非霰弹 -desc.item.ammo.neu_no_con=* 没有任何负面作用 lol -desc.item.ammo.neu_starmetal=* 含星辉金属 -desc.item.ammo.neu_tracer=* 曳光弹 -desc.item.ammo.neu_uhh=* 啊哈 -desc.item.ammo.neu_warcrime1=* 从技术上讲使用它是犯了战争罪 -desc.item.ammo.neu_warcrime2=* 一颗子弹犯下两条战争罪! -desc.item.ammo.pro_accurate1=+ 准确性提高 -desc.item.ammo.pro_accurate2=+ 近乎完美的精确度 -desc.item.ammo.pro_balefire=+ B.F.野火 -desc.item.ammo.pro_bomb_count=+ 增加炸弹数量 +desc.item.ammo.neu_chlorophyte=* 叶绿 +desc.item.ammo.neu_eraser=* 用于消除重大错误 +desc.item.ammo.neu_fun=* 全家其乐无穷! +desc.item.ammo.neu_heavy_metal=* 重金属 +desc.item.ammo.neu_homing=* 追踪 +desc.item.ammo.neu_jolt=* 震荡 +desc.item.ammo.neu_less_bouncy=* 弹性更小 +desc.item.ammo.neu_maskman_flechette=* 曳光弹,同时引发一场贫铀飞镖弹风暴 +desc.item.ammo.neu_maskman_meteorite=* 高伤害,同时召唤小陨石 +desc.item.ammo.neu_more_bouncy=* 额外弹性 +desc.item.ammo.neu_no_bounce=* 没有弹性 +desc.item.ammo.neu_no_con=* 没有缺点 +desc.item.ammo.neu_starmetal=* 星辉金属 +desc.item.ammo.neu_tracer=* 示踪剂 +desc.item.ammo.neu_uhh=* Uhhh +desc.item.ammo.neu_warcrime1=* 从技术上来讲触犯了战争罪 +desc.item.ammo.neu_warcrime2=* 一发触犯两条战争罪! +desc.item.ammo.pro_accurate1=+ 提升精度 +desc.item.ammo.pro_accurate2=+ 近乎完美的精度 +desc.item.ammo.pro_balefire=+ 野火 +desc.item.ammo.pro_bomb_count=+ 炸弹数量增加 desc.item.ammo.pro_caustic=+ 腐蚀性 desc.item.ammo.pro_chainsaw=+ 电锯 desc.item.ammo.pro_chlorine=+ 氯气 -desc.item.ammo.pro_damage=+ 伤害增加 -desc.item.ammo.pro_damage_slight=+ 高于平均水平的伤害 -desc.item.ammo.pro_emp=+ EMP电磁脉冲 +desc.item.ammo.pro_damage=+ 提升伤害 +desc.item.ammo.pro_damage_slight=+ 高于平均伤害 +desc.item.ammo.pro_emp=+ EMP desc.item.ammo.pro_explosive=+ 爆炸 -desc.item.ammo.pro_fallout=+ -desc.item.ammo.pro_fit_357=+ 适合所有.357型号的枪械 -desc.item.ammo.pro_flames=+ 火焰燃烧时间增加 -desc.item.ammo.pro_gravity=+ 弹道下坠减少 -desc.item.ammo.pro_heavy_damage=+ 大大增加伤害 -desc.item.ammo.pro_incendiary=+ 燃烧 -desc.item.ammo.pro_lunatic=+ 月都科技 -desc.item.ammo.pro_marauder=+ 瞬间让烦人和不平衡的敌人灰飞烟灭 -desc.item.ammo.pro_mining=+ 可以把所有方块炸成掉落物 -desc.item.ammo.pro_no_gravity=+ 不再受重力影响 -desc.item.ammo.pro_nuclear=+ 小型核爆 +desc.item.ammo.pro_fallout=+ 辐射尘 +desc.item.ammo.pro_fit_357=+ 适用于所有.357枪械 +desc.item.ammo.pro_flames=+ 火焰喷射量增加 +desc.item.ammo.pro_gravity=+ 下坠降低 +desc.item.ammo.pro_heavy_damage=+ 大幅增加伤害 +desc.item.ammo.pro_incendiary=+ 能引起燃烧 +desc.item.ammo.pro_lunatic=+ 疯子 +desc.item.ammo.pro_marauder=+ 立即消除烦人的和不平衡的敌人 +desc.item.ammo.pro_mining=+ 爆炸使所有方块掉落 +desc.item.ammo.pro_no_gravity=+ 不受重力影响 +desc.item.ammo.pro_nuclear=+ 核爆 desc.item.ammo.pro_penetration=+ 穿透 -desc.item.ammo.pro_percussion=+ 冲击爆破 -desc.item.ammo.pro_phosphorus=+ 引起磷烧伤 -desc.item.ammo.pro_phosphorus_splash=+ 飞溅磷烧伤 -desc.item.ammo.pro_poison_gas=+ 毒气扩散 -desc.item.ammo.pro_radius=+ 增加爆炸范围 -desc.item.ammo.pro_radius_high=+ 爆炸范围大大增加 +desc.item.ammo.pro_percussion=+ 冲击波 +desc.item.ammo.pro_phosphorus=+ 可致磷烧伤 +desc.item.ammo.pro_phosphorus_splash=+ 磷飞溅 +desc.item.ammo.pro_poison_gas=+ 毒物飞溅 +desc.item.ammo.pro_radius=+ 增加爆炸半径 +desc.item.ammo.pro_radius_high=+ 大幅增加爆炸半径 desc.item.ammo.pro_range=+ 增加射程 -desc.item.ammo.pro_rocket=+ 火箭弹 +desc.item.ammo.pro_rocket=+ 火箭 desc.item.ammo.pro_rocket_propelled=+ 火箭推进 desc.item.ammo.pro_shrapnel=+ 破片 -desc.item.ammo.pro_speed=+ 火箭弹速度提高 -desc.item.ammo.pro_stunning=+ 震撼 -desc.item.ammo.pro_toxic=+ 毒性 -desc.item.ammo.pro_wear=+ 枪械磨损减少 +desc.item.ammo.pro_speed=+ 提高弹头飞行速度 +desc.item.ammo.pro_stunning=+ 眩晕 +desc.item.ammo.pro_toxic=+ 剧毒 +desc.item.ammo.pro_wear=+ 减少磨损 desc.item.ammo.pro_withering=+ 凋零 -desc.item.armorMod.display=来显示该盔甲上所安装的配件的效果 -desc.item.battery.charge=电量: %s / %sHE -desc.item.battery.chargePerc=电量: %s%% -desc.item.battery.chargeRate=充电速率: %sHE/tick -desc.item.battery.dischargeRate=放电速率: %sHE/tick -desc.item.durability=耐久度: %s -desc.item.grenade.fuse=引爆延时: %s -desc.item.grenade.fuseImpact=接触爆炸 -desc.item.grenade.fuseInstant=即爆 -desc.item.gun.ammo=弹药量 %s -desc.item.gun.ammoBelt=自动从背包中装填 -desc.item.gun.ammoEnergy=能量; %sHE 每发 +desc.item.armorMod.display=显示已安装的装甲模块 +desc.item.battery.charge=储能: %s / %sHE +desc.item.battery.chargePerc=储能: %s%% +desc.item.battery.chargeRate=充电效率: %sHE/刻 +desc.item.battery.dischargeRate=放电效率: %sHE/刻 +desc.item.durability=耐久: %s +desc.item.grenade.fuse=引信: %s +desc.item.grenade.fuseImpact=碰炸 +desc.item.grenade.fuseInstant=瞬发 +desc.item.gun.ammo=弹药 %s +desc.item.gun.ammoBelt=从背包中使用 +desc.item.gun.ammoEnergy=能耗; %sHE 每发 desc.item.gun.ammoEnergyAlt=%sHE 每发 desc.item.gun.ammoMag=%s / %s desc.item.gun.ammoType=弹药类型: %s -desc.item.gun.ammoTypeAlt=特殊弹药: %s +desc.item.gun.ammoTypeAlt=辅助弹药: %s desc.item.gun.damage=伤害: %s - %s desc.item.gun.damageAlt=伤害: %s -desc.item.gun.lore=查看深入的传说 +desc.item.gun.lore=查看深入的知识 desc.item.gun.loreFunc=查看深入功能 desc.item.gun.manufacturer=制造商: %s -desc.item.gun.name=枪械名称: %s -desc.item.gun.pellets=弹丸: %s - %s -desc.item.gun.penetration=护甲穿透值: %s -desc.item.kitArmor=现穿的护甲将被新护甲取代. -desc.item.kitHaz=防护服将取代现穿的护甲. -desc.item.kitPack=真便宜! -desc.item.kitPool=请在打开前清空你的背包! -desc.item.pileRod=§e用于插入钻削过的石墨$§e使用螺丝刀翘出$ -desc.item.rtgDecay=衰变为: %s -desc.item.rtgHeat=功率水平: %s +desc.item.gun.name=名称: %s +desc.item.gun.pellets=弹丸数:%s-%s +desc.item.gun.penetration=装甲穿透值: %s +desc.item.kitArmor=装甲将被新的装备取代。 +desc.item.kitHaz=装甲将被防护服取代。 +desc.item.kitPack=真便宜! +desc.item.kitPool=请在打开前清空背包库存! +desc.item.pileRod=§e使用钻孔石墨插入$§E使用螺丝刀拔出$ +desc.item.rtgDecay=衰变为:%s +desc.item.rtgHeat=功率级别:%s desc.item.storage.capacity=容量 %s%%s -desc.item.storage.proscons=to view pros cons list +desc.item.storage.proscons=查看利弊列表 desc.misc.357=.357 马格南 desc.misc.556=.223 雷明顿 -desc.misc.762=.308 温切斯特 -desc.misc.func=§n-- 功能 -- +desc.misc.762=.308 温彻斯特 +desc.misc.func=§n-- 作用 -- desc.misc.lanthanum="镧" -desc.misc.lctrl=§8按住 <§e§oLCTRL§8§o> %s -desc.misc.lore=§n-- 剧情 -- -desc.misc.lshift=§8按住 <§e§oLSHIFT§8§o> %s -desc.misc.luna=§o20x155mm 月都科技 +desc.misc.lctrl=§8按住 <§e§o左CTRL§8§o> %s +desc.misc.lore=§n-- 知识 -- +desc.misc.lshift=§8按住 <§e§o左SHIFT§8§o> %s +desc.misc.luna=§o20x155mm Lunatic desc.misc.meltPoint=熔点: §c%s -desc.misc.noPos=未设置触发位置! -desc.misc.pos=设置触发位置为 : %s, %s, %s -desc.misc.posSet=触发位置已设置! -desc.item.wasteCooling=在乏燃料池罐中冷却 -desc.item.zirnoxBreedingRod=§2[ZIRNOX镁诺克斯反应堆增殖棒]$§e放在燃料棒旁边以增殖$§e持续 %d ticks -desc.item.zirnoxRod=§a[ZIRNOX镁诺克斯反应堆燃料棒]$§eGenerates %1$d 热量每tick$§e持续 %2$d ticks - -digamma.playerDigamma=玩家Ϝ迪伽马辐照水平: -digamma.playerHealth=玩家所受Ϝ迪伽马辐照影响: -digamma.playerRes=玩家Ϝ迪伽马防护水平: -digamma.title=玩家Ϝ迪伽马辐射自检器 - -entity.entity_cyber_crab.name=机械螃蟹 -entity.entity_elder_one.name=Quackos古老者 +desc.misc.noPos=未设置位置! +desc.misc.pos=将位置设置为:%s,%s,%s +desc.misc.posSet=位置已设置! +desc.item.wasteCooling=在乏燃料池中冷却 +desc.item.zirnoxBreedingRod=§2[ZIRNOX增殖棒]$§e放在燃料棒旁边增殖$§e持续 %d 刻 +desc.item.zirnoxRod=§a[ZIRNOX燃料棒]$§e每刻产生 %1$d 热量$§e持续 %2$d 刻 +digamma.playerDigamma=玩家F-迪伽马辐照水平: +digamma.playerHealth=玩家所受F-迪伽马辐照影响: +digamma.playerRes=玩家F-迪伽马防护水平: +digamma.title=玩家F-迪伽马辐射自检器 +entity.entity_cyber_crab.name=赛博螃蟹 +entity.entity_elder_one.name=上古鸭神 entity.entity_fucc_a_ducc.name=鸭子 -entity.entity_ntm_fbi.name=FBI特工(暴徒) +entity.entity_ntm_fbi.name=FBI探员 entity.entity_ntm_radiation_blaze.name=核融元素 entity.hbm.entity_ntm_ufo.name=火星入侵者飞船 entity.entity_mob_hunter_chopper.name=猎人直升机 entity.entity_mob_mask_man.name=面具人 +entity.entity_mob_gold_creeper.name=黄金爬行者 entity.entity_mob_nuclear_creeper.name=核爆爬行者 entity.entity_mob_phosgene_creeper.name=光气爬行者 entity.entity_mob_tainted_creeper.name=污染爬行者 -entity.entity_taint_crab.name=腐化机械螃蟹 -entity.entity_tesla_crab.name=磁暴机械螃蟹 -entity.hbm.entity_balls_o_tron.name=世-界-毁-灭-者 O-TRON -entity.hbm.entity_balls_o_tron_seg.name=世-界-毁-灭-者 O-TRON 躯干 +entity.entity_mob_volatile_creeper.name=不稳定爬行者 +entity.entity_taint_crab.name=污染螃蟹 +entity.entity_tesla_crab.name=磁暴螃蟹 +entity.hbm.entity_balls_o_tron.name=机械蠕虫 +entity.hbm.entity_balls_o_tron_seg.name=机械蠕虫 entity.hbm.entity_bullet.name=子弹 entity.hbm.entity_rocket.name=火箭弹 -entity.hbm.entity_schrabnel.name=弹片 - -flare.ignition=点火开关 -flare.valve=燃气阀门 - +entity.hbm.entity_schrabnel.name=Schrabnel +flare.ignition=点火装置 +flare.valve=流量阀 fluid.acid_fluid=酸 fluid.corium_fluid=堆芯熔融物 fluid.mud_fluid=毒泥 -fluid.schrabidic_fluid=Sa326元素酸液 +fluid.schrabidic_fluid=Sa酸 fluid.toxic_fluid=绿色软泥 -fluid.volcanic_lava_fluid=火山岩浆 - -foundry.filter=过滤: %s -foundry.inverted=红石控制反转 +fluid.volcanic_lava_fluid=火山熔岩 +foundry.filter=筛选器:%s +foundry.inverted=红石信号反转 foundry.invertFilter=过滤器反转 -foundry.noCast=未安装模具! - -geiger.chunkRad=当前区块辐射量: +foundry.noCast=未安装模具! +geiger.chunkRad=当前区块辐射: geiger.envRad=环境总辐射量: -geiger.playerRad=玩家辐射量: -geiger.playerRes=玩家辐射抗性: -geiger.title=盖格计数器 -geiger.title.dosimeter=放射量测定器 - -gun.make.ARMALITE=阿玛莱特 -gun.make.AUTO_ORDINANCE=AOC美国自动武器公司 -gun.make.BAE=BAE系统公司 +geiger.playerRad=玩家辐射: +geiger.playerRes=辐射抗性: +geiger.title=盖革计数器 +geiger.title.dosimeter=剂量计 +gun.make.ARMALITE=阿玛莱特公司 +gun.make.AUTO_ORDINANCE=美国自动武器公司 +gun.make.BAE=英国宇航系统公司 gun.make.BENELLI=伯奈利武器公司 gun.make.BLACK_MESA=黑山研究所 -gun.make.CERIX=塞里克斯·马格努斯铸造世界 -gun.make.COLT=柯尔特公司 -gun.make.COMBINE=多维空间联合帝国 -gun.make.CUBE=魔方2: 醋焖牛肉 -gun.make.ENZINGER=恩辛格联盟 -gun.make.EQUESTRIA=小马国导弹系统公司 -gun.make.FLIMFLAM="欺骗" 工业 -gun.make.F_STRONG=斯特朗堡 -gun.make.GLORIA=格洛里亚股份有限公司 +gun.make.CERIX=赛里克斯·马格努斯锻造世界 +gun.make.COLT=柯尔特制造公司 +gun.make.COMBINE=世界工会 +gun.make.CUBE=Cube 2: Sauerbraten +gun.make.ENZINGER=Enzinger工会 +gun.make.EQUESTRIA=小马国导弹系统 +gun.make.FLIMFLAM=FlimFlam“欺骗”工业 +gun.make.F_STRONG=史特朗堡 +gun.make.GLORIA=GLORIA公司 gun.make.HASBRO=孩之宝 -gun.make.H_AND_K=赫克勒-科赫公司 -gun.make.H_AND_R=哈灵顿·理查森公司 +gun.make.H_AND_K=黑克勒和科赫武器公司 +gun.make.H_AND_R=哈林顿-理查森武器公司 gun.make.IF=蹄铁军工 -gun.make.IMI=以色列军事工业公司 -gun.make.IMI_BIGMT=以色列军事工业公司 / 巨山研发中心 -gun.make.LANGFORD=兰福德研究实验室 +gun.make.IMI=以色列军事工业 +gun.make.IMI_BIGMT=以色列军事工业公司/大型MT +gun.make.LANGFORD=朗福德研究实验室 gun.make.LUNA=月球防御公司 -gun.make.MAGNUM_R_IMI=马格南武器研究所 / 以色列军事工业公司 -gun.make.MANN=开放曼恩公司.. -gun.make.MAXIM=海勒姆·史蒂文斯·马克沁 -gun.make.METRO=<<地铁>>中的军械工人 +gun.make.MAGNUM_R_IMI=马格南研究公司 / 以色列军事工业公司 +gun.make.MANN=Open Mann公司 +gun.make.MAXIM=海勒姆·马克沁 +gun.make.METRO=地铁枪手 gun.make.MWT=MWT原型实验室 -gun.make.NAZI=埃尔马.威客兵工厂 +gun.make.NAZI=埃尔福特机械制造厂 gun.make.NONE=- -gun.make.RAYTHEON=雷神导弹系统公司 -gun.make.REMINGTON=雷明顿武器公司 +gun.make.RAYTHEON=导弹系统公司 +gun.make.REMINGTON=雷明登武器公司 gun.make.ROCKWELL=罗克韦尔国际公司 -gun.make.ROCKWELL_U=罗克韦尔国际公司? +gun.make.ROCKWELL_U=罗克韦尔国际公司? gun.make.RYAN=莱恩工业 -gun.make.SAAB=博福斯动力公司 -gun.make.SACO=萨科防务 / 美国军械 -gun.make.TULSKY=图拉兵工厂 -gun.make.UAC=联合航天公司 +gun.make.SAAB=萨博博福斯动力公司 +gun.make.SACO=萨科防卫军械 +gun.make.TULSKY=图拉武器厂 +gun.make.UAC=联合宇宙航空公司 gun.make.UNKNOWN=??? -gun.make.WESTTEK=西部科技 -gun.make.WGW=威廉·古斯特洛夫·沃克 -gun.make.WINCHESTER=温彻斯特连发轻武器公司 -gun.make.WINCHESTER_BIGMT=温彻斯特连发轻武器公司 / 巨山研发中心 - -gun.name.ar15_50=AR-15 .50 BMG 模式 -gun.name.baeAR=不列颠标准型突击步枪 -gun.name.bel=B.F.反物质蛋弹射器 -gun.name.benelli=Benelli M4 Super 90 -gun.name.benelliDrum=Benelli M4 Super 90 (Drum Magazine Modification) +gun.make.WESTTEK=WestTek研究设施 +gun.make.WGW=威廉·古斯特洛夫·维尔克 +gun.make.WINCHESTER=温彻斯特速射武器公司 +gun.make.WINCHESTER_BIGMT=温彻斯特速射武器公司/大型MT +gun.name.ar15_50=AR-15 .50BMG型 +gun.name.baeAR=英国制式突击步枪 +gun.name.bel=野火蛋发射器 +gun.name.benelli=伯奈利M4 Super 90霰弹枪 +gun.name.benelliDrum=伯奈利M4 Super 90霰弹枪 (泵动供弹改进型) gun.name.bio=RI No. 2 Mark 1 -gun.name.bolter=曼提柯尔花纹爆弹枪 -gun.name.cPython=Colt Python -gun.name.cz53=CZ53单兵火神炮 -gun.name.cz57=CZ57复仇火神炮 -gun.name.dart=气动射针枪 -gun.name.deagle=IMI沙漠之鹰 -gun.name.emp=EMP磁暴步枪 -gun.name.extinguisher=PROTEX6kg灭火器 -gun.name.ffiV=普通左轮手枪 -gun.name.ffiVInox=强化左轮手枪 -gun.name.ffiVLead=核子左轮手枪 -gun.name.ffiVN1=梦魇左轮手枪(初代) -gun.name.ffiVN2=梦魇左轮手枪(黑暗) -gun.name.ffiVUltra=Sa326元素左轮手枪 -gun.name.ffivBling=黄金左轮手枪 -gun.name.ffivSatur=土星金属手枪 -gun.name.g36=Heckler & Koch Gewehr 36 -gun.name.gPistol=HK69榴弹手枪 -gun.name.gustav=M1卡尔·古斯塔夫无后座力步枪 -gun.name.ifHorseshoe=IF-18蹄铁军工诺华克 -gun.name.ifPit=IF-18蹄铁军工红钥匙左轮手枪 -gun.name.ifScope=小皮的IF-18蹄铁军工左轮手枪 -gun.name.ifStorm=IF-18蹄铁军工银色风暴 -gun.name.ifVanity=黑杰克的IF-18蹄铁军工五发装左轮枪 -gun.name.karl=M1卡尔火箭筒 -gun.name.ks23=萨缪尔-23大口径霰弹枪 -gun.name.lacunae=CZ33地狱火神 -gun.name.lasetDet=霍普维尔激光引爆器 -gun.name.lunaAR=1986 Bishamonten type Assault Rifle +gun.name.bolter=Manticora Pattern爆弹枪 +gun.name.cPython=柯尔特蟒蛇 +gun.name.cz53=CZ53 单兵转轮机枪 +gun.name.cz57=CZ57 复仇者机枪 +gun.name.dart=针枪 +gun.name.deagle=以色列军事工业公司沙漠之鹰 +gun.name.emp=EMP投射器 +gun.name.extinguisher=PROTEX灭火器6kg +gun.name.ffiV=FFI Viper +gun.name.ffiVInox=FFI Viper Inox +gun.name.ffiVLead=FFI Viper Lead +gun.name.ffiVN1=FFI Viper N1 +gun.name.ffiVN2=FFI Viper N2 +gun.name.ffiVUltra=FFI Viper Ultra +gun.name.ffivBling=FFI Viper Bling +gun.name.ffivSatur=FFI Viper D-25A +gun.name.g36=HK G36突击步枪 +gun.name.gPistol=HK69A1 手持单发榴弹发射器 +gun.name.gustav=卡尔·古斯塔夫M1无后坐力炮 +gun.name.ifHorseshoe=IF-18 蹄铁 +gun.name.ifPit=IF-18 蹄铁 Bottomless Pit +gun.name.ifScope=IF-18 蹄铁 Scoped +gun.name.ifStorm=IF-18 蹄铁 银色风暴 +gun.name.ifVanity=IF-18 蹄铁 Vanity +gun.name.karl=M1 卡尔·古斯塔夫 +gun.name.ks23=KS-23霰弹枪 +gun.name.lacunae=Auntie Lacunae +gun.name.lasetDet=霍普维尔激光雷管 +gun.name.lunaAR=1986 Bishamonten式突击步枪 gun.name.lunaGun=1978 Rāhula type Standard Issue Sidearm (Revision 2) -gun.name.lunaHLR=1944 Chang'e type Light Machine Gun -gun.name.lunaShotty=1978 Guan Yu type Scattergun (Revision 1) -gun.name.lunaSMG=1956 Ānanda type Submachine Gun -gun.name.lunaSniper=1915 “后羿” 型反物质来复枪 -gun.name.lunaTWR=Time Warp Rifle -gun.name.m2=.50口径勃朗宁机枪, M2, HB -gun.name.m42=M-42战术核弹射器 -gun.name.m42MIRV=M-42 核弹弹射器"试验性子母弹头 -gun.name.m60= 7.62 mm口径机枪, M60 +gun.name.lunaHLR=1944嫦娥式轻机枪 +gun.name.lunaShotty=1978年关羽式散弹枪(第1次修订) +gun.name.lunaSMG=1956 ānanda type Submachine Gun +gun.name.lunaSniper=1915后羿式反器材步枪 +gun.name.lunaTWR=时间扭曲步枪 +gun.name.m2=M2式勃朗宁大口径重机枪 +gun.name.m42=M-42战术核弹发射器 +gun.name.m42MIRV=M-42实验MIRV +gun.name.m60=7.62毫米口径M60机枪 gun.name.maxim=马克沁机枪 -gun.name.maximDouble=双管马克沁机枪 -gun.name.mg3=通用MG3机枪 - .50 模式 -gun.name.mp40=Mp40冲锋枪 -gun.name.nerf=NERF blaster of unknown design -gun.name.osipr=看守者暗能量脉冲步枪 -gun.name.panz=坦克杀手54 -gun.name.quadro=四联装制导便携式电视制导导弹发射器 +gun.name.maximDouble=双重马克沁机枪 +gun.name.mg3=MG-42通用机枪 +gun.name.mp40=MP40冲锋枪 +gun.name.nerf=某些无良记者眼中的大规模杀伤性武器 +gun.name.osipr=守望标准型脉冲步枪 +gun.name.panz=反坦克火箭来复枪 54 +gun.name.quadro=OpenQuadro便携式导弹发射器 gun.name.remington870=雷明顿870 -gun.name.revolverCursed=被诅咒的不列颠标准发行版左轮手枪 -gun.name.sauer=斯坦.索尔的萨缪尔-23霰 -gun.name.spas12= -gun.name.spiw=H&R弗莱切特镖 -gun.name.stinger=FIM-92“毒刺”便携式防空导弹 -gun.name.stingerOneSky=天马防空导弹 -gun.name.supershotty=Double-Barreled Combat Shotgun -gun.name.tau=XVL1456 负陶子加农炮原型 -gun.name.tommy9=9mm口径M1A1冲锋枪 +gun.name.revolverCursed=不列颠标准问题电动手枪 +gun.name.sauer=绍尔猎枪 +gun.name.spas12=弗兰基SPAS-12式12号霰弹枪 +gun.name.spiw=H&R SPIW +gun.name.stinger=FIM-92毒刺便携式防空系统 +gun.name.stingerOneSky=The One Sky 毒刺便携式防空系统 +gun.name.supershotty=双管战斗霰弹枪 +gun.name.tau=XVL1456 陶子加农炮 +gun.name.tommy9=M1A1冲锋枪9毫米型 gun.name.tommy=M1A1冲锋枪 -gun.name.topaz=帕托石重型火焰枪 -gun.name.uacCarbine=UAC-41 Carbine +gun.name.topaz=重型火焰燃烧器 +gun.name.uacCarbine=UAC-41卡宾枪 gun.name.uacDeagle=UAC-H54 "Martian Raptor" Automag -gun.name.uacDMR=UAC-30 Designated Marksman Rifle -gun.name.uacLMG=UAC-49 Light Machine Gun -gun.name.uacPistol=UAC-B950 .45 Standard Issue Handgun -gun.name.uacSMG=UAC-17 Compact Sub-Machine Gun -gun.name.uboinik=先进制式霰弹枪 -gun.name.uzi=IMI乌齐冲锋枪 -gun.name.uziSatur=IMI D-25A乌齐冲锋枪 -gun.name.win1887=1887温彻斯特霰弹枪(原型) -gun.name.win1887Inox=1887温彻斯特霰弹枪(黑暗) -gun.name.win20Inox=温彻斯特拉栓步枪(原型) -gun.name.win20Poly=温彻斯特拉栓步枪(绿) -gun.name.win20Satur=D-25A星辉金属温彻斯特来复枪 -gun.name.zomg=EMC101棱镜负能量加农炮 - -hadron.analysis=分析中... -hadron.buttonOn=分析室(如有)开启 +gun.name.uacDMR=UAC-30 精确射手步枪 +gun.name.uacLMG=UAC-49轻机枪 +gun.name.uacPistol=UAC-B950 .45 标准型手枪 +gun.name.uacSMG=UAC-17小型冲锋枪 +gun.name.uboinik=Uboinik转轮霰弹枪 +gun.name.uzi=IMI Uzi +gun.name.uziSatur=IMI Uzi D-25A +gun.name.win1887=温彻斯特M1887杠杆式连发霰弹枪 +gun.name.win1887Inox=温彻斯特M1887杠杆式连发霰弹枪 Inox +gun.name.win20Inox=温彻斯特20型Inox +gun.name.win20Poly=温彻斯特20型聚合物 +gun.name.win20Satur=温彻斯特20型 D-25A +gun.name.zomg=EMC101棱镜负能量炮 +hadron.analysis=正在分析... +hadron.buttonOn=分析室启动(如果存在) hadron.buttonOff=分析室关闭 hadron.error_generic=错误! -hadron.error_no_charge=错误 0x01 [电量不足] -hadron.error_no_analysis=错误 0x02 [无分析室] -hadron.error_obstructed_channel=错误 0x03 [粒子通道堵塞] -hadron.error_expected_coil=错误 0x04 [线圈缺失] -hadron.error_malformed_segment=错误 0x05 [加速器结构错误] +hadron.error_no_charge=错误 0x01 [能量不足] +hadron.error_no_analysis=错误 0x02 [无法分析] +hadron.error_obstructed_channel=错误 0x03 [通道阻塞] +hadron.error_expected_coil=错误 0x04 [缺少线圈] +hadron.error_malformed_segment=错误 0x05 [错误区段] hadron.error_analysis_too_long=错误 0x06 [分析室过长] -hadron.error_analysis_too_short=错误 0x07 [分析室过短] -hadron.error_diode_collision=错误 0x08 [粒子与肖特基粒子二极管碰撞] -hadron.error_branching_turn=错误 0x09 [转弯处分岔] -hadron.hopper0=§e普通模式:$所有物品都可用来对撞. -hadron.hopper1=§e过滤模式:$对撞机输入口将始终保留一个物品. -hadron.idle=闲置 -hadron.modeCircular=§e环形加速器模式:$磁力加速通道必须接回加速器核心.$很多制造配方所要求的模式. -hadron.modeLine=§e直线加速器模式:$加速器末端有分析室.$可用的制造配方更少. -hadron.noresult=无结果. +hadron.error_analysis_too_short=错误 0x06 [分析室过长] +hadron.error_diode_collision=错误 0x08 [二极管方向错误] +hadron.error_branching_turn=错误 0x09 [多处分支] +hadron.hopper0=§e正常模式:$将使用所有项目 +hadron.hopper1=§e料斗模式:$ 将始终保留一个项目 +hadron.idle=空闲 +hadron.modeCircular=§e环形加速器模式:$磁铁必须环绕核心$解锁更多配方 +hadron.modeLine=§e直线加速器模式:$加速器末端有分析室$更少的配方 +hadron.noresult=无结果 hadron.noresult_too_slow=推进力不足! -hadron.noresult_wrong_ingredient=无效配方! -hadron.noresult_wrong_mode=模式错误! +hadron.noresult_wrong_ingredient=无效配方! +hadron.noresult_wrong_mode=错误模式! hadron.progress=正在进行中... -hadron.stats=上次运行结果: -hadron.stats_coord=错误位置: %s / %s / %s -hadron.stats_momentum=推进力: % -hadron.success=完成! - -hazard.prot=可以提供的危害防护: -hazard.noprot=不能提供的危害防护: -hazard.bacteria=细菌 / 气溶胶 -hazard.corrosive=腐蚀性气体 -hazard.gasChlorine=化学毒气 -hazard.gasInert=惰性气体 / 窒息性气体 +hadron.stats=上一次结果: +hadron.stats_coord=错误位置:%s/%s/%s +hadron.stats_momentum=推力: %s +hadron.success=已完成! +hazard.prot=防止危险: +hazard.noprot=不能防止: +hazard.bacteria=细菌/气溶胶 +hazard.corrosive=腐蚀性烟雾 +hazard.gasChlorine=化学气体 +hazard.gasInert=惰性气体/沥青 hazard.gasMonoxide=一氧化碳 -hazard.light=闪光 +hazard.light=亮光 hazard.nerveAgent=神经毒剂 -hazard.neverProtects=绝对不会提供的危害防护: -hazard.particleCoarse=大气漂浮颗粒物 -hazard.particleFine=颗粒物 -hazard.sand=眼球刺激物 - -hbm.key=NTM 热键 +hazard.neverProtects=它永远不能防止: +hazard.particleCoarse=空气微粒 +hazard.particleFine=微粒 +hazard.sand=眼睛刺激物 +hbm.key=HBM的核科技mod 热键 hbm.key.calculator=计算器 -hbm.key.craneLoad=抽出/插入燃料棒 -hbm.key.craneMoveDown=起重机向后移动 -hbm.key.craneMoveLeft=起重机向左移动 -hbm.key.craneMoveRight=起重机向右移动 -hbm.key.craneMoveUp=起重机向前移动 +hbm.key.craneLoad=装卸起重机 +hbm.key.craneMoveDown=向后移动起重机 +hbm.key.craneMoveLeft=向左移动起重机 +hbm.key.craneMoveRight=向右移动起重机 +hbm.key.craneMoveUp=向前移动起重机 hbm.key.dash=冲刺 (在config中解绑) -hbm.key.toggleBack=喷气背包开关 -hbm.key.toggleHUD=装甲HUD显示开关 -hbm.key.reload=装填 - +hbm.key.toggleBack=开关 喷气背包 +hbm.key.toggleHUD=开关 HUD +hbm.key.reload=装弹 hbmfluid.acid=过氧化氢 hbmfluid.amat=反物质 hbmfluid.aromatics=芳香烃 -hbmfluid.aschrab=反Sa326施布拉比迪物质 -hbmfluid.balefire=BF反物质火箭燃料 +hbmfluid.aschrab=反Sa326 +hbmfluid.balefire=野火火箭燃料 hbmfluid.biofuel=生物燃料 hbmfluid.biogas=沼气 hbmfluid.bitumen=沥青 -hbmfluid.blood=血液 -hbmfluid.blood_hot=热血液 +hbmfluid.blood=血 +hbmfluid.blood_hot=热的血 hbmfluid.carbondioxide=二氧化碳 hbmfluid.chlorine=氯气 hbmfluid.cholesterol=胆固醇溶液 -hbmfluid.coalcreosote=煤焦油杂酚油 +hbmfluid.coalcreosote=煤焦杂酚油 hbmfluid.coalgas=煤汽油 hbmfluid.coalgas_leaded=含铅煤汽油 -hbmfluid.coaloil=煤焦油 +hbmfluid.coaloil=煤液化油 hbmfluid.colloid=胶体 hbmfluid.coolant=冷却液 hbmfluid.coolant_hot=热冷却液 hbmfluid.crackoil=裂化油 -hbmfluid.cryogel=超低温凝胶 -hbmfluid.death=铱锇酸溶液 +hbmfluid.cryogel=冷凝胶 +hbmfluid.death=锇酸溶液 hbmfluid.deuterium=氘 hbmfluid.diesel=柴油 -hbmfluid.diesel_crack_reform=高辛烷值裂解柴油 +hbmfluid.diesel_crack=裂化柴油 +hbmfluid.diesel_crack_reform=高辛烷值裂化柴油 hbmfluid.diesel_reform=高辛烷值柴油 hbmfluid.egg=蛋溶解液 hbmfluid.estradiol=雌二醇溶液 -hbmfluid.diesel_crack=裂化柴油 -hbmfluid.diesel_crack_reform=高辛烷值裂解柴油 -hbmfluid.diesel_reform=高辛烷值柴油 hbmfluid.ethanol=乙醇 -hbmfluid.enderjuice=末影液 +hbmfluid.enderjuice=末影果汁 +hbmfluid.fishoil=鱼油 hbmfluid.fracksol=压裂液 hbmfluid.gas=天然气 hbmfluid.gas_coker=焦化气 -hbmfluid.gasoline=精制汽油 -hbmfluid.gasoline_leaded=含铅精制汽油 -hbmfluid.heatingoil=民用燃油 -hbmfluid.heatingoil_vacuum=加热重油 +hbmfluid.gasoline=含铅汽油基油 +hbmfluid.gasoline_leaded=含铅汽油 +hbmfluid.heatingoil=燃油 +hbmfluid.heatingoil_vacuum=重质燃油 hbmfluid.heavyoil=重油 -hbmfluid.heavyoil_vacuum=真空精炼重油 +hbmfluid.heavyoil_vacuum=减压重油 hbmfluid.heavywater=重水 hbmfluid.helium3=氦-3 hbmfluid.hotcrackoil=热裂化油 @@ -1200,31 +1174,31 @@ hbmfluid.kerosene_reform=喷气燃料 hbmfluid.lava=岩浆 hbmfluid.lightoil=轻油 hbmfluid.lightoil_crack=裂化轻油 -hbmfluid.lightoil_vacuum=真空精炼轻油 -hbmfluid.lpg=LPG -hbmfluid.lubricant=发动机润滑油 +hbmfluid.lightoil_vacuum=减压轻油 +hbmfluid.lpg=液化石油气 hbmfluid.lubricant=润滑油 hbmfluid.mercury=水银 -hbmfluid.mug=杯根啤酒 -hbmfluid.mug_hot=热杯根啤酒 +hbmfluid.mug=Mug牌树根饮料 +hbmfluid.mug_hot=热的Mug牌树根饮料 hbmfluid.mustardgas=芥子气 hbmfluid.naphtha=石脑油 hbmfluid.naphtha_coker=焦化石脑油 hbmfluid.naphtha_crack=裂化石脑油 -hbmfluid.nitan=NITAN© 100号超级燃料 +hbmfluid.nitan=NITAN牌100号超级燃料 hbmfluid.nitric_acid=硝酸 +hbmfluid.nitroglycerin=硝酸甘油 hbmfluid.none=无 hbmfluid.oil=原油 hbmfluid.oil_coker=焦化油 hbmfluid.oxygen=液氧 hbmfluid.oxyhydrogen=氢氧混合气 -hbmfluid.pain=潘地曼尼南(III)钽铁矿溶液 -hbmfluid.petroil=混机油汽油 -hbmfluid.petroil_leaded=含铅混机油汽油 +hbmfluid.pain=Pn(III) 钽铁溶液 +hbmfluid.petroil=汽油 +hbmfluid.petroil_leaded=含铅石油 hbmfluid.petroleum=石油气 hbmfluid.phosgene=光气 -hbmfluid.plasma_bf=B.F.反物质等离子体 -hbmfluid.plasma_dh3=氘-氦3等离子体 +hbmfluid.plasma_bf=野火等离子体 +hbmfluid.plasma_dh3=氘-氦3 等离子体 hbmfluid.plasma_dt=氘-氚等离子体 hbmfluid.plasma_hd=氢-氘等离子体 hbmfluid.plasma_ht=氢-氚等离子体 @@ -1232,24 +1206,25 @@ hbmfluid.plasma_xm=氙-汞等离子体 hbmfluid.puf6=六氟化钚 hbmfluid.radiosolvent=高性能溶剂 hbmfluid.reclaimed=再生油 +hbmfluid.redmud=红色泥浆 hbmfluid.reformate=重整油 hbmfluid.reformgas=重整气 hbmfluid.salient=绿色液体 -hbmfluid.sas3=三硫化Sa326溶液 -hbmfluid.schrabidic=Sa326元素酸液 -hbmfluid.seedslurry=播种研磨液 +hbmfluid.sas3=三硫化Sa +hbmfluid.schrabidic=Sa酸 +hbmfluid.seedslurry=播种浆料 hbmfluid.smear=工业油 hbmfluid.solvent=有机溶剂 -hbmfluid.sourgas=含硫天然气 -hbmfluid.sodiumhydroxide=氢氧化钠 +hbmfluid.sourgas=高硫天然气 hbmfluid.spentsteam=低压蒸汽 hbmfluid.steam=蒸汽 hbmfluid.sulfuric_acid=硫酸 -hbmfluid.superhotsteam=高热浓蒸汽 +hbmfluid.sunfloweroil=葵花籽油 +hbmfluid.superhotsteam=超热蒸汽 hbmfluid.syngas=合成气 hbmfluid.tritium=氚 hbmfluid.uf6=六氟化铀 -hbmfluid.ultrahotsteam=超热浓蒸汽 +hbmfluid.ultrahotsteam=超浓密蒸汽 hbmfluid.unsaturateds=不饱和烃 hbmfluid.wastefluid=液态核废料 hbmfluid.wastegas=气态核废料 @@ -1258,16 +1233,15 @@ hbmfluid.watz=毒泥浆 hbmfluid.woodoil=木油 hbmfluid.xenon=氙气 hbmfluid.xpjuice=经验汁 -hbmfluid.xylene=BTX苯-甲苯-二甲苯混合物 +hbmfluid.xylene=轻质芳烃(BTX) hbmpseudofluid.none=空 -hbmpseudofluid.heuf6=高浓缩度六氟化铀 -hbmpseudofluid.meuf6=中浓缩度六氟化铀 -hbmpseudofluid.leuf6=低浓缩度六氟化铀 -hbmpseudofluid.nuf6=未浓缩六氟化铀 +hbmpseudofluid.heuf6=高浓缩六氟化铀 +hbmpseudofluid.meuf6=中浓缩六氟化铀 +hbmpseudofluid.leuf6=低浓缩六氟化铀 +hbmpseudofluid.nuf6=天然浓度六氟化铀 hbmpseudofluid.pf6=六氟化钚 -hbmpseudofluid.mud_heavy=有毒污泥沉淀物 -hbmpseudofluid.mud=气态有毒污泥 - +hbmpseudofluid.mud_heavy=毒泥浆重馏分 +hbmpseudofluid.mud=毒泥浆气态物 hbmmat.actinium227=锕-227 hbmmat.advancedalloy=高级合金 hbmmat.aluminum=铝 @@ -1282,47 +1256,46 @@ hbmmat.bismuth=铋 hbmmat.borax=硼砂 hbmmat.boron=硼 hbmmat.cadmium=镉 -hbmmat.cadmium=镉 hbmmat.carbon=碳 -hbmmat.cdalloy=镉钢合金 +hbmmat.cdalloy=镉钢 hbmmat.cinnabar=朱砂 hbmmat.cmbsteel=CMB钢 hbmmat.coal=煤 hbmmat.coalcoke=焦煤 hbmmat.cobalt=钴 hbmmat.cobalt60=钴-60 -hbmmat.coltan=钶钽铁 +hbmmat.coltan=钶钽铁矿 hbmmat.copper=铜 -hbmmat.desh=德什 +hbmmat.desh=Desh hbmmat.dineutronium=双聚中子态素 hbmmat.durasteel=高速钢 -hbmmat.euphemium=Ep元素 -hbmmat.ferrouranium=铀铁 +hbmmat.euphemium=Ep +hbmmat.ferrouranium=铀铁合金 hbmmat.fiberglass=玻璃纤维 hbmmat.fluorite=氟石 -hbmmat.flux=焊剂 -hbmmat.ghiorsium336=气敖-336 +hbmmat.flux=助熔剂 +hbmmat.ghiorsium336=Gh-336 hbmmat.gold=金 hbmmat.gold198=金-198 hbmmat.graphene=石墨烯 hbmmat.graphite=石墨 -hbmmat.hematite=赤铁 +hbmmat.hematite=赤铁矿 hbmmat.iron=铁 hbmmat.lapis=青金石 hbmmat.lead=铅 hbmmat.lead209=铅-209 -hbmmat.lignitecoke=褐焦煤 +hbmmat.lignitecoke=褐煤焦煤 hbmmat.lignite=褐煤 hbmmat.lithium=锂 hbmmat.magnetizedtungsten=磁化钨 hbmmat.malachite=孔雀石 hbmmat.meteoriciron=陨铁 -hbmmat.mingrade=紫铜 +hbmmat.mingrade=工业级铜 hbmmat.neptunium237=镎-237 hbmmat.niobium=铌 -hbmmat.obsidian=黑曜石 -hbmmat.osmiridium=铱锇 -hbmmat.petcoke=石油焦 +hbmmat.obsidian=黑曜岩 +hbmmat.osmiridium=铱锇合金 +hbmmat.petcoke=石油焦炭 hbmmat.pigiron=生铁 hbmmat.plutonium=钚 hbmmat.plutonium238=钚-238 @@ -1333,22 +1306,22 @@ hbmmat.plutoniumrg=反应堆级钚 hbmmat.polonium210=钋-210 hbmmat.polymer=聚合物 hbmmat.radium226=镭-226 -hbmmat.redphosphorus=紫铜 +hbmmat.redphosphorus=红磷 hbmmat.redstone=红石 hbmmat.rubber=橡胶 hbmmat.saltpeter=硝石 -hbmmat.saturnite=土星 -hbmmat.schrabidate=Sa326元素酸化铁 -hbmmat.schrabidium=Sa326异变铀金属 -hbmmat.schraranium=低丰度Sa326异变铀金属 +hbmmat.saturnite=土星锭 +hbmmat.schrabidate=Sa酸铁 +hbmmat.schrabidium=低丰度Sa326 +hbmmat.schraranium=Sa326 hbmmat.slag=炉渣 -hbmmat.solinium=Sa327索林 -hbmmat.starmetal=星辉金属 +hbmmat.solinium=Sa327 +hbmmat.starmetal=星辉 hbmmat.steel=钢 hbmmat.stone=石头 hbmmat.sulfur=硫 hbmmat.tantalum=钽 -hbmmat.tcalloy=锝-钢合金 +hbmmat.tcalloy=锝钢 hbmmat.technetium99=锝-99 hbmmat.titanium=钛 hbmmat.thorium232=钍-232 @@ -1359,9 +1332,8 @@ hbmmat.uranium235=铀-235 hbmmat.uranium238=铀-238 hbmmat.watzmud=毒泥浆 hbmmat.whitephosphorus=白磷 -hbmmat.workersalloy=德什 +hbmmat.workersalloy=Desh hbmmat.wroughtiron=锻铁 - matshape.block=%s 块 matshape.blocks=%s 块 matshape.ingot=%s 锭 @@ -1370,27 +1342,25 @@ matshape.nugget=%s 粒 matshape.nuggets=%s 粒 matshape.quantum=%s 量子 matshape.quanta=%s 量子 - -info.asbestos=这些石棉尘让我的肺像在燃烧一样. -info.coaldust=这些煤尘让我难以呼吸. -info.coil=加速线圈磁场强度 -info.templatefolder=使用 %s 制作 +info.asbestos=我感觉我的肺在燃烧。 +info.coaldust=在这里很难呼吸。 +info.coil=线圈强度 +info.templatefolder=需要使用机器模板文件夹创建 info.template_in=输入: info.template_in_p=输入: info.template_out=输出: info.template_out_p=输出: info.template_seconds=秒 -info.template_time=生产时间: - -item.acetylene_torch.name=乙炔焊枪 -item.ajr_boots.name=钢制突击队 靴子 -item.ajr_helmet.name=钢制突击队 头盔 -item.ajr_legs.name=钢制突击队 护腿 -item.ajr_plate.name=钢制突击队 胸甲 -item.ajro_boots.name=AJR动力装甲 靴子 -item.ajro_helmet.name=AJR动力装甲 头盔 -item.ajro_legs.name=AJR动力装甲 护腿 -item.ajro_plate.name=AJR动力装甲 胸甲 +info.template_time=生产耗时: +item.acetylene_torch.name=乙炔焊罐 +item.ajr_boots.name=AJR 动力装甲靴子 +item.ajr_helmet.name=AJR 动力装甲头盔 +item.ajr_legs.name=AJR 动力装甲护腿 +item.ajr_plate.name=AJR 动力装甲胸甲 +item.ajro_boots.name=AJR动力装甲靴子 +item.ajro_helmet.name=AJR 动力装甲头盔 +item.ajro_legs.name=AJR 动力装甲护腿 +item.ajro_plate.name=AJR 动力装甲胸甲 item.alloy_axe.name=高级合金斧 item.alloy_boots.name=高级合金靴子 item.alloy_helmet.name=高级合金头盔 @@ -1400,191 +1370,187 @@ item.alloy_pickaxe.name=高级合金镐 item.alloy_plate.name=高级合金胸甲 item.alloy_shovel.name=高级合金锹 item.alloy_sword.name=高级合金剑 -item.ammo_12gauge.name=12口径鹿弹 -item.ammo_12gauge_du.name=12口径鹿弹[铀涂层] -item.ammo_12gauge_incendiary.name=12口径鹿弹[燃烧] -item.ammo_12gauge_marauder.name=12口径战术反掠夺者鹿弹 -item.ammo_12gauge_percussion.name=12口径火帽 -item.ammo_12gauge_shrapnel.name=12口径鹿弹[榴霰弹] -item.ammo_12gauge_sleek.name=12口径鹿弹[IF-R&D] -item.ammo_20gauge.name=20口径鹿弹 -item.ammo_20gauge_caustic.name=20口径鹿弹[腐蚀] -item.ammo_20gauge_explosive.name=20口径鹿弹[高爆] -item.ammo_20gauge_flechette.name=20口径箭霰弹 -item.ammo_20gauge_incendiary.name=20口径鹿弹[燃烧] -item.ammo_20gauge_shock.name=20口径鹿弹[震荡] -item.ammo_20gauge_shrapnel.name=20口径鹿弹[榴霰弹] -item.ammo_20gauge_sleek.name=20口径鹿弹[IF-R&D] -item.ammo_20gauge_slug.name=20口径独头弹 -item.ammo_20gauge_wither.name=20口径鹿弹[凋零] +item.ammo_12gauge.name=12号鹿弹 +item.ammo_12gauge_du.name=12号鹿弹[铀涂层] +item.ammo_12gauge_incendiary.name=12号鹿弹[燃烧] +item.ammo_12gauge_marauder.name=12号战术反掠夺鹿弹 +item.ammo_12gauge_percussion.name=12号冲击火药帽 +item.ammo_12gauge_shrapnel.name=12号鹿弹[榴霰弹] +item.ammo_12gauge_sleek.name=12号鹿弹[IF-R&D] +item.ammo_20gauge.name=20号鹿弹 +item.ammo_20gauge_caustic.name=20号鹿弹[腐蚀] +item.ammo_20gauge_explosive.name=20号鹿弹[高爆] +item.ammo_20gauge_flechette.name=20号箭霰弹 +item.ammo_20gauge_incendiary.name=20号鹿弹[燃烧] +item.ammo_20gauge_shock.name=20号鹿弹[震荡] +item.ammo_20gauge_shrapnel.name=20号鹿弹[榴霰弹] +item.ammo_20gauge_sleek.name=20号鹿弹[IF-R&D] +item.ammo_20gauge_slug.name=20号独头弹 +item.ammo_20gauge_wither.name=20号鹿弹[凋零] item.ammo_22lr.name=.22LR子弹 -item.ammo_22lr_ap.name=.22LR子弹[穿甲弹] -item.ammo_22lr_chlorophyte.name=.22 LR弹药 [绿藻] -item.ammo_357_desh.name=.357马格南德什子弹 +item.ammo_22lr_ap.name=.22LR子弹[AP] +item.ammo_22lr_chlorophyte.name=.22LR子弹[叶绿] +item.ammo_357_desh.name=.357马格南Desh子弹 item.ammo_44.name=.44马格南子弹 -item.ammo_44_ap.name=.44马格南子弹[穿甲弹] +item.ammo_44_ap.name=.44马格南子弹[AP] item.ammo_44_bj.name=.44马格南子弹[船] -item.ammo_44_chlorophyte.name=.44通用弹药[绿藻] -item.ammo_44_du.name=.44马格南子弹[贫铀涂层] -item.ammo_44_phosphorus.name=.44马格南子弹[白磷弹] +item.ammo_44_chlorophyte.name=.44马格南子弹[叶绿] +item.ammo_44_du.name=.44马格南子弹[贫铀] +item.ammo_44_phosphorus.name=.44马格南子弹[白磷] item.ammo_44_pip.name=.44马格南子弹[车厢] item.ammo_44_rocket.name=.44马格南火箭 -item.ammo_44_silver.name=.44马格南子弹[建筑物] -item.ammo_44_star.name=.44马格南子弹[星辉金属] -item.ammo_45.name=.45 ACP子弹 -item.ammo_45_ap.name=.45 ACP子弹[穿甲弹] -item.ammo_45_du.name=.45 ACP子弹[贫铀涂层] -item.ammo_4gauge.name=四口径鹿弹 -item.ammo_4gauge_balefire.name=23mmB.F.反物质榴弹 -item.ammo_4gauge_canister.name=23mm火箭弹[榴霰弹] -item.ammo_4gauge_claw.name=4口径金属破片弹 +item.ammo_44_silver.name=.44马格南子弹[建筑] +item.ammo_44_star.name=.44马格南子弹[星辉] +item.ammo_45.name=.45 ACP 子弹 +item.ammo_45_ap.name=.45 ACP 子弹[AP] +item.ammo_45_du.name=.45 ACP 子弹[贫铀] +item.ammo_4gauge.name=四号鹿弹 +item.ammo_4gauge_balefire.name=23mm野火榴弹 +item.ammo_4gauge_canister.name=23mm 火箭弹[榴霰弹] +item.ammo_4gauge_claw.name=4号爪弹 item.ammo_4gauge_explosive.name=23mm榴弹 -item.ammo_4gauge_flechette.name=4口径箭霰弹 -item.ammo_4gauge_flechette_phosphorus.name=4口径箭霰弹[白磷弹] +item.ammo_4gauge_flechette.name=4号箭霰弹 +item.ammo_4gauge_flechette_phosphorus.name=4号箭霰弹[白磷] item.ammo_4gauge_kampf.name=23mm火箭弹 -item.ammo_4gauge_sleek.name=4口径鹿弹[IF-R&D] -item.ammo_4gauge_slug.name=四口径实心独头弹 -item.ammo_4gauge_titan.name=四口径泰坦杀手弹 -item.ammo_4gauge_semtex.name=23mm挖掘榴弹 -item.ammo_4gauge_sleek.name=4口径霰弹[IF-R&D] -item.ammo_4gauge_vampire.name=4口径反吸血鬼木桩霰弹 -item.ammo_4gauge_void.name=4口径电离子霰弹 +item.ammo_4gauge_semtex.name=23mm采矿弹药 +item.ammo_4gauge_sleek.name=4号鹿弹[IF-R&D] +item.ammo_4gauge_slug.name=四号实心独头弹 +item.ammo_4gauge_titan.name=4号Quacker鹿弹 +item.ammo_4gauge_vampire.name=4号木签弹 +item.ammo_4gauge_void.name=4号电离粒子弹 item.ammo_50ae.name=.50AE子弹 -item.ammo_50ae_ap.name=.50AE子弹[穿甲弹] -item.ammo_50ae_chlorophyte.name=.50 AE弹药绿藻] -item.ammo_50ae_du.name=.50AE子弹[贫铀涂层] -item.ammo_50ae_star.name=.50AE子弹[星辉金属] +item.ammo_50ae_ap.name=.50AE子弹[AP] +item.ammo_50ae_chlorophyte.name=.50AE子弹[叶绿] +item.ammo_50ae_du.name=.50AE子弹[贫铀] +item.ammo_50ae_star.name=.50AE子弹[星辉] item.ammo_50bmg.name=.50BMG子弹 -item.ammo_50bmg_ap.name=.50 BMG子弹[穿甲弹] -item.ammo_50bmg_chlorophyte.name=.50 BMG弹药[绿藻] -item.ammo_50bmg_du.name=.50BMG子弹[贫铀涂层] +item.ammo_50bmg_ap.name=.50BMG子弹[AP] +item.ammo_50bmg_chlorophyte.name=.50BMG子弹[叶绿] +item.ammo_50bmg_du.name=.50BMG子弹[贫铀] item.ammo_50bmg_explosive.name=.50BMG子弹[高爆] item.ammo_50bmg_flechette.name=.50 BMG镖形弹 item.ammo_50bmg_flechette_am.name=.50 BMG镖形弹[含镅] item.ammo_50bmg_flechette_po.name=.50 BMG镖形弹[含钋] item.ammo_50bmg_incendiary.name=.50BMG子弹[燃烧] -item.ammo_50bmg_phosphorus.name=.50BMG子弹[白磷弹] +item.ammo_50bmg_phosphorus.name=.50BMG子弹[白磷] item.ammo_50bmg_sleek.name=.50BMG子弹[IF-R&D] -item.ammo_50bmg_star.name=.50BMG子弹[星辉金属] +item.ammo_50bmg_star.name=.50BMG子弹[星辉] item.ammo_556.name=5.56mm子弹 -item.ammo_556_ap.name=5.56mm子弹[穿甲弹] -item.ammo_556_du.name=5.56mm子弹[贫铀涂层] -item.ammo_556_flechette.name=5.56mm镖形弹 -item.ammo_556_flechette_chlorophyte.name=5.56mm镖形弹弹药[绿藻] -item.ammo_556_flechette_du.name=5.56mm镖形弹 [贫铀涂层] -item.ammo_556_flechette_incendiary.name=5.56mm镖形弹 [燃烧] -item.ammo_556_flechette_phosphorus.name=5.56mm镖形弹 [白磷弹] -item.ammo_556_flechette_sleek.name=5.56mm镖形弹[IF-R&D] +item.ammo_556_ap.name=5.56mm子弹[AP] +item.ammo_556_chlorophyte.name=5.56mm子弹[叶绿] +item.ammo_556_du.name=5.56mm子弹[贫铀] +item.ammo_556_flechette.name=5.56mm弗莱彻子弹 +item.ammo_556_flechette_chlorophyte.name=5.56mm弗莱彻子弹[叶绿] +item.ammo_556_flechette_du.name=5.56mm弗莱彻子弹 [贫铀穿甲] +item.ammo_556_flechette_incendiary.name=5.56mm弗莱彻子弹 [燃烧] +item.ammo_556_flechette_phosphorus.name=5.56mm弗莱彻子弹 [白磷穿甲] +item.ammo_556_flechette_sleek.name=5.56mm弗莱彻子弹[IF-R&D] item.ammo_556_k.name=5.56mm空包弹 -item.ammo_556_chlorophyte.name=5.56mm弹药[绿藻] -item.ammo_556_phosphorus.name=5.56mm子弹[白磷弹] +item.ammo_556_phosphorus.name=5.56mm子弹[白磷] item.ammo_556_sleek.name=5.56mm子弹[IF-R&D] -item.ammo_556_star.name=5.56mm子弹 [星辉金属] -item.ammo_556_tracer.name=5.56mm Round[曳光弹] +item.ammo_556_star.name=5.56mm子弹 [星辉] +item.ammo_556_tracer.name=5.56mm 子弹[曳光弹] item.ammo_5mm.name=5mm子弹 -item.ammo_5mm_chlorophyte.name=5mm弹药[绿藻] -item.ammo_5mm_du.name=5mm子弹[贫铀涂层] +item.ammo_5mm_chlorophyte.name=5mm子弹[叶绿] +item.ammo_5mm_du.name=5mm子弹[贫铀] item.ammo_5mm_explosive.name=5mm子弹[高爆] -item.ammo_5mm_star.name=5mm子弹[星辉金属] -item.ammo_75bolt.name=.75爆弹枪火箭推进弹药[30发] -item.ammo_75bolt_incendiary.name=.75 爆弹枪火箭推进弹药[燃烧] -item.ammo_75bolt_he.name=.75 爆弹枪火箭推进弹药[高爆] +item.ammo_5mm_star.name=5mm子弹[星辉] +item.ammo_75bolt.name=.75弹匣(30发) +item.ammo_75bolt_incendiary.name=.75燃烧弹匣(30发) +item.ammo_75bolt_he.name=.75高爆弹匣(30发) item.ammo_762.name=7.62mm 子弹 -item.ammo_762_ap.name=7.62mm子弹[穿甲弹] -item.ammo_762_du.name=7.62mm子弹[贫铀涂层] -item.ammo_762_k.name=7.62mmK-子弹 -item.ammo_762_phosphorus.name=7.62mm子弹[白磷弹] -item.ammo_762_tracer.name=7.62mm子弹[曳光弹] +item.ammo_762_ap.name=7.62mm 子弹[AP] +item.ammo_762_du.name=7.62mm 子弹[贫铀] +item.ammo_762_k.name=7.62mm 空包弹 +item.ammo_762_phosphorus.name=7.62mm 子弹[白磷] +item.ammo_762_tracer.name=7.62mm 子弹[曳光] item.ammo_9mm.name=9mm子弹 -item.ammo_9mm_ap.name=9mm子弹[穿甲弹] -item.ammo_9mm_chlorophyte.name=9mm弹药[绿藻] -item.ammo_9mm_du.name=9mm子弹[贫铀涂层] +item.ammo_9mm_ap.name=9mm子弹[AP] +item.ammo_9mm_chlorophyte.name=9mm子弹[叶绿] +item.ammo_9mm_du.name=9mm子弹[贫铀] item.ammo_9mm_rocket.name=9mm火箭弹 -item.ammo_arty.name=16" 重炮炮弹 -item.ammo_arty_cargo.name=16" 货运炮弹 -item.ammo_arty_classic.name=16" 重炮炮弹 (异星工厂特供) -item.ammo_arty_he.name=16" 高爆重炮炮弹 -item.ammo_arty_mini_nuke.name=16" 小型重炮核炮弹 -item.ammo_arty_mini_nuke_multi.name=16" 集束小型重炮核炮弹 -item.ammo_arty_nuke.name=16" 重炮核炮弹 -item.ammo_arty_phosphorus.name=16" 白磷重炮炮弹 -item.ammo_arty_phosphorus_multi.name=16" 集束白磷重炮炮弹 -item.ammo_cell.name=能量电池 +item.ammo_arty.name=16英寸炮弹 +item.ammo_arty_cargo.name=16英寸快递炮弹 +item.ammo_arty_classic.name=16英寸炮弹 (特制) +item.ammo_arty_he.name=16英寸高爆炮弹 +item.ammo_arty_mini_nuke.name=16英寸微型核炮弹 +item.ammo_arty_mini_nuke_multi.name=16英寸多弹头微型核炮弹 +item.ammo_arty_nuke.name=16英寸核炮弹 +item.ammo_arty_phosphorus.name=16英寸磷炮弹 +item.ammo_arty_phosphorus_multi.name=16英寸多弹头磷炮弹 +item.ammo_cell.name=能量单元 item.ammo_container.name=万能弹药盒 -item.ammo_dart.name=塑料飞镖 [凋零] -item.ammo_dart_nerf.name=NERF飞镖 -item.ammo_dart_nuclear.name=塑料飞镖 [定时爆炸] -item.ammo_fireext.name=灭火器水罐 -item.ammo_fireext_foam.name=灭火器泡沫罐 -item.ammo_fireext_sand.name=灭火器硼砂罐 -item.ammo_dgk.name=200发双管近防炮"霍华德"弹药箱 +item.ammo_dart.name=塑料镖[凋零] +item.ammo_dart_nerf.name=NERF 飞镖 +item.ammo_dart_nuclear.name=塑料镖[定时炸药] +item.ammo_dgk.name=双联守门员近防系统200发弹药 +item.ammo_fireext.name=灭火器 水罐 +item.ammo_fireext_foam.name=灭火器 泡沫罐 +item.ammo_fireext_sand.name=灭火器 硼砂罐 item.ammo_folly.name=银弹 -item.ammo_folly_du.name=银弹[贫铀涂层, 无爆炸] +item.ammo_folly_du.name=银弹[贫铀, 不爆炸] item.ammo_folly_nuclear.name=银弹[核子] item.ammo_fuel.name=柴油罐 item.ammo_fuel_gas.name=毒气罐 item.ammo_fuel_napalm.name=凝固汽油罐 item.ammo_fuel_phosphorus.name=白磷罐 -item.ammo_fuel_vaporizer.name=挥发性燃料罐 - +item.ammo_fuel_vaporizer.name=汽化罐 item.ammo_grenade.name=40mm榴弹 item.ammo_grenade_concussion.name=40mm榴弹[震荡] -item.ammo_grenade_finned.name=40mm榴弹[稳定尾翼] +item.ammo_grenade_finned.name=40mm榴弹[尾翼稳定] item.ammo_grenade_he.name=40mm榴弹[HE] item.ammo_grenade_incendiary.name=40mm榴弹[燃烧] item.ammo_grenade_kampf.name=40mm战术榴弹 item.ammo_grenade_nuclear.name=40mm榴弹[核子] -item.ammo_grenade_phosphorus.name=40mm榴弹[白磷弹] +item.ammo_grenade_phosphorus.name=40mm榴弹[白磷] item.ammo_grenade_sleek.name=40mm榴弹[IF-R&D] -item.ammo_grenade_toxic.name=40mm榴弹[化学毒气] +item.ammo_grenade_toxic.name=40mm榴弹[化学] item.ammo_grenade_tracer.name=40mm训练榴弹 -item.ammo_himars_standard.name=227mm 制导火炮火箭吊舱 -item.ammo_himars_standard_he.name=227mm 制导火炮火箭吊舱(高爆弹头) -item.ammo_himars_standard_mini_nuke.name=227mm 制导火炮火箭吊舱(小型核弹头) -item.ammo_himars_standard_tb.name=227mm 制导火炮火箭吊舱(温压弹头) -item.ammo_himars_standard_wp.name=227mm 制导火炮火箭吊舱(白磷弹头) -item.ammo_himars_single.name=610mm 制导火炮火箭吊舱 -item.ammo_himars_single_tb.name=610mm制导火炮火箭吊舱(温压弹头) -item.ammo_luna.name=月都科技狙击枪弹药 -item.ammo_luna_explosive.name=月都科技狙击枪高爆弹药 -item.ammo_luna_incendiary.name=月都科技狙击枪燃烧弹药 -item.ammo_mirv.name=分导式多弹头迷你核弹 -item.ammo_mirv_high.name=分导式多弹头迷你核弹 (高辐射污染) -item.ammo_mirv_low.name=分导式多弹头迷你核弹 (低辐射污染) -item.ammo_mirv_safe.name=分导式多弹头迷你核弹 (安全) -item.ammo_mirv_special.name=迷你 MILV +item.ammo_himars_standard.name=M28制导火箭炮系统火箭弹舱 +item.ammo_himars_standard_he.name=227毫米制导火箭炮系统火箭吊舱(HE) +item.ammo_himars_standard_mini_nuke.name=227毫米制导火箭炮系统火箭吊舱(迷你核弹) +item.ammo_himars_standard_tb.name=227毫米制导火箭炮系统火箭吊舱(温压弹) +item.ammo_himars_standard_wp.name=227毫米制导火箭炮系统火箭吊舱(白磷) +item.ammo_himars_single.name=M39A1制导火箭炮系统火箭弹舱 +item.ammo_himars_single_tb.name=610毫米制导火炮火箭吊舱(温压弹) +item.ammo_luna.name=Lunatic狙击弹 +item.ammo_luna_explosive.name=Lunatic狙击爆炸弹 +item.ammo_luna_incendiary.name=Lunatic狙击燃烧弹 +item.ammo_mirv.name=迷你MIRV +item.ammo_mirv_high.name=迷你MIRV (高当量) +item.ammo_mirv_low.name=迷你MIRV (低当量) +item.ammo_mirv_safe.name=迷你MIRV (安全) +item.ammo_mirv_special.name=迷你MIRV item.ammo_nuke.name=迷你核弹 item.ammo_nuke_barrel.name=小型核废料桶 -item.ammo_nuke_high.name=迷你核弹 (高辐射污染) -item.ammo_nuke_low.name=迷你核弹 (低辐射污染) +item.ammo_nuke_high.name=迷你核弹 (高当量) +item.ammo_nuke_low.name=迷你核弹 (低当量) item.ammo_nuke_pumpkin.name=南瓜炸弹 -item.ammo_nuke_safe.name=迷你核弹 (安全) -item.ammo_nuke_tots.name=迷你核弹 (小型散射弹丸) - +item.ammo_nuke_safe.name=迷你核弹 (安全) +item.ammo_nuke_tots.name=迷你核弹 (幼体) item.ammo_rocket.name=84mm火箭弹 -item.ammo_rocket_canister.name=84mm火箭弹[榴霰弹] +item.ammo_rocket_canister.name=84mm 火箭弹[榴霰弹] item.ammo_rocket_digamma.name=§4归 零§r -item.ammo_rocket_emp.name=84mm火箭弹[EMP电磁脉冲] +item.ammo_rocket_emp.name=84mm火箭弹[EMP] item.ammo_rocket_glare.name=84mm火箭弹[红光] -item.ammo_rocket_he.name=84mm火箭弹[高爆] +item.ammo_rocket_he.name=84mm火箭弹[HE] item.ammo_rocket_incendiary.name=84mm火箭弹[燃烧] item.ammo_rocket_nuclear.name=84mm火箭弹[核子] -item.ammo_rocket_phosphorus.name=84mm火箭弹[白磷弹] +item.ammo_rocket_phosphorus.name=84mm火箭弹[白磷] item.ammo_rocket_rpc.name=84mm火箭弹[飞行电锯] item.ammo_rocket_shrapnel.name=84mm火箭弹[破片] item.ammo_rocket_sleek.name=84mm火箭弹[IF-R&D] -item.ammo_rocket_toxic.name=84mm火箭弹[化学毒气] - +item.ammo_rocket_toxic.name=84mm火箭弹[化学] item.ammo_shell.name=240mm炮弹 -item.ammo_shell_apfsds_du.name=240mm尾翼稳定脱壳贫铀穿甲炮弹 -item.ammo_shell_apfsds_t.name=240mm尾翼稳定脱壳钨心穿甲炮弹 -item.ammo_shell_explosive.name=240mm高爆炮弹 -item.ammo_shell_w9.name=240mmW9核炮弹 +item.ammo_shell_apfsds_du.name=240mm 贫铀尾翼稳定脱壳穿甲弹 +item.ammo_shell_apfsds_t.name=240mm 钨心尾翼稳定脱壳穿甲弹 +item.ammo_shell_explosive.name=240mm 高爆炮弹 +item.ammo_shell_w9.name=240mm W9核子炮弹 item.ammo_stinger_rocket.name=毒刺导弹 -item.ammo_stinger_rocket_he.name=毒刺导弹 [高爆] -item.ammo_stinger_rocket_incendiary.name=毒刺导弹 [燃烧] -item.ammo_stinger_rocket_nuclear.name=毒刺导弹 [核子] -item.ammo_stinger_rocket_bones.name=毒刺导弹 [寻骨] +item.ammo_stinger_rocket_he.name=毒刺导弹[高爆] +item.ammo_stinger_rocket_incendiary.name=毒刺导弹[燃烧] +item.ammo_stinger_rocket_nuclear.name=毒刺导弹[Привет] +item.ammo_stinger_rocket_bones.name=毒刺导弹[寻骨] item.ams_catalyst_aluminium.name=铝反应催化剂 item.ams_catalyst_beryllium.name=铍反应催化剂 item.ams_catalyst_blank.name=空白反应催化剂 @@ -1593,36 +1559,36 @@ item.ams_catalyst_cerium.name=铈反应催化剂 item.ams_catalyst_cobalt.name=钴反应催化剂 item.ams_catalyst_copper.name=铜反应催化剂 item.ams_catalyst_dineutronium.name=双聚中子态素反应催化剂 -item.ams_catalyst_euphemium.name=Ep元素反应催化剂 +item.ams_catalyst_euphemium.name=Ep反应催化剂 item.ams_catalyst_iron.name=铁反应催化剂 item.ams_catalyst_lithium.name=锂反应催化剂 item.ams_catalyst_niobium.name=铌反应催化剂 -item.ams_catalyst_schrabidium.name=Sa326异变铀金属反应催化剂 +item.ams_catalyst_schrabidium.name=Sa326反应催化剂 item.ams_catalyst_strontium.name=锶反应催化剂 item.ams_catalyst_thorium.name=钍反应催化剂 item.ams_catalyst_tungsten.name=钨反应催化剂 item.ams_core_eyeofharmony.name=和谐之眼[AMS/DFC核心] item.ams_core_sing.name=活跃奇点[AMS/DFC核心] -item.ams_core_thingy.name=暮光闪闪的皇冠[AMS/DFC核心] +item.ams_core_thingy.name=Thingy[AMS/DFC核心] item.ams_core_wormhole.name=微型虫洞[AMS/DFC核心] item.ams_focus_blank.name=空白稳定器焦点 -item.ams_focus_booster.name=增压型稳定器焦点 -item.ams_focus_booster.desc=更弱的约束场和核心能量注入:$产生更多的热量, 带来额外的能量. -item.ams_focus_limiter.name=限制型稳定器焦点 -item.ams_focus_limiter.desc=稳定力场被提高到最高性能:$只需标准的冷却,无产能增益. -item.ams_lens.name=稳定力场透镜 -item.ams_muzzle.name=激发射线发射极 -item.ams_muzzle.desc=...它会发射某种高能粒子束. +item.ams_focus_booster.name=较弱的约束场和核心能量注入:$更多的热量产生,更多的能量。 +item.ams_focus_booster.desc=较弱的约束场和核心能量注入:$更多的热量产生,更多的能量。 +item.ams_focus_limiter.name=限制稳定器焦点 +item.ams_focus_limiter.desc=限制领域的最高性能:$标准冷却,无能源加成。 +item.ams_lens.name=稳定透镜 +item.ams_muzzle.name=激活射线发射极 +item.ams_muzzle.desc=...它可以发出一束能量束。 item.analyzer.name=分析仪 -item.anchor_remote.name=召回装置 +item.anchor_remote.name=召回设备 item.antiknock.name=四乙基铅抗爆剂 -item.apple_euphemium.name=Ep元素苹果 +item.apple_euphemium.name=Ep苹果 item.apple_lead.name=铅苹果 -item.apple_schrabidium.name=Sa326异变铀金属苹果 +item.apple_schrabidium.name=Sa326苹果 item.arc_electrode.name=石墨电极 -item.arc_electrode_burnt.name=熔化的电极 -item.arc_electrode_desh.name=德什电极 -item.armor_polish.name=闪甲™ 盔甲抛光剂 +item.arc_electrode_burnt.name=熔化电极 +item.arc_electrode_desh.name=Desh电极 +item.armor_polish.name=亮甲牌装甲抛光剂 item.asbestos_boots.name=防火靴 item.asbestos_cloth.name=防火布 item.asbestos_helmet.name=防火头盔 @@ -1634,82 +1600,82 @@ item.assembly_556.name=5.56mm子弹[待装配] item.assembly_762.name=7.62mm子弹[待装配] item.assembly_actionexpress.name=.50 AE子弹[待装配] item.assembly_calamity.name=.50 BMG子弹[待装配] -item.assembly_desh.name=德什子弹[待装配] +item.assembly_desh.name=Desh子弹[待装配] item.assembly_gold.name=金子弹[待装配] item.assembly_iron.name=铁子弹[待装配] item.assembly_lacunae.name=.5mm子弹[待装配] -item.assembly_lead.name=玻璃核子子弹[待装配] -item.assembly_luna.name=月都科技狙击枪子弹[待装配] +item.assembly_lead.name=玻璃子弹[待装配] +item.assembly_luna.name=Lunatic狙击子弹[待装配] item.assembly_nightmare.name=钨子弹[待装配] -item.assembly_nopip.name=.44马格南子弹[待装配] -item.assembly_nuke.name=迷你核弹[待装配] -item.assembly_pip.name=腐化子弹[待装配] -item.assembly_schrabidium.name=Sa326异变铀金属子弹[待装配] +item.assembly_nopip.name=.44马格南[待装配] +item.assembly_nuke.name=迷你核弹外壳 +item.assembly_pip.name=污染子弹[待装配] +item.assembly_schrabidium.name=Sa326子弹[待装配] item.assembly_smg.name=9mm子弹[待装配] -item.assembly_steel.name=铅弹[待装配] +item.assembly_steel.name=铅子弹[待装配] item.assembly_template.name=装配机模板: item.assembly_uzi.name=.22 LR子弹[待装配] -item.attachment_mask.name=可接入式防毒面具 -item.attachment_mask_mono.name=可接入式防护面罩 +item.attachment_mask.name=附加型防毒面具 +item.attachment_mask_mono.name=可接入式半面罩防毒面具 item.australium_iii.name=MkIII寿命延长剂 item.australium_iv.name=MkIV寿命延长剂 item.australium_v.name=MkV寿命延长剂 item.back_tesla.name=背负式特斯拉线圈 -item.balefire_and_ham.name=火腿BF蛋 -item.balefire_and_steel.name=BF打火器 -item.balefire_scrambled.name=炒BF蛋 -item.ball_dynamite.name=炸药 +item.balefire_and_ham.name=火腿野火蛋 +item.balefire_and_steel.name=野火打火石 +item.balefire_scrambled.name=炒野火蛋 +item.ball_dynamite.name=硝糖炸药 item.ball_fireclay.name=耐火粘土 -item.ball_tatb.name=TATB三氨基三硝基苯 -item.ball_tnt.name=TNT -item.ballistic_gauntlet.name=爆破拳套 +item.ball_tatb.name=三氨基三硝基苯(TATB) +item.ball_tnt.name=TNT炸药 +item.ballistic_gauntlet.name=冲击拳套 item.ballistite.name=混合无烟火药 -item.bandaid.name=绷带 +item.bandaid.name=邦迪创可贴 item.bathwater.name=有毒肥皂水 -item.bathwater_mk2.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_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_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=自充电锝-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_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_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_trixite.name=崔克希电池 -item.beta.name=测试版功能 +item.battery_trixite.name=杂牌Spark电池 +item.beta.name=Bata测试版功能 item.big_sword.name=大剑 item.billet_actinium.name=锕-227坯料 -item.billet_am_mix.name=反应器级镅坯料 +item.billet_am_mix.name=反应堆级镅坯料 item.billet_am241.name=镅-241坯料 item.billet_am242.name=镅-242坯料 item.billet_americium_fuel.name=镅燃料坯料 @@ -1722,20 +1688,20 @@ item.billet_beryllium.name=铍坯料 item.billet_bismuth.name=铋坯料 item.billet_co60.name=钴-60坯料 item.billet_cobalt.name=钴坯料 -item.billet_flashlead.name=激活态铅坯料 -item.billet_flashlead.desc=晶格衰变, 引起反物质湮灭反应, $导致π介子释放, $衰变为μ介子, 催化原子核聚变, $产生新的元素$请尽量跟上. -item.billet_gh336.name=气敖-336坯料 -item.billet_gh336.desc=钅喜的同事. -item.billet_hes.name=高浓缩度Sa326异变铀金属燃料坯料 -item.billet_les.name=低浓缩度Sa326异变铀金属燃料坯料 -item.billet_mox_fuel.name=MOX核燃料坯料 -item.billet_mox_fuel.desc=口袋摩西! +item.billet_flashlead.name=闪光铅坯料 +item.billet_flashlead.desc=晶格衰变,引起反物质湮灭反应,导致π介子释放,衰变为μ子,催化原子核融合,产生新的元素$请尽量跟上。 +item.billet_gh336.name=Gh336坯料 +item.billet_gh336.desc=钅喜的同事 +item.billet_hes.name=高浓缩度Sa326燃料坯料 +item.billet_les.name=低浓缩度Sa326燃料坯料 +item.billet_mox_fuel.name=MOX燃料坯料 +item.billet_mox_fuel.desc=口袋摩西! item.billet_neptunium.name=镎坯料 item.billet_neptunium_fuel.name=镎核燃料坯料 item.billet_nuclear_waste.name=核废料坯料 item.billet_pb209.name=铅-209坯料 item.billet_po210be.name=钋210-铍坯料 -item.billet_polonium.name=钋-210坯料 +item.billet_polonium.name=钋坯料 item.billet_pu_mix.name=反应堆级钚坯料 item.billet_pu238.name=钚-238坯料 item.billet_pu238be.name=钚238-铍坯料 @@ -1743,52 +1709,47 @@ item.billet_pu239.name=钚-239坯料 item.billet_pu240.name=钚-240坯料 item.billet_pu241.name=钚-241坯料 item.billet_plutonium.name=钚坯料 -item.billet_plutonium_fuel.name=钚核燃料坯料 +item.billet_plutonium_fuel.name=钚燃料坯料 item.billet_ra226.name=镭-226坯料 item.billet_ra226be.name=镭226-铍坯料 -item.billet_schrabidium.name=Sa326异变铀金属坯料 -item.billet_schrabidium_fuel.name=Sa326异变铀金属核燃料坯料 -item.billet_solinium.name=Sa327索林坯料 +item.billet_schrabidium.name=Sa326坯料 +item.billet_schrabidium_fuel.name= Sa326燃料坯料 +item.billet_solinium.name=Sa327坯料 item.billet_sr90.name=锶-90坯料 item.billet_technetium.name=锝-99坯料 item.billet_th232.name=钍-232坯料 -item.billet_thorium_fuel.name=钍核燃料坯料 +item.billet_thorium_fuel.name=钍燃料坯料 item.billet_u233.name=铀-233坯料 item.billet_u235.name=铀-235坯料 item.billet_u238.name=铀-238坯料 item.billet_uranium.name=铀坯料 -item.billet_uranium_fuel.name=铀核燃料坯料 -item.billet_yharonite.name=龙素坯料 -item.billet_zfb_am_mix.name=ZFB锆混合反应堆级镅快速增殖坯料 -item.billet_zfb_bismuth.name=ZFB锆混合铋快速增殖坯料 -item.billet_zfb_pu241.name=ZFB锆混合钚-241快速增殖坯料 +item.billet_uranium_fuel.name=铀燃料坯料 +item.billet_yharonite.name=犽戎龙素坯料 +item.billet_zfb_am_mix.name=反应器级镅 ZFB坯料 +item.billet_zfb_bismuth.name=铋 ZFB坯料 +item.billet_zfb_pu241.name=钚-241 ZFB坯料 item.billet_zirconium.name=锆坯料 -item.bio_wafer.name=藻类晶片 +item.bio_wafer.name=海藻晶片 item.biomass.name=生物质 item.biomass_compressed.name=压缩生物质 item.bismuth_boots.name=铋凉鞋 item.bismuth_helmet.name=铋头饰 item.bismuth_legs.name=铋护膝 item.bismuth_pickaxe.name=铋镐 -item.bismuth_plate.name=铋质护肩, 项链和腰带 +item.bismuth_plate.name=铋质护肩、项链和腰带 item.bismuth_tool.name=磁力提取器 -item.bj_boots.name=§b[月 神]§r 铆钉靴 -item.bj_helmet.name=敌我目标实体识别仪 -item.bj_legs.name=§b[月 神]§r 神经接入式腿部外骨骼盔甲 -item.bj_plate.name=§b[月 神]§r 神经接入式全自动动力盔甲 -item.bj_plate_jetpack.name=§b[月 神]§r 神经接入式全自动动力盔甲(带等离子推进器) -item.black_diamond.name=黑钻石 +item.bj_boots.name=§4月神§r钉靴 +item.bj_helmet.name=热传感器眼罩 +item.bj_legs.name=§4月神§r护腿 +item.bj_plate.name=§4月神§r胸甲 +item.bj_plate_jetpack.name=§4月神§r胸甲 (带翼) +item.black_diamond.name=黑色钻石 item.black_hole.name=微型黑洞 -item.blade_meteorite.name=陨石刀片 -item.blade_titanium.name=钛涡轮扇片 -item.blade_tungsten.name=钨强化涡轮扇片 +item.blade_meteorite.name=陨石刀 +item.blade_titanium.name=钛扇片 +item.blade_tungsten.name=钨强化扇片 item.blades_advanced_alloy.name=高级合金刀片 -item.blades_aluminium.name=铝制刀片 -item.blades_combine_steel.name=CMB钢刀片 -item.blades_desh.name=德什制刀片 -item.blades_gold.name=金制刀片 -item.blades_iron.name=铁制刀片 -item.blades_schrabidium.name=Sa326异变铀金属刀片 +item.blades_desh.name=Desh制刀片 item.blades_steel.name=钢制刀片 item.blades_titanium.name=钛制刀片 item.blowtorch.name=喷灯 @@ -1801,16 +1762,16 @@ item.bobmazon_weapons.name=Bobmazon: 武器和爆炸物 item.bolt_compound.name=加强涡轮机轴 item.bolt_dura_steel.name=高速钢螺栓 item.bolt_tungsten.name=钨螺栓 -item.boltgun.name=气动铆钉枪 +item.boltgun.name=气动射钉枪 item.bomb_caller.name=空袭指示器 item.bomb_waffle.name=大规模杀伤性华夫饼 -item.book_guide.name=RBMK反应堆操作指导书 +item.book_guide.name=HBM指导书 item.book_of_.name=车厢书 item.book_secret.name=3-596-50802-9 item.bottle2_empty.name=空瓶 -item.bottle2_fritz.name=Fritz弗里茨可乐 -item.bottle2_fritz_special.name=第一Fritz可乐 -item.bottle2_korl.name=库尔勒瓶盖 +item.bottle2_fritz.name=弗里茨可乐 +item.bottle2_fritz_special.name=第一弗里茨可乐 +item.bottle2_korl.name=Korl item.bottle2_korl_special.name=第一Korl item.bottle2_sunset.name=夕阳沙士 item.bottle_cherry.name=樱桃味核子可乐 @@ -1819,24 +1780,24 @@ item.bottle_mercury.name=一瓶水银 item.bottle_nuka.name=核子可乐 item.bottle_opener.name=Hbm自制开瓶器 item.bottle_quantum.name=量子核子可乐 -item.bottle_rad.name=辐射S~闪闪可乐 -item.bottle_sparkle.name=S~闪闪可乐 -item.boy_bullet.name=铀235弹头 +item.bottle_rad.name=辐射S~核子可乐 +item.bottle_sparkle.name=S~核子可乐 +item.boy_bullet.name=铀-235弹头 item.boy_igniter.name=点火器 item.boy_kit.name=小男孩 套件 item.boy_propellant.name=炸药 item.boy_shielding.name=中子屏蔽罩 -item.boy_target.name=次临界铀235标靶 +item.boy_target.name=次临界铀-235标靶 item.briquette.coal.name=煤球 -item.briquette.lignite.name=褐煤球 -item.briquette.wood.name=锯屑坯块 +item.briquette.lignite.name=褐煤煤球 +item.briquette.wood.name=木屑球 item.bucket_acid.name=一桶酸 item.bucket_mud.name=一桶毒泥 -item.bucket_schrabidic_acid.name=一桶Sa326元素酸液 +item.bucket_schrabidic_acid.name=一桶Sa酸 item.bucket_sulfuric_acid.name=一桶硫酸 item.bucket_toxic.name=一桶绿色软泥 item.burnt_bark.name=烧焦树皮 -item.burnt_bark.desc=从一棵爆炸的金橡树上剥下的树皮. +item.burnt_bark.desc=爆炸的金橡树的树皮。 item.can_bepis.name=白事 item.can_breen.name=布雷恩博士的私人珍藏 item.can_creature.name='生物'能量饮料 @@ -1844,96 +1805,95 @@ item.can_empty.name=空罐 item.can_key.name=罐头拉环 item.can_luna.name=黑梅萨露娜-黑可乐 item.can_mrsugar.name='糖博士'软饮料 -item.can_mug.name=杯根啤酒 -item.can_overcharge.name=超频'精神错乱' XT +item.can_mug.name=MUG牌树根啤酒 +item.can_overcharge.name=超频DeliriumXT item.can_redbomb.name='红色炸弹'能量饮料 item.can_smart.name="智慧"能量饮料 -item.canister_NITAN.name=NITAN© 100号超级燃料桶(旧版遗物) -item.canister_biofuel.name=生物燃料桶(旧版遗物) -item.canister_bitumen.name=沥青桶(旧版遗物) -item.canister_canola.name=润滑油桶(旧版遗物) -item.canister_empty.name=空油桶(旧版遗物) -item.canister_ethanol.name=乙醇桶(旧版遗物) -item.canister_fracksol.name=压裂液桶(旧版遗物) -item.canister_fuel.name=柴油桶(旧版遗物) -item.canister_fuel.desc=大家欢呼吧! -item.canister_full.name=桶: -item.canister_gasoline.name=精制汽油桶(旧版遗物) -item.canister_gasoline.desc=铅是你的好朋友$你应该让好朋友进入你的血液$*举枪* 现在立刻马上去做. -item.canister_heatingoil.name=燃油桶(旧版遗物) -item.canister_heavyoil.name=重油桶(旧版遗物) -item.canister_kerosene.name=煤油桶(旧版遗物) -item.canister_lightoil.name=轻油桶(旧版遗物) -item.canister_napalm.name=凝固汽油桶(旧版遗物) -item.canister_naphtha.name=石脑油桶(旧版遗物) -item.canister_oil.name=原油桶(旧版遗物) -item.canister_petroil.name=混机油汽油桶(旧版遗物) -item.canister_reoil.name=再生工业油桶(旧版遗物) -item.canister_smear.name=工业油桶(旧版遗物) +item.canister_NITAN.name=桶装NITAN 100号超级燃料 +item.canister_biofuel.name=桶装生物燃料 +item.canister_bitumen.name=桶装沥青 +item.canister_canola.name=桶装润滑油 +item.canister_empty.name=空油桶 +item.canister_ethanol.name=桶装乙醇 +item.canister_fracksol.name=桶装压裂液 +item.canister_fuel.name=桶装柴油 +item.canister_fuel.desc=大家欢呼吧! +item.canister_full.name=容器: +item.canister_gasoline.name=桶装含铅汽油 +item.canister_gasoline.desc=铅就是朋友$让朋友进入你的血液$*上膛声*现在就做 +item.canister_heatingoil.name=桶装燃油 +item.canister_heavyoil.name=桶装重油 +item.canister_kerosene.name=桶装煤油 +item.canister_lightoil.name=桶装轻油 +item.canister_napalm.name=桶装凝固汽油B +item.canister_naphtha.name=桶装石脑油 +item.canister_oil.name=桶装原油 +item.canister_petroil.name=桶装汽油 +item.canister_reoil.name=桶装再生油 +item.canister_smear.name=桶装工业油 item.canned_asbestos.name=石棉罐头 -item.canned_asbestos.desc=尝尝石棉肺! +item.canned_asbestos.desc=尝尝石棉肺! item.canned_ass.name=驴罐头 -item.canned_ass.desc=100%% 优质驴肉!* +item.canned_ass.desc=100%优质驴肉!* item.canned_bark.name=松树皮罐头 item.canned_bark.desc=更加的“松”脆! item.canned_beef.name=牛肉罐头 -item.canned_beef.desc=几个世纪前,一头牛为此而死. +item.canned_beef.desc=几个世纪前,一头牛为此而死。 item.canned_bhole.name=黑洞罐头 -item.canned_bhole.desc=奇点是我肚子里的美味! +item.canned_bhole.desc=奇点是我肚肚里的美味! item.canned_cheese.name=融化奶酪罐头 -item.canned_cheese.desc=是奶酪?还是橡胶水泥?谁知道,又有谁在乎. +item.canned_cheese.desc=是奶酪吗?是橡胶水泥吗?谁知道,谁在乎。 item.canned_chinese.name=中餐罐头 -item.canned_chinese.desc=在中国,中餐就被叫做食物. +item.canned_chinese.desc=在中国,中餐被称为饭。 item.canned_diesel.name=柴油罐头 -item.canned_diesel.desc=我渐渐地就抖不出包袱了. +item.canned_diesel.desc=我渐渐地就抖不出包袱了 item.canned_fist.name=拳头罐头 item.canned_fist.desc=给你一拳! item.canned_fried.name=炸鸡罐头 -item.canned_fried.desc=连罐头都是油炸的! +item.canned_fried.desc=甚至罐头都是油炸的! item.canned_hotdogs.name=热狗罐头 -item.canned_hotdogs.desc=不要和冷猫混淆. -item.canned_jizz.name=FlimFlam工业™ 马奶罐头 +item.canned_hotdogs.desc=不要与冷猫混淆。 +item.canned_jizz.name=FlimFlam工业牌?马奶罐头 item.canned_jizz.desc=等等什么—— item.canned_kerosene.name=煤油罐头 -item.canned_kerosene.desc=想象一下这里有句好笑的俏皮话. +item.canned_kerosene.desc=想象一下这句俏皮的台词。 item.canned_leftovers.name=剩菜罐头 item.canned_leftovers.desc=你来的太迟了 item.canned_milk.name=罐装炼乳 -item.canned_milk.desc=炼奶2:比以前更像固体了! +item.canned_milk.desc=牛奶2:比以往任何时候都更固体! item.canned_mystery.name=神秘肉类罐头 -item.canned_mystery.desc=里面是什么?只有一种方法可以找到答案! +item.canned_mystery.desc=里面是什么?只有一种方法可以找到! item.canned_napalm.name=凝固汽油罐头 item.canned_napalm.desc=我喜欢早上闻着老梗的味道! item.canned_oil.name=机油罐头 item.canned_oil.desc=它既然能让发动机运转的更流畅,那为什么不能用在人类身上? -item.canned_pashtet.name=牛排 -item.canned_pashtet.desc=翻译不可用блядь! +item.canned_pashtet.name=牛排罐头 +item.canned_pashtet.desc=翻译服务不可用блядь! item.canned_pizza.name=意大利香肠比萨罐头 -item.canned_pizza.desc=危害人类罪. +item.canned_pizza.desc=反人类罪 item.canned_recursion.name=循环罐头 -item.canned_recursion.desc=循环罐头 -item.canned_spam.name=午餐肉罐头 -item.canned_spam.desc=段三分半钟的幽默剧是以布朗利虚构的绿侏儒咖啡馆为背景$一位女服务生与不喜欢吃午餐肉的本太太之间发生了争执,$女服务生背诵了一份几乎每道菜都含有午餐肉的菜单。$本太太要了一道没有午餐肉的菜,这让她爱吃午餐肉的丈夫大吃一惊。$女服务员也对这个要求很反感。$本先生提出要替换她的午餐肉,并要了一道含有大量午餐肉和烤豆的菜。$服务员拒绝了,因为烤豆子已经吃完了;$当本先生要求替换午餐肉时,女服务员再次表示厌恶。$有几次,餐厅里的一群维京人高声歌唱午餐肉,打断了谈话。$那个愤怒的女服务员命令他们闭嘴,但他们依旧大声唱歌。$这时一名匈牙利游客来到柜台,$试图用一本完全不准确的匈牙利语/英语手册(参考之前的小品)点菜。$紧接着这名匈牙利游客就被一名警察迅速护送离开。$然后这段幽默剧突然切换镜头,$一位历史学家在电视演播室谈论维京人在咖啡馆的起源。$他继续说,并开始越来越多地在每一句话中插入“午餐肉”一词。$然后背景被抬高,露出背后的餐厅场景。$那个历史学家加入了维京人的歌曲,本夫妇通过电线离开现场,而歌声还在继续。$在最初的电视表演中,结尾的字幕开始滚动,背景中仍然可以听到歌声。 +item.canned_recursion.desc=封闭递归 +item.canned_spam.name=SPAM斯帕姆午餐肉 +item.canned_spam.desc=这段三分半钟的幽默剧是以布朗利虚构的绿侏儒咖啡馆为背景。一位女服务生与不喜欢吃午餐肉的本太太之间发生了争执,女服务生背诵了一份几乎每道菜都含有午餐肉的菜单。本太太要了一道没有午餐肉的菜,这让她爱吃午餐肉的丈夫大吃一惊。女服务员也对这个要求很反感。本先生提出要替换她的午餐肉,并要了一道含有大量午餐肉和烤豆的菜。服务员拒绝了,因为烤豆子已经吃完了;当本先生要求替换午餐肉时,女服务员再次表示厌恶。有几次,餐厅里的一群维京人高声歌唱午餐肉,打断了谈话。那个愤怒的女服务员命令他们闭嘴,但他们依旧大声唱歌。这时一名匈牙利游客来到柜台,试图用一本完全不准确的匈牙利语/英语手册(参考之前的小品)点菜。紧接着这名匈牙利游客就被一名警察迅速护送离开。然后这段幽默剧突然切换镜头,一位历史学家在电视演播室谈论维京人在咖啡馆的起源。他继续说,并开始越来越多地在每一句话中插入“午餐肉”一词。然后背景被抬高,露出背后的餐厅场景。那个历史学家加入了维京人的歌曲,本夫妇通过电线离开现场,而歌声还在继续。在最初的电视表演中,结尾的字幕开始滚动,背景中仍然可以听到歌声。 item.canned_stew.name=蘑菇煲罐头 item.canned_stew.desc=... item.canned_tomato.name=番茄汤罐头 item.canned_tomato.desc=谁要浓浓的红糊糊? item.canned_tube.name=宇航员食品管 -item.canned_tube.desc=美味的糊状物. +item.canned_tube.desc=美味的蘑菇。 item.canned_tuna.name=金枪鱼罐头 -item.canned_tuna.desc=美味的糊状物. +item.canned_tuna.desc=我不知道那是金枪鱼还是干水泥。 item.canned_yogurt.name=酸奶罐头 -item.canned_yogurt.desc=可能坏掉了,但管它呢. +item.canned_yogurt.desc=可能坏掉了,但管它呢 item.canteen_13.name=Vault13水壶 item.canteen_fab.name=极品伏特加 item.canteen_vodka.name=伏特加 -item.cap_aluminium.name=铝盖 -item.cap_fritz.name=Fritz弗里茨可乐瓶盖 +item.cap_fritz.name=弗里茨瓶盖 item.cap_korl.name=Korl瓶盖 item.cap_nuka.name=核子可乐瓶盖 -item.cap_quantum.name=樱桃味量子核子可乐瓶盖 -item.cap_rad.name=辐射S~闪闪可乐瓶盖 -item.cap_sparkle.name=S~闪闪可乐瓶盖 +item.cap_quantum.name=樱桃味核子可乐瓶盖 +item.cap_rad.name=辐射S~核子可乐瓶盖 +item.cap_sparkle.name=S~核子可乐瓶盖 item.cap_star.name=夕阳沙士星星瓶盖 item.cap_sunset.name=夕阳沙士瓶盖 item.cape_ayy.name=Ayy披风 @@ -1941,13 +1901,13 @@ item.cape_codered_.name=codered_披风 item.cape_dafnik.name=Dafnik披风 item.cape_gasmask.name=披风[防毒面具] item.cape_hbm.name=Hbm披风 -item.cape_hidden.name=隐藏披风 +item.cape_hidden.name=隐藏斗篷 item.cape_lpkukin.name=LPkukin披风 item.cape_nostalgia.name=DrNostalgia披风 item.cape_radiation.name=披风[辐射] -item.cape_schrabidium.name=披风[Sa326施布拉比迪] +item.cape_schrabidium.name=披风[Sa326] item.cape_vertice.name=Lord Vertice披风 -item.cart.crate.name=板条箱车 +item.cart.crate.name=板条箱运输车 item.cart.destroyer.name=废品销毁车 item.cart.empty.name=钢箱矿车 item.casing_357.name=.357马格南弹壳[x16] @@ -1958,7 +1918,7 @@ item.casing_buckshot.name=鹿弹弹壳[x8] item.catalyst_clay.name=黏土催化剂 item.catalytic_converter.name=催化转化器 item.cbt_device.name=CBT装置 -item.cell_anti_schrabidium.name=反Sa326异变铀金属单元 +item.cell_anti_schrabidium.name=反Sa326单元 item.cell_antimatter.name=反物质单元 item.cell_balefire.name=气态野火单元 item.cell_deuterium.name=氘单元 @@ -1972,31 +1932,31 @@ item.centrifuge_element.name=离心元件 item.centrifuge_tower.name=离心塔 item.chainsaw.name=链锯 item.cheese.name=奶酪 -item.cheese_quesadilla.name=墨西哥奶酪饼 -item.chemical_dye.black.name=化学染料 (黑色) -item.chemical_dye.blue.name=化学染料 (蓝色) -item.chemical_dye.brown.name=化学染料 (棕色) -item.chemical_dye.cyan.name=化学染料 (青色) -item.chemical_dye.gray.name=化学染料 (灰色) -item.chemical_dye.green.name=化学染料 (绿色) -item.chemical_dye.lightblue.name=化学染料 (浅蓝色) -item.chemical_dye.lime.name=化学染料 (石灰色) -item.chemical_dye.magenta.name=化学染料 (洋红色) -item.chemical_dye.orange.name=化学染料 (橙色) -item.chemical_dye.pink.name=化学染料 (粉色) -item.chemical_dye.purple.name=化学染料 (紫色) -item.chemical_dye.red.name=化学染料 (红色) -item.chemical_dye.silver.name=化学染料 (浅灰色) -item.chemical_dye.white.name=化学染料 (白色) -item.chemical_dye.yellow.name=化学染料 (黄色) -item.chemistry_set.name=化学玻璃仪器 -item.chemistry_set_boron.name=化学玻璃仪器(硼玻璃) +item.cheese_quesadilla.name=奶酪油炸玉米粉饼 +item.chemical_dye.black.name=化学染料(黑色) +item.chemical_dye.blue.name=化学染料(蓝色) +item.chemical_dye.brown.name=化学染料(棕色) +item.chemical_dye.cyan.name=化学染料(青色) +item.chemical_dye.gray.name=化学染料(灰色) +item.chemical_dye.green.name=化学染料(绿色) +item.chemical_dye.lightblue.name=化学染料(浅蓝色) +item.chemical_dye.lime.name=化学染料(石灰) +item.chemical_dye.magenta.name=化学染料(品红色) +item.chemical_dye.orange.name=化学染料(橙色) +item.chemical_dye.pink.name=化学染料(粉色) +item.chemical_dye.purple.name=化学染料(紫色) +item.chemical_dye.red.name=化学染料(红色) +item.chemical_dye.silver.name=化学染料(浅灰色) +item.chemical_dye.white.name=化学染料(白色) +item.chemical_dye.yellow.name=化学染料(黄色) +item.chemistry_set.name=实验室玻璃器皿 +item.chemistry_set_boron.name=实验室玻璃器皿(硼玻璃) item.chemistry_template.name=化工厂模板: item.chernobylsign.name=辐射警告标志战斧 item.chlorine_pinwheel.name=氯气转轮 item.chlorophyte_pickaxe.name=叶绿镐 -item.chocolate.name=伊蒂斯牌镭巧克力 -item.chocolate.desc=镭巧克力?很确定这只是冰毒. +item.chocolate.name=“我是-镭牌”巧克力 +item.chocolate.desc=镭巧克力?我很确定这是冰毒。 item.chocolate_milk.name=巧克力牛奶 item.chopper.name=猎人直升机 item.chopper_blades.name=猎人直升机旋翼 @@ -2017,47 +1977,47 @@ item.circuit_gold.name=超频电路 item.circuit_raw.name=基本电路组件 item.circuit_red_copper.name=高级电路 item.circuit_schrabidium.name=高性能电路 -item.circuit_star.name=星控 控制电路板 -item.circuit_star.desc=当前无法使用, 因为它缺少一个操作系统. -item.circuit_star_component.chipset.name=星控 - 总芯片组 -item.circuit_star_component.cpu.name=星控 - 中央处理器 -item.circuit_star_component.ram.name=星控 - 内存 -item.circuit_star_piece.board_blank.name=星控 - 印刷电路板 -item.circuit_star_piece.board_transistor.name=星控 - 晶体管 -item.circuit_star_piece.bridge_bios.name=星控- BIOS基本输入输出系统芯片 -item.circuit_star_piece.bridge_bus.name=星控 - BUS总线 -item.circuit_star_piece.bridge_chipset.name=星控 - 芯片组 -item.circuit_star_piece.bridge_cmos.name=星控 - CMOS RAM随机存取存储器 -item.circuit_star_piece.bridge_io.name=星控 - IO芯片 -item.circuit_star_piece.bridge_north.name=星控 - 北桥芯片集 -item.circuit_star_piece.bridge_south.name=星控 - 南桥芯片集 -item.circuit_star_piece.cpu_cache.name=星控 - 中央处理器缓存 -item.circuit_star_piece.cpu_clock.name=星控 - CPU时钟 -item.circuit_star_piece.cpu_ext.name=星控 - 延伸砷半导体 -item.circuit_star_piece.cpu_logic.name=星控 - 算术逻辑单元 -item.circuit_star_piece.cpu_register.name=星控 - CPU寄存器 -item.circuit_star_piece.cpu_socket.name=星控 - CPU插座 -item.circuit_star_piece.mem_socket.name=星控 - 内存插座 -item.circuit_star_piece.mem_16k_a.name=星控 - 16k内存条插槽A -item.circuit_star_piece.mem_16k_b.name=星控 - 16k内存条插槽B -item.circuit_star_piece.mem_16k_c.name=星控 - 16k内存条插槽C -item.circuit_star_piece.mem_16k_d.name=星控 - 16k内存条插槽D -item.circuit_tantalium.name=电容器板 -item.circuit_tantalium_raw.name=电容器板组件 +item.circuit_star.name=星控制 电路板 +item.circuit_star.desc=目前无效,因为它缺少操作系统。 +item.circuit_star_component.chipset.name=星控制 芯片组 +item.circuit_star_component.cpu.name=星控制 CPU +item.circuit_star_component.ram.name=星控制 RAM +item.circuit_star_piece.board_blank.name=SC-印刷电路板 +item.circuit_star_piece.board_transistor.name=SC-晶体管 +item.circuit_star_piece.bridge_bios.name=SC-BIOS芯片 +item.circuit_star_piece.bridge_bus.name=SC-总线 +item.circuit_star_piece.bridge_chipset.name=SC-芯片组 +item.circuit_star_piece.bridge_cmos.name=SC-CMOS存储器 +item.circuit_star_piece.bridge_io.name=SC-IO芯片 +item.circuit_star_piece.bridge_north.name=SC-北桥 +item.circuit_star_piece.bridge_south.name=SC-南桥 +item.circuit_star_piece.cpu_cache.name=SC-CPU缓存 +item.circuit_star_piece.cpu_clock.name=SC-CPU时钟 +item.circuit_star_piece.cpu_ext.name=SC-砷半导体外延片 +item.circuit_star_piece.cpu_logic.name=SC-算术逻辑单元 +item.circuit_star_piece.cpu_register.name=SC-CPU寄存器 +item.circuit_star_piece.cpu_socket.name=SC-CPU插槽 +item.circuit_star_piece.mem_socket.name=SC-存储插座 +item.circuit_star_piece.mem_16k_a.name=SC-16k内存条插槽 A +item.circuit_star_piece.mem_16k_b.name=SC-16k内存条插槽 B +item.circuit_star_piece.mem_16k_c.name=SC-16k内存条插槽 C +item.circuit_star_piece.mem_16k_d.name=SC-16k内存条插槽 D +item.circuit_tantalium.name=电容板 +item.circuit_tantalium_raw.name=电容板组件 item.circuit_targeting_tier1.name=军用级电路板[1级] item.circuit_targeting_tier2.name=军用级电路板[2级] item.circuit_targeting_tier3.name=军用级电路板[3级] item.circuit_targeting_tier4.name=军用级电路板[4级] item.circuit_targeting_tier5.name=军用级电路板[5级] item.circuit_targeting_tier6.name=军用级电路板[6级] -item.cladding_desh.name=德什覆层 -item.cladding_ghiorsium.name=石墨覆层 +item.cladding_desh.name=Desh覆层 +item.cladding_ghiorsium.name=Gh336覆层 item.cladding_iron.name=铁覆层 item.cladding_lead.name=铅覆层 item.cladding_obsidian.name=黑曜石覆层 item.cladding_paint.name=铅涂料 item.cladding_rubber.name=橡胶覆层 -item.clip_bf.name=两包BF-子弹 +item.clip_bf.name=两包野火子弹 item.clip_bolt_action.name=盒装12x74独头弹 item.clip_cryolator.name=急冻单元箱 item.clip_defabricator.name=毁灭者能量电池弹药带 @@ -2068,7 +2028,7 @@ item.clip_hp.name=墨水缸 item.clip_immolator.name=焚烧者燃料箱 item.clip_jack.name=盒装四联12x70鹿弹 item.clip_lever_action.name=盒装12x74鹿弹 -item.clip_mirv.name=三合一微型分导式多弹头核弹包 +item.clip_mirv.name=三合一微型MIRV包 item.clip_mp.name=小型无发射药机枪子弹盒 item.clip_mp40.name=9mm冲锋枪子弹盒 item.clip_osipr.name=AR2 弹盒 @@ -2081,7 +2041,7 @@ item.clip_revolver_nightmare.name=子弹袋 item.clip_revolver_nightmare2.name=激光弹药带 item.clip_revolver_nopip.name=盒装.44子弹 item.clip_revolver_pip.name=左轮快速装弹器 -item.clip_revolver_schrabidium.name=Sa326异变铀金属弹药盒 +item.clip_revolver_schrabidium.name=Sa326弹药盒 item.clip_rpg.name=火箭弹箱 item.clip_spark.name=大型电磁子弹 item.clip_stinger.name=包装毒刺导弹 @@ -2100,11 +2060,11 @@ item.cmb_sword.name=CMB钢剑 item.coal_infernal.name=地狱煤炭 item.cobalt_axe.name=钴斧 item.cobalt_boots.name=钴靴子 -item.cobalt_decorated_axe.name=镶钴斧 -item.cobalt_decorated_hoe.name=镶钴锄 -item.cobalt_decorated_pickaxe.name=镶钴镐 -item.cobalt_decorated_shovel.name=镶钴铲 -item.cobalt_decorated_sword.name=镶钴剑 +item.cobalt_decorated_axe.name=镶嵌钴斧 +item.cobalt_decorated_hoe.name=镶嵌钴锄 +item.cobalt_decorated_pickaxe.name=镶嵌钴镐 +item.cobalt_decorated_shovel.name=镶嵌钴锹 +item.cobalt_decorated_sword.name=镶嵌钴剑 item.cobalt_helmet.name=钴头盔 item.cobalt_hoe.name=钴锄 item.cobalt_legs.name=钴护腿 @@ -2125,45 +2085,45 @@ item.coil_tungsten.name=加热线圈 item.coin_creeper.name=核爆爬行者硬币 item.coin_maskman.name=面具硬币 item.coin_radiation.name=辐射硬币 -item.coin_siege.name=围攻硬币 +item.coin_siege.name=围城硬币 item.coin_ufo.name=UFO硬币 -item.coin_worm.name=世-界-毁-灭-者 O-TRON 硬币 -item.coke.coal.name=焦煤 -item.coke.lignite.name=褐焦煤 -item.coke.petroleum.name=石油焦 -item.coltan_tool.name=钶钽铁矿探测罗盘 +item.coin_worm.name=机械蠕虫硬币 +item.coke.coal.name=煤焦炭 +item.coke.lignite.name=褐煤焦炭 +item.coke.petroleum.name=石油焦炭 +item.coltan_tool.name=钶钽铁矿指针 item.combine_scrap.name=CMB钢废料 item.component_emitter.name=发射器组件 item.component_limiter.name=稳定器组件 -item.containment_box.name=安全箱 +item.containment_box.name=安全盒 item.cordite.name=无烟线状火药 item.cotton_candy.name=放射性棉花糖 -item.crackpipe.name=生命之管 +item.crackpipe.name=健康烟壶 item.crate_caller.name=空投召唤器 -item.crayon.black.name=黑色 蜡笔 -item.crayon.blue.name=蓝色 蜡笔 -item.crayon.brown.name=棕色 蜡笔 -item.crayon.cyan.name=青色 蜡笔 -item.crayon.gray.name=灰色 蜡笔 -item.crayon.green.name=绿色 蜡笔 -item.crayon.lightblue.name=浅蓝色 蜡笔 -item.crayon.lime.name=石灰色 蜡笔 -item.crayon.magenta.name=洋红色 蜡笔 -item.crayon.orange.name=橙色 蜡笔 -item.crayon.pink.name=粉色 蜡笔 -item.crayon.purple.name=紫色 蜡笔 -item.crayon.red.name=红色 蜡笔 -item.crayon.silver.name=浅灰色 蜡笔 -item.crayon.white.name=白色 蜡笔 -item.crayon.yellow.name=黄色 蜡笔 +item.crayon.black.name=黑色蜡笔 +item.crayon.blue.name=蓝色蜡笔 +item.crayon.brown.name=棕色蜡笔 +item.crayon.cyan.name=青色蜡笔 +item.crayon.gray.name=灰色蜡笔 +item.crayon.green.name=绿色蜡笔 +item.crayon.lightblue.name=浅蓝色蜡笔 +item.crayon.lime.name=青色蜡笔 +item.crayon.magenta.name=品红蜡笔 +item.crayon.orange.name=橙色蜡笔 +item.crayon.pink.name=粉红蜡笔 +item.crayon.purple.name=紫色蜡笔 +item.crayon.red.name=红色蜡笔 +item.crayon.silver.name=浅灰色蜡笔 +item.crayon.white.name=白色蜡笔 +item.crayon.yellow.name=黄色蜡笔 item.crowbar.name=Mk.V开箱装置"物理学圣剑" item.crucible.name=裁决剑 -item.crucible_template.name=坩埚配方: +item.crucible_template.name=坩埚模板 item.crystal_aluminium.name=铝晶体 item.crystal_beryllium.name=铍晶体 item.crystal_charred.name=烧焦的水晶 -item.crystal_charred.desc=优质硅酸盐,经过了轻度灼烧. -item.crystal_charred.desc.P11=也是一个真正的角.真奇怪,对吧? +item.crystal_charred.desc=优质硅酸盐,轻微灼烧。 +item.crystal_charred.desc.P11=也是一个真正的号角。奇怪吧? item.crystal_coal.name=煤晶体 item.crystal_cobalt.name=钴晶体 item.crystal_copper.name=铜晶体 @@ -2173,11 +2133,11 @@ item.crystal_energy.name=能量晶体 item.crystal_fluorite.name=氟晶体 item.crystal_gold.name=金晶体 item.crystal_horn.name=水晶角 -item.crystal_horn.desc=不是真正意义上的角. -item.crystal_horn.desc.P11=真正的角. +item.crystal_horn.desc=不是真正的号角。 +item.crystal_horn.desc.P11=真正的号角。 item.crystal_iron.name=铁晶体 -item.crystal_lapis.name=青金石晶体 item.crystal_lead.name=铅晶体 +item.crystal_lapis.name=青金石晶体 item.crystal_lithium.name=锂晶体 item.crystal_niter.name=硝石晶体 item.crystal_osmiridium.name=铱锇晶体 @@ -2185,9 +2145,9 @@ item.crystal_phosphorus.name=磷晶体 item.crystal_plutonium.name=钚晶体 item.crystal_rare.name=稀土晶体 item.crystal_redstone.name=红石晶体 -item.crystal_schrabidium.name=Sa326异变铀金属晶体 -item.crystal_schraranium.name=低丰度Sa326异变铀金属晶体 -item.crystal_starmetal.name=星辉金属晶体 +item.crystal_schrabidium.name=低丰度Sa326晶体 +item.crystal_schraranium.name=Sa326晶体 +item.crystal_starmetal.name=星辉晶体 item.crystal_sulfur.name=硫晶体 item.crystal_thorium.name=钍晶体 item.crystal_titanium.name=钛晶体 @@ -2196,36 +2156,36 @@ item.crystal_tungsten.name=钨晶体 item.crystal_uranium.name=铀晶体 item.crystal_xen.name=人造X晶体 item.crt_display.name=阴极射线管 -item.cube_power.name=超立方体 +item.cube_power.name=电子块 item.custom_amat.name=自定义核弹-反物质棒 item.custom_dirty.name=自定义核弹-核废料棒 item.custom_fall.name=自定义核弹-掉落升级 -item.custom_fall.desc=这就是你们一一一一一直在等着想要的!$使自定义核弹被激活后可坠落 +item.custom_fall.desc=这就是你一一一直在等待的$使炸弹在激活时下落 item.custom_hydro.name=自定义核弹-氢棒 item.custom_kit.name=自定义核弹 套件 item.custom_nuke.name=自定义核弹-铀棒 -item.custom_schrab.name=自定义核弹-Sa326异变铀金属棒 -item.custom_tnt.name=自定义核弹-炸药棒 +item.custom_schrab.name=自定义核弹-Sa326棒 +item.custom_tnt.name=自定义核弹-炸药 item.cyclotron_tower.name=回旋加速器塔 -item.debris_concrete.name=碎混凝土块 -item.debris_element.name=断裂的锆诺克斯反应堆燃料棒元件 -item.debris_exchanger.name=热交换器片 +item.debris_concrete.name=碎混凝土 +item.debris_element.name=断裂的锆诺克斯燃料元件 +item.debris_exchanger.name=换热器片 item.debris_fuel.name=RBMK石墨式反应堆燃料块 item.debris_graphite.name=热石墨块 item.debris_metal.name=断裂金属棒 -item.debris_shrapnel.name=崩飞的碎片 +item.debris_shrapnel.name=走道碎片 item.definitelyfood.name=完全不脏牌军粮 item.defuser.name=高科技拆弹装置 -item.defuser_gold.name=金制拆弹装置 -item.demon_core_closed.name=关闭的恶魔核心 -item.demon_core_open.name=悬浮恶魔核心 +item.defuser_gold.name=黄金剪线钳 +item.demon_core_closed.name=封闭的恶魔核心 +item.demon_core_open.name=打开的恶魔核心 item.desh_axe.name=工人合金斧 item.desh_hoe.name=工人合金锄 item.desh_pickaxe.name=工人合金镐 item.desh_shovel.name=工人合金锹 item.desh_sword.name=工人合金剑 item.designator.name=短程目标指示器 -item.designator_arty_range.name=远程重炮目标指示器 +item.designator_arty_range.name=远程火炮遥控器 item.designator_manual.name=手动目标指示器 item.designator_range.name=远程目标指示器 item.detonator.name=起爆器 @@ -2235,76 +2195,76 @@ item.detonator_laser.name=激光起爆器 item.detonator_multi.name=多发起爆器 item.deuterium_filter.name=氘过滤器 item.diamond_gavel.name=钻石槌 -item.dieselsuit_boots.name=柴油动力装甲靴 +item.dieselsuit_boots.name=柴油动力高跟鞋 item.dieselsuit_helmet.name=柴油动力头戴式环境传感器 item.dieselsuit_legs.name=柴油动力腿部伺服系统 -item.dieselsuit_plate.name=柴油动力协调控制胸甲 -item.digamma_diagnostic.name=玩家Ϝ迪伽马辐射自检器 +item.dieselsuit_plate.name=柴油动力控制器 +item.digamma_diagnostic.name=玩家F-迪伽马辐射自检器 item.dns_boots.name=DNT双聚中子态素高科技全环境作战服靴子 item.dns_legs.name=DNT双聚中子态素高科技全环境作战服护腿 item.dns_helmet.name=DNT双聚中子态素高科技全环境作战服头盔 item.dns_plate.name=DNT双聚中子态素高科技全环境作战服胸甲 -item.dnt_boots.name=聚双中子态素靴子 -item.dnt_legs.name=中子双聚态素护腿 -item.dnt_helmet.name=聚双中子态素头盔 -item.dnt_plate.name=双子聚中态素胸甲 +item.dnt_boots.name=双聚态中子素 靴子 +item.dnt_legs.name=双聚态中子素 护腿 +item.dnt_helmet.name=双聚态中子素 头盔 +item.dnt_plate.name=双聚态中子素 胸甲 item.door_bunker.name=仓门 item.door_metal.name=金属门 item.door_office.name=办公室门 -item.dosimeter.name=放射量测定器 -item.drillbit_desh.name=德什制钻头 -item.drillbit_desh_diamond.name=德什制钻头 (镶钻) -item.drillbit_ferro.name=铀铁合金制钻头 -item.drillbit_ferro_diamond.name=铀铁合金制钻头 (镶钻) -item.drillbit_hss.name=高速钢制钻头 -item.drillbit_hss_diamond.name=高速钢制钻头 (镶钻) -item.drillbit_steel.name=钢制钻头 -item.drillbit_steel_diamond.name=钢制钻头 (镶钻) -item.drillbit_tcalloy.name=锝钢合金制钻头 -item.drillbit_tcalloy_diamond.name=锝钢合金制钻头 (镶钻) +item.dosimeter.name=剂量计 +item.drillbit_desh.name=Desh钻头 +item.drillbit_desh_diamond.name=Desh钻头(镶钻) +item.drillbit_ferro.name=铀铁合金钻头 +item.drillbit_ferro_diamond.name=铀铁合金钻头(镶钻) +item.drillbit_hss.name=高速钢钻头 +item.drillbit_hss_diamond.name=高速钢钻头(镶钻) +item.drillbit_steel.name=钢钻头 +item.drillbit_steel_diamond.name=钢钻头(镶钻) +item.drillbit_tcalloy.name=锝钢钻头 +item.drillbit_tcalloy_diamond.name=锝钢钻头(镶钻) item.drill_titanium.name=钛钻头 item.drax.name=采掘钻 item.drax_mk2.name=强化型采掘钻 -item.drax_mk3.name=Sa326异变铀金属采掘钻 +item.drax_mk3.name=Sa326采掘钻 item.ducttape.name=胶带 item.dust.name=灰尘 -item.dust.desc=我讨厌灰尘! -item.dust.desc.P11=又一个家伙化作了尘埃! +item.dust.desc=我讨厌灰尘! +item.dust.desc.P11=又一小撮灰尘! item.dust_tiny.name=一小撮灰尘 item.dynosphere_base.name=空白动力球 -item.dynosphere_desh.name=德什动力球 -item.dynosphere_desh_charged.name=德什动力球[带电] +item.dynosphere_desh.name=Desh动力球 +item.dynosphere_desh_charged.name=Desh动力球[带电] item.dynosphere_dineutronium.name=双聚中子态素动力球 item.dynosphere_dineutronium_charged.name=双聚中子态素动力球[带电] -item.dynosphere_euphemium.name=Ep元素动力球 -item.dynosphere_euphemium_charged.name=Ep元素动力球[带电] -item.dynosphere_schrabidium.name=Sa326异变铀金属动力球 -item.dynosphere_schrabidium_charged.name=Sa326异变铀金属动力球[带电] +item.dynosphere_euphemium.name=Ep动力球 +item.dynosphere_euphemium_charged.name=Ep动力球[带电] +item.dynosphere_schrabidium.name=Sa326动力球 +item.dynosphere_schrabidium_charged.name=Sa326动力球[带电] item.dysfunctional_reactor.name=失控反应堆 -item.early_explosive_lenses.name=初代高能内爆炸药阵列 -item.early_explosive_lenses.desc=由8个高爆炸药装配而成,带有铝推进器、$硬铝外壳和桥丝式雷管. -item.egg_balefire.name=BF蛋 -item.egg_balefire.desc=啥样的鸟能生出这样一颗高放射性的蛋? -item.egg_balefire_shard.name=BF蛋碎片 +item.early_explosive_lenses.name=初代炸药透镜阵列 +item.early_explosive_lenses.desc=8个炸药透镜的组装,带有铝合金推进器、硬铝外壳和桥丝雷管。 +item.egg_balefire.name=野火蛋 +item.egg_balefire.desc=什么样的鸟儿才会下带有放射性的蛋? +item.egg_balefire_shard.name=野火蛋碎片 item.elec_axe.name=电锯 item.elec_pickaxe.name=冲击钻 item.elec_shovel.name=螺旋钻 item.elec_sword.name=电棍 item.energy_core.name=临时能源核心 item.entanglement_kit.name=纠缠部件 -item.entanglement_kit.desc=制造传送机所需要的关键部件.$通过铍元素增强资源扫描仪$来实现维度转换.. -item.euphemium_boots.name=Ep元素靴子 -item.euphemium_helmet.name=Ep元素头盔 -item.euphemium_kit.name=Ep元素工具箱 -item.euphemium_legs.name=Ep元素护腿 -item.euphemium_plate.name=Ep元素胸甲 -item.euphemium_stopper.name=Ep元素-阻滞者 -item.explosive_lenses.name=高能内爆炸药阵列 -item.explosive_lenses.desc=由8个PBX聚合物粘结炸药装配而成,带有一个薄型铝推进器, $硬铝外壳和小型桥丝式雷管. -item.fabsols_vodka.name=Fabsol的伏特加 +item.entanglement_kit.desc=传送机制作零件$通过$铍增强型资源扫描仪实现尺寸转换。 +item.euphemium_boots.name=Ep靴子 +item.euphemium_helmet.name=Ep头盔 +item.euphemium_kit.name=Ep工具箱 +item.euphemium_legs.name=Ep护腿 +item.euphemium_plate.name=Ep胸甲 +item.euphemium_stopper.name=Ep-阻滞者 +item.explosive_lenses.name=炸药透镜阵列 +item.explosive_lenses.desc=8个PBX炸药组装的阵列,带有一个薄的$铝推进器、硬铝外壳和$小型桥丝雷管。 +item.fabsols_vodka.name=Fabsol伏特加 item.factory_core_advanced.name=高级工厂能源组件 item.factory_core_titanium.name=工厂能源组件 -item.fallout.name=一大堆辐射尘 +item.fallout.name=一堆辐射尘 item.fau_boots.name=Fau靴子 item.fau_helmet.name=Fau头盔 item.fau_legs.name=Fau护腿 @@ -2315,51 +2275,51 @@ item.fins_flat.name=扁钢外壳 item.fins_quad_titanium.name=小型钛翼 item.fins_small_steel.name=小型钢栅格翼 item.fins_tri_steel.name=大型钢翼 -item.five_htp.name=5-羟色胺血清素药丸 -item.five_htp.desc=去除所有Ϝ迪伽马辐射, 给予10min的原子稳定性效果 +item.five_htp.name=5-羟色胺药丸 +item.five_htp.desc=移除所有迪伽马辐射,并获得10分钟稳定效果 item.flame_conspiracy.name=阴谋论 -item.flame_conspiracy.desc=钢梁不能熔化喷气燃料! +item.flame_conspiracy.desc=钢梁不能熔化喷气燃料! item.flame_opinion.name=个人观点 -item.flame_opinion.desc=好吧,我喜欢它... +item.flame_opinion.desc=呃,我喜欢... item.flame_politics.name=政治话题 -item.flame_politics.desc=唐纳德·特朗普将建一道新的"长城"! +item.flame_politics.desc=唐老鸭将会修建一堵墙! item.flame_pony.name=卡通小马画 -item.flame_pony.desc=黄色小马胜过了蓝色小马,这是不争的事实! -item.flask_infusion.shield.name=护盾灌注液 -item.fleija_core.name=F.L.E.I.J.A.铀235装药 +item.flame_pony.desc=黄马胜于蓝马,这是不争的事实! +item.flask_infusion.shield.name=护盾药水 +item.fleija_core.name=F.L.E.I.J.A.铀-235装药 item.fleija_igniter.name=脉冲点火器 item.fleija_kit.name=F.L.E.I.J.A. 套件 -item.fleija_propellant.name=Sa326异变铀金属炸药 +item.fleija_propellant.name=Sa326炸药 item.fluid_barrel_empty.name=空流体桶 item.fluid_barrel_full.name=流体桶: item.fluid_barrel_infinite.name=无限流体桶 item.fluid_duct.name=流体管道: item.fluid_identifier.name=流体识别码 -item.fluid_identifier.info=通用流体标识符, 用于: -item.fluid_identifier.usage0=在流体管道上单击鼠标右键, 为该管道指定流体类型. -item.fluid_identifier.usage1=按住Shift键并在流体管道上单击鼠标右键以指定 -item.fluid_identifier.usage2=相邻最多64个管道的流体类型. -item.fluid_identifier_multi.name=多流体标识符 -item.fluid_identifier_multi.info=一级通用流体标识符: -item.fluid_identifier_multi.info2=二级通用流体标识符: +item.fluid_identifier.info=流体标识码用于: +item.fluid_identifier.usage0=在流体管道上单击右键,为该管道指定运输的流体。 +item.fluid_identifier.usage1=按住Shift键并流体管道上单击右键以指定相邻管道 +item.fluid_identifier.usage2=最大范围为64格管道。 +item.fluid_identifier_multi.name=多类型流体识别码 +item.fluid_identifier_multi.info=通用流体识别码: +item.fluid_identifier_multi.info2=次要类型: item.fluid_tank_empty.name=空通用流体罐 item.fluid_tank_full.name=通用流体罐: -item.fluid_tank_lead_empty.name=空的危险流体罐 -item.fluid_tank_lead_full.name=危险流体罐: +item.fluid_tank_lead_empty.name=空危险品罐 +item.fluid_tank_lead_full.name=危险品罐: item.fluorite.name=氟石粉 item.flywheel_beryllium.name=铍制飞轮 -item.fmn.name=氟硝安定药片 -item.fmn.desc=移除2,000mDRX以上所有的Ϝ迪伽马辐射 -item.folly_bullet.name=12.8cm星辉金属弹头 -item.folly_bullet_du.name=12.8cm贫铀弹头 -item.folly_bullet_nuclear.name=12.8cm核弹头 +item.fmn.name=氟硝西泮片 +item.fmn.desc=移除2000mDRX以上的所有迪伽马辐射 +item.folly_bullet.name=128mm星辉弹头 +item.folly_bullet_du.name=128mm贫铀弹头 +item.folly_bullet_nuclear.name=128mm核弹头 item.folly_shell.name=银弹壳 item.fooditem.name=食物 -item.fragment_actinium.name=锕-227碎片 +item.fragment_actinium.name=锕碎片 item.fragment_boron.name=硼碎片 item.fragment_cerium.name=铈碎片 item.fragment_cobalt.name=钴碎片 -item.fragment_coltan.name=钶钽铁矿 +item.fragment_coltan.name=钶钽铁矿碎片 item.fragment_lanthanium.name=镧碎片 item.fragment_meteorite.name=陨石碎片 item.fragment_neodymium.name=钕碎片 @@ -2371,44 +2331,42 @@ item.fuse.name=保险丝 item.fusion_core.name=聚变能源核心 item.fusion_core_infinite.name=无限能源核心 item.fusion_shield_chlorophyte.name=叶绿金属聚变反应堆覆层 -item.fusion_shield_desh.name=德什聚变反应堆覆层 +item.fusion_shield_desh.name=Desh聚变反应堆覆层 item.fusion_shield_tungsten.name=钨聚变反应堆覆层 item.fusion_shield_vaporwave.name=蒸汽波反应堆覆层 - -item.gadget_core.name=大型钚核心 +item.gadget_core.name=钚核心 item.gadget_explosive.name=炸药 -item.gadget_explosive8.name=炸药束 item.gadget_kit.name=小玩意 套件 item.gadget_wireing.name=线路 item.gas_biogas.name=沼气罐 item.gas_empty.name=空气罐 -item.gas_full.name=天然气罐 -item.gas_lpg.name=LPG罐 +item.gas_full.name=气体罐 +item.gas_lpg.name=液化石油气罐 item.gas_mask.name=防毒面具 item.gas_mask_filter.name=防毒面具过滤器 -item.gas_mask_filter_combo.name=组合型防毒面具过滤器 +item.gas_mask_filter_combo.name=防毒面具组合式过滤器 item.gas_mask_filter_mono.name=催化性面罩过滤器 -item.gas_mask_filter_piss.name=高级的简易防毒面具过滤器 -item.gas_mask_filter_rag.name=简易防毒面具过滤器 +item.gas_mask_filter_piss.name=先进的简易防毒面具过滤器 +item.gas_mask_filter_rag.name=临时防毒面具过滤器 item.gas_mask_m65.name=M65-Z防毒面具 -item.gas_mask_mono.name=防护面罩 -item.gas_mask_olde.name=皮革制防毒面具 +item.gas_mask_mono.name=半面罩防毒面具 +item.gas_mask_olde.name=皮革防毒面具 item.gas_petroleum.name=石油气罐 item.gas_tester.name=气体传感器 -item.gear_large.name=大齿轮 -item.gear_large_steel.name=大型钢制齿轮 +item.gear_large.name=大型齿轮 +item.gear_large_steel.name=大型钢齿轮 item.geiger_counter.name=手持盖革计数器 -item.gem_alexandrite.name=紫翠宝石 -item.gem_tantalium.name=多晶体钽 -item.gem_tantalium.desc='钽' -item.gem_tantalium.desc.P11=又名钽. -item.gem_volcanic.name=火山晶石 +item.gem_alexandrite.name=亚历山大变石 +item.gem_tantalium.name=钽晶体 +item.gem_tantalium.desc=“钽” +item.gem_tantalium.desc.P11=又名钽。 +item.gem_volcanic.name=火山宝石 item.generator_front.name=发电机前部 item.generator_steel.name=发电机主体 item.glitch.name=故障 item.glowing_stew.name=发光真菌煲 item.goggles.name=护目镜 -item.grenade_aschrab.name=可抛反Sa326异变铀金属 +item.grenade_aschrab.name=可抛反Sa326 item.grenade_black_hole.name=黑洞手榴弹 item.grenade_breach.name=破甲手榴弹 item.grenade_burst.name=挖掘手榴弹 @@ -2437,7 +2395,7 @@ item.grenade_if_toxic.name=IF-毒物手榴弹 item.grenade_kit.name=手榴弹 套件 item.grenade_kyiv.name=基辅特供 item.grenade_lemon.name=可燃柠檬 -item.grenade_mirv.name=分导式多弹头型破片手榴弹 +item.grenade_mirv.name=MIRV型破片手榴弹 item.grenade_mk2.name=Mk2手榴弹“菠萝大使” item.grenade_nuclear.name=核子手榴弹 item.grenade_nuke.name=MkVI钻地手榴弹 @@ -2445,7 +2403,7 @@ item.grenade_pink_cloud.name=一罐粉色的云 item.grenade_plasma.name=等离子手榴弹 item.grenade_poison.name=剧毒手榴弹 item.grenade_pulse.name=脉冲手榴弹 -item.grenade_schrabidium.name=Sa326异变铀金属手榴弹 +item.grenade_schrabidium.name=Sa326手榴弹 item.grenade_shrapnel.name=榴霰弹手榴弹 item.grenade_smart.name=智能手榴弹 item.grenade_strong.name=增强型手榴弹 @@ -2457,17 +2415,17 @@ item.gun_b92.name=§9B92能量手枪§r item.gun_b92_ammo.name=§9B92能量单元§r item.gun_b93.name=§cB93能量手枪§r item.gun_bf.name=BEL -item.gun_bf_ammo.name=Mk.V小型AMAT-炮弹 -B.F.型 +item.gun_bf_ammo.name=Mk.V小型AMAT-炮弹 –野火型 item.gun_bio_revolver.name=Atlas item.gun_bolt_action.name=栓动式霰弹枪[原版] item.gun_bolt_action_ammo.name=12x74 独头弹 item.gun_bolt_action_green.name=栓动式霰弹枪[绿色] item.gun_bolt_action_saturnite.name=土星来复枪 item.gun_bolter.name=爆弹枪 -item.gun_bolter_digamma.name=Ϝ迪伽马附魔的爆弹枪 -item.gun_calamity.name=洗头佬的电锯 +item.gun_bolter_digamma.name=迪伽马爆弹枪 +item.gun_calamity.name=希特勒的电锯 item.gun_calamity_ammo.name=.50BMG子弹 -item.gun_calamity_dual.name=马克沁机枪 +item.gun_calamity_dual.name=马鞍枪 item.gun_chemthrower.name=化学喷射器 item.gun_cryolator.name=冻结者 item.gun_cryolator_ammo.name=急冻单元 @@ -2477,17 +2435,17 @@ item.gun_deagle.name=大手枪 item.gun_defabricator.name=毁灭者 item.gun_defabricator_ammo.name=毁灭者能量电池 item.gun_detonator.name=激光引爆器 -item.gun_emp.name=EMP电磁脉冲射线 +item.gun_emp.name=EMP射线 item.gun_emp_ammo.name=能量电池 item.gun_euthanasia.name=安乐死 item.gun_euthanasia_ammo.name=注射器 item.gun_fatman.name=M42核弹发射器 "胖子" -item.gun_fatman_ammo.name=迷你核弹(老版本遗留物) +item.gun_fatman_ammo.name=迷你核弹 item.gun_fireext.name=灭火器 -item.gun_flamer.name="黄玉先生" -item.gun_flechette.name=弗莱彻斯特突击步枪 +item.gun_flamer.name="黄玉先生"喷射器 +item.gun_flechette.name=弗莱彻突击步枪 item.gun_folly.name=Digamma原型"愚蠢" -item.gun_glass_cannon.name=晶体射线枪 +item.gun_glass_cannon.name=玻璃大炮 item.gun_hk69.name=榴弹手枪 item.gun_hp.name=HPP射线炮 item.gun_hp_ammo.name=墨盒 @@ -2495,39 +2453,39 @@ item.gun_immolator.name=焚烧者 item.gun_immolator_ammo.name=焚烧者燃料 item.gun_jack.name=汽锤 item.gun_jack_ammo.name=四联散弹子弹 -item.gun_karl.name=卡尔·古斯塔夫M3式84mm火箭筒 +item.gun_karl.name=卡尔-古斯塔夫M3式84mm火箭筒 item.gun_kit_1.name=枪械润滑油 item.gun_kit_2.name=枪械修理包 -item.gun_ks23.name=塞缪尔大口径霰弹枪 +item.gun_ks23.name=KS-23霰弹枪 item.gun_lacunae.name=CZ33亚巴顿 item.gun_lacunae_ammo.name=5mm子弹 item.gun_lever_action.name=马腿杠杆式霰弹枪[原版] -item.gun_m2.name=“乾妈”M2勃朗宁重机枪 item.gun_lever_action_ammo.name=12x74 鹿弹 item.gun_lever_action_dark.name=马腿杠杆式霰弹枪[黑暗] item.gun_lever_action_sonata.name=自杀霰弹 -item.gun_lever_action_sonata_2.name=§c奏鸣的麦克风§r -item.gun_lunatic_marksman.name=月都科技狙击步枪 +item.gun_lever_action_sonata_2.name=§cSonata的麦克风§r +item.gun_lunatic_marksman.name=Lunatic狙击步枪 +item.gun_m2.name=勃朗宁M2HB型重机枪 item.gun_minigun.name=CZ53机枪 -item.gun_mirv.name=M42核弹发射器 "试验型分导式多弹头核弹" -item.gun_mirv_ammo.name=八倍分导式多弹头核弹(老版本遗留物) +item.gun_mirv.name=M42核弹发射器 "试验型MIRV" +item.gun_mirv_ammo.name=八倍MIRV item.gun_moist_nugget.name=莫辛纳甘[迫真] item.gun_mp.name=和平主义的机枪 item.gun_mp40.name=MP40冲锋枪 item.gun_mp40_ammo.name=冲锋枪子弹 item.gun_pm_ammo.name=小型无发射药机枪子弹 -item.gun_mymy.name=记者眼中单位面积动能超过1.8焦的大规模杀伤性武器 +item.gun_mymy.name=Nietes软弹枪 item.gun_osipr.name=标准型脉冲机枪 item.gun_osipr_ammo.name=暗能量脉冲弹 item.gun_osipr_ammo2.name=融合球 item.gun_panzerschreck.name=战车噩梦 -item.gun_proto.name=M42核弹发射器 "分导式多弹头核弹原型" +item.gun_proto.name=M42核弹发射器 "原始MIRV" item.gun_quadro.name=四喜丸子 -item.gun_remington.name=バイデン ブラスト [拜登光线] +item.gun_remington.name=バイデン ブラスト [拜登冲击波] item.gun_revolver.name=强化左轮手枪 item.gun_revolver_ammo.name=铅左轮子弹 -item.gun_revolver_blackjack.name=黑杰克的五发装左轮枪 -item.gun_revolver_cursed.name=诅咒左轮手枪 +item.gun_revolver_blackjack.name=黑杰克五发装左轮枪 +item.gun_revolver_cursed.name=诅咒手枪 item.gun_revolver_cursed_ammo.name=钢左轮子弹 item.gun_revolver_gold.name=黄金左轮手枪 item.gun_revolver_gold_ammo.name=金左轮子弹 @@ -2540,41 +2498,40 @@ item.gun_revolver_nightmare.name=梦魇左轮手枪[原版] item.gun_revolver_nightmare2.name=梦魇左轮手枪[黑暗] item.gun_revolver_nightmare2_ammo.name=激光子弹 item.gun_revolver_nightmare_ammo.name=噩梦子弹 -item.gun_revolver_nopip.name=诺华克 +item.gun_revolver_nopip.name=Novac item.gun_revolver_nopip_ammo.name=.44马格南子弹 -item.gun_revolver_pip.name=小皮的小麦金塔 +item.gun_revolver_pip.name=小麦金塔 item.gun_revolver_pip_ammo.name=污染子弹 item.gun_revolver_red.name=红钥匙左轮手枪 item.gun_revolver_saturnite.name=土星手枪 -item.gun_revolver_schrabidium.name=Sa326异变铀金属左轮手枪 -item.gun_revolver_schrabidium_ammo.name=Sa326异变铀金属左轮子弹 +item.gun_revolver_schrabidium.name=Sa326左轮手枪 +item.gun_revolver_schrabidium_ammo.name=Sa326左轮子弹 item.gun_revolver_silver.name=银质左轮手枪 -item.gun_rpg.name=卡尔·古斯塔夫M4无后座力炮 +item.gun_rpg.name=卡尔-古斯塔夫M4无后座力炮 item.gun_rpg_ammo.name=火箭弹 -item.gun_sauer.name=斯坦·索尔的猎枪 +item.gun_sauer.name=斯坦-索尔的猎枪 item.gun_skystinger.name=毒刺-The One Sky -item.gun_spark.name=火花塞 -item.gun_spark_ammo.name=火花塞电磁炮弹 -item.gun_spas12.name=SPAS-12多功能霰弹枪 +item.gun_spark.name=Spark Plug +item.gun_spark_ammo.name=电磁弹 +item.gun_spas12.name=SPAS-12霰弹枪 item.gun_stinger.name=FIM-92毒刺导弹 item.gun_stinger_ammo.name=毒刺导弹 item.gun_super_shotgun.name="超级"猎枪 -item.gun_super_shotgun.desc=它已经严重损坏了! -item.gun_supershotgun.name=猛男快乐枪 +item.gun_super_shotgun.desc=超级烂! +item.gun_supershotgun.name=超级猎枪 item.gun_thompson.name=汤姆森冲锋枪 -item.gun_uboinik.name=先进制式霰弹枪 +item.gun_uboinik.name=Uboinik item.gun_uboinik_ammo.name=12x70 鹿弹 -item.gun_uzi.name=Uzi +item.gun_uzi.name=Uzi冲锋枪 item.gun_uzi_ammo.name=.22LR子弹 -item.gun_uzi_saturnite.name=土星金属Uzi -item.gun_uzi_saturnite_silencer.name=带消音器的土星金属Uzi -item.gun_uzi_silencer.name=带消音器的Uzi -item.gun_vortex.name=涡流能量步枪 +item.gun_uzi_saturnite.name=土星Uzi冲锋枪 +item.gun_uzi_saturnite_silencer.name=带消音器的土星Uzi冲锋枪 +item.gun_uzi_silencer.name=带消音器的Uzi冲锋枪 item.gun_xvl1456.name=XVL1456陶子加农炮原型机 item.gun_xvl1456_ammo.name=贫化铀235子弹 item.gun_zomg.name=奇点能湮灭射线“ZOMG炮” item.hand_drill.name=手钻 -item.hand_drill_desh.name=德什制手钻 +item.hand_drill_desh.name=Desh手钻 item.hazmat_boots.name=防辐射靴 item.hazmat_boots_grey.name=高性能防辐射靴 item.hazmat_boots_red.name=高级防辐射靴 @@ -2597,30 +2554,29 @@ item.hazmat_plate.name=防辐射胸甲 item.hazmat_plate_grey.name=高性能防辐射胸甲 item.hazmat_plate_red.name=高级防辐射胸甲 item.hazmat_red_kit.name=高级防护套装 -item.heart_booster.name=心脏起搏器 -item.heart_container.name=心脏容器 +item.heart_booster.name=心之增强器 +item.heart_container.name=心之容器 item.heart_fab.name=心脏抗原结合器 -item.heart_piece.name=心脏碎片 -item.hev_battery.name=盔甲充能电池 -item.hev_boots.name=Mark IV型HEV危险环境防护服靴子 -item.hev_plate.name=Mark IV型HEV危险环境防护服胸甲 -item.hev_helmet.name=Mark IV型HEV危险环境防护服头盔 -item.hev_legs.name=Mark IV型HEV危险环境防护服护腿 -item.holotape_damaged.name=损坏的全息磁带 -item.holotape_image.name=全息磁带 +item.heart_piece.name=心之碎片 +item.hev_battery.name=套装电池 +item.hev_boots.name=HEV Mk.IV 靴子 +item.hev_plate.name=HEV Mk.IV 胸甲 +item.hev_helmet.name=HEV Mk.IV 头盔 +item.hev_legs.name=HEV Mk.IV 护腿 +item.holotape_damaged.name=损坏的全息卡带 +item.holotape_image.name=全息卡带 item.horseshoe_magnet.name=马蹄形磁铁 item.hull_big_aluminium.name=大型铝壳 item.hull_big_steel.name=大型钢壳 item.hull_big_titanium.name=大型钛壳 item.hull_small_aluminium.name=小型铝壳 -item.hull_small_aluminium.desc=可以插入钻孔石墨中 +item.hull_small_aluminium.desc=可插入钻孔石墨中 item.hull_small_steel.name=小型钢壳 - item.igniter.name=点火器 -item.igniter.desc=(通过右键单击原型来将其引爆)$这是一个绿色的金属柄$带有一个鲜红色的按钮和一个小盖子.$在其底部刻有N.E. 的首字母,$我不知道这个 N.E. 是谁, 但$他对绿色一定很有鉴赏力. +item.igniter.desc=(鼠标右键点击原型)$这是一个绿色金属手柄,带有$亮红色按钮和一个小盖子$在底部,缩写N.E.刻着美元。不管N.E.是谁,他对绿色的色调很有品味。 item.industrial_magnet.name=工业磁铁 item.inf_antimatter.name=无限反物质罐 -item.inf_antischrabidium.name=无限反Sa326异变铀金属罐 +item.inf_antischrabidium.name=无限反Sa326罐 item.inf_coolant.name=无限冷却液罐 item.inf_deuterium.name=无限氘罐 item.inf_diesel.name=无限柴油罐 @@ -2628,7 +2584,7 @@ item.inf_sulfur.name=无限硫磺罐 item.inf_tritium.name=无限氚罐 item.inf_water.name=无限水罐 item.inf_water_mk2.name=重型无限水罐 -item.ingot_actinium.name=半稳定锕-227锭 +item.ingot_actinium.name=半稳定锕锭 item.ingot_advanced_alloy.name=高级合金锭 item.ingot_aluminium.name=铝锭 item.ingot_am_mix.name=反应堆级镅锭 @@ -2637,88 +2593,88 @@ item.ingot_am242.name=镅-242锭 item.ingot_americium_fuel.name=镅燃料锭 item.ingot_arsenic.name=砷锭 item.ingot_asbestos.name=石棉板 -item.ingot_asbestos.desc=§o"充满了生命,自我怀疑和石棉.那是随空气而来的."§r +item.ingot_asbestos.desc=§o\“充满了生命、自我怀疑和石棉。这是空气带来的。\”§r item.ingot_au198.name=金-198锭 item.ingot_australium.name=奥斯锭 item.ingot_bakelite.name=电木锭 item.ingot_beryllium.name=铍锭 item.ingot_bismuth.name=铋锭 item.ingot_boron.name=硼锭 -item.ingot_c4.name=合成C-4 +item.ingot_c4.name=一块C-4 item.ingot_cadmium.name=镉锭 item.ingot_calcium.name=钙锭 -item.ingot_cdalloy.name=镉钢合金锭 -item.ingot_chainsteel.name=沉重链钢 +item.ingot_cdalloy.name=镉钢锭 +item.ingot_chainsteel.name=重链钢 item.ingot_co60.name=钴-60锭 item.ingot_cobalt.name=钴锭 item.ingot_combine_steel.name=CMB钢锭 -item.ingot_combine_steel.desc=*在此处插入民防知识参考资料* +item.ingot_combine_steel.desc=*在此处插入民事保护参考* item.ingot_copper.name=工业级铜 item.ingot_daffergon.name=达夫贡锭 -item.ingot_desh.name=德什锭 +item.ingot_desh.name=Desh锭 item.ingot_dineutronium.name=双聚中子态素锭 item.ingot_dura_steel.name=高速钢锭 item.ingot_electronium.name=电素锭 -item.ingot_euphemium.name=Ep元素锭 -item.ingot_euphemium.desc=一种非常强大特殊但又很奇怪的元素. -item.ingot_ferrouranium.name=铀铁锭 +item.ingot_euphemium.name=Ep锭 +item.ingot_euphemium.desc=一个非常特殊但又奇怪的元素。 +item.ingot_ferrouranium.name=铀铁合金锭 item.ingot_fiberglass.name=玻璃纤维 -item.ingot_fiberglass.desc=富含纤维,玻璃. 具有身体所需要的一切. +item.ingot_fiberglass.desc=纤维含量高,玻璃含量高。身体需要的一切。 item.ingot_firebrick.name=耐火砖 -item.ingot_gh336.name=气敖-336锭 -item.ingot_gh336.desc=𬭳的同事. +item.ingot_gh336.name=Gh336锭 +item.ingot_gh336.desc=钅喜的同事。 item.ingot_graphite.name=石墨锭 -item.ingot_hes.name=高浓度Sa326异变铀金属燃料锭 +item.ingot_hes.name=高浓度Sa326燃料锭 item.ingot_lanthanium.name=半稳定镧锭 -item.ingot_lanthanium.desc='Lanthanum' -item.ingot_lanthanium.desc.P11=实际上是这么拼写的, 但谁在乎呢. +item.ingot_lanthanium.desc=“镧” +item.ingot_lanthanium.desc.P11=实际上就是镧,无论怎么说。 item.ingot_lead.name=铅锭 -item.ingot_les.name=低浓度Sa326异变铀金属燃料锭 +item.ingot_les.name=低浓度Sa326燃料锭 item.ingot_magnetized_tungsten.name=磁化钨锭 item.ingot_meteorite.name=陨石锭 -item.ingot_meteorite_forged.name=锻造过的陨石锭 +item.ingot_meteorite_forged.name=锻造陨石锭 item.ingot_mox_fuel.name=MOX燃料锭 -item.ingot_mud.name=固化泥砖 +item.ingot_mud.name=固化毒泥浆砖 item.ingot_neptunium.name=镎锭 -item.ingot_neptunium.desc=那是我最喜欢的! -item.ingot_neptunium.desc.P11=哇哦, 真吓人! +item.ingot_neptunium.desc=那是我最喜欢的! +item.ingot_neptunium.desc.P11=哇,吓人! item.ingot_neptunium_fuel.name=镎燃料锭 item.ingot_niobium.name=铌锭 item.ingot_osmiridium.name=铱锇锭 item.ingot_pb209.name=铅-209锭 -item.ingot_pc.name=硬质塑料棒 -item.ingot_pet.name=铝金属化PET聚酯条 +item.ingot_pc.name=硬质塑料锭 +item.ingot_pet.name=铝金属化PET锭 item.ingot_phosphorus.name=白磷锭 item.ingot_plutonium.name=钚锭 item.ingot_plutonium_fuel.name=钚燃料锭 -item.ingot_polonium.name=钋-210锭 +item.ingot_polonium.name=钋锭 item.ingot_polymer.name=聚合物锭 item.ingot_pu_mix.name=反应堆级钚锭 item.ingot_pu238.name=钚-238锭 item.ingot_pu239.name=钚-239锭 item.ingot_pu240.name=钚-240锭 item.ingot_pu241.name=钚-241锭 -item.ingot_pvc.name=PVC聚氯乙烯棒 +item.ingot_pvc.name=聚氯乙烯锭(PVC) item.ingot_ra226.name=镭-226锭 item.ingot_red_copper.name=紫铜 item.ingot_reiium.name=雷恩锭 item.ingot_rubber.name=橡胶锭 item.ingot_saturnite.name=土星锭 -item.ingot_schrabidate.name=Sa326元素酸化铁锭 -item.ingot_schrabidium.name=Sa326异变铀金属锭 -item.ingot_schrabidium_fuel.name=Sa326异变铀金属燃料锭 -item.ingot_schraranium.name=低丰度Sa326异变铀金属锭 -item.ingot_schraranium.desc=在Sa326异变铀金属嬗变器中由铀锭嬗变而来 -item.ingot_semtex.name=塞姆汀塑胶炸药 -item.ingot_smore.name=S'more饼干 -item.ingot_solinium.name=Sa327索林锭 +item.ingot_schrabidate.name=Sa酸铁锭 +item.ingot_schrabidium.name=Sa326锭 +item.ingot_schrabidium_fuel.name=Sa326燃料锭 +item.ingot_schraranium.name=低丰度Sa326锭 +item.ingot_schraranium.desc=在Sa326嬗变器中由铀制成 +item.ingot_semtex.name=塞姆汀塑胶炸药块 +item.ingot_smore.name=S'more 锭 +item.ingot_solinium.name=Sa327锭 item.ingot_sr90.name=锶-90锭 -item.ingot_starmetal.name=星辉金属锭 +item.ingot_starmetal.name=§9星辉锭§r item.ingot_steel.name=钢锭 -item.ingot_steel_dusted.name=粉状钢锭 +item.ingot_steel_dusted.name=粉末钢锭 item.ingot_tantalium.name=钽锭 -item.ingot_tantalium.desc='Tantalum' -item.ingot_tantalium.desc.P11=也写作这个. +item.ingot_tantalium.desc=“钽” +item.ingot_tantalium.desc.P11=又名钽。 item.ingot_tcalloy.name=锝-钢合金锭 item.ingot_technetium.name=锝-99锭 item.ingot_th232.name=钍-232锭 @@ -2728,58 +2684,58 @@ item.ingot_tungsten.name=钨锭 item.ingot_u233.name=铀-233锭 item.ingot_u235.name=铀-235锭 item.ingot_u238.name=铀-238锭 -item.ingot_u238m2.name=亚稳铀-238-2锭 -item.ingot_unobtainium.name=阿诺布素锭 +item.ingot_u238m2.name=亚稳铀238-2锭 +item.ingot_unobtainium.name=难得素锭 item.ingot_uranium.name=铀锭 item.ingot_uranium_fuel.name=铀燃料锭 item.ingot_verticium.name=韦德赛锭 item.ingot_weidanium.name=魏丹锭 -item.ingot_zirconium.name=锆锭 +item.ingot_zirconium.name=锆块 item.injector_5htp.name=5-HTP自动药物注射器 item.injector_knife.name=8英寸刀片自动药物注射器 item.ink.name=林 墨水 -item.insert_doxium.name=掺砷羟苯磺酸钙防弹插板 -item.insert_du.name=贫铀防弹插板 -item.insert_era.name=爆炸反应式装甲插板 -item.insert_esapi.name=ESAPI增强型轻武器防护插板 -item.insert_ghiorsium.name=𪵧制防弹插板 -item.insert_kevlar.name=凯夫拉防弹插板 -item.insert_sapi.name=SAPI插入式轻武器防护板 -item.insert_polonium.name=钋制防弹插板 -item.insert_steel.name=重型钢制防弹插板 -item.insert_xsapi.name=XSAPI下一代防弹插板 -item.insert_yharonite.name=龙素防弹插板 +item.insert_doxium.name=掺砷Doxium插板 +item.insert_du.name=贫铀插板 +item.insert_era.name=反应装甲插板 +item.insert_esapi.name=ESAPI插板 +item.insert_ghiorsium.name=Gh插板 +item.insert_kevlar.name=凯夫拉插板 +item.insert_sapi.name=SAPI插板 +item.insert_polonium.name=钋插板 +item.insert_steel.name=重型钢插板 +item.insert_xsapi.name=XSAPI插板 +item.insert_yharonite.name=犽戎龙素插板 item.iv_blood.name=血袋 -item.iv_empty.name=空的静脉输液袋 +item.iv_empty.name=静脉输液袋 item.iv_xp.name=经验包 item.iv_xp_empty.name=空的经验包 item.jackt.name=时尚防弹夹克 item.jackt2.name=时尚防弹夹克2:东京漂移 -item.jetpack_boost.name=强力喷气背包 -item.jetpack_break.name=建筑工喷气背包 +item.jetpack_boost.name=弹跳背包 +item.jetpack_break.name=缓降背包 item.jetpack_fly.name=喷气背包 item.jetpack_tank.name=喷气背包备用燃料罐 item.jetpack_vector.name=矢量喷气背包 -item.journal_bj.name=被威士忌泡湿透的笔记本 +item.journal_bj.name=被威士忌浸透的笔记本 item.journal_pip.name=生存主义者日记 -item.journal_silver.name=承包商说明 +item.journal_silver.name=承包商注释 item.key.name=钥匙 item.key_fake.name=伪造钥匙 item.key_kit.name=钥匙仿制套件 item.key_red.name=红色钥匙 -item.key_red.desc=探索一下另一面. +item.key_red.desc=探索另一边。 item.key_red.desc.P11=§4e§r item.kit_toolbox.name=工具箱 -item.kit_toolbox_empty.name=空的工具箱 +item.kit_toolbox_empty.name=空工具箱 item.laser_crystal_bismuth.desc=铋-钐-铀-钍晶体基质 -item.laser_crystal_bismuth.name=铋-钐-铀-钍晶体基质激光晶体 -item.laser_crystal_cmb.desc=悬浮在CMB-Sa326异变铀金属合金晶格中的反Sa326元素 -item.laser_crystal_cmb.name=CMB-Sa326异变铀金属合金反物质激光晶体 -item.laser_crystal_co2.desc=被包裹在结晶的德什金属中的二氧化碳 -item.laser_crystal_co2.name=CO2-德什激光晶体 -item.laser_crystal_digamma.name=Ϝ迪伽马激光晶体 -item.laser_crystal_dnt.desc=双聚中子态素-Spark闪闪魔法 费米子超晶体 -item.laser_crystal_dnt.name=Spark闪闪魔法 激光晶体 +item.laser_crystal_bismuth.name=铋-钐-铀-钍激光晶体 +item.laser_crystal_cmb.desc=反Sa326被镶嵌在CMB-Sa326合金晶格 +item.laser_crystal_cmb.name=CMB-Sa326反物质激光晶体 +item.laser_crystal_co2.desc=二氧化碳被包裹在结晶的Desh中 +item.laser_crystal_co2.name=CO2-Desh激光晶体 +item.laser_crystal_digamma.name=Digamma迪伽马激光晶体 +item.laser_crystal_dnt.desc=双聚态中子-Spark费米子超晶体 +item.laser_crystal_dnt.name=Spark激光晶体 item.lead_gavel.name=铅槌 item.lemon.name="柠檬" item.letter.name=快捷邮件 @@ -2798,21 +2754,20 @@ item.loops.name=五彩麦圈 item.loot_10.name=10号导弹战利箱 item.loot_15.name=15号导弹战利箱 item.loot_misc.name=普通导弹战利箱 - item.magnet_circular.name=扁磁铁 item.magnet_dee.name=D型磁铁 item.magnetron.name=磁控管 item.man_core.name=钚核心 item.man_explosive.name=炸药 -item.man_igniter.name=炸弹点火装置 +item.man_igniter.name=点火器 item.man_kit.name=胖子 套件 item.marshmallow.name=穿在木棍上的棉花糖 item.mask_of_infamy.name=耻辱面具 -item.mask_piss.name=战壕版粗制防护面罩 -item.mask_rag.name=粗制防护面罩 +item.mask_piss.name=战壕面具 +item.mask_rag.name=粗糙防护面罩 item.matchstick.name=火柴 -item.mech_key.name=大银钥匙 -item.mech_key.desc=它充满了力量. +item.mech_key.name=大号银钥匙 +item.mech_key.desc=它充满力量。 item.mechanism_launcher_1.name=发射机构 item.mechanism_launcher_2.name=先进发射机构 item.mechanism_revolver_1.name=转轮机构 @@ -2826,31 +2781,31 @@ item.med_ptsd.name=PTSD治疗药物 item.med_schiziphrenia.name=抗精神分裂症药物 item.medal_liquidator.name=核废土清道夫勋章 item.meltdown_tool.name=达洛夫快速熔毁装置 -item.memespoon.name=§e花园园丁 +item.memespoon.name=§ee花园园丁 item.memory.name=item.null.name -item.mese_gavel.name=月神槌 -item.mese_pickaxe.name=月神镐 +item.mese_gavel.name=Mese槌 +item.mese_pickaxe.name=Mese镐 item.meteor_charm.name=陨石项链 item.meteor_remote.name=陨石召唤器 item.meteorite_sword.name=陨石剑 -item.meteorite_sword_seared.name=陨石剑 (炽热) -item.meteorite_sword_reforged.name=陨石剑 (重铸) -item.meteorite_sword_hardened.name=陨石剑 (硬化) -item.meteorite_sword_alloyed.name=陨石剑 (合金化) -item.meteorite_sword_machined.name=陨石剑 (机械加工) -item.meteorite_sword_treated.name=陨石剑 (治疗) -item.meteorite_sword_etched.name=陨石剑 (蚀刻) -item.meteorite_sword_bred.name=陨石剑 (增殖) -item.meteorite_sword_irradiated.name=陨石剑 (辐照处理) -item.meteorite_sword_fused.name=陨石剑 (熔融) -item.meteorite_sword_baleful.name=陨石剑 (B.F野火烧炼处理) +item.meteorite_sword_seared.name=陨石剑(烧焦) +item.meteorite_sword_reforged.name=陨石剑(重铸) +item.meteorite_sword_hardened.name=陨石剑(硬化) +item.meteorite_sword_alloyed.name=陨石剑(合金) +item.meteorite_sword_machined.name=陨石剑(机械加工) +item.meteorite_sword_treated.name=陨石剑(精制) +item.meteorite_sword_etched.name=陨石剑(刻蚀) +item.meteorite_sword_bred.name=陨石剑(增殖) +item.meteorite_sword_irradiated.name=陨石剑(辐照) +item.meteorite_sword_fused.name=陨石剑(熔融) +item.meteorite_sword_baleful.name=陨石剑(凶恶) item.mike_cooling_unit.name=氘冷却装置 item.mike_core.name=铀涂层氘罐 item.mike_deut.name=氘罐 item.mike_kit.name=常青藤麦克 套件 -item.mirror_tool.name=镜面角度调整工具 -item.mirror_tool.linked=已设置要对齐的太阳能蒸发塔位置! -item.mirror_tool.desc=右键太阳能蒸发塔以记录其位置.$然后再右击阳光反射镜来让其对准太阳能蒸发塔. +item.mirror_tool.name=定日镜调整工具 +item.mirror_tool.linked=设置对齐位置! +item.mirror_tool.desc=右键单击“太阳能锅炉”以记忆位置 $再单击“定日镜”可将其转向太阳能锅炉 item.missile_anti_ballistic.name=反弹道导弹 item.missile_assembly.name=小型导弹[待装配] item.missile_bhole.name=黑洞导弹 @@ -2863,8 +2818,8 @@ item.missile_cluster_strong.name=强化型集束导弹 item.missile_custom.name=定制导弹 item.missile_doomsday.name=末日导弹 item.missile_drill.name=掩体裂解者 -item.missile_emp.name=EMP电磁脉冲导弹 -item.missile_emp_strong.name=强化型EMP电磁脉冲导弹 +item.missile_emp.name=EMP导弹 +item.missile_emp_strong.name=强化型EMP导弹 item.missile_endo.name=吸热导弹 item.missile_exo.name=放热导弹 item.missile_generic.name=高爆导弹 @@ -2876,44 +2831,45 @@ item.missile_micro.name=战术核导弹 item.missile_nuclear.name=核导弹 item.missile_nuclear_cluster.name=热核导弹 item.missile_rain.name=炸弹雨 -item.missile_schrabidium.name=Sa326异变铀金属导弹 +item.missile_schrabidium.name=Sa326导弹 item.missile_shuttle.name=万金罗宾航天飞机 item.missile_skin_camo.name=导弹外壳:迷彩 -item.missile_skin_color.desc=我甚至再也找不到我的导弹了! +item.missile_skin_color.desc=我再也找不到我的导弹了! item.missile_skin_desert.name=导弹外壳:沙漠迷彩 -item.missile_skin_desert.desc=看起来像沙子, 尝起来像金属. +item.missile_skin_desert.desc=看起来像沙子,尝起来像金属。 item.missile_skin_flames.name=导弹外壳:火焰 -item.missile_skin_flames.desc=不同凡响! -item.missile_skin_manly_pink.name=导弹外壳:猛男骚粉 -item.missile_skin_manly_pink.desc=粉色, 最能体现猛♂男气概的颜色. +item.missile_skin_flames.desc=不同凡响的! +item.missile_skin_manly_pink.name=导弹外壳:猛男粉 +item.missile_skin_manly_pink.desc=粉色,最有男子气概的颜色。 item.missile_skin_metal.name=导弹外壳:全金属外壳 -item.missile_skin_metal.desc=用金属加固的金属板和金属螺栓. +item.missile_skin_metal.desc=金属板和金属螺栓,用金属加固。 item.missile_skin_orange_insulation.name=导弹外壳:橙色绝缘 -item.missile_skin_orange_insulation.desc=不是橙汁瓶;$也不要试图喝里面的东西. +item.missile_skin_orange_insulation.desc=不是橙汁瓶$不要试图喝里面的东西。 item.missile_skin_sleek.name=导弹外壳:IF-R&D -item.missile_skin_sleek.desc=V字形很酷! -item.missile_skin_soviet_glory.name=导弹外壳:牢不可破的苏联 -item.missile_skin_soviet_glory.desc=услуга перевода недоступна(翻译服务不可用) -item.missile_skin_soviet_stank.name=导弹外壳:不攻自破的苏联 -item.missile_skin_soviet_stank.desc=这个真的有60年代的味道. +item.missile_skin_sleek.desc=V字形很酷! +item.missile_skin_soviet_glory.name=导弹外壳:苏联荣耀 +item.missile_skin_soviet_glory.desc=услуга перевода недоступна +item.missile_skin_soviet_stank.name=导弹外壳:苏维埃不朽 +item.missile_skin_soviet_stank.desc=这个真的很有60年代的味道。 item.missile_soyuz.name=联盟-FG运载火箭 item.missile_soyuz_lander.name=联盟号轨道舱 -item.missile_soyuz_lander.desc=同时也是个蹩脚的着陆器! +item.missile_soyuz_lander.desc=劣质着陆器! item.missile_strong.name=强化型高爆导弹 item.missile_taint.name=污染导弹 -item.missile_volcano.name=地壳破坏者导弹 -item.missile_volcano.desc=利用核爆炸的威力,我们可以制造一座火山! -item.mold_base.name=空白铸造模具 +item.missile_volcano.name=构造导弹 +item.missile_volcano.desc=利用核爆的威力,我们可以召唤一座火山! +item.mold_base.name=毛坯铸造模具 item.mold.name=铸造模具 item.morning_glory.name=牵牛花 item.motor.name=马达 -item.motor_desh.name=德什制马达 +item.motor_bismuth.name=铋马达 +item.motor_desh.name=Desh马达 item.mp_c_1.name=1级导弹制导芯片 item.mp_c_2.name=2级导弹制导芯片 item.mp_c_3.name=3级导弹制导芯片 item.mp_c_4.name=4级导弹制导芯片 item.mp_c_5.name=5级导弹制导芯片 -item.mp_fuselage_10_15_balefire.name=10/15号弹体[BF燃料] +item.mp_fuselage_10_15_balefire.name=10/15号弹体[野火燃料] item.mp_fuselage_10_15_hydrogen.name=10/15号弹体[液氢] item.mp_fuselage_10_15_kerosene.name=10/15号弹体[煤油] item.mp_fuselage_10_15_solid.name=10/15号弹体[固体燃料] @@ -2955,10 +2911,10 @@ item.mp_fuselage_10_solid_sleek.name=10号弹体[固体燃料] item.mp_fuselage_10_solid_soviet_glory.name=10号弹体[固体燃料] item.mp_fuselage_10_xenon.name=10号弹体[氙] item.mp_fuselage_10_xenon_bhole.name=10号弹体[氙] -item.mp_fuselage_15_20_kerosene.name=15号/20 弹体[煤油] -item.mp_fuselage_15_20_kerosene_magnusson.name=15号/20 弹体[煤油] -item.mp_fuselage_15_20_solid.name=15号/20 弹体[固体燃料] -item.mp_fuselage_15_balefire.name=15号弹体[液氢] +item.mp_fuselage_15_20_kerosene.name=15/20号弹体[煤油] +item.mp_fuselage_15_20_kerosene_magnusson.name=15/20号弹体[煤油] +item.mp_fuselage_15_20_solid.name=15/20号弹体[固体燃料] +item.mp_fuselage_15_balefire.name=15号弹体[野火燃料] item.mp_fuselage_15_hydrogen.name=15号弹体[液氢] item.mp_fuselage_15_hydrogen_cathedral.name=15号弹体[液氢] item.mp_fuselage_15_kerosene.name=15号弹体[煤油] @@ -2980,7 +2936,7 @@ item.mp_fuselage_15_solid.name=15号弹体[固体燃料] item.mp_fuselage_15_solid_desh.name=15号弹体[固体燃料] item.mp_fuselage_15_solid_faust.name=15号弹体[固体燃料] item.mp_fuselage_15_solid_insulation.name=15号弹体[固体燃料] -item.mp_fuselage_15_solid_mimi.name=15号咪咪号弹体[固体燃料] +item.mp_fuselage_15_solid_mimi.name=15号弹体[固体燃料] item.mp_fuselage_15_solid_panorama.name=15号弹体[固体燃料] item.mp_fuselage_15_solid_roses.name=15号弹体[固体燃料] item.mp_fuselage_15_solid_silvermoonlight.name=15号弹体[固体燃料] @@ -2996,10 +2952,10 @@ item.mp_stability_15_thin.name=15号薄翼 item.mp_thruster_10_kerosene.name=10号液体燃料推进器 item.mp_thruster_10_solid.name=10号固体燃料推进器 item.mp_thruster_10_xenon.name=10号离子推进器 -item.mp_thruster_15_balefire.name=15号带核预热器的BF燃料推进器 -item.mp_thruster_15_balefire_large.name=15号带核预热器的BF燃料推进器[重型喷管] -item.mp_thruster_15_balefire_large_rad.name=15号带核预热器的BF燃料推进器[重型喷管] -item.mp_thruster_15_balefire_short.name=15号带核预热器的BF燃料推进器[简称] +item.mp_thruster_15_balefire.name=15号带核预热器的野火燃料推进器 +item.mp_thruster_15_balefire_large.name=15号带核预热器的野火燃料推进器[重型喷管] +item.mp_thruster_15_balefire_large_rad.name=15号带核预热器的野火燃料推进器[重型喷管-稀有] +item.mp_thruster_15_balefire_short.name=15号带核预热器的野火燃料推进器[缩短版] item.mp_thruster_15_hydrogen.name=15号液氢推进器 item.mp_thruster_15_hydrogen_dual.name=15号双喷管氢推进器 item.mp_thruster_15_kerosene.name=15号液体燃料推进器 @@ -3020,16 +2976,16 @@ item.mp_warhead_10_incendiary.name=10号燃烧弹头 item.mp_warhead_10_nuclear.name=10号微型核弹头 item.mp_warhead_10_nuclear_large.name=10号核弹头 item.mp_warhead_10_taint.name=10号污染弹头 -item.mp_warhead_15_balefire.name=15号烈火弹头 +item.mp_warhead_15_balefire.name=15号野火弹头 item.mp_warhead_15_boxcar.name=15号 车厢? item.mp_warhead_15_he.name=15号HE弹头 item.mp_warhead_15_incendiary.name=15号燃烧弹头 -item.mp_warhead_15_n2.name=15号N²炸弹 +item.mp_warhead_15_n2.name=15号N2炸弹 item.mp_warhead_15_nuclear.name=15号核弹头 -item.mp_warhead_15_nuclear_mimi.name=15号咪咪号弹头 +item.mp_warhead_15_nuclear_mimi.name=15号核弹头 item.mp_warhead_15_nuclear_shark.name=15号核弹头 item.mp_warhead_15_turbine.name=15号喷气发动机弹头 -item.mucho_mango.name=亚利桑那牌芒果汁 +item.mucho_mango.name=亚利桑那芒果味饮料 item.multi_kit.name=多用途炸弹 套件 item.multitool_beam.name=动力拳套[热射线] item.multitool_decon.name=动力拳套[净化] @@ -3042,29 +2998,27 @@ item.multitool_miner.name=动力拳套[采矿激光] item.multitool_silk.name=动力拳套[精准采集] item.multitool_sky.name=动力拳套[划破天际] item.mysteryshovel.name=易碎锹 - item.n2_charge.name=大型炸药 -item.neutrino_lens.name=中微子透镜 +item.neutrino_lens.name=中子透镜 item.neutron_reflector.name=中子反射板 item.niter.name=硝石粉 -item.no9.name=采矿头盔 -item.nossy_hat.name=资本家之帽 +item.no9.name=矿工头盔 +item.nossy_hat.name=华丽的帽子 item.nothing.name=没有东西 item.nuclear_waste.name=核废料 item.nuclear_waste_pearl.name=放射性珍珠 item.nuclear_waste_tiny.name=小撮核废料 -item.nuclear_waste_tiny.name=一小堆核废料 item.nuclear_waste_long.name=长半衰期核废料 -item.nuclear_waste_long_tiny.name=一小堆长半衰期核废料 -item.nuclear_waste_long_depleted.name=衰变的长半衰期核废料 -item.nuclear_waste_long_depleted_tiny.name=一小堆衰变的长半衰期核废料 +item.nuclear_waste_long_tiny.name=小撮长半衰期核废料 +item.nuclear_waste_long_depleted.name=腐化的长半衰期核废料 +item.nuclear_waste_long_depleted_tiny.name=小撮腐化的长半衰期核废料 item.nuclear_waste_short.name=短半衰期核废料 -item.nuclear_waste_short_tiny.name=一小堆短半衰期核废料 -item.nuclear_waste_short_depleted.name=衰变的短半衰期核废料 -item.nuclear_waste_short_depleted_tiny.name=一小堆衰变的短半衰期核废料 +item.nuclear_waste_short_tiny.name=小撮短半衰期核废料 +item.nuclear_waste_short_depleted.name=腐化的短半衰期核废料 +item.nuclear_waste_short_depleted_tiny.name=小撮腐化的短半衰期核废料 item.nuclear_waste_vitrified.name=玻璃化核废料 -item.nuclear_waste_vitrified_tiny.name=一小堆玻璃化核废料 -item.nugget.name=炸鸡块 +item.nuclear_waste_vitrified_tiny.name=小撮玻璃化核废料 +item.nugget.name=鸡块 item.nugget_actinium.name=锕-227粒 item.nugget_am_mix.name=反应堆级镅粒 item.nugget_am241.name=镅-241粒 @@ -3072,34 +3026,34 @@ item.nugget_am242.name=镅-242粒 item.nugget_americium_fuel.name=镅燃料粒 item.nugget_arsenic.name=砷粒 item.nugget_au198.name=金-198粒 -item.nugget_australium.name=奥金粒 -item.nugget_australium_greater.name=富集奥金粒 -item.nugget_australium_lesser.name=贫化奥金粒 +item.nugget_australium.name=奥斯粒 +item.nugget_australium_greater.name=富集奥斯粒 +item.nugget_australium_lesser.name=贫化奥斯粒 item.nugget_beryllium.name=铍粒 item.nugget_bismuth.name=铋粒 item.nugget_co60.name=钴-60粒 item.nugget_cobalt.name=钴粒 item.nugget_daffergon.name=达夫贡粒 -item.nugget_desh.name=德什粒 +item.nugget_desh.name=Desh粒 item.nugget_dineutronium.name=双聚中子态素粒 -item.nugget_euphemium.name=Ep元素粒 -item.nugget_euphemium.desc=一小块粉红色的金属.$它各方面具体的性质还不清楚,$务 必 小 心 地 处 理 它. -item.nugget_gh336.name=𪵧-336粒 -item.nugget_gh336.desc=𬭳的同事. -item.nugget_hes.name=高浓度Sa326异变铀金属燃料粒 +item.nugget_euphemium.name=Ep粒 +item.nugget_euphemium.desc=一小块粉红色的金属$它的属性仍然未知,请小心处理。 +item.nugget_gh336.name=Gh336粒 +item.nugget_gh336.desc=钅喜的同事。 +item.nugget_hes.name=高浓度Sa326燃料粒 item.nugget_lead.name=铅粒 -item.nugget_les.name=低浓度Sa326异变铀金属燃料粒 +item.nugget_les.name=低浓度Sa326燃料粒 item.nugget_mercury_tiny.name=一小滴水银 item.nugget_mercury.name=一滴水银 item.nugget_mox_fuel.name=MOX燃料粒 -item.nugget_mox_fuel.desc=摩西说: §l逃税.§r +item.nugget_mox_fuel.desc=摩西说:§l逃税。§r item.nugget_neptunium.name=镎粒 item.nugget_neptunium_fuel.name=镎燃料粒 -item.nugget_osmiridium.name=锇铱粒 +item.nugget_osmiridium.name=铱锇粒 item.nugget_pb209.name=铅-209粒 item.nugget_plutonium.name=钚粒 item.nugget_plutonium_fuel.name=钚燃料粒 -item.nugget_polonium.name=钋-210粒 +item.nugget_polonium.name=钋粒 item.nugget_pu_mix.name=反应堆级钚粒 item.nugget_pu238.name=钚-238粒 item.nugget_pu239.name=钚-239粒 @@ -3107,76 +3061,81 @@ item.nugget_pu240.name=钚-240粒 item.nugget_pu241.name=钚-241粒 item.nugget_ra226.name=镭-226粒 item.nugget_reiium.name=魏丹粒 -item.nugget_schrabidium.name=Sa-326异变铀金属粒 -item.nugget_schrabidium_fuel.name=Sa-326异变铀金属燃料粒 -item.nugget_solinium.name=Sa-327索林粒 +item.nugget_schrabidium.name=Sa326粒 +item.nugget_schrabidium_fuel.name=Sa326燃料粒 +item.nugget_solinium.name=Sa327粒 item.nugget_sr90.name=锶-90粒 item.nugget_tantalium.name=钽粒 -item.nugget_tantalium.desc='Tantalum' -item.nugget_tantalium.desc.P11=也写作这个. +item.nugget_tantalium.desc=“钽” +item.nugget_tantalium.desc.P11=又名钽。 item.nugget_technetium.name=锝-99粒 -item.nugget_th232.name=钍-232粒 +item.nugget_th232.name=钍232粒 item.nugget_thorium_fuel.name=钍燃料粒 item.nugget_u233.name=铀-233粒 item.nugget_u235.name=铀-235粒 item.nugget_u238.name=铀-238粒 -item.nugget_unobtainium.name=阿诺布汀粒 +item.nugget_unobtainium.name=难得素粒 item.nugget_uranium.name=铀粒 item.nugget_uranium_fuel.name=铀燃料粒 item.nugget_verticium.name=韦德赛粒 item.nugget_weidanium.name=魏丹粒 - +item.nugget_zirconium.name=锆碎片 item.nuke_advanced_kit.name=原子学高级工具箱 item.nuke_commercially_kit.name=商用原子学工具箱 item.nuke_electric_kit.name=电子工程师工具箱 item.nuke_starter_kit.name=原子学入门工具箱 -item.nugget_zirconium.name=锆碎片 item.oil_canola.name=菜籽油 item.oil_detector.name=石油探测仪 -item.oil_detector.desc1=右击以扫描下方有无油田.. -item.oil_detector.desc2=该勘测器只能扫描到较大的油田! -item.oil_detector.bullseye=油田就在正下方! -item.oil_detector.detected=检测到油田! -item.oil_detector.noOil=未发现油田. -item.oil_tar.coal.name=煤焦油块 -item.oil_tar.crude.name=焦油块 -item.oil_tar.crack.name=裂化焦油块 +item.oil_detector.desc1=单击右键扫描地下是否存在油田 +item.oil_detector.desc2=探测仪只会发现大片油田 +item.oil_detector.bullseye=正下方发现油田! +item.oil_detector.detected=附近存在油田 +item.oil_detector.noOil=未发现油田 +item.oil_tar.coal.name=煤焦油 +item.oil_tar.crude.name=焦油 +item.oil_tar.crack.name=裂化焦油 item.oil_tar.paraffin.name=石蜡 -item.oil_tar.wax.name=氯化石油蜡 -item.oil_tar.wood.name=木焦油块 +item.oil_tar.wax.name=氯化石蜡 +item.oil_tar.wood.name=木馏油 item.ore.asbestos=石棉 item.ore.borax=硼砂 +item.ore.chlorocalcite=氯方解石 item.ore.copper=铜 item.ore.gold=金 item.ore.iron=铁 item.ore.niobium=铌 item.ore.titanium=钛 item.ore.tungsten=钨 -item.ore_bedrock.name=%s 基岩矿粉 -item.ore_byproduct.b_aluminium.name=结晶铝碎片 -item.ore_byproduct.b_bismuth.name=结晶铋碎片 -item.ore_byproduct.b_calcium.name=结晶钙碎片 -item.ore_byproduct.b_copper.name=结晶铜碎片 -item.ore_byproduct.b_iron.name=结晶铁碎片 -item.ore_byproduct.b_lead.name=结晶铅碎片 -item.ore_byproduct.b_lithium.name=结晶锂碎片 -item.ore_byproduct.b_silicon.name=结晶硅碎片 -item.ore_byproduct.b_sulfur.name=结晶硫碎片 -item.ore_byproduct.b_titanium.name=结晶钛碎片 -item.ore_centrifuged.name=离心 %s 基岩矿粉 -item.ore_cleaned.name=洗净 %s 基岩矿粉 -item.ore_deepcleaned.name=深度清洁 %s 基岩矿粉 -item.ore_enriched.name=富集 %s 基岩矿粉 -item.ore_nitrated.name=硝化 %s 基岩矿粉 -item.ore_nitrocrystalline.name=硝化结晶 %s 基岩矿粉 -item.ore_purified.name=纯化 %s 基岩矿粉 -item.ore_raadcleaned.name=辐照清洁 %s 基岩矿粉 -item.ore_seared.name=灼烧 %s 基岩矿粉 -item.ore_separated.name=分离提纯 %s 基岩矿粉 +item.ore.thorium=钍 +item.ore.uranium=铀 +item.ore_bedrock.name=基岩%s矿 +item.ore_byproduct.b_aluminium.name=铝晶体碎片 +item.ore_byproduct.b_bismuth.name=铋晶体碎片 +item.ore_byproduct.b_calcium.name=钙晶体碎片 +item.ore_byproduct.b_copper.name=铜晶体碎片 +item.ore_byproduct.b_iron.name=铁晶体碎片 +item.ore_byproduct.b_lead.name=铅晶体碎片 +item.ore_byproduct.b_lithium.name=锂晶体碎片 +item.ore_byproduct.b_polonium.name=钋晶体碎片 +item.ore_byproduct.b_radium.name=镭晶体碎片 +item.ore_byproduct.b_silicon.name=硅晶体碎片 +item.ore_byproduct.b_sulfur.name=硫晶体碎片 +item.ore_byproduct.b_technetium.name=锝晶体碎片 +item.ore_byproduct.b_titanium.name=钛晶体碎片 +item.ore_byproduct.b_uranium.name=铀晶体碎片 +item.ore_centrifuged.name=离心%s矿 +item.ore_cleaned.name=清洁%s矿 +item.ore_deepcleaned.name=深清洁%s矿 +item.ore_enriched.name=富集%s矿 +item.ore_nitrated.name=硝化%s矿 +item.ore_nitrocrystalline.name=亚硝基结晶%s矿 +item.ore_purified.name=净化%s矿 +item.ore_radcleaned.name=经辐射清洁的%s矿 +item.ore_seared.name=灼热的%s矿 +item.ore_separated.name=分离的%s矿 item.overfuse.name=奇异螺丝刀 -item.overfuse.desc=说啥? +item.overfuse.desc=说啥? item.oxy_mask.name=氧气面罩 - item.paa_boots.name=PaA "好鞋" item.paa_legs.name=PaA加固护腿 item.paa_plate.name=PaA加固护胸 @@ -3184,10 +3143,10 @@ item.padlock.name=挂锁 item.padlock_reinforced.name=加强挂锁 item.padlock_rusty.name=生锈的挂锁 item.padlock_unbreakable.name=牢不可破的挂锁 -item.pads_rubber.name=橡胶护垫 -item.pads_slime.name=粘液护垫 -item.pads_static.name=静力护垫 -item.pancake.name=用废金属, 钉子和宝石粉做成的薄饼 +item.pads_rubber.name=橡胶垫 +item.pads_slime.name=粘液垫 +item.pads_static.name=静电垫 +item.pancake.name=用废金属、螺栓和宝石粉做成的薄饼 item.part_beryllium.name=铍粉盒 item.part_carbon.name=碳粉盒 item.part_copper.name=铜粉盒 @@ -3196,135 +3155,134 @@ item.part_generic.piston_hydraulic.name=液压活塞 item.part_generic.piston_pneumatic.name=气动活塞 item.part_lithium.name=锂粉盒 item.part_plutonium.name=钚粉盒 -item.particle_aelectron.name=正电子密封胶囊 -item.particle_amat.name=反物质密封胶囊 -item.particle_aproton.name=反质子密封胶囊 -item.particle_aschrab.name=反异变铀金属粒子密封胶囊 -item.particle_copper.name=铜离子密封胶囊 -item.particle_dark.name=暗物质密封胶囊 -item.particle_digamma.name=§cϝ伽马粒子§r -item.particle_empty.name=空的粒子密封胶囊 -item.particle_higgs.name=希格斯玻色子密封胶囊 -item.particle_hydrogen.name=氢离子密封胶囊 -item.particle_lead.name=铅离子密封胶囊 -item.particle_lutece.name=镥准粒子密封胶囊 -item.particle_muon.name=μ介子密封胶囊 -item.particle_sparkticle.name=闪闪粒子密封胶囊 -item.particle_strange.name=奇异夸克密封胶囊 +item.particle_aelectron.name=正电子胶囊 +item.particle_amat.name=反物质胶囊 +item.particle_aproton.name=反质子胶囊 +item.particle_aschrab.name=反Sa326胶囊 +item.particle_copper.name=铜离子胶囊 +item.particle_dark.name=暗物质胶囊 +item.particle_digamma.name=§c迪伽马粒子胶囊§r +item.particle_empty.name=空粒子胶囊 +item.particle_higgs.name=希格斯玻色子胶囊 +item.particle_hydrogen.name=氢离子胶囊 +item.particle_lead.name=铅离子胶囊 +item.particle_lutece.name=Lutece镥准粒子胶囊 +item.particle_muon.name=μ介子胶囊 +item.particle_sparkticle.name=Spark粒子胶囊 +item.particle_strange.name=奇夸克胶囊 item.particle_tachyon.name=超光速粒子密封胶囊 -item.parts_legendary.name=传奇的零件 +item.parts_legendary.name=传奇零件 item.peas.name=豌豆 -item.pch.name=马蹄锤 item.pedestal_steel.name=钢底座 -item.pellet_advanced.name=高级Watz瓦茨发电塔性能增强剂 +item.pellet_advanced.name=高级Watz性能增强剂 item.pellet_antimatter.name=反物质团 item.pellet_beryllium.name=铍慢化靶丸 item.pellet_buckshot.name=铅弹丸 -item.pellet_canister.name=榴霰弹 +item.pellet_canister.name=榴霰弹弹丸 item.pellet_charged.name=电离粒子 -item.pellet_chlorophyte.name=绿藻颗粒 -item.pellet_claws.name=锋利的金属破片 +item.pellet_chlorophyte.name=叶绿弹丸 +item.pellet_claws.name=金属利爪 item.pellet_cluster.name=爆炸弹丸 -item.pellet_cluster.desc=用于多用途炸弹:$增加额外的爆炸威力! +item.pellet_cluster.desc=用于多用途炸弹:$增加了一些额外的爆炸力! item.pellet_coal.name=致密煤 item.pellet_coolant.name=冷却液组 item.pellet_flechette.name=箭霰弹 item.pellet_gas.name=毒气筒 -item.pellet_gas.desc=用于多用途炸弹:$*咳咳 咳* 舅...舅舅偶! -item.pellet_hes.name=HES Watz瓦茨发电塔靶丸 +item.pellet_gas.desc=用于多用途炸弹:$*咳嗽*请停止! +item.pellet_hes.name=HES Watz靶丸 item.pellet_lead.name=铅反射靶丸 -item.pellet_les.name=LES Watz瓦茨发电塔靶丸 -item.pellet_mercury.name=汞颗粒 -item.pellet_mes.name=MES Watz瓦茨发电塔靶丸 -item.pellet_meteorite.name=陨石颗粒 -item.pellet_neptunium.name=镎Watz瓦茨发电塔靶丸 -item.pellet_rtg.name=钚-238RTG放射性同位素燃料靶丸 -item.pellet_rtg.desc=可无限提供能量的RTG放射性同位素燃料靶丸!(基本上) -item.pellet_rtg_actinium.name=锕-227RTG放射性同位素燃料靶丸 -item.pellet_rtg_actinium.desc=散发着蓝色和β射线的辉光 -item.pellet_rtg_americium.name=镅-241RTG放射性同位素燃料靶丸 -item.pellet_rtg_americium.desc=稀有可靠的优质古镅! -item.pellet_rtg_berkelium.name=锫RTG放射性同位素燃料靶丸 +item.pellet_les.name=LES Watz靶丸 +item.pellet_mercury.name=水银弹丸 +item.pellet_mes.name=MES Watz靶丸 +item.pellet_meteorite.name=陨石弹丸 +item.pellet_neptunium.name=镎Watz靶丸 +item.pellet_rtg.name=钚238放射性同位素燃料靶丸 +item.pellet_rtg.desc=无限能量的RTG靶丸!(差不多) +item.pellet_rtg_actinium.name=锕放射性同位素燃料靶丸 +item.pellet_rtg_actinium.desc= +item.pellet_rtg_americium.name=镅-241放射性同位素燃料靶丸 +item.pellet_rtg_americium.desc=稀有可靠,好的老镅! +item.pellet_rtg_berkelium.name=锫放射性同位素燃料靶丸 item.pellet_rtg_berkelium.desc= -item.pellet_rtg_cobalt.name=钴-60RTG放射性同位素燃料靶丸 -item.pellet_rtg_cobalt.desc=作为RTG放射性同位素燃料靶丸不是最好的, 但是非常适合伽马辐射! -item.pellet_rtg_depleted.bismuth.name=衰竭的铋RTG放射性同位素燃料靶丸 -item.pellet_rtg_depleted.lead.name=衰竭的铅RTG放射性同位素燃料靶丸 -item.pellet_rtg_depleted.neptunium.name=衰竭的镎RTG放射性同位素燃料靶丸 -item.pellet_rtg_depleted.mercury.name=衰竭的汞RTG放射性同位素燃料靶丸 -item.pellet_rtg_depleted.nickel.name=衰竭的镍RTG放射性同位素燃料靶丸 -item.pellet_rtg_depleted.zirconium.name=衰竭的锆RTG放射性同位素燃料靶丸 -item.pellet_rtg_lead.name=铅-209RTG放射性同位素燃料靶丸 -item.pellet_rtg_lead.desc=接触会立即导致死亡. -item.pellet_rtg_gold.name=金-198RTG放射性同位素燃料靶丸 -item.pellet_rtg_gold.desc=由稀有, 高度不稳定的金同位素制成. -item.pellet_rtg_polonium.name=钋-210RTG放射性同位素燃料靶丸 -item.pellet_rtg_polonium.desc=更强力的RTG靶丸,由最优质的钋制成! -item.pellet_rtg_strontium.name=锶-90RTG放射性同位素燃料靶丸 -item.pellet_rtg_strontium.desc=为加利福尼亚州所知... -item.pellet_rtg_radium.name=镭-226RTG放射性同位素燃料靶丸 -item.pellet_rtg_radium.desc=伟大的激发式放射性同位素燃料靶丸, 来自全天然镭! -item.pellet_rtg_weak.name=贫铀RTG放射性同位素燃料靶丸 -item.pellet_rtg_weak.desc=更廉价但更弱的弹丸, 现在含有更多的 U238! -item.pellet_schrabidium.name=纯Sa326异变铀金属Watz瓦茨发电塔靶丸 +item.pellet_rtg_cobalt.name=钴-60放射性同位素燃料靶丸 +item.pellet_rtg_cobalt.desc=不是最好的RTG,但对伽马辐射很好! +item.pellet_rtg_depleted.bismuth.name=枯竭铋放射性同位素燃料靶丸 +item.pellet_rtg_depleted.lead.name=枯竭铅放射性同位素燃料靶丸 +item.pellet_rtg_depleted.neptunium.name=枯竭镎放射性同位素燃料靶丸 +item.pellet_rtg_depleted.mercury.name=枯竭汞放射性同位素燃料靶丸 +item.pellet_rtg_depleted.nickel.name=枯竭镍放射性同位素燃料靶丸 +item.pellet_rtg_depleted.zirconium.name=枯竭锆放射性同位素燃料靶丸 +item.pellet_rtg_lead.name=铅-209 放射性同位素燃料靶丸 +item.pellet_rtg_lead.desc=接触会导致立即死亡。 +item.pellet_rtg_gold.name=金-198放射性同位素燃料靶丸 +item.pellet_rtg_gold.desc=由稀有的、高度不稳定的金同位素制成。 +item.pellet_rtg_polonium.name=钋210放射性同位素燃料靶丸 +item.pellet_rtg_polonium.desc=更多粉末状RTG靶丸,由最好的钋制成! +item.pellet_rtg_strontium.name=锶-90放射性同位素燃料靶丸 +item.pellet_rtg_strontium.desc= +item.pellet_rtg_radium.name=镭-226放射性同位素燃料靶丸 +item.pellet_rtg_radium.desc=伟大的启动靶丸,来自全天然镭! +item.pellet_rtg_weak.name=贫铀放射性同位素燃料靶丸 +item.pellet_rtg_weak.desc=更便宜更弱的靶丸,含有更多的铀238! +item.pellet_schrabidium.name=纯Sa326Watz靶丸 item.photo_panel.name=光伏板 -item.pile_rod_boron.name=芝加哥反应堆控制棒 -item.pile_rod_boron.desc=§9[中子吸收棒]$§e单击以切换 +item.pile_rod_boron.name=芝加哥反应堆 控制棒 +item.pile_rod_boron.desc=§9[中子吸收器]$§E单击以切换 item.pile_rod_detector.name=芝加哥反应堆控制/探测棒 item.pile_rod_detector.desc=§9[中子探测器/吸收器]$§e使用拆弹器增加/减少中子通量限值$§e使用螺丝刀检查中子通量 item.pile_rod_lithium.name=芝加哥反应堆锂燃料棒 item.pile_rod_lithium.desc=§a[可增殖燃料棒]$§e使用手钻检查棒芯 -item.pile_rod_plutonium.name=芝加哥反应堆钚棒 +item.pile_rod_plutonium.name=芝加哥反应堆 钚棒 item.pile_rod_plutonium.desc=§d[中子源棒] item.pile_rod_pu239.name=芝加哥反应堆增殖铀棒 -item.pile_rod_pu239.desc=§a[可反应核燃料]$§e富含钚-239. -item.pile_rod_source.name=芝加哥反应堆镭226-铍中子源 +item.pile_rod_pu239.desc=§a[可反应核燃料]$§e富含钚-239 +item.pile_rod_source.name=芝加哥反应堆 镭226-铍中子源 item.pile_rod_source.desc=§d[中子源棒] -item.pile_rod_uranium.name=芝加哥反应堆铀棒 +item.pile_rod_uranium.name=芝加哥反应堆 铀棒 item.pile_rod_uranium.desc=§a[可反应核燃料]$§e使用手钻取堆芯样本 item.pill_iodine.name=碘丸 -item.pill_iodine.desc=移除身上所有的负面效果 +item.pill_iodine.desc=消除负面buff item.pill_herbal.name=草药膏 item.pill_herbal.desc=有效治疗肺部疾病和轻度辐射中毒$有副作用 -item.pill_red.name=红药丸 +item.pill_red.name=红色药丸 item.pin.name=发夹 -item.pin.desc=撬开常规锁的标准成功率约为10%%. +item.pin.desc=“*未修改*撬开标准锁的成功率约为10%。 item.pipes_steel.name=钢管 -item.pipes_steel.desc=为了逃税,所以造价如此高昂. -item.piston_selenium.name=星型内燃发电机活塞 -item.piston_set_desh.name=德什制活塞组 -item.piston_set_dura.name=高速钢制活塞组 -item.piston_set_starmetal.name=星辉金属制活塞组 -item.piston_set_steel.name=钢制活塞组 +item.pipes_steel.desc=为了避免合成冲突,所以造价如此高昂 +item.piston_selenium.name=星型发动机活塞 +item.piston_set_desh.name=Desh活塞组 +item.piston_set_dura.name=高速钢活塞组 +item.piston_set_starmetal.name=星辉活塞组 +item.piston_set_steel.name=钢活塞组 item.plan_c.name=C计划 item.plan_c.desc=致死 -item.plant_item.mustardwillow.name=芥柳叶 +item.plant_item.mustardwillow.name=芥子柳叶 item.plant_item.rope.name=麻绳 item.plant_item.tobacco.name=烟叶 item.plate_advanced_alloy.name=高级合金板 item.plate_aluminium.name=铝板 -item.plate_armor_ajr.name=§8§l§n[铁蹄]§r装甲板 +item.plate_armor_ajr.name=铁皮装甲板 item.plate_armor_dnt.name=DNT装甲板 item.plate_armor_fau.name=Fau装甲板 -item.plate_armor_hev.name=反应式装甲板 -item.plate_armor_lunar.name=§b§l§m[月 神]§r 装甲板 -item.plate_armor_titanium.name=钛制装甲板 +item.plate_armor_hev.name=反应装甲板 +item.plate_armor_lunar.name=月球镀层 +item.plate_armor_titanium.name=钛装甲板 item.plate_bismuth.name=铋复合板 -item.plate_bismuth.desc=伙计们,这是铋的炼金术符号,我发誓. -item.plate_cast.name= %s 制铸造板 +item.plate_bismuth.desc=伙计们,这是铋的炼金术符号,我发誓。 +item.plate_cast.name=铸造%s板 item.plate_combine_steel.name=CMB钢板 item.plate_copper.name=铜板 item.plate_dalekanium.name=愤怒的金属 -item.plate_desh.name=德什复合板 +item.plate_desh.name=Desh复合板 item.plate_dineutronium.name=双聚中子态素复合板 -item.plate_euphemium.name=Ep元素复合板 -item.plate_fuel_mox.name=MOX板状燃料元件 -item.plate_fuel_pu238be.name=钚238-铍板状燃料元件 -item.plate_fuel_pu239.name=高浓缩度钚-239板状燃料元件 -item.plate_fuel_ra226be.name=镭226-铍板状燃料元件 -item.plate_fuel_sa326.name=高浓缩度Sa326板状燃料元件 -item.plate_fuel_u233.name=高浓缩度铀-233板状燃料元件 -item.plate_fuel_u235.name=高浓缩度铀-235板状燃料元件 +item.plate_euphemium.name=Ep复合板 +item.plate_fuel_mox.name=MOX 板状燃料 +item.plate_fuel_pu238be.name=钚238-铍 板状燃料 +item.plate_fuel_pu239.name=高浓度钚-239 板状燃料 +item.plate_fuel_ra226be.name=镭226-铍 板状燃料 +item.plate_fuel_sa326.name=高浓度Sa326 板状燃料 +item.plate_fuel_u233.name=高浓度铀-233 板状燃料 +item.plate_fuel_u235.name=高浓度铀-235 板状燃料 item.plate_gold.name=金板 item.plate_iron.name=铁板 item.plate_kevlar.name=凯夫拉陶瓷复合材料 @@ -3333,7 +3291,7 @@ item.plate_mixed.name=合金板 item.plate_paa.name=PaA合金板 item.plate_polymer.name=绝缘体 item.plate_saturnite.name=土星板 -item.plate_schrabidium.name=Sa326异变铀金属板 +item.plate_schrabidium.name=Sa326板 item.plate_steel.name=钢板 item.plate_titanium.name=钛板 item.polaroid.name=偏光片 @@ -3342,7 +3300,7 @@ item.powder_actinium_tiny.name=小撮锕粉 item.powder_advanced_alloy.name=高级合金粉 item.powder_aluminium.name=铝粉 item.powder_asbestos.name=石棉粉 -item.powder_asbestos.desc=§o\"我就闻亿下..嗯,嗯..喔哦哦哦哦哦!\"§r +item.powder_asbestos.desc=§o\"Sniffffffff- MHHHHHHMHHHHHHHHH\"§r item.powder_astatine.name=砹粉 item.powder_at209.name=砹-209粉 item.powder_au198.name=金-198粉 @@ -3360,6 +3318,7 @@ item.powder_caesium.name=铯粉 item.powder_calcium.name=钙粉 item.powder_cerium.name=铈粉 item.powder_cerium_tiny.name=小撮铈粉 +item.powder_chlorocalcite.name=氯方解石 item.powder_chlorophyte.name=叶绿粉 item.powder_cloud.name=云粉末 item.powder_co60.name=钴-60粉 @@ -3367,30 +3326,30 @@ item.powder_coal.name=煤粉 item.powder_coal_tiny.name=小撮煤粉 item.powder_cobalt.name=钴粉 item.powder_cobalt_tiny.name=小撮钴粉 -item.powder_coltan.name=纯化钽铁矿 -item.powder_coltan_ore.name=粉碎钶钽铁矿石 +item.powder_coltan.name=纯钽铁矿 +item.powder_coltan_ore.name=粉碎的钶钽铁矿石 item.powder_combine_steel.name=CMB钢粉 item.powder_copper.name=铜粉 item.powder_cs137.name=铯-137粉 item.powder_cs137_tiny.name=小撮铯-137粉 item.powder_daffergon.name=达夫贡粉 -item.powder_desh.name=德什粉 -item.powder_desh_mix.name=德什混合物 -item.powder_desh_ready.name=德什Ready™混合物 +item.powder_desh.name=Desh粉 +item.powder_desh_mix.name=Desh混合物 +item.powder_desh_ready.name=DeshReady混合物 item.powder_diamond.name=钻石粉 item.powder_dineutronium.name=双聚中子态素粉 item.powder_dura_steel.name=高速钢粉 item.powder_emerald.name=绿宝石粉 -item.powder_euphemium.name=Ep元素粉 +item.powder_euphemium.name=Ep粉 +item.powder_euphemium.desc=粉红色$尝起来像草莓。 item.powder_fertilizer.name=工业肥料 -item.powder_euphemium.desc=粉色的粉末..$尝起来像草莓. item.powder_fire.name=火焰粉 -item.powder_fire.desc=用于多用途炸弹:$燃烧弹很有趣! -item.powder_flux.name=助焊剂 +item.powder_fire.desc=用于多用途炸弹:燃烧弹很有趣! +item.powder_flux.name=助熔剂 item.powder_gold.name=金粉 item.powder_i131.name=碘-131粉 item.powder_i131_tiny.name=小撮碘-131粉 -item.powder_ice.name=超低温粉 +item.powder_ice.name=冷冻粉 item.powder_impure_osmiridium.name=不纯铱锇粉 item.powder_iodine.name=碘粉 item.powder_iron.name=铁粉 @@ -3410,32 +3369,32 @@ item.powder_neodymium_tiny.name=小撮钕粉 item.powder_neptunium.name=镎粉 item.powder_niobium.name=铌粉 item.powder_niobium_tiny.name=小撮铌粉 -item.powder_nitan_mix.name=Nitan尼塔姆混合物 +item.powder_nitan_mix.name=Nitan混合物 item.powder_paleogenite.name=古近纪岩石粉末 item.powder_paleogenite_tiny.name=小撮古近纪岩石粉末 item.powder_plutonium.name=钚粉 item.powder_poison.name=剧毒粉 -item.powder_poison.desc=用于多用途炸弹:$警告: 化学毒性! -item.powder_polonium.name=钋-210粉 +item.powder_poison.desc=用于多用途炸弹:警告:有毒! +item.powder_polonium.name=钋粉 item.powder_polymer.name=聚合物粉 item.powder_power.name=能量粉 item.powder_quartz.name=石英粉 item.powder_ra226.name=镭-226粉 item.powder_red_copper.name=紫铜粉 item.powder_reiium.name=雷恩粉 -item.powder_sawdust.name=锯屑 -item.powder_schrabidate.name=Sa326元素酸化铁粉末 -item.powder_schrabidium.name=Sa326异变铀金属粉 +item.powder_sawdust.name=锯末 +item.powder_schrabidate.name=Sa酸铁粉 +item.powder_schrabidium.name=Sa326粉 item.powder_semtex_mix.name=塞姆汀塑胶炸药混合物 -item.powder_spark_mix.name=Spark闪闪魔法混合物 +item.powder_spark_mix.name=Spark闪闪奥术混合物 item.powder_sr90.name=锶-90粉 -item.powder_sr90_tiny.name=小撮锶-90粉 +item.powder_sr90_tiny.name=小撮锶-90粉末 item.powder_steel.name=钢粉 item.powder_steel_tiny.name=小撮钢粉 item.powder_strontium.name=锶粉 item.powder_tantalium.name=钽粉 -item.powder_tantalium.desc='Tantalum' -item.powder_tantalium.desc.P11=也写作这个. +item.powder_tantalium.desc=“钽” +item.powder_tantalium.desc.P11=又名钽。 item.powder_tcalloy.name=锝-钢粉 item.powder_tektite.name=熔融石粉 item.powder_tennessine.name=Ts粉 @@ -3443,7 +3402,7 @@ item.powder_thermite.name=铝热剂 item.powder_thorium.name=钍粉 item.powder_titanium.name=钛粉 item.powder_tungsten.name=钨粉 -item.powder_unobtainium.name=阿诺布汀粉 +item.powder_unobtainium.name=难得素粉 item.powder_uranium.name=铀粉 item.powder_verticium.name=韦德赛粉 item.powder_weidanium.name=魏丹粉 @@ -3451,7 +3410,7 @@ item.powder_xe135.name=氙-135粉 item.powder_xe135_tiny.name=小撮氙-135粉 item.powder_yellowcake.name=黄饼 item.powder_zirconium.name=锆粉 -item.power_net_tool.name=电网分析工具 +item.power_net_tool.name=电缆网络分析工具 item.primer_357.name=.357马格南底火[x24] item.primer_44.name=.44马格南底火[x24] item.primer_50.name=大口径底火[x12] @@ -3460,104 +3419,104 @@ item.primer_buckshot.name=鹿弹底火[x12] item.protection_charm.name=守护项链 item.prototype_kit.name=原型 套件 item.pudding.name=布丁 -item.quartz_plutonium.name=冥王星石英 +item.quartz_plutonium.name=深成石英 item.radaway.name=消辐宁 item.radaway_flush.name=超级消辐宁 item.radaway_strong.name=强效消辐宁 item.radx.name=防辐射药 -item.radx.desc=增加0.2(37%%)的抗辐射能力,持续3分钟 -item.rag.name=破布 -item.rag_damp.name=湿破布 -item.rag_piss.name=尿湿润的破布 -item.rbmk_fuel_balefire.name=RBMK石墨式反应堆野火燃料棒 -item.rbmk_fuel_balefire_gold.name=激活态金-198 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_drx.name=§cϜ迪伽马粒子 RBMK石墨式反应堆燃料棒§r -item.rbmk_fuel_empty.name=空 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_flashlead.name=激活态铅 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_hea241.name=HEA-241 高浓缩度镅-241 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_hea242.name=HEA-242 高浓缩度镅-242 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_heaus.name=HEAus 高浓缩度奥金 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_hen.name=HEN 高浓缩度镎-237 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_hes.name=HES 高浓缩度Sa-326 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_hep.name=HEP-239 高浓缩度钚-239 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_hep241.name=HEP-241 高浓缩度钚-241 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_heu233.name=HEU-233 高浓缩度铀-233 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_heu235.name=HEU-235 高浓缩度铀-235 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_lea.name=LEA 低浓缩度镅-242 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_leaus.name=LEAus 低浓缩度奥金 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_lep.name=LEP 低浓缩度钚-239 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_les.name=LES 低浓缩度Sa-326 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_mea.name=MEA 中浓缩度镅-242 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_men.name=MEN 中浓缩度镎-237 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_mep.name=MEP 中浓缩度钚-239 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_mes.name=MES 中浓缩度Sa-326 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_meu.name=MEU 中浓缩度铀-235 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_mox.name=MOX 钚-铀混合RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_po210be.name=钋210-铍RBMK石墨式反应堆中子源 -item.rbmk_fuel_pu238be.name=钚238-铍RBMK石墨式反应堆中子源 -item.rbmk_fuel_ra226be.name=镭226-铍RBMK石墨式反应堆中子源 -item.rbmk_fuel_thmeu.name=ThMEU 中浓缩度铀-235导向钍 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_ueu.name=NU 未浓缩铀 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_zfb_am_mix.name=ZFB 锆混合反应堆级镅快速增殖式RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_zfb_bismuth.name=ZFB 锆混合铋快速增殖式RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_zfb_pu241.name=ZFB 锆混合钚-241快速增殖式RBMK石墨式反应堆燃料棒 -item.rbmk_lid.name=RBMK石墨式反应堆覆盖层 -item.rbmk_lid_glass.name=RBMK石墨式反应堆玻璃覆盖层 +item.radx.desc=在3分钟内增加0.2(37%)的抗辐射能力 +item.rag.name=布 +item.rag_damp.name=湿布 +item.rag_piss.name=沾有尿的布 +item.rbmk_fuel_balefire.name=RBMK反应堆野火燃料棒 +item.rbmk_fuel_balefire_gold.name=RBMK反应堆激活态金-198燃料棒 +item.rbmk_fuel_drx.name=§cRBMK反应堆F迪伽马粒子燃料棒§r +item.rbmk_fuel_empty.name=空 RBMK反应堆燃料棒 +item.rbmk_fuel_flashlead.name=RBMK反应堆闪光铅燃料棒 +item.rbmk_fuel_hea241.name=HEA-241 RBMK反应堆高浓缩度镅-241燃料棒 +item.rbmk_fuel_hea242.name=HEA-242 RBMK反应堆高浓缩度镅-242燃料棒 +item.rbmk_fuel_heaus.name=HEAus RBMK反应堆高浓缩度奥斯燃料棒 +item.rbmk_fuel_hen.name=HEN RBMK反应堆高浓缩度镎燃料棒 +item.rbmk_fuel_hes.name=HES RBMK反应堆高浓缩度Sa326燃料棒 +item.rbmk_fuel_hep.name=HEP-239 RBMK反应堆高浓缩度钚-239燃料棒 +item.rbmk_fuel_hep241.name=HEP-241 RBMK反应堆高浓缩度钚-241燃料棒 +item.rbmk_fuel_heu233.name=HEU-233 RBMK反应堆高浓缩度铀-233燃料棒 +item.rbmk_fuel_heu235.name=HEU-235 RBMK反应堆高浓缩度铀-235燃料棒 +item.rbmk_fuel_lea.name=LEA RBMK反应堆低浓缩度镅-242燃料棒 +item.rbmk_fuel_leaus.name=LEAus RBMK反应堆低浓缩度奥斯燃料棒 +item.rbmk_fuel_lep.name=LEP RBMK反应堆低浓缩度钚-239燃料棒 +item.rbmk_fuel_les.name=LES RBMK反应堆低浓缩度Sa326燃料棒 +item.rbmk_fuel_mea.name=MEA RBMK反应堆中浓缩度镅-242燃料棒 +item.rbmk_fuel_men.name=MEN RBMK反应堆中浓缩度镎-237燃料棒 +item.rbmk_fuel_mep.name=MEP RBMK反应堆中浓缩度钚-239燃料棒 +item.rbmk_fuel_mes.name=MES RBMK中浓缩度Sa326燃料棒 +item.rbmk_fuel_meu.name=MEU RBMK中浓缩度铀-235燃料棒 +item.rbmk_fuel_mox.name=MOX RBMK反应堆燃料棒 +item.rbmk_fuel_po210be.name=钋210-铍 RBMK反应堆中子源 +item.rbmk_fuel_pu238be.name=钚238-铍 RBMK反应堆中子源 +item.rbmk_fuel_ra226be.name=镭226-铍 RBMK反应堆中子源 +item.rbmk_fuel_thmeu.name=ThMEU RBMK反应堆中浓缩度铀-235导向钍燃料棒 +item.rbmk_fuel_ueu.name=NU RBMK反应堆未浓缩铀燃料棒 +item.rbmk_fuel_zfb_am_mix.name=ZFB 燃料级镅RBMK反应堆燃料棒 +item.rbmk_fuel_zfb_bismuth.name=ZFB 铋RBMK反应堆燃料棒 +item.rbmk_fuel_zfb_pu241.name=ZFB 钚-241RBMK反应堆燃料棒 +item.rbmk_lid.name=RBMK反应堆覆盖层 +item.rbmk_lid_glass.name=RBMK反应堆玻璃覆盖层 item.rbmk_pellet_balefire.name=野火燃料芯块 item.rbmk_pellet_balefire_gold.name=激活态金-198燃料芯块 -item.rbmk_pellet_drx.name=§cϜ迪伽马粒子燃料芯块§r -item.rbmk_pellet_flashlead.name=激活态铅燃料芯块 -item.rbmk_pellet_hea241.name=HEA-241高浓缩度镅-241燃料芯块 -item.rbmk_pellet_hea242.name=HEA-242高浓缩度镅-242燃料芯块 -item.rbmk_pellet_heaus.name=HEAus高浓缩度奥金燃料芯块 -item.rbmk_pellet_hen.name=HEN高浓缩度镎-237燃料芯块 -item.rbmk_pellet_hep239.name=HEP-239高浓缩度钚-239燃料芯块 -item.rbmk_pellet_hep241.name=HEP-241高浓缩度钚-241燃料芯块 -item.rbmk_pellet_heu233.name=HEU-233高浓缩度铀-233燃料芯块 -item.rbmk_pellet_heu235.name=HEU-235高浓缩度铀-235燃料芯块 -item.rbmk_pellet_hes.name=HES高浓缩度Sa-326燃料芯块 -item.rbmk_pellet_lea.name=LEA低浓缩度镅-242燃料芯块 -item.rbmk_pellet_leaus.name=LEAus低浓缩度奥金燃料芯块 -item.rbmk_pellet_lep.name=LEP低浓缩度钚-239燃料芯块 -item.rbmk_pellet_les.name=LES低浓缩度Sa-326燃料芯块 -item.rbmk_pellet_mea.name=MEA中浓缩度镅-242燃料芯块 -item.rbmk_pellet_men.name=MEN中浓缩度镎-237燃料芯块 -item.rbmk_pellet_mep.name=MEP中浓缩度钚-239燃料芯块 -item.rbmk_pellet_mes.name=MES中浓缩度Sa-326燃料芯块 -item.rbmk_pellet_meu.name=MEU中浓缩度铀-235燃料芯块 +item.rbmk_pellet_drx.name=§cF迪伽马粒子燃料芯块§r +item.rbmk_pellet_flashlead.name=闪光铅燃料芯块 +item.rbmk_pellet_hea241.name=HEA-241 高浓缩度镅-241料芯块 +item.rbmk_pellet_hea242.name=HEA-242 高浓缩度镅-242燃料芯块 +item.rbmk_pellet_heaus.name=HEAus 高浓缩度奥斯燃料芯块 +item.rbmk_pellet_hen.name=HEN 高浓缩度镎燃料芯块 +item.rbmk_pellet_hep239.name=HEP-239 高浓缩度钚-239燃料芯块 +item.rbmk_pellet_hep241.name=HEP-241 高浓缩度钚-241燃料芯块 +item.rbmk_pellet_heu233.name=HEU-233 高浓缩度铀-233燃料芯块 +item.rbmk_pellet_heu235.name=HEU-235 高浓缩度铀-235燃料芯块 +item.rbmk_pellet_hes.name=HES 高浓缩度Sa-326燃料芯块 +item.rbmk_pellet_lea.name=LEA 低浓缩度镅-242燃料芯块 +item.rbmk_pellet_leaus.name=LEAus 低浓缩度奥斯燃料芯块 +item.rbmk_pellet_lep.name=LEP 低浓缩度钚-239燃料芯块 +item.rbmk_pellet_les.name=LES 低浓缩度Sa-326燃料芯块 +item.rbmk_pellet_mea.name=MEA 中浓缩度镅-242燃料芯块 +item.rbmk_pellet_men.name=MEN 中浓缩度镎-237燃料芯块 +item.rbmk_pellet_mep.name=MEP 中浓缩度钚-239燃料芯块 +item.rbmk_pellet_mes.name=MES 中浓缩度Sa-326燃料芯块 +item.rbmk_pellet_meu.name=MEU 中浓缩度铀-235燃料芯块 item.rbmk_pellet_mox.name=MOX燃料芯块 -item.rbmk_pellet_po210be.name=钋210-铍中子源芯块 -item.rbmk_pellet_pu238be.name=钚238-铍中子源芯块 -item.rbmk_pellet_ra226be.name=镭226-铍中子源芯块 -item.rbmk_pellet_thmeu.name=ThMEU浓缩度铀-235导向钍燃料芯块 +item.rbmk_pellet_po210be.name=钋210-铍 中子源芯块 +item.rbmk_pellet_pu238be.name=钚238-铍 中子源芯块 +item.rbmk_pellet_ra226be.name=镭226-铍 中子源芯块 +item.rbmk_pellet_thmeu.name=ThMEU 浓缩度铀-235导向钍燃料芯块 item.rbmk_pellet_ueu.name=未浓缩铀燃料芯块 -item.rbmk_pellet_zfb_am_mix.name=ZFB锆混合反应堆级镅快速增殖式燃料芯块 -item.rbmk_pellet_zfb_bismuth.name=ZFB锆混合铋快速增殖式燃料芯块 -item.rbmk_pellet_zfb_pu241.name=ZFB锆混合钚-241快速增殖式燃料芯块 +item.rbmk_pellet_zfb_am_mix.name=ZFB 燃料级镅燃料芯块 +item.rbmk_pellet_zfb_bismuth.name=ZFB 铋燃料芯块 +item.rbmk_pellet_zfb_pu241.name=ZFB 钚-241燃料芯块 item.rbmk_tool.name=RBMK石墨式反应堆控制台连接装置 -item.rbmk_tool.desc=潜行并右击RBMK石墨式反应堆保存其坐标,$潜入并右击控制台以连接反应堆! +item.rbmk_tool.desc=按住Shift右击RBMK石墨式反应堆保存其坐标,$按住Shift右击控制台以连接反应堆! item.rbmk_tool.linked=反应堆坐标已记录! item.rbmk_tool.set=反应堆已连接! -item.reacher.name=钨制长钳 +item.reacher.name=钨长臂夹 item.reactor_core.name=增殖反应堆核心 item.reactor_sensor.name=反应堆遥感器 item.record.glass.desc=? ? ? -item.record.lc.desc=Valve - 恶魔肾上腺素吉他/Lambda核心 -item.record.ss.desc=Valve - 扫描扇区 -item.record.vc.desc=Valve - 斗争漩涡 +item.record.lc.desc=Valve - Diabolic Adrenaline Guitar/Lambda Core +item.record.ss.desc=Valve - Sector Sweep +item.record.vc.desc=Valve - Vortal Combat item.redcoil_capacitor.name=红圈电容器 item.redstone_depleted.name=不饱和红石粉 item.redstone_sword.name=红石剑 item.reer_graar.name=The Reer Graar item.remote.name=损坏的遥控器 item.ring_pull.name=拉环 -item.ring_starmetal.name=§9星辉金属环§r +item.ring_starmetal.name=§9星辉拉环§r item.robes_boots.name=战地靴 item.robes_helmet.name=休闲兜帽 item.robes_legs.name=休闲裤 item.robes_plate.name=休闲毛衣 item.rocket_fuel.name=固体燃料[火箭推进剂] -item.rod_empty.name=空棒 +item.rod_empty.name=空燃料棒 item.rod.lithium.name=锂棒 item.rod.tritium.name=氚棒 item.rod.co.name=钴棒 @@ -3575,25 +3534,25 @@ item.rod.rgp.name=反应堆级钚棒 item.rod.waste.name=核废料棒 item.rod.lead.name=铅棒 item.rod.uranium.name=铀棒 -item.rod_dual_empty.name=空双联棒 +item.rod_dual_empty.name=空双联燃料棒 item.rod_dual.lithium.name=双联锂棒 -item.rod_dual.tritium.name=氚双联棒 +item.rod_dual.tritium.name=氚双棒 item.rod_dual.co.name=双联钴棒 item.rod_dual.co60.name=双联钴-60棒 item.rod_dual.ra226.name=双联镭-226棒 item.rod_dual.ac227.name=双联锕-227棒 item.rod_dual.th232.name=双联钍-232棒 -item.rod_dual.thf.name=钍燃料 双联棒 -item.rod_dual.u235.name=双联铀-235 棒 +item.rod_dual.thf.name=双联钍燃料棒 +item.rod_dual.u235.name=双联铀-235棒 item.rod_dual.np237.name=双联镎-237棒 item.rod_dual.u238.name=双联铀-238棒 item.rod_dual.pu238.name=双联钚-238棒 item.rod_dual.pu239.name=双联钚-239棒 -item.rod_dual.rgp.name= 双联反应堆级钚棒 +item.rod_dual.rgp.name=双联反应堆级钚棒 item.rod_dual.waste.name=双联核废料棒 item.rod_dual.lead.name=双联铅棒 -item.rod_dual.uranium.name=铀棒 -item.rod_quad_empty.name=空四联棒 +item.rod_dual.uranium.name=双联铀棒 +item.rod_quad_empty.name=空四联燃料棒 item.rod_quad.lithium.name=四联锂棒 item.rod_quad.tritium.name=四联氚棒 item.rod_quad.co.name=四联钴棒 @@ -3601,145 +3560,145 @@ item.rod_quad.co60.name=四联钴-60棒 item.rod_quad.ra226.name=四联镭-226棒 item.rod_quad.ac227.name=四联锕-227棒 item.rod_quad.th232.name=四联钍-232棒 -item.rod_quad.thf.name= 四联钍燃料棒 +item.rod_quad.thf.name=四联钍燃料棒 item.rod_quad.u235.name=四联铀-235棒 item.rod_quad.np237.name=四联镎-237棒 item.rod_quad.u238.name=四联铀-238棒 item.rod_quad.pu238.name=四联钚-238棒 item.rod_quad.pu239.name=四联钚-239棒 -item.rod_quad.rgp.name= 四联反应堆级钚棒 +item.rod_quad.rgp.name=四联反应堆级钚棒 item.rod_quad.waste.name=四联核废料棒 -item.rod_quad.lead.name=四联Lead 铅棒 +item.rod_quad.lead.name=四联铅棒 item.rod_quad.uranium.name=四联铀棒 item.rod_australium.name=奥斯棒 -item.rod_balefire.name=BF燃料棒 -item.rod_balefire_blazing.name=炽热的BF燃料棒 +item.rod_balefire.name=野火燃料棒 +item.rod_balefire_blazing.name=炽热的野火燃料棒 item.rod_coolant.name=燃料棒[冷却液] item.rod_daffergon.name=达夫贡棒 -item.rod_dual_balefire.name=双联BF燃料棒 -item.rod_dual_balefire_blazing.name=炽热的双联BF燃料棒 +item.rod_dual_balefire.name=双联野火燃料棒 +item.rod_dual_balefire_blazing.name=炽热的双联野火燃料棒 item.rod_dual_coolant.name=双联燃料棒[冷却液] item.rod_dual_lead.name=双联铅棒 item.rod_dual_lithium.name=双联锂棒 -item.rod_dual_mox_fuel.name=双联MOX燃料棒 -item.rod_dual_mox_fuel_depleted.name=枯竭MOX燃料棒 +item.rod_dual_mox_fuel.name=核反应堆 双联MOX燃料棒 +item.rod_dual_mox_fuel_depleted.name=核反应堆 枯竭MOX燃料棒 item.rod_dual_neptunium.name=双联镎燃料棒 item.rod_dual_plutonium.name=双联钚棒 -item.rod_dual_plutonium_fuel.name=双联钚燃料棒 -item.rod_dual_plutonium_fuel_depleted.name=双联枯竭钚燃料棒 -item.rod_dual_polonium.name=双联钋-210棒 -item.rod_dual_pu238.name=双联钚238燃料棒 -item.rod_dual_pu239.name=双联钚239燃料棒 -item.rod_dual_pu240.name=双联钚240燃料棒 -item.rod_dual_schrabidium.name=双联Sa326异变铀金属燃料棒 -item.rod_dual_schrabidium_fuel.name=双联Sa326异变铀金属燃料棒 -item.rod_dual_schrabidium_fuel_depleted.name=双联枯竭Sa326异变铀金属燃料棒 -item.rod_dual_solinium.name=双联Sa327索林燃料棒 -item.rod_dual_th232.name=双联钍232燃料棒 +item.rod_dual_plutonium_fuel.name=核反应堆 双联钚燃料棒 +item.rod_dual_plutonium_fuel_depleted.name=核反应堆 双联枯竭钚燃料棒 +item.rod_dual_polonium.name=双联钋棒 +item.rod_dual_pu238.name=双联钚-238燃料棒 +item.rod_dual_pu239.name=双联钚-239燃料棒 +item.rod_dual_pu240.name=双联钚-240燃料棒 +item.rod_dual_schrabidium.name=双联Sa326燃料棒 +item.rod_dual_schrabidium_fuel.name=核反应堆 双联Sa326燃料棒 +item.rod_dual_schrabidium_fuel_depleted.name=双联枯竭Sa326燃料棒 +item.rod_dual_solinium.name=双联Sa327燃料棒 +item.rod_dual_th232.name=双联钍-232燃料棒 item.rod_dual_thorium_fuel.name=双联钍燃料棒 item.rod_dual_thorium_fuel_depleted.name=双联枯竭钍燃料棒 item.rod_dual_tritium.name=双联氚燃料棒 -item.rod_dual_u233.name=双联铀233燃料棒 -item.rod_dual_u235.name=双联铀235燃料棒 -item.rod_dual_u238.name=双联铀238燃料棒 +item.rod_dual_u233.name=双联铀-233燃料棒 +item.rod_dual_u235.name=双联铀-235燃料棒 +item.rod_dual_u238.name=双联铀-238燃料棒 item.rod_dual_uranium.name=双联铀棒 -item.rod_dual_uranium_fuel.name=双联铀燃料棒 -item.rod_dual_uranium_fuel_depleted.name=双联枯竭铀燃料棒 +item.rod_dual_uranium_fuel.name=核反应堆 双联铀燃料棒 +item.rod_dual_uranium_fuel_depleted.name=核反应堆 双联枯竭铀燃料棒 item.rod_dual_waste.name=双联核废料棒 item.rod_dual_water.name=双联燃料棒[水] -item.rod_euphemium.name=Ep元素棒 +item.rod_euphemium.name=Ep棒 item.rod_lead.name=铅棒 item.rod_lithium.name=锂棒 -item.rod_mox_fuel.name=MOX燃料棒 -item.rod_mox_fuel_depleted.name=枯竭MOX燃料棒 +item.rod_mox_fuel.name=核反应堆 MOX燃料棒 +item.rod_mox_fuel_depleted.name=核反应堆 枯竭MOX燃料棒 item.rod_neptunium.name=镎燃料棒 +item.rod_of_discord.name=混沌传送杖 item.rod_plutonium.name=钚棒 -item.rod_of_discord.name=混沌传送法杖 -item.rod_plutonium_fuel.name=钚燃料棒 -item.rod_plutonium_fuel_depleted.name=枯竭钚燃料棒 -item.rod_polonium.name=钋-210棒 -item.rod_pu238.name=钚238燃料棒 -item.rod_pu239.name=钚239燃料棒 -item.rod_pu240.name=钚240燃料棒 -item.rod_quad_balefire.name=四联BF燃料棒 -item.rod_quad_balefire_blazing.name=炽热的四联BF燃料棒 +item.rod_plutonium_fuel.name=核反应堆 钚燃料棒 +item.rod_plutonium_fuel_depleted.name=核反应堆 枯竭钚燃料棒 +item.rod_polonium.name=钋棒 +item.rod_pu238.name=钚-238燃料棒 +item.rod_pu239.name=钚-239燃料棒 +item.rod_pu240.name=钚-240燃料棒 +item.rod_quad_balefire.name=四联野火燃料棒 +item.rod_quad_balefire_blazing.name=炽热的四联野火燃料棒 item.rod_quad_coolant.name=四联燃料棒[冷却液] -item.rod_quad_euphemium.name=枯竭的四联Sa326异变铀金属燃料棒 +item.rod_quad_euphemium.name=枯竭的四联Sa326燃料棒 item.rod_quad_lead.name=四联铅棒 item.rod_quad_lithium.name=四联锂棒 -item.rod_quad_mox_fuel.name=四联MOX燃料棒 -item.rod_quad_mox_fuel_depleted.name=枯竭MOX燃料棒 +item.rod_quad_mox_fuel.name=核反应堆 四联MOX燃料棒 +item.rod_quad_mox_fuel_depleted.name=核反应堆 枯竭MOX燃料棒 item.rod_quad_neptunium.name=四联镎燃料棒 -item.rod_quad_plutonium.name=四联钚燃料棒 +item.rod_quad_plutonium.name=四联钚棒 item.rod_quad_plutonium_fuel.name=四联钚燃料棒 item.rod_quad_plutonium_fuel_depleted.name=四联枯竭钚燃料棒 -item.rod_quad_polonium.name=四联钋-210棒 -item.rod_quad_pu238.name=四联钚238燃料棒 -item.rod_quad_pu239.name=四联钚239燃料棒 -item.rod_quad_pu240.name=四联钚240燃料棒 -item.rod_quad_schrabidium.name=四联Sa326异变铀金属燃料棒 -item.rod_quad_schrabidium_fuel.name=四联Sa326异变铀金属燃料棒 -item.rod_quad_schrabidium_fuel_depleted.name=四联枯竭Sa326异变铀金属燃料棒 -item.rod_quad_solinium.name=四联Sa327索林燃料棒 -item.rod_quad_th232.name=四联钍232燃料棒 -item.rod_quad_thorium_fuel.name=四联钍燃料棒 +item.rod_quad_polonium.name=四联钋棒 +item.rod_quad_pu238.name=四联钚-238燃料棒 +item.rod_quad_pu239.name=四联钚-239燃料棒 +item.rod_quad_pu240.name=四联钚-240燃料棒 +item.rod_quad_schrabidium.name=四联Sa326燃料棒 +item.rod_quad_schrabidium_fuel.name=核反应堆 四联Sa326燃料棒 +item.rod_quad_schrabidium_fuel_depleted.name=核反应堆 四联枯竭Sa326燃料棒 +item.rod_quad_solinium.name=四联Sa327燃料棒 +item.rod_quad_th232.name=四联钍-232燃料棒 +item.rod_quad_thorium_fuel.name=核反应堆 四联钍燃料棒 item.rod_quad_thorium_fuel_depleted.name=四联枯竭钍燃料棒 item.rod_quad_tritium.name=四联氚燃料棒 -item.rod_quad_u233.name=四联铀233燃料棒 -item.rod_quad_u235.name=四联铀235燃料棒 -item.rod_quad_u238.name=四联铀238燃料棒 +item.rod_quad_u233.name=四联铀-233燃料棒 +item.rod_quad_u235.name=四联铀-235燃料棒 +item.rod_quad_u238.name=四联铀-238燃料棒 item.rod_quad_uranium.name=四联铀棒 -item.rod_quad_uranium_fuel.name=四联铀燃料棒 +item.rod_quad_uranium_fuel.name=核反应堆 四联铀燃料棒 item.rod_quad_uranium_fuel_depleted.name=四联枯竭铀燃料棒 item.rod_quad_waste.name=四联核废料棒 item.rod_quad_water.name=四联燃料棒[水] item.rod_reiium.name=雷恩棒 -item.rod_schrabidium.name=Sa326异变铀金属燃料棒 -item.rod_schrabidium_fuel.name=Sa326异变铀金属燃料棒 -item.rod_schrabidium_fuel_depleted.name=枯竭Sa326异变铀金属燃料棒 -item.rod_solinium.name=Sa327索林燃料棒 -item.rod_th232.name=钍232燃料棒 +item.rod_schrabidium.name=Sa326燃料棒 +item.rod_schrabidium_fuel.name=Sa326燃料棒 +item.rod_schrabidium_fuel_depleted.name=核反应堆 枯竭Sa326燃料棒 +item.rod_solinium.name=Sa327燃料棒 +item.rod_th232.name=钍-232燃料棒 item.rod_thorium_fuel.name=钍燃料棒 -item.rod_thorium_fuel_depleted.name=枯竭钍燃料棒 +item.rod_thorium_fuel_depleted.name=核反应堆 枯竭钍燃料棒 item.rod_tritium.name=氚燃料棒 -item.rod_u233.name=铀233燃料棒 -item.rod_u235.name=铀235燃料棒 -item.rod_u238.name=铀238燃料棒 -item.rod_unobtainium.name=阿诺布汀棒 +item.rod_u233.name=铀-233燃料棒 +item.rod_u235.name=铀-235燃料棒 +item.rod_u238.name=铀-238燃料棒 +item.rod_unobtainium.name=难得素棒 item.rod_uranium.name=铀棒 -item.rod_uranium_fuel.name=铀燃料棒 -item.rod_uranium_fuel_depleted.name=枯竭铀燃料棒 +item.rod_uranium_fuel.name=核反应堆 铀燃料棒 +item.rod_uranium_fuel_depleted.name=核反应堆 枯竭铀燃料棒 item.rod_verticium.name=韦德赛棒 item.rod_waste.name=核废料棒 item.rod_water.name=燃料棒[水] item.rod_weidanium.name=魏丹棒 -item.rod_zirnox_empty.name=空的 ZIRNOX锆诺克斯反应堆燃料棒 -item.rod_zirnox_natural_uranium_fuel.name=天然铀 ZIRNOX锆诺克斯反应堆燃料棒 -item.rod_zirnox_uranium_fuel.name=铀 ZIRNOX锆诺克斯反应堆燃料棒 -item.rod_zirnox_th232.name=钍-232 ZIRNOX锆诺克斯反应堆增殖棒 -item.rod_zirnox_thorium_fuel.name=钍 ZIRNOX锆诺克斯反应堆燃料棒 -item.rod_zirnox_mox_fuel.name=MOX ZIRNOX锆诺克斯反应堆燃料棒 -item.rod_zirnox_plutonium_fuel.name=钚 ZIRNOX锆诺克斯反应堆燃料棒 -item.rod_zirnox_u233_fuel.name=铀-233 ZIRNOX锆诺克斯反应堆燃料棒 -item.rod_zirnox_u235_fuel.name=铀-235 ZIRNOX锆诺克斯反应堆燃料棒 -item.rod_zirnox_les_fuel.name=LES低浓缩度Sa-326 ZIRNOX锆诺克斯反应堆燃料棒 -item.rod_zirnox_lithium.name=锂 ZIRNOX锆诺克斯反应堆增殖棒 -item.rod_zirnox_tritium.name=氚 ZIRNOX锆诺克斯反应堆增殖棒 -item.rod_zirnox_zfb_mox.name=ZFB MOX ZIRNOX 锆诺克斯反应堆 -item.rod_zirnox_natural_uranium_fuel_depleted.name=衰竭天然铀 ZIRNOX 锆诺克斯反应堆燃料棒 -item.rod_zirnox_uranium_fuel_depleted.name=衰竭铀 ZIRNOX锆诺克斯反应堆燃料棒 -item.rod_zirnox_thorium_fuel_depleted.name=衰竭钍 ZIRNOX锆诺克斯反应堆燃料棒 -item.rod_zirnox_mox_fuel_depleted.name=衰竭MOX ZIRNOX锆诺克斯反应堆燃料棒 -item.rod_zirnox_plutonium_fuel_depleted.name=衰竭钚 ZIRNOX锆诺克斯反应堆燃料棒 -item.rod_zirnox_u233_fuel_depleted.name=衰竭铀-233 ZIRNOX锆诺克斯反应堆燃料棒 -item.rod_zirnox_u235_fuel_depleted.name=衰竭铀-235ZIRNOX锆诺克斯反应堆燃料棒 -item.rod_zirnox_les_fuel_depleted.name=衰竭LES低浓缩度Sa-326 ZIRNOX锆诺克斯反应堆燃料棒 -item.rod_zirnox_zfb_mox_depleted.name=衰竭 ZFB MOX ZIRNOX锆诺克斯反应堆燃料棒 +item.rod_zirnox_empty.name=空锆诺克斯燃料棒 +item.rod_zirnox_natural_uranium_fuel.name=锆诺克斯 天然铀燃料棒 +item.rod_zirnox_uranium_fuel.name=锆诺克斯 铀燃料棒 +item.rod_zirnox_th232.name=锆诺克斯 钍-232燃料棒 +item.rod_zirnox_thorium_fuel.name=锆诺克斯 钍燃料棒 +item.rod_zirnox_mox_fuel.name=锆诺克斯 MOX燃料棒 +item.rod_zirnox_plutonium_fuel.name=锆诺克斯 钚燃料棒 +item.rod_zirnox_u233_fuel.name=锆诺克斯 铀-233燃料棒 +item.rod_zirnox_u235_fuel.name=锆诺克斯 铀-235燃料棒 +item.rod_zirnox_les_fuel.name=锆诺克斯 LES低浓度Sa326燃料棒 +item.rod_zirnox_lithium.name=锆诺克斯 锂燃料棒 +item.rod_zirnox_tritium.name=锆诺克斯 氚燃料棒 +item.rod_zirnox_zfb_mox.name=锆诺克斯 ZFB MOX燃料棒 +item.rod_zirnox_natural_uranium_fuel_depleted.name=锆诺克斯 枯竭天然铀燃料棒 +item.rod_zirnox_uranium_fuel_depleted.name=锆诺克斯 枯竭铀燃料棒 +item.rod_zirnox_thorium_fuel_depleted.name=锆诺克斯 枯竭钍燃料棒 +item.rod_zirnox_mox_fuel_depleted.name=锆诺克斯 枯竭MOX燃料棒 +item.rod_zirnox_plutonium_fuel_depleted.name=锆诺克斯 枯竭钚燃料棒 +item.rod_zirnox_u233_fuel_depleted.name=锆诺克斯 枯竭铀-233燃料棒 +item.rod_zirnox_u235_fuel_depleted.name=锆诺克斯 枯竭铀-235燃料棒 +item.rod_zirnox_les_fuel_depleted.name=锆诺克斯 枯竭LES低浓度Sa326燃料棒 +item.rod_zirnox_zfb_mox_depleted.name=锆诺克斯 ZFB 枯竭MOX燃料棒 item.rotor_steel.name=大型钢转子 -item.rpa_boots.name=残存者动力装甲靴子 -item.rpa_helmet.name=残存者动力装甲头盔 -item.rpa_legs.name=残存者动力装甲护腿 -item.rpa_plate.name=残存者动力装甲胸甲 +item.rpa_boots.name=动力装甲 靴子 +item.rpa_helmet.name=动力装甲 头盔 +item.rpa_legs.name=动力护甲 护腿 +item.rpa_plate.name=动力装甲 胸甲 item.rtg_unit.name=放射性同位素单元 item.rubber_gloves.name=厚橡胶手套 item.rune_blank.name=空白催化剂基质 @@ -3751,9 +3710,9 @@ item.rune_thurisaz.name=添加剂催化剂基质 item.safety_fuse.name=安全保险丝 item.sat_base.name=卫星基座 item.sat_chip.name=卫星ID芯片 -item.sat_coord.name=卫星坐标指示器 -item.sat_designator.name=激光式卫星坐标指示器 -item.sat_foeq.name=PEAF-Mk.I 实验型核动力 FOEQ-杜纳探测器 +item.sat_coord.name=卫星指示器 +item.sat_designator.name=卫星激光指示器 +item.sat_foeq.name=实验型核能PEAF-Mk.I FOEQ Duna探测器 item.sat_gerald.name=Gerald建筑机器人 item.sat_head_laser.name=死光发射器 item.sat_head_mapper.name=高增益光学摄像头 @@ -3762,7 +3721,7 @@ item.sat_head_resonator.name=Xenium共振器 item.sat_head_scanner.name=M700测量扫描仪 item.sat_interface.name=卫星操作接口 item.sat_laser.name=轨道死光炮 -item.sat_lunar_miner.name=月球采矿船 +item.sat_lunar_miner.name=月球采矿飞船 item.sat_mapper.name=地表测绘卫星 item.sat_miner.name=小行星采矿飞船 item.sat_radar.name=雷达探测卫星 @@ -3770,24 +3729,24 @@ item.sat_resonator.name=X晶体共振卫星 item.sat_scanner.name=绘测和资源探测卫星 item.sawblade.name=锯片 item.schnitzel_vegan.name=“素”肉排 -item.schrabidium_axe.name=Sa326异变铀金属斧 -item.schrabidium_boots.name=Sa326异变铀金属靴子 -item.schrabidium_hammer.name=Sa326异变铀金属锤 -item.schrabidium_helmet.name=Sa326异变铀金属头盔 -item.schrabidium_hoe.name=Sa326异变铀金属锄 -item.schrabidium_legs.name=Sa326异变铀金属护腿 -item.schrabidium_pickaxe.name=Sa326异变铀金属镐 -item.schrabidium_plate.name=Sa326异变铀金属胸甲 -item.schrabidium_shovel.name=Sa326异变铀金属锹 -item.schrabidium_sword.name=Sa326异变铀金属剑 +item.schrabidium_axe.name=Sa326斧 +item.schrabidium_boots.name=Sa326靴子 +item.schrabidium_hammer.name=Sa326锤 +item.schrabidium_helmet.name=Sa326头盔 +item.schrabidium_hoe.name=Sa326锄 +item.schrabidium_legs.name=Sa326护腿 +item.schrabidium_pickaxe.name=Sa326镐 +item.schrabidium_plate.name=Sa326胸甲 +item.schrabidium_shovel.name=Sa326锹 +item.schrabidium_sword.name=Sa326剑 item.scrap.name=废料 item.scrap_nuclear.name=放射性废料 -item.scrap_oil.name=油渣 +item.scrap_oil.name=油性废料 item.scrap_plastic.name=塑料废料 item.scraps.name=铸造废料 item.screwdriver.name=螺丝刀 -item.screwdriver.desc=可以用来代替保险丝... -item.screwdriver_desh.name=德什制螺丝刀 +item.screwdriver.desc=可以用来代替保险丝…… +item.screwdriver_desh.name=Desh螺丝刀 item.scrumpy.name=一瓶烈性苹果酒 item.security_boots.name=防护靴子 item.security_helmet.name=防护头盔 @@ -3797,8 +3756,8 @@ item.seg_10.name=10号连接器 item.seg_15.name=15号连接器 item.seg_20.name=20号连接器 item.serum.name=血清 -item.servo_set.name=伺服马达组 -item.servo_set_desh.name=德什制伺服马达组 +item.servo_set.name=伺服装置 +item.servo_set_desh.name=Desh伺服装置 item.shackles.name=枷锁 item.shimmer_axe.name=闪耀斧 item.shimmer_axe_head.name=重型斧头 @@ -3808,26 +3767,26 @@ item.shimmer_sledge.name=闪耀锤 item.singularity.name=奇点 item.singularity_counter_resonant.name=可控反振谐奇点 item.singularity_micro.name=微型奇点 -item.singularity_spark.name=Spark闪闪奇点 +item.singularity_spark.name=Spark奇点 item.singularity_super_heated.name=超热共振奇点 item.siox.name=SiOX抗癌药物 -item.siox.desc=用石棉的力量来逆转胸膜间皮瘤!(以 毒 攻 毒) +item.siox.desc=使用石棉的力量逆转间皮瘤! item.siren_track.name=警报声轨 item.smashing_hammer.name=粉碎锤 item.solid_fuel.name=固体燃料 -item.solid_fuel_bf.name=固体BF野火燃料 -item.solid_fuel_presto.name=压缩固体燃料 -item.solid_fuel_presto_bf.name=压缩BF野火固体燃料 -item.solid_fuel_presto_triplet.name=增强压缩固体燃料 -item.solid_fuel_presto_triplet_bf.name=增强压缩BF野火固体燃料 -item.solinium_core.name=半稳定Sa327索林核心 -item.solinium_igniter.name=Sa327索林脉冲点火器 +item.solid_fuel_bf.name=固体燃料(野火) +item.solid_fuel_presto.name=Presto固体燃料 +item.solid_fuel_presto_bf.name=Presto固体燃料(野火) +item.solid_fuel_presto_triplet.name=增强型Presto固体燃料 +item.solid_fuel_presto_triplet_bf.name=增强型Presto固体燃料(野火) +item.solinium_core.name=半稳定Sa327核心 +item.solinium_igniter.name=Sa327脉冲点火器 item.solinium_kit.name=蔚蓝洗礼套件 -item.solinium_propellant.name=Sa327索林压缩装药 -item.sopsign.name=SOP标志战斧 +item.solinium_propellant.name=Sa327压缩装药 +item.sopsign.name=Sop标志战斧 item.spawn_duck.name=金蛋 item.spawn_ufo.name=火星入侵者飞船 -item.spawn_worm.name=世-界-毁-灭-者 O-TRON 头部 +item.spawn_worm.name=机械蠕虫 item.sphere_steel.name=钢球 item.spider_milk.name=一瓶蜘蛛奶 item.spongebob_macaroni.name=海绵宝宝通心粉 @@ -3835,10 +3794,10 @@ item.stamp_357.name=.357马格南锻模 item.stamp_44.name=.44马格南锻模 item.stamp_50.name=大口径锻模 item.stamp_9.name=小口径锻模 -item.stamp_desh_circuit.name=德什质电路板锻模 -item.stamp_desh_flat.name=德什锻模 -item.stamp_desh_plate.name=德什质板锻模 -item.stamp_desh_wire.name=德什质电线锻模 +item.stamp_desh_circuit.name=Desh电路板锻模 +item.stamp_desh_flat.name=Desh锻模 +item.stamp_desh_plate.name=Desh板锻模 +item.stamp_desh_wire.name=Desh电线锻模 item.stamp_iron_circuit.name=铁质电路板锻模 item.stamp_iron_flat.name=铁质锻模 item.stamp_iron_plate.name=铁质板锻模 @@ -3847,10 +3806,6 @@ item.stamp_obsidian_circuit.name=黑曜石电路板锻模 item.stamp_obsidian_flat.name=黑曜石锻模 item.stamp_obsidian_plate.name=黑曜石板锻模 item.stamp_obsidian_wire.name=黑曜石电线锻模 -item.stamp_schrabidium_circuit.name=Sa326异变铀金属电路板锻模 -item.stamp_schrabidium_flat.name=Sa326异变铀金属锻模 -item.stamp_schrabidium_plate.name=Sa326异变铀金属板锻模 -item.stamp_schrabidium_wire.name=Sa326异变铀金属电线锻模 item.stamp_steel_circuit.name=钢质电路板锻模 item.stamp_steel_flat.name=钢质锻模 item.stamp_steel_plate.name=钢质板锻模 @@ -3863,21 +3818,21 @@ item.stamp_titanium_circuit.name=钛质电路板锻模 item.stamp_titanium_flat.name=钛质锻模 item.stamp_titanium_plate.name=钛质板锻模 item.stamp_titanium_wire.name=钛质电线锻模 -item.starmetal_axe.name=星辉金属斧 -item.starmetal_boots.name=星辉金属靴子 -item.starmetal_helmet.name=星辉金属头盔 -item.starmetal_hoe.name=星辉金属锄 -item.starmetal_legs.name=星辉金属护腿 -item.starmetal_pickaxe.name=星辉金属镐 -item.starmetal_plate.name=星辉金属胸甲 -item.starmetal_shovel.name=星辉金属铲 -item.starmetal_sword.name=星辉金属剑 +item.starmetal_axe.name=星辉斧 +item.starmetal_boots.name=星辉靴子 +item.starmetal_helmet.name=星辉头盔 +item.starmetal_hoe.name=星辉锄 +item.starmetal_legs.name=星辉护腿 +item.starmetal_pickaxe.name=星辉镐 +item.starmetal_plate.name=星辉胸甲 +item.starmetal_shovel.name=星辉锹 +item.starmetal_sword.name=星辉剑 item.static_sandwich.name=TV三明治 -item.stealth_boy.name=隐形装置 -item.steamsuit_boots.name=蒸汽动力装甲靴子 -item.steamsuit_helmet.name=蒸汽动力装甲呼吸器头盔 -item.steamsuit_legs.name=蒸汽动力装甲护腿 -item.steamsuit_plate.name=蒸汽动力装甲胸甲 +item.stealth_boy.name=隐形小子 +item.steamsuit_boots.name=蒸汽动力靴子 +item.steamsuit_helmet.name=蒸汽动力呼吸器头盔 +item.steamsuit_legs.name=蒸汽动力护腿 +item.steamsuit_plate.name=蒸汽动力胸甲 item.steel_axe.name=钢斧 item.steel_boots.name=钢靴子 item.steel_helmet.name=钢头盔 @@ -3887,10 +3842,11 @@ item.steel_pickaxe.name=钢镐 item.steel_plate.name=钢胸甲 item.steel_shovel.name=钢锹 item.steel_sword.name=钢剑 -item.stick_c4.name=炸药C-4棒 +item.stick_c4.name=C-4炸药棒 item.stick_dynamite.name=炸药棒 +item.stick_dynamite_fishing.name=捕鱼炸药棒 item.stick_semtex.name=塞姆汀塑胶炸药棒 -item.stick_tnt.name=TNT炸药棒 +item.stick_tnt.name=TNT棒 item.stopsign.name=停车标志战斧 item.sulfur.name=硫粉 item.survey_scanner.name=勘测扫描仪 @@ -3902,10 +3858,9 @@ item.syringe_metal_medx.name=Med-X抗痛宁 item.syringe_metal_psycho.name=Psycho"捷特" item.syringe_metal_stimpak.name=治疗针 item.syringe_metal_super.name=超级治疗针 -item.syringe_mkunicorn.name=MKUNICORN独角兽 +item.syringe_mkunicorn.name=独角兽 item.syringe_poison.name=毒针 item.syringe_taint.name=污染水注射液 - item.t45_boots.name=T45动力装甲 靴子 item.t45_helmet.name=T45动力装甲 头盔 item.t45_kit.name=T45动力装甲套装 @@ -3924,7 +3879,7 @@ item.tank_waste_8.name=泥浆容器 item.telepad.name=传送部件 item.tem_flakes.name=Tem薄片 item.template_folder.name=机器模板文件夹 -item.template_folder.desc=装配机模板: 纸 + 染料$流体识别码: 铁板 + 染料$锻模: 空白锻模$警报声轨: 绝缘体 + 钢板 +item.template_folder.desc=机器模板:纸张+染料$流体识别码:铁板+染料$锻模:空白锻模 $警报声轨:绝缘体+钢板 item.test_nuke_igniter.name=点火器 item.test_nuke_propellant.name=推进剂 item.test_nuke_tier1_bullet.name=铀235弹头[1级] @@ -3939,7 +3894,7 @@ item.thermo_unit_endo.name=吸热装置 item.thermo_unit_exo.name=放热装置 item.thruster_large.name=大型推进器 item.thruster_medium.name=中型推进器 -item.thruster_nuclear.name=LV-N核动力火箭发动机 +item.thruster_nuclear.name=LV-N核能火箭发动机 item.thruster_small.name=小型推进器 item.titanium_axe.name=钛斧 item.titanium_boots.name=钛靴子 @@ -3952,9 +3907,10 @@ item.titanium_plate.name=钛胸甲 item.titanium_shovel.name=钛锹 item.titanium_sword.name=钛剑 item.toothpicks.name=牙签 +item.train.cargo_tram.name=平板载货电车 item.trinitite.name=玻璃石 item.tritium_deuterium_cake.name=氚氘饼 -item.tritium_deuterium_cake.desc=不是真正的饼, $而是很好的通用聚变燃料! +item.tritium_deuterium_cake.desc=不是真正的蛋糕,而是很棒的$聚变燃料! item.tsar_core.name=沙皇炸弹核心 item.tsar_kit.name=沙皇炸弹 套件 item.turbine_titanium.name=钛汽轮转子 @@ -3973,7 +3929,7 @@ item.turret_tau_ammo.name=陶子炮塔铀弹药 item.twinkie.name=小蛋糕 item.ullapool_caber.name=阿勒浦长木杆 item.undefined.name=形态未定义物质 -item.upgrade_5g.name=5G辐射升级 +item.upgrade_5g.name=5G辐射发射器升级 item.upgrade_afterburn_1.name=一级粉色机器升级 item.upgrade_afterburn_2.name=二级粉色机器升级 item.upgrade_afterburn_3.name=三级粉色机器升级 @@ -3982,9 +3938,9 @@ item.upgrade_crystallizer.name=采矿激光升级-自动结晶 item.upgrade_effect_1.name=一级绿色机器升级 item.upgrade_effect_2.name=二级绿色机器升级 item.upgrade_effect_3.name=三级绿色机器升级 -item.upgrade_ejector_1.name=一级弹出速度升级 Mk.I -item.upgrade_ejector_2.name=二级弹射速度升级 Mk.II -item.upgrade_ejector_3.name=三级弹射速度升级 Mk.III +item.upgrade_ejector_1.name=一级弹射速度升级 +item.upgrade_ejector_2.name=二级弹射速度升级 +item.upgrade_ejector_3.name=三级弹射速度升级 item.upgrade_fortune_1.name=一级紫色机器升级 item.upgrade_fortune_2.name=二级紫色机器升级 item.upgrade_fortune_3.name=三级紫色机器升级 @@ -4004,10 +3960,10 @@ item.upgrade_smelter.name=采矿激光升级-自动熔炼 item.upgrade_speed_1.name=一级红色机器升级 item.upgrade_speed_2.name=二级红色机器升级 item.upgrade_speed_3.name=三级红色机器升级 -item.upgrade_stack_1.name=一级单次弹出堆栈量升级 -item.upgrade_stack_2.name=二级单次弹出堆栈量升级 -item.upgrade_stack_3.name=三级单次弹出堆栈量升级 -item.upgrade_template.name=空白机器升级模板 +item.upgrade_stack_1.name=一级堆栈弹出升级 +item.upgrade_stack_2.name=二级堆栈弹出升级 +item.upgrade_stack_3.name=三级堆栈弹出升级 +item.upgrade_template.name=机器升级模板 item.v1.name=V1 item.volcanic_pickaxe.name=熔岩镐 item.wand_d.name=调试魔杖 @@ -4026,53 +3982,53 @@ item.warhead_incendiary_large.name=大型燃烧弹头 item.warhead_incendiary_medium.name=中型燃烧弹头 item.warhead_incendiary_small.name=小型燃烧弹头 item.warhead_mirv.name=热核弹头 -item.warhead_mirvlet.name=分导式多弹头核弹 +item.warhead_mirvlet.name=MIRV item.warhead_nuclear.name=核弹头 item.warhead_thermo_endo.name=吸热弹头 item.warhead_thermo_exo.name=放热弹头 -item.warhead_volcano.name=地壳破坏者弹头 +item.warhead_volcano.name=构造弹头 item.waste_mox.name=枯竭MOX燃料 item.waste_natural_uranium.name=枯竭天然铀燃料 -item.waste_plate_mox.name=枯竭MOX板状燃料元件 -item.waste_plate_pu238be.name=枯竭钚238-铍板状燃料元件 -item.waste_plate_pu239.name=枯竭高浓缩度钚-239板状燃料元件 -item.waste_plate_ra226be.name=枯竭镭226-铍板状燃料元件 -item.waste_plate_sa326.name=枯竭高浓缩度Sa326板状燃料元件 -item.waste_plate_u233.name=枯竭高浓缩度铀-233板状燃料元件 -item.waste_plate_u235.name=枯竭高浓缩度铀-235板状燃料元件 +item.waste_plate_mox.name=枯竭MOX 板状燃料 +item.waste_plate_pu238be.name=枯竭钚238-铍 板状燃料 +item.waste_plate_pu239.name=枯竭高浓度钚-239 板状燃料 +item.waste_plate_ra226be.name=枯竭镭226-铍 板状燃料 +item.waste_plate_sa326.name=枯竭高浓度Sa326 板状燃料 +item.waste_plate_u233.name=枯竭高浓度铀-233 板状燃料 +item.waste_plate_u235.name=枯竭高浓度铀-235 板状燃料 item.waste_plutonium.name=枯竭钚燃料 -item.waste_schrabidium.name=枯竭Sa326异变铀金属燃料 +item.waste_schrabidium.name=枯竭Sa326燃料 item.waste_thorium.name=枯竭钍燃料 item.waste_u235.name=枯竭铀-235燃料 item.waste_u233.name=枯竭铀-233燃料 item.waste_uranium.name=枯竭铀燃料 -item.waste_zfb_mox.name=枯竭ZFB MOX燃料 -item.watch.name=破怀表 -item.watch.desc=一个蓝色小怀表.$它的玻璃上有一些裂缝,$还有一些玻璃碎片不见了.$它的指针停在了 2:34. -item.watz_pellet.boron.name=硼吸收剂靶丸 -item.watz_pellet.du.name=铀吸收剂靶丸 -item.watz_pellet.hes.name=HES高浓缩度Sa-326 Watz瓦茨电厂靶丸 -item.watz_pellet.lead.name=铅吸收剂靶丸 -item.watz_pellet.les.name=LES低浓缩度Sa-326 Watz瓦茨电厂靶丸 -item.watz_pellet.mes.name=MES中浓缩度Sa-326 Watz瓦茨电厂靶丸 -item.watz_pellet.mep.name=MEP中浓缩度钚-239 Watz瓦茨电厂靶丸 -item.watz_pellet.meu.name=MEU中浓缩度铀-235 Watz瓦茨电厂靶丸 -item.watz_pellet.nqd.name=浓缩硅岩金属 Watz瓦茨电厂靶丸 -item.watz_pellet.nqr.name=硅岩金属 Watz瓦茨电厂靶丸 -item.watz_pellet.hen.name=HEN高浓缩度镎-237 Watz瓦茨电厂靶丸 -item.watz_pellet.schrabidium.name=Sa326异变铀金属 Watz瓦茨电厂靶丸 -item.watz_pellet_depleted.boron.name=硼吸收剂靶丸 (衰竭) -item.watz_pellet_depleted.du.name=铀吸收剂靶丸 (衰竭) -item.watz_pellet_depleted.hes.name=HES高浓缩度Sa-326 Watz瓦茨电厂靶丸 (衰竭) -item.watz_pellet_depleted.lead.name=铅吸收剂靶丸 (衰竭) -item.watz_pellet_depleted.les.name=LES低浓缩度Sa-326 Watz瓦茨电厂靶丸 (衰竭) -item.watz_pellet_depleted.mes.name=MES中浓缩度Sa-326 Watz瓦茨电厂靶丸 (衰竭) -item.watz_pellet_depleted.mep.name=MEP中浓缩度钚-239 Watz瓦茨电厂靶丸 (衰竭) -item.watz_pellet_depleted.meu.name=MEU中浓缩度铀-235 Watz瓦茨电厂靶丸 (衰竭) -item.watz_pellet_depleted.nqd.name=浓缩硅岩金属 Watz瓦茨电厂靶丸 (衰竭) -item.watz_pellet_depleted.nqr.name=硅岩金属 Watz瓦茨电厂靶丸 (衰竭) -item.watz_pellet_depleted.hen.name=HEN高浓缩度镎-237 Watz瓦茨电厂靶丸 (衰竭) -item.watz_pellet_depleted.schrabidium.name=Sa326异变铀金属 Watz瓦茨电厂靶丸 (衰竭) +item.waste_zfb_mox.name=枯竭的ZFB MOX燃料 +item.watch.name=破旧怀表 +item.watch.desc=一块蓝色的小怀表$玻璃上有一些裂缝,还有一些碎片不见了$指针定格在了2点34分。 +item.watz_pellet.boron.name=硼吸收靶丸 +item.watz_pellet.du.name=贫铀吸收靶丸 +item.watz_pellet.hes.name=HES Watz靶丸 +item.watz_pellet.lead.name=铅吸收靶丸 +item.watz_pellet.les.name=LES Watz靶丸 +item.watz_pellet.mes.name=MES Watz靶丸 +item.watz_pellet.mep.name=MEP Watz靶丸 +item.watz_pellet.meu.name=MEU Watz靶丸 +item.watz_pellet.nqd.name=富集硅岩金属 Watz靶丸 +item.watz_pellet.nqr.name=硅岩金属 Watz靶丸 +item.watz_pellet.hen.name=HEN Watz靶丸 +item.watz_pellet.schrabidium.name=Sa326 Watz靶丸 +item.watz_pellet_depleted.boron.name=硼吸收靶丸(枯竭) +item.watz_pellet_depleted.du.name=贫铀吸收靶丸(枯竭) +item.watz_pellet_depleted.hes.name=HES Watz靶丸(枯竭) +item.watz_pellet_depleted.lead.name=铅吸收靶丸(枯竭) +item.watz_pellet_depleted.les.name=LES Watz靶丸(枯竭) +item.watz_pellet_depleted.mes.name=MES Watz靶丸(枯竭) +item.watz_pellet_depleted.mep.name=MEP Watz靶丸(枯竭) +item.watz_pellet_depleted.meu.name=MEU Watz靶丸(枯竭) +item.watz_pellet_depleted.nqd.name=富集硅岩金属 Watz靶丸(枯竭) +item.watz_pellet_depleted.nqr.name=硅岩金属 Watz靶丸(枯竭) +item.watz_pellet_depleted.hen.name=HEN Watz靶丸(枯竭) +item.watz_pellet_depleted.schrabidium.name=Sa326 Watz靶丸(枯竭) item.weapon_bat.name=板球棒 item.weapon_bat_nail.name=板上钉钉 item.weapon_golf_club.name=黑手党快乐杆 @@ -4081,119 +4037,112 @@ item.weapon_pipe_rusty.name=姿态调节器 item.weapon_saw.name=肢解骨锯 item.weaponized_starblaster_cell.name=§c星际爆能电池§r item.wd40.name=VT-40 -item.wild_p.name=狂野飞马干威士忌 -item.wings_limp.name=轻盈的翅膀 -item.wings_murk.name=强化的翅膀 +item.wild_p.name=野生珀伽索斯干威士忌 +item.wings_limp.name=无力之翼 +item.wings_murk.name=暗黑之翼 item.wire_advanced_alloy.name=超导体 item.wire_aluminium.name=铝线 item.wire_copper.name=铜线 item.wire_gold.name=金线 item.wire_magnetized_tungsten.name=4000K高温超导体 item.wire_red_copper.name=紫铜线 -item.wire_schrabidium.name=Sa326异变铀金属线 +item.wire_schrabidium.name=Sa326线 item.wire_tungsten.name=钨线 item.wiring_red_copper.name=电缆卷 item.wood_gavel.name=木槌 item.wrench.name=管道扳手 -item.wrench_archineer.name=Archineer的扳手 +item.wrench_archineer.name=Archineer扳手 item.wrench_flipped.name=刺刀扳手 -item.xanax.name=NAXA 抗Ϝ迪伽马辐射药物 -item.xanax.desc=移除500mDRX的Ϝ迪伽马辐射 +item.xanax.name=NAXA 抗迪伽马药物 +item.xanax.desc=移除500mDRX迪伽马辐射 item.zirconium_legs.name=锆质护腿 - -itemGroup.tabTest=HBM的核科技mod测试项[S166, Bismarck, nukesteve联合汉化] -itemGroup.tabParts=核技术资源和零件 -itemGroup.tabControl=核技术机器项目和燃料 -itemGroup.tabTemplate=核技术模板 -itemGroup.tabBlocks=核技术矿石和方块 -itemGroup.tabMachine=核技术机器 -itemGroup.tabNuke=核技术炸弹 -itemGroup.tabMissile=核技术导弹和卫星 -itemGroup.tabWeapon=核技术武器和炮塔 -itemGroup.tabConsumable=核技术食物和装备 - +itemGroup.tabBlocks=HBM 矿石和方块 +itemGroup.tabConsumable=HBM 食物和装备 +itemGroup.tabControl=HBM 机器项目和燃料 +itemGroup.tabMachine=HBM 机器 +itemGroup.tabMissile=HBM 导弹和卫星 +itemGroup.tabNuke=HBM 炸弹 +itemGroup.tabParts=HBM 资源和零件 +itemGroup.tabTemplate=HBM 模板 +itemGroup.tabTest=HBM的核科技mod测试项[S166、Bismarck、nukesteve联合汉化] +itemGroup.tabWeapon=HBM 武器和炮塔 potion.hbm_bang=! ! ! -potion.hbm_death=阿斯托尔福化突变 +potion.hbm_death=重度突变 potion.hbm_lead=铅中毒 -potion.hbm_mutation=腐化变异 +potion.hbm_mutation=变异 potion.hbm_phosphorus=磷烧伤 -potion.hbm_potionsickness=药物上瘾 -potion.hbm_radaway=辐射宁 +potion.hbm_potionsickness=药水病 +potion.hbm_radaway=消辐宁 potion.hbm_radiation=辐射 -potion.hbm_radx=辐射抗性 -potion.hbm_stability=原子稳定性 -potion.hbm_taint=腐化沾染 +potion.hbm_radx=抗辐射 +potion.hbm_stability=稳定 +potion.hbm_taint=污染 potion.hbm_telekinesis=! ! ! - radar.detectMissiles=探测导弹 radar.detectPlayers=探测玩家 radar.redMode=红石控制模式$开启: 基于导弹距离输出红石信号$关闭: 基于导弹级别输出红石信号 -radar.smartMode=智能模式$输出红石信号(忽略上升的导弹) - +radar.smartMode=智能模式$有红石信号时忽略上升段的导弹 rbmk.heat=柱体温度: %s rbmk.boiler.water=供水速率: %s / %s rbmk.boiler.steam=蒸汽产生速率: %s / %s rbmk.boiler.type=蒸汽压缩等级: %s -rbmk.console.assign=将所选柱分配到屏幕#%s -rbmk.console.none=无 -rbmk.console.col_temp=监测柱体表面平均温度 -rbmk.console.rod_extraction=监测控制棒平均抽出量 -rbmk.console.fuel_depletion=监测核燃料平均消耗 -rbmk.console.fuel_poison=监测氙堆积平均程度 -rbmk.console.fuel_temp=监测燃料棒核心平均温度 +rbmk.console.assign=将选定列分配给屏幕#%s +rbmk.console.none=Off +rbmk.console.col_temp=监测平均柱温 +rbmk.console.rod_extraction=监控平均控制棒抽出量 +rbmk.console.fuel_depletion=监测平均燃料消耗 +rbmk.console.fuel_poison=监测平均氙中毒程度 +rbmk.console.fuel_temp=监测平均燃料温度 rbmk.control.level=%s rbmk.control.red=§c红色组 rbmk.control.yellow=§e黄色组 rbmk.control.green=§a绿色组 rbmk.control.blue=§1蓝色组 rbmk.control.purple=§5紫色组 -rbmk.moderated=缓冲 +rbmk.moderated=慢化剂 rbmk.rod.depletion=燃料消耗: %s rbmk.rod.xenon=氙元素堆积程度: %s rbmk.rod.coreTemp=核心温度: %s rbmk.rod.skinTemp=表面温度: %s / %s -rbmk.screen.core=核心温度: %s +rbmk.screen.core=核心:%s rbmk.screen.depletion=消耗: %s -rbmk.screen.rod=控制棒抽出量: %s -rbmk.screen.temp=表面温度: %s -rbmk.screen.xenon=氙堆积: %s - -shape.billet=坯料 -shape.blade=扇片 -shape.blades=粉碎机刀片 -shape.block=方块 -shape.dust=粉 -shape.dusttiny=小撮粉 -shape.hull_big=大型壳 -shape.hull_small=小型壳 +rbmk.screen.rod=控制:%s +rbmk.screen.temp=温度:%s +rbmk.screen.xenon=氙:%s +shape.billet=钢坯 +shape.blade=刀身 +shape.blades=切碎机刀片 +shape.block=块 +shape.dust=粉末 +shape.dusttiny=小搓粉末 +shape.hull_big=大型外壳 +shape.hull_small=小型外壳 shape.ingot=锭 shape.nugget=粒 -shape.quantum=量 +shape.quantum=量子 shape.quart=四分之一块 -shape.plate=板 +shape.plate=板材 shape.plateTriple=铸造板 -shape.stamp=锻模 -shape.wire=线 - -soundCategory.ntmMachines=NTM核科技机器 - +shape.stamp=锻压模具 +shape.wire=线材 +soundCategory.ntmMachines=NTM机器 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发射极 [装饰] -tile.ams_limiter.name=AMS稳能器 [装饰] -tile.ancient_scrap.name=远古残骸 +tile.ams_base.name=AMS基座 [开发中] +tile.ams_emitter.name=AMS发射极 [开发中] +tile.ams_limiter.name=AMS稳能器 [开发中] +tile.ancient_scrap.name=古代废金属 tile.anvil_bismuth.name=铋砧 tile.anvil_dnt.name=双聚中子态素砧 -tile.anvil_ferrouranium.name=铀-铁合金砧 +tile.anvil_ferrouranium.name=铀铁合金砧 tile.anvil_iron.name=铁砧 tile.anvil_lead.name=铅砧 tile.anvil_meteorite.name=陨石砧 tile.anvil_murky.name=暗黑砧 -tile.anvil_osmiridium.name=铱锇砧 +tile.anvil_osmiridium.name=铱锇合金砧 tile.anvil_schrabidate.name=Sa-铁合金砧 tile.anvil_starmetal.name=星辉金属砧 tile.anvil_steel.name=钢砧 @@ -4209,7 +4158,7 @@ tile.barbed_wire_wither.name=凋零铁丝网 tile.barrel_antimatter.name=磁约束反物质容器 tile.barrel_corroded.name=被腐蚀的桶 tile.barrel_iron.name=铁桶 -tile.barrel_plastic.name=安全桶™ +tile.barrel_plastic.name=安全桶 tile.barrel_steel.name=钢桶 tile.barrel_tcalloy.name=锝-钢合金桶 tile.barricade.name=沙袋 @@ -4217,11 +4166,11 @@ tile.basalt.name=玄武岩 tile.basalt_asbestos.name=富含石棉的玄武岩 tile.basalt_brick.name=玄武岩砖 tile.basalt_fluorite.name=富含氟石的玄武岩 -tile.basalt_gem.name=富含晶石的玄武岩 -tile.basalt_polished.name=磨制玄武岩 +tile.basalt_gem.name=富含宝石的玄武岩 +tile.basalt_polished.name=抛光玄武岩 tile.basalt_smooth.name=平滑玄武岩 -tile.basalt_sulfur.name=富硫玄武岩 -tile.basalt_tiles.name=玄武岩瓦 +tile.basalt_sulfur.name=富含硫的玄武岩 +tile.basalt_tiles.name=玄武岩砖 tile.blast_door.name=防爆闸门 tile.block_actinium.name=锕块 tile.block_advanced_alloy.name=高级合金块 @@ -4232,45 +4181,47 @@ tile.block_bakelite.name=电木块 tile.block_beryllium.name=铍块 tile.block_bismuth.name=铋块 tile.block_boron.name=硼块 -tile.block_c4.name=C-4炸药块 -tile.block_cap_fritz.name=Fritz弗里茨可乐瓶盖压缩块 -tile.block_cap_korl.name=Korl库尔勒瓶盖压缩块 -tile.block_cap_nuka.name=核子可乐瓶盖压缩块 -tile.block_cap_quantum.name=樱桃味量子核子可乐瓶盖压缩块 -tile.block_cap_rad.name=辐射S~闪闪可乐瓶盖压缩块 -tile.block_cap_sparkle.name=S~闪闪可乐瓶盖压缩块 -tile.block_cap_star.name=夕阳沙士星星瓶盖压缩块 -tile.block_cap_sunset.name=夕阳沙士瓶盖压缩块 +tile.block_c4.name=C-4块 +tile.block_cadmium.name=镉块 +tile.block_cap_fritz.name=弗里茨瓶盖方块 +tile.block_cap_korl.name=Korl瓶盖方块 +tile.block_cap_nuka.name=核子可乐瓶盖方块 +tile.block_cap_quantum.name=樱桃味核子可乐瓶盖方块 +tile.block_cap_rad.name=辐射 S~核子可乐瓶盖方块 +tile.block_cap_sparkle.name=核子可乐瓶盖方块 +tile.block_cap_star.name=夕阳沙士星星瓶盖方块 +tile.block_cap_sunset.name=夕阳沙士瓶盖方块 +tile.block_cdalloy.name=镉钢块 tile.block_cobalt.name=钴块 -tile.block_coke.coal.name=焦煤块 -tile.block_coke.lignite.name=褐焦煤块 -tile.block_coke.petroleum.name=石油焦块 -tile.block_coltan.name=钶钽铁块 +tile.block_coke.coal.name=煤焦炭块 +tile.block_coke.lignite.name=褐煤焦炭块 +tile.block_coke.petroleum.name=石油焦炭块 +tile.block_coltan.name=钽块 tile.block_combine_steel.name=CMB钢块 tile.block_copper.name=铜块 tile.block_corium.name=熔融堆芯冷凝物 -tile.block_corium_cobble.name=疏松熔融堆芯冷凝物 +tile.block_corium_cobble.name= 熔融物凝固石 tile.block_daffergon.name=达夫贡块 -tile.block_desh.name=德什块 +tile.block_desh.name=Desh块 tile.block_dineutronium.name=双聚中子态素块 tile.block_dura_steel.name=强化高速钢块 tile.block_electrical_scrap.name=电子废料块 -tile.block_euphemium.name=Ep元素块 -tile.block_euphemium_cluster.name=Ep元素刻蚀Sa326异变铀金属团 +tile.block_euphemium.name=Ep块 +tile.block_euphemium_cluster.name=Ep刻蚀Sa326团 tile.block_fallout.name=辐射尘块 tile.block_fiberglass.name=玻璃纤维卷 tile.block_fluorite.name=氟石块 tile.block_foam.name=泡沫 tile.block_insulator.name=绝缘卷 tile.block_graphite.name=石墨块 -tile.block_graphite_detector.name=中子探测器石墨块 -tile.block_graphite_drilled.name=钻孔石墨块 -tile.block_graphite_fuel.name=塞进了铀棒的石墨块 -tile.block_graphite_lithium.name=塞进了锂燃料棒的石墨块 -tile.block_graphite_plutonium.name=塞进了铀棒(已增殖)的石墨块 -tile.block_graphite_rod.name=塞进了控制棒的石墨块 -tile.block_graphite_source.name=塞进了中子源棒的石墨块 -tile.block_graphite_tritium.name=塞进了锂燃料棒(已增殖)的石墨块 +tile.block_graphite_detector.name=反应堆中子探测棒 +tile.block_graphite_drilled.name=钻孔石墨 +tile.block_graphite_fuel.name=反应堆燃料 +tile.block_graphite_lithium.name=反应堆锂燃料 +tile.block_graphite_plutonium.name=反应堆燃料(增殖) +tile.block_graphite_rod.name=反应堆控制棒 +tile.block_graphite_source.name=反应堆中子源 +tile.block_graphite_tritium.name=反应堆锂燃料(增殖) tile.block_lead.name=铅块 tile.block_lanthanium.name=镧块 tile.block_lithium.name=锂块 @@ -4283,45 +4234,46 @@ tile.block_meteor_treasure.name=宝藏陨石块 tile.block_mox_fuel.name=MOX燃料块 tile.block_neptunium.name=镎块 tile.block_niter.name=硝石块 -tile.block_niter_reinforced.name=加固硝石块 +tile.block_niter_reinforced.name=硝石加固块 tile.block_niobium.name=铌块 tile.block_plutonium.name=钚块 tile.block_plutonium_fuel.name=钚燃料块 -tile.block_polonium.name=钋-210块 +tile.block_polonium.name=钋块 tile.block_polymer.name=聚合物块 tile.block_pu_mix.name=反应堆级钚块 -tile.block_pu238.name=钚238块 -tile.block_pu239.name=钚239块 -tile.block_pu240.name=钚240块 +tile.block_pu238.name=钚-238块 +tile.block_pu239.name=钚-239块 +tile.block_pu240.name=钚-240块 tile.block_ra226.name=镭-226块 tile.block_red_copper.name=紫铜块 tile.block_red_phosphorus.name=红磷块 tile.block_reiium.name=雷恩块 tile.block_rubber.name=橡胶块 -tile.block_schrabidate.name=Sa326元素酸化铁块 -tile.block_schrabidium.name=Sa326异变铀金属块 -tile.block_schrabidium_cluster.name=Sa326异变铀金属团 -tile.block_schrabidium_fuel.name=Sa326异变铀金属燃料块 -tile.block_schraranium.name=低丰度Sa326异变铀金属块 +tile.block_schrabidate.name=Sa酸铁块 +tile.block_schrabidium.name=Sa326块 +tile.block_schrabidium_cluster.name=Sa326团 +tile.block_schrabidium_fuel.name=Sa326燃料块 +tile.block_schraranium.name=低丰度Sa326块 tile.block_scrap.name=废品块 -tile.block_semtex.name=塞姆汀塑胶炸药块 -tile.block_slag.name=炉渣块 -tile.block_smore.name=S'more饼干块 -tile.block_solinium.name=Sa327索林块 -tile.block_starmetal.name=星辉金属块 +tile.block_semtex.name=塞姆汀块 +tile.block_slag.name=矿渣块 +tile.block_smore.name=S'more块 +tile.block_solinium.name=Sa327块 +tile.block_starmetal.name=星辉块 tile.block_steel.name=钢块 tile.block_sulfur.name=硫磺块 tile.block_tantalium.name=钽块 +tile.block_tcalloy.name=锝钢块 tile.block_thorium.name=钍块 tile.block_thorium_fuel.name=钍燃料块 tile.block_titanium.name=钛块 tile.block_trinitite.name=玻璃石块 tile.block_tritium.name=氚单元块 tile.block_tungsten.name=钨块 -tile.block_u233.name=铀233块 -tile.block_u235.name=铀U235块 -tile.block_u238.name=铀U238块 -tile.block_unobtainium.name=阿诺布汀块 +tile.block_u233.name=铀-233块 +tile.block_u235.name=铀-235块 +tile.block_u238.name=铀-238块 +tile.block_unobtainium.name=难得素块 tile.block_uranium.name=铀块 tile.block_uranium_fuel.name=铀燃料块 tile.block_verticium.name=韦德赛块 @@ -4333,7 +4285,7 @@ tile.block_white_phosphorus.name=白磷块 tile.block_yellowcake.name=黄饼块 tile.block_zirconium.name=锆块 tile.boat.name=船 -tile.bobblehead.name=Bob的摇头娃娃 +tile.bobblehead.name=Bob的魔法娃娃 tile.bomb_multi.name=多功能炸弹 tile.bomber.name=坠毁轰炸机 tile.book_guide.name=HBM的核科技mod手册[遗留] @@ -4341,28 +4293,28 @@ tile.boxcar.name=车厢 tile.brick_asbestos.name=石棉砖块 tile.brick_asbestos_stairs.name=石棉砖楼梯 tile.brick_compound.name=复合网格砖块 -tile.brick_compound_stairs.name=复合网格砖楼梯 +tile.brick_compound_stairs.name=复合网格楼梯 tile.brick_concrete.name=混凝土砖块 tile.brick_concrete_stairs.name=混凝土砖楼梯 -tile.brick_concrete_broken.name=破混凝土砖块 -tile.brick_concrete_broken_stairs.name=破混凝土砖楼梯 -tile.brick_concrete_cracked.name=裂混凝土砖块 -tile.brick_concrete_cracked_stairs.name=裂混凝土砖楼梯 -tile.brick_concrete_marked.name=标记过的混凝土砖块 +tile.brick_concrete_broken.name=破碎混凝土砖块 +tile.brick_concrete_broken_stairs.name=破碎的混凝土砖楼梯 +tile.brick_concrete_cracked.name=开裂混凝土砖块 +tile.brick_concrete_cracked_stairs.name=开裂混凝土砖楼梯 +tile.brick_concrete_marked.name=标记混凝土砖 tile.brick_concrete_mossy.name=苔混凝土砖块 -tile.brick_concrete_mossy_stairs.name=苔混凝土砖楼梯 -tile.brick_ducrete.name=贫铀高密度混凝土砖块 -tile.brick_ducrete_stairs.name=贫铀高密度混凝土砖楼梯 -tile.brick_dungeon.name=硒铜砖块 -tile.brick_dungeon_circle.name=硒铜圈 +tile.brick_concrete_mossy_stairs.name=苔藓混凝土砖楼梯 +tile.brick_ducrete.name=高密度贫铀混凝土砖块 +tile.brick_ducrete_stairs.name=高密度贫铀混凝土砖楼梯 +tile.brick_dungeon.name=硒铜砖 +tile.brick_dungeon_circle.name=圆环硒铜块 tile.brick_dungeon_flat.name=硒铜块 -tile.brick_dungeon_tile.name=硒铜台阶 -tile.brick_fire.name=耐火砖 +tile.brick_dungeon_tile.name=硒铜瓦 +tile.brick_fire.name=耐火砖块 tile.brick_fire_stairs.name=耐火砖楼梯 tile.brick_jungle.name=硫砷钢砖块 -tile.brick_jungle_circle.name=机械师留下的圆圈 +tile.brick_jungle_circle.name=机械师之环 tile.brick_jungle_cracked.name=开裂硫砷钢砖块 -tile.brick_jungle_fragile.name=易碎的硫砷钢砖块 +tile.brick_jungle_fragile.name=粉碎硫砷钢砖块 tile.brick_jungle_glyph.name=硫砷钢石雕砖块 tile.brick_jungle_lava.name=岩浆硫砷钢砖块 tile.brick_jungle_mystic.name=奥术硫砷钢砖块 @@ -4372,26 +4324,26 @@ tile.brick_light.name=轻质砖块 tile.brick_light_stairs.name=轻质砖楼梯 tile.brick_obsidian.name=黑曜石砖块 tile.brick_obsidian_stairs.name=黑曜石砖楼梯 -tile.brick_slab.brick_asbestos.name=石棉砖台阶 -tile.brick_slab.brick_compound.name=复合网格砖台阶 -tile.brick_slab.brick_fire.name=耐火砖台阶 -tile.brick_slab.brick_light.name=轻质砖台阶 -tile.brick_slab.brick_obsidian.name=黑曜石砖台阶 -tile.brick_slab.reinforced_brick.name=钢筋混凝土台阶 -tile.brick_slab.reinforced_stone.name=致密石头台阶 -tile.broadcaster_pc.name=腐化的广播 +tile.brick_slab.brick_asbestos.name=石棉砖板 +tile.brick_slab.brick_compound.name=复合网格板 +tile.brick_slab.brick_fire.name=耐火砖板 +tile.brick_slab.brick_light.name=轻质砖板 +tile.brick_slab.brick_obsidian.name=黑曜石砖板 +tile.brick_slab.reinforced_brick.name=钢筋石板 +tile.brick_slab.reinforced_stone.name=密实石板 +tile.broadcaster_pc.name=腐败广播 tile.burning_earth.name=燃烧草地 -tile.c4.name=C-4炸药 -tile.cable_detector.name=红石信号电源开关 +tile.c4.name=C-4 +tile.cable_detector.name=红石电源开关 tile.cable_diode.name=紫铜二极管 tile.cable_switch.name=电源开关 -tile.charge_c4.name=爆破炸药 +tile.charge_c4.name=炸药包 tile.charge_dynamite.name=定时炸弹 tile.charge_miner.name=定时采矿炸药 -tile.charge_semtex.name=塞姆汀塑胶采矿炸药 +tile.charge_semtex.name=塞姆汀采矿炸药 tile.charger.name=充电站 -tile.cheater_virus.name=冻结Ep元素 -tile.cheater_virus_seed.name=不稳定Ep元素-Sa326元素块 +tile.cheater_virus.name=冻结Ep +tile.cheater_virus_seed.name=不稳定Ep Schrabide块 tile.chlorine_gas.name=氯气 tile.cluster_aluminium.name=铝矿簇 tile.cluster_copper.name=铜矿簇 @@ -4404,13 +4356,13 @@ tile.cmb_brick.name=CMB钢瓦块 tile.cmb_brick_reinforced.name=加固CMB钢砖块 tile.compact_launcher.name=紧凑型发射台 tile.concrete.name=混凝土瓦块 -tile.concrete_asbestos.name=石棉夹层混凝土 -tile.concrete_asbestos_stairs.name=石棉夹层混凝土楼梯 -tile.concrete_brick_slab.brick_concrete.name=混凝土砖台阶 -tile.concrete_brick_slab.brick_concrete_broken.name=破碎的混凝土砖台阶 -tile.concrete_brick_slab.brick_concrete_cracked.name=开裂的混凝土砖台阶 -tile.concrete_brick_slab.brick_concrete_mossy.name=苔藓混凝土砖台阶 -tile.concrete_brick_slab.brick_ducrete.name=贫铀高密度混凝土砖台阶 +tile.concrete_asbestos.name=黑色混凝土 +tile.concrete_asbestos_stairs.name=石棉混凝土楼梯 +tile.concrete_brick_slab.brick_concrete.name=混凝土砖板 +tile.concrete_brick_slab.brick_concrete_broken.name=破碎的混凝土砖板 +tile.concrete_brick_slab.brick_concrete_cracked.name=开裂的混凝土砖板 +tile.concrete_brick_slab.brick_concrete_mossy.name=苔藓混凝土砖板 +tile.concrete_brick_slab.brick_ducrete.name=高密度贫铀混凝土砖板 tile.concrete_colored.black.name=黑色混凝土 tile.concrete_colored.blue.name=蓝色混凝土 tile.concrete_colored.brown.name=棕色混凝土 @@ -4427,35 +4379,41 @@ tile.concrete_colored.red.name=红色混凝土 tile.concrete_colored.silver.name=淡灰色混凝土 tile.concrete_colored.white.name=白色混凝土 tile.concrete_colored.yellow.name=黄色混凝土 +tile.concrete_colored_ext.hazard.name=建筑商指定混凝土-危险地带 +tile.concrete_colored_ext.indigo.name=建筑商指定混凝土-深靛蓝 +tile.concrete_colored_ext.machine.name=建筑商指定混凝土-工业风 +tile.concrete_colored_ext.machine_stripe.name=建筑商指定混凝土-工业条纹 +tile.concrete_colored_ext.pink.name=建筑商指定混凝土-猛男粉 +tile.concrete_colored_ext.purple.name=建筑商指定混凝土-神秘紫 tile.concrete_pillar.name=钢筋混凝土柱 -tile.concrete_slab.concrete.name=混凝土瓷砖台阶 -tile.concrete_slab.concrete_asbestos.name=石棉夹层混凝土台阶 -tile.concrete_slab.concrete_smooth.name=混凝土台阶 -tile.concrete_slab.ducrete.name=贫铀高密度混凝土瓦台阶 -tile.concrete_slab.ducrete_smooth.name=贫铀高密度混凝土砖台阶 -tile.concrete_smooth_stairs.name=混凝土楼梯 +tile.concrete_slab.concrete.name=混凝土瓷砖板 +tile.concrete_slab.concrete_asbestos.name=石棉混凝土板 +tile.concrete_slab.concrete_smooth.name=混凝土板 +tile.concrete_slab.ducrete.name=高密度贫铀混凝土瓷砖板 +tile.concrete_slab.ducrete_smooth.name=高密度贫铀混凝土板 tile.concrete_smooth.name=混凝土 -tile.concrete_stairs.name=混凝土瓦楼梯 -tile.concrete_super.name=Über混凝土 +tile.concrete_smooth_stairs.name=混凝土楼梯 +tile.concrete_stairs.name=混凝土瓷砖楼梯 +tile.concrete_super.name=über混凝土 tile.concrete_super_broken.name=发霉的碎片 -tile.conveyor.name=传送带 -tile.conveyor_chute.name=滑槽 -tile.conveyor_double.name=双通道传送带 -tile.conveyor_lift.name=提升式传送带 -tile.conveyor_triple.name=三通道传送带 +tile.conveyor.name=输送带 +tile.conveyor_chute.name=输送带滑槽 +tile.conveyor_double.name=双轨道输送带 +tile.conveyor_lift.name=垂直输送带 +tile.conveyor_triple.name=三轨道输送带 tile.corium_block.name=堆芯熔融物 -tile.crane_boxer.name=传送带打包器 -tile.crane_extractor.name=传送带输出器 -tile.crane_grabber.name=传送带抓取器 -tile.crane_inserter.name=传送带输入器 -tile.crane_router.name=传送带分流器 -tile.crane_splitter.name=传送带分离器 -tile.crane_unboxer.name=传送带解包器 +tile.crane_boxer.name=输送带打包机 +tile.crane_extractor.name=输送带提取器 +tile.crane_grabber.name=输送带抓斗 +tile.crane_inserter.name=输送带导入器 +tile.crane_router.name=输送带分拣机 +tile.crane_splitter.name=输送带分离器 +tile.crane_unboxer.name=输送带解包机 tile.crashed_bomb.name=哑弹 tile.crate.name=补给箱 -tile.crate_ammo.name=星辉金属补给箱 +tile.crate_ammo.name=星辉补给箱 tile.crate_can.name=罐头补给箱 -tile.crate_desh.name=德什制箱子 +tile.crate_desh.name=Desh板条箱 tile.crate_iron.name=铁箱 tile.crate_jungle.name=硫砷钢箱 tile.crate_lead.name=危险品补给箱 @@ -4471,11 +4429,12 @@ tile.deco_aluminium.name=铝装饰块 tile.deco_asbestos.name=石棉瓦 tile.deco_beryllium.name=铍装饰块 tile.deco_computer.ibm_300pl.name=IBM个人电脑300PL -tile.deco_emitter.name=装饰性激光发射器 -tile.part_emitter.name=装饰性粒子生成器 +tile.deco_emitter.name=Deco发光体 +tile.part_emitter.name=Deco粒子发射器 +tile.piston_inserter.name=插入器 tile.deco_lead.name=铅装饰块 -tile.deco_rbmk.name=RBMK石墨式反应堆装饰块 -tile.deco_rbmk_smooth.name=平滑RBMK石墨式反应堆装饰块 +tile.deco_rbmk.name=RBMK装饰块 +tile.deco_rbmk_smooth.name=平滑RBMK装饰块 tile.deco_red_copper.name=紫铜装饰块 tile.deco_pipe.name=钢制管道 tile.deco_pipe_rusted.name=生锈的钢制管道 @@ -4505,11 +4464,11 @@ tile.deco_steel.name=钢装饰块 tile.deco_titanium.name=钛装饰块 tile.deco_tungsten.name=钨装饰块 tile.decon.name=玩家去污器 -tile.depth_brick.name=深板岩砖 -tile.depth_dnt.name=双聚中子态素强化的深板岩砖 -tile.depth_nether_brick.name=下界深板岩砖 -tile.depth_nether_tiles.name=下界深板岩瓦 -tile.depth_tiles.name=深板岩瓦 +tile.depth_brick.name=深层岩石砖 +tile.depth_dnt.name=DNT加固深层岩石砖 +tile.depth_nether_brick.name=下界深层岩石砖 +tile.depth_nether_tiles.name=下界深层岩石瓷砖 +tile.depth_tiles.name=深层岩石瓷砖 tile.det_charge.name=炸药 tile.det_cord.name=炸药引信 tile.det_miner.name=采矿炸药 @@ -4519,73 +4478,73 @@ tile.dfc_emitter.name=DFC发射器 tile.dfc_injector.name=DFC燃料喷射器 tile.dfc_receiver.name=DFC接收器 tile.dfc_stabilizer.name=DFC稳定器 -tile.dirt_dead.name=荒土 -tile.dirt_oily.name=油污 +tile.dirt_dead.name=泥渣 +tile.dirt_oily.name=油泥 tile.drill_pipe.name=钻杆 tile.door_bunker.name=仓门 -tile.door_office.name=办公室门 tile.door_metal.name=金属门 -tile.ducrete.name=贫铀高密度混凝土瓦 -tile.ducrete_stairs.name=贫铀高密度混凝土瓦楼梯 -tile.ducrete_smooth.name=贫铀高密度混凝土 -tile.ducrete_smooth_stairs.name=贫铀高密度混凝土台阶 +tile.door_office.name=办公室门 +tile.ducrete.name=高密度贫铀混凝土瓷砖 +tile.ducrete_stairs.name=高密度贫铀混凝土瓷砖楼梯 +tile.ducrete_smooth.name=高密度贫铀混凝土 +tile.ducrete_smooth_stairs.name=高密度贫铀混凝土楼梯 tile.dummy_block.name=虚拟方块 tile.dummy_port.name=虚拟方块[电力接口] -tile.dungeon_chain.name=铁链 -tile.dynamite.name=甘油炸药 -tile.emp_bomb.name=EMP电磁脉冲炸弹 +tile.dungeon_chain.name=金属链 +tile.dynamite.name=炸药 +tile.emp_bomb.name=EMP炸弹 tile.factory_advanced_conductor.name=高级工厂电力端口 tile.factory_advanced_core.name=高级工厂核心组件 tile.factory_advanced_furnace.name=高级工厂端口 -tile.factory_advanced_hull.name=高级工厂方块 +tile.factory_advanced_hull.name=高级工厂外壳 tile.factory_titanium_conductor.name=工厂电力端口 tile.factory_titanium_core.name=工厂核心组件 tile.factory_titanium_furnace.name=工厂端口 -tile.factory_titanium_hull.name=工厂方块 +tile.factory_titanium_hull.name=工厂外壳 tile.fallout.name=辐射尘 tile.fan.name=风扇 tile.fence_metal.name=铁丝网围栏 tile.field_disturber.name=高能场干扰机 -tile.filing_cabinet.green.name=布满灰尘的文件柜 +tile.filing_cabinet.green.name=蒙尘的文件柜 tile.filing_cabinet.steel.name=钢制文件柜 -tile.filing_cabinet.name=文件柜 -tile.fire_digamma.name=挥之不去的迪伽玛之火 +tile.fire_digamma.name=挥之不去的迪伽马之火 tile.fire_door.name=防火门 -tile.fireworks.name=烟花 -tile.fireworks.charges=装药: %s +tile.fireworks.name=烟花箱 +tile.fireworks.charges=已充能: %s tile.fireworks.message=信息: %s tile.fireworks.color=颜色: %s -tile.fissure_bomb.name=裂变炸弹 +tile.fissure_bomb.name=裂缝炸弹 tile.flame_war.name=盒中论战 tile.float_bomb.name=悬浮炸弹 -tile.fluid_duct.name=通用流体管道 (已弃用) -tile.fluid_duct_box.name=通用流体管道(箱形管) +tile.fluid_duct.name=通用流体管道 +tile.fluid_duct_box.name=通用流体管道(方形) tile.fluid_duct_gauge.name=流量计管 -tile.fluid_duct_gauge.desc=显示每个tick在网络中$流过多少流体的管道.$由桶或罐连接的分离网络$会被视为一个共享网络. +tile.fluid_duct_gauge.desc=显示每个游戏刻在管网有多少流体移动的管道$由桶或罐连接的分离网络被视为一个共享网络。 tile.fluid_duct_neo.name=通用流体管道 tile.fluid_duct_paintable.name=可喷漆涂层通用流体导管 -tile.fluid_duct_solid.name=涂层通用流体导管(已弃用) +tile.fluid_duct_solid.name=带涂层的通用流体导管 tile.foam_layer.name=泡沫层 -tile.foundry_basin.name=浇筑盆 -tile.foundry_channel.name=浇筑道 -tile.foundry_tank.name=储液池 -tile.foundry_mold.name=浅浇筑盆 -tile.foundry_outlet.name=浇筑口 -tile.fraction_spacer.name=分馏塔分离器 +tile.foundry_basin.name=铸造盘 +tile.foundry_channel.name=铸造浇道 +tile.foundry_tank.name=铸造池 +tile.foundry_mold.name=浅铸造池 +tile.foundry_outlet.name=浇筑出口 +tile.foundry_slagtap.name=炉渣出口 +tile.fraction_spacer.name=分馏塔分隔器 tile.frozen_dirt.name=冰冻土 tile.frozen_grass.name=冰冻草 tile.frozen_log.name=冰冻原木 tile.frozen_planks.name=冰冻木板 -tile.furnace_combination.name=组合炉 -tile.furnace_combination.desc=可以生产木炭和焦煤的大熔炉.$产生流体副产品.$传热速率: ΔT*0.25 TU/t -tile.furnace_iron.name=铁制熔炉 -tile.furnace_iron.desc=更大、效率更高的熔炉,$闲置时不浪费燃料. -tile.furnace_steel.name=钢制熔炉 -tile.furnace_steel.desc=冶炼矿石时可以提供额外物品的$超大熔炉. 需要外部热源.$传热速率: ΔT*0.05 TU/t$(Δ 表示温差, T 表示温度) +tile.furnace_combination.name=复式炼焦炉 +tile.furnace_combination.desc=一种可以生产木炭和煤焦炭的大熔炉$产生流体副产品$传热速率:ΔT*0.25 TU/T +tile.furnace_iron.name=铁炉 +tile.furnace_iron.desc=更大、效率更高的炉子,在闲置时不会浪费燃料。 +tile.furnace_steel.name=钢炉 +tile.furnace_steel.desc=非常大的熔炉,冶炼矿石时可提供加成。$这需要外部热源$传热率:ΔT*0.05tu/T$(Δ表示差值,T表示温度) tile.fusion_center.name=中心磁铁 tile.fusion_conductor.name=超导磁体 tile.fusion_core.name=聚变反应堆控制器 -tile.fusion_hatch.name=风管装饰块 +tile.fusion_hatch.name=聚变反应堆端口 tile.fusion_heater.name=等离子加热器 tile.fusion_motor.name=磁体马达 tile.fwatz_computer.name=Watz聚变反应堆计算矩阵 @@ -4593,19 +4552,19 @@ tile.fwatz_conductor.name=4000K超导磁体 tile.fwatz_cooler.name=冷却液罐壳 tile.fwatz_core.name=Watz聚变反应堆控制器 tile.fwatz_hatch.name=Watz聚变反应堆端口 -tile.fwatz_plasma.name=不稳定反Sa326异变铀金属等离子体 +tile.fwatz_plasma.name=不稳定反Sa326等离子体 tile.fwatz_scaffold.name=Watz聚变反应堆结构支架 tile.fwatz_tank.name=冷却液罐 -tile.gas_asbestos.name=漂浮石棉颗粒 -tile.gas_coal.name=漂浮煤尘 +tile.gas_asbestos.name=石棉粉尘 +tile.gas_coal.name=空气中的煤尘 tile.gas_duct.name=输气管道 tile.gas_duct_solid.name=密封输气管 -tile.gas_explosive.name=易爆气体 -tile.gas_flammable.name=易燃气体 +tile.gas_explosive.name=爆炸性气体 +tile.gas_flammable.name=可燃气体 tile.gas_meltdown.name=熔毁气体 -tile.gas_monoxide.name=一氧化碳气体 -tile.gas_radon.name=放射性氡气 -tile.gas_radon_dense.name=浓密放射性氡气 +tile.gas_monoxide.name=一氧化碳 +tile.gas_radon.name=氡气 +tile.gas_radon_dense.name=高浓度氡气 tile.gas_radon_tomb.name=古墓气体 tile.geiger.name=盖革计数器 tile.glass_ash.name=灰烬玻璃 @@ -4615,50 +4574,50 @@ tile.glass_polonium.name=钋玻璃 tile.glass_quartz.name=石英玻璃 tile.glass_trinitite.name=核融玻璃 tile.glass_uranium.name=铀玻璃 -tile.gneiss_brick.name=片岩砖 -tile.gneiss_chiseled.name=錾制片岩 -tile.gneiss_tile.name=片岩瓦 +tile.gneiss_brick.name=页岩砖 +tile.gneiss_chiseled.name=錾制页岩砖 +tile.gneiss_tile.name=页岩瓷砖 tile.gravel_diamond.name=钻石砂砾 tile.gravel_obsidian.name=碎黑曜石 tile.hadron_access.name=粒子加速器接入终端 tile.hadron_analysis.name=粒子加速器分析室壁 tile.hadron_analysis_glass.name=粒子加速器分析室窗口 -tile.hadron_coil_alloy.name=致密超导加速线圈 -tile.hadron_coil_chlorophyte.name=致密绿藻制电磁加速线圈 -tile.hadron_coil_gold.name=致密金制电磁加速线圈 -tile.hadron_coil_magtung.name=致密4000K超导电磁加速线圈 -tile.hadron_coil_mese.name=致密月石制电磁加速线圈 -tile.hadron_coil_neodymium.name=致密钕制电磁加速线圈 -tile.hadron_coil_schrabidate.name=致密Sa326元素酸化铁制电磁加速线圈 -tile.hadron_coil_schrabidium.name=致密Sa326异变铀金属制电磁加速线圈 -tile.hadron_coil_starmetal.name=致密星辉金属制电磁加速线圈 -tile.hadron_core.name=粒子加速器核心部件 -tile.hadron_diode.name=肖特基粒子二极管 -tile.hadron_plating.name=粒子加速器电镀层 -tile.hadron_plating_black.name=粒子加速器电镀层 (黑色) -tile.hadron_plating_blue.name=粒子加速器电镀层 (蓝色) -tile.hadron_plating_glass.name=粒子加速器电镀层 (窗口) -tile.hadron_plating_striped.name=粒子加速器电镀层 (炫酷的警示条纹) -tile.hadron_plating_voltz.name=粒子加速器电镀层 (VOLTZ) -tile.hadron_plating_yellow.name=粒子加速器电镀层 (黄色) -tile.hadron_power.name=粒子加速器电力接口 (1MHE) -tile.hadron_power_10m.name=粒子加速器电力接口 (10MHE) -tile.hadron_power_100m.name=粒子加速器电力接口 (100MHE) -tile.hadron_power_1g.name=粒子加速器电力接口 (1GHE) -tile.hadron_power_10g.name=粒子加速器电力接口 (10GHE) +tile.hadron_coil_alloy.name=密集超导线圈 +tile.hadron_coil_chlorophyte.name=致密叶绿线圈 +tile.hadron_coil_gold.name=致密金线圈 +tile.hadron_coil_magtung.name=致密4000K超导线圈 +tile.hadron_coil_mese.name=密集Mese线圈 +tile.hadron_coil_neodymium.name=致密钕线圈 +tile.hadron_coil_schrabidate.name=致密Sa酸铁线圈 +tile.hadron_coil_schrabidium.name=密集Sa326线圈 +tile.hadron_coil_starmetal.name=密集星辉线圈 +tile.hadron_core.name=粒子加速器核心组件 +tile.hadron_diode.name=肖基特二极管 +tile.hadron_plating.name=粒子加速器镀层 +tile.hadron_plating_black.name=粒子加速器镀层 (黑) +tile.hadron_plating_blue.name=粒子加速器镀层 (蓝) +tile.hadron_plating_glass.name=粒子加速器镀层 (窗口) +tile.hadron_plating_striped.name=粒子加速器镀层(低温危险) +tile.hadron_plating_voltz.name=粒子加速器镀层 (VOLTZ) +tile.hadron_plating_yellow.name=粒子加速器镀层(Yello染料) +tile.hadron_power.name=粒子加速器电源接口 +tile.hadron_power_10m.name=粒子加速器电源接口(10MHE) +tile.hadron_power_100m.name=粒子加速器电源接口(100MHE) +tile.hadron_power_1g.name=粒子加速器电源接口(1GHE) +tile.hadron_power_10g.name=粒子加速器电源接口(10GHE) tile.hazmat.name=防辐射布块 tile.heater_electric.name=电加热器 -tile.heater_electric.desc=使用电能来产生热量.$可以85%的效率接受来自底部的热量.$可用螺丝刀配置效率. +tile.heater_electric.desc=利用电能产生热量$以85%的效率接受来自底部的热量$可使用螺丝刀进行配置。 tile.heater_firebox.name=燃烧室 -tile.heater_firebox.desc=燃烧固体燃料以产生热量. -tile.heater_heatex.name=热交换加热器 -tile.heater_heatex.desc=从热流体中产生热量. -tile.heater_oilburner.name=液体燃料燃烧室 -tile.heater_oilburner.desc=燃烧液体燃料以产生热量.$可使用螺丝刀进行配置. +tile.heater_firebox.desc=燃烧固体燃料以产生热量。 +tile.heater_heatex.name=换热加热器 +tile.heater_heatex.desc=从热流体中产生热量。 +tile.heater_oilburner.name=流体燃烧器 +tile.heater_oilburner.desc=燃烧可燃液体产生热量。 tile.heater_oven.name=加热炉 -tile.heater_oven.desc=燃烧固体燃料以产生热量.$可以85%的效率接受来自底部的热量. +tile.heater_oven.desc=燃烧固体燃料以产生热量$以50%的效率接受来自底部的热量。 tile.hev_battery.name=盔甲电池 -tile.impact_dirt.name=焦土 +tile.impact_dirt.name=烧焦的泥土 tile.iter.name=聚变反应堆 tile.ladder_aluminium.name=铝制梯子 tile.ladder_cobalt.name=钴制梯子 @@ -4684,29 +4643,29 @@ tile.machine_arc_furnace_off.name=电弧炉 tile.machine_arc_furnace_on.name=电弧炉 tile.machine_armor_table.name=装甲改装台 tile.machine_assembler.name=装配机 -tile.machine_assemfac.name=大型装配厂 -tile.machine_autocrafter.name=自动化工作台 -tile.machine_autosaw.name=自动锯 -tile.machine_bat9000.name="巨臀"9000号储罐 +tile.machine_assemfac.name=装配厂 +tile.machine_autocrafter.name=自动工作台 +tile.machine_autosaw.name=自动嗡嗡锯 +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_electric_off.name=电力原油加热器 -tile.machine_boiler_electric_on.name=电力原油加热器 -tile.machine_boiler_off.name=原油加热器 -tile.machine_boiler_on.name=原油加热器 +tile.machine_boiler.name=大型锅炉 +tile.machine_boiler.desc=可以烧水或加热油的大型锅炉$需要外部热源$传热速率:ΔT*0.01 TU/T +tile.machine_boiler_electric_off.name=电锅炉 +tile.machine_boiler_electric_on.name=电锅炉 +tile.machine_boiler_off.name=锅炉 +tile.machine_boiler_on.name=锅炉 tile.machine_catalytic_cracker.name=催化裂化塔 -tile.machine_catalytic_reformer.name=催化重整装置 +tile.machine_catalytic_reformer.name=催化重整器 tile.machine_centrifuge.name=离心机 tile.machine_chemfac.name=大型化工厂 -tile.machine_chemplant.name=化工装置 +tile.machine_chemplant.name=化工厂 tile.machine_chungus.name=“利维坦”巨型汽轮机 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.025 TU/T tile.machine_combine_factory.name=CMB炼钢炉 tile.machine_combustion_engine.name=工业内燃机 tile.machine_condenser.name=蒸汽冷凝器 @@ -4714,62 +4673,62 @@ tile.machine_controller.name=反应堆遥控模块 tile.machine_converter_he_rf.name=HE→RF转换器 tile.machine_converter_rf_he.name=RF→HE转换器 tile.machine_crucible.name=坩埚 -tile.machine_crystallizer.name=矿物结晶机 +tile.machine_crystallizer.name=矿物酸化器 tile.machine_cyclotron.name=回旋加速器 -tile.machine_detector.name=电力功率检测器 +tile.machine_detector.name=功率检测器 tile.machine_deuterium_extractor.name=氘提取器 tile.machine_deuterium_tower.name=氘萃取塔 tile.machine_diesel.name=柴油发电机 -tile.machine_difurnace_extension.name=高炉风道 +tile.machine_difurnace_extension.name=高炉烟道 tile.machine_difurnace_off.name=高炉 tile.machine_difurnace_on.name=高炉 -tile.machine_difurnace_rtg_off.name=核能高炉 -tile.machine_difurnace_rtg_on.name=核能高炉 -tile.machine_dineutronium_battery.name=Spark闪闪蓄电池 +tile.machine_difurnace_rtg_off.name=核高炉 +tile.machine_difurnace_rtg_on.name=核高炉 +tile.machine_dineutronium_battery.name=Spark蓄电池 tile.machine_drill.name=自动采矿钻机 tile.machine_electric_furnace_off.name=电炉 tile.machine_electric_furnace_on.name=电炉 tile.machine_epress.name=电动锻压机 tile.machine_excavator.name=大型采矿钻机 -tile.machine_fel.name=FEL +tile.machine_fel.name=FEL自由电子激光器 tile.machine_fensu.name=FEnSU飞轮储能系统 -tile.machine_flare.name=废气燃烧塔 +tile.machine_flare.name=高架火炬 tile.machine_fluidtank.name=储罐 tile.machine_forcefield.name=力场发生器 tile.machine_fraction_tower.name=分馏塔 -tile.machine_fracking_tower.name=压裂式钻塔 +tile.machine_fracking_tower.name=水力压裂塔 tile.machine_gascent.name=气体离心机 tile.machine_generator.name=核反应堆[旧] tile.machine_geo.name=地热发电机 tile.machine_hephaestus.name=地热换热器 tile.machine_industrial_generator.name=工业发电机 tile.machine_keyforge.name=锁匠桌 -tile.machine_large_turbine.name=大型工业汽轮机 +tile.machine_large_turbine.name=工业汽轮机 tile.machine_large_turbine.desc=效率: 100%% tile.machine_liquefactor.name=工业液化机 -tile.machine_liquefactor.desc=强大的通用型机器,可将物品转化为液体.$配有多功能催化组件,加热元件$和用于石油化工进行液化的内置水合器. +tile.machine_liquefactor.desc=强大的通用机器,可将物品转化为液体$配有多功能催化组件、加热元件和用于石化液化的内置水合器。 tile.machine_lithium_battery.name=锂蓄电池 tile.machine_microwave.name=微波炉 -tile.machine_mining_laser.name=自动激光采矿钻机 +tile.machine_mining_laser.name=采矿激光 tile.machine_minirtg.name=放射性同位素电池 tile.machine_missile_assembly.name=导弹装配台 -tile.machine_mixer.name=工业混合机 +tile.machine_mixer.name=工业搅拌机 tile.machine_nuke_furnace_off.name=核熔炉 tile.machine_nuke_furnace_on.name=核熔炉 tile.machine_orbus.name=重型磁约束储罐 tile.machine_powerrtg.name=PT同位素电池 tile.machine_press.name=火力锻压机 tile.machine_puf6_tank.name=六氟化钚储罐 -tile.machine_pumpjack.name=梁式抽油机 +tile.machine_pumpjack.name=石油钻机 tile.machine_radar.name=雷达 tile.machine_radgen.name=辐射能量发电机 -tile.machine_radiolysis.name=放射性同位素热电发生器和辐解室 +tile.machine_radiolysis.name=放射性同位素热电机和辐射裂解室 tile.machine_reactor.name=增殖反应堆 -tile.machine_reactor_small.name=研究性反应堆 +tile.machine_reactor_small.name=核反应堆 tile.machine_refinery.name=炼油厂 tile.machine_reix_mainframe.name=Rei-X主机[开发中] tile.machine_rtg_blue.name=对流发电机 -tile.machine_rtg_cyan.name=Sa326异变铀金属衰变发电机 [开发中] +tile.machine_rtg_cyan.name=Sa326衰变发电机 [开发中] tile.machine_rtg_furnace_off.name=放射性同位素热力炉[RTG] tile.machine_rtg_furnace_on.name=放射性同位素热力炉[RTG] tile.machine_rtg_green.name=韦德赛富集发电机 @@ -4779,26 +4738,26 @@ tile.machine_rtg_purple.name=反物质湮灭发发电机 tile.machine_rtg_red.name=离子发生器 tile.machine_rtg_yellow.name=奥斯超级燃料反应堆 tile.machine_satlinker.name=卫星ID管理器 -tile.machine_sawmill.name=斯特林锯木厂 -tile.machine_sawmill.desc=需要外部热源.$传热效率: T*0.1 TU/t$ 最小热量输入 : 100 TU/t, 最大热量输入: 300 TU/t -tile.machine_schrabidium_battery.name=Sa326异变铀金属蓄电池 -tile.machine_schrabidium_transmutator.name=Sa326异变铀金属嬗变装置 -tile.machine_selenium.name=星型径向性能发电机 +tile.machine_sawmill.name=斯特林锯木机 +tile.machine_sawmill.desc=需要外部热源$传热速率:T*0.1 TU/T$最小进气量:100 TU/T,最大进气量:300 TU/T +tile.machine_schrabidium_battery.name=Sa326蓄电池 +tile.machine_schrabidium_transmutator.name=Sa326嬗变装置 +tile.machine_selenium.name=星型发动机 tile.machine_shredder.name=粉碎机 -tile.machine_silex.name=同位素激光分离室(SILEX) +tile.machine_silex.name=激光同位素分离室 tile.machine_siren.name=警报器 -tile.machine_solar_boiler.name=太阳能蒸发塔 +tile.machine_solar_boiler.name=太阳能锅炉 tile.machine_solidifier.name=工业固化机 -tile.machine_solidifier.desc=配备冷却系统和其他多功能工具的通用型机器$用于通过冷冻和石化聚合等多种工艺$将液体变为固体. +tile.machine_solidifier.desc=配备冷却系统和其他多功能工具的通用机器,用于使用冷冻和石化聚合等多种工艺将流体转化为固体。 tile.machine_spp_bottom.name=ZPE电位发生器 [底部] tile.machine_spp_top.name=ZPE电位发生器 [顶部] -tile.machine_steam_engine.name=蒸汽引擎 -tile.machine_steam_engine.desc=效率: 85%% -tile.machine_stirling.name=斯特林引擎 -tile.machine_stirling.desc=将热量转化为能量. 需要外部热源.$传热速率: T*0.1 TU/t$最大吸热速率: 300 TU/t$效率: 50%% +tile.machine_steam_engine.name=蒸汽机 +tile.machine_steam_engine.desc=效率:85% +tile.machine_stirling.name=斯特林发电机 +tile.machine_stirling.desc=它将热量转化为能量。这需要外部热源$传热率:T*0.1 TU/T$最大进气量:300 TU/T$效率:50% +tile.machine_stirling_steel.name=重型斯特林发动机 +tile.machine_stirling_steel.desc=它将热量转化为能量。这需要外部热源$使用更重的齿轮来支持更高的温度$传热率:T*0.1 TU/T$最大进气量:1500 TU/T$效率:50% tile.machine_storage_drum.name=核废料处理桶 -tile.machine_stirling_steel.name=重型斯特林发电机 -tile.machine_stirling_steel.desc=将热量转化为能量. 需要外部热源.$使用更重的齿轮来支持更高的温度.$传热效率: T*0.1 TU/t$最大吸热速率: 1500 TU/t$转换效率: 50%% tile.machine_telelinker.name=炮塔ID管理器 tile.machine_teleporter.name=传送机 tile.machine_tower_large.name=冷却塔 @@ -4810,21 +4769,21 @@ tile.machine_transformer_dnt_20.name=DNT-1Hz变频器 tile.machine_turbine.name=汽轮机 tile.machine_turbine.desc=效率: 85%% tile.machine_turbinegas.name=联合循环燃气轮机 -tile.machine_turbofan.name=涡扇发电机 +tile.machine_turbofan.name=涡扇发动机 tile.machine_uf6_tank.name=六氟化铀储罐 -tile.machine_vacuum_distill.name=真空精炼厂 -tile.machine_waste_drum.name=乏核燃料冷却池 +tile.machine_vacuum_distill.name=真空炼油厂 +tile.machine_waste_drum.name=乏燃料池 tile.machine_well.name=钻油塔 -tile.machine_zirnox.name=ZIRNOX锆诺克斯反应堆 +tile.machine_zirnox.name=锆诺克斯核反应堆 tile.marker_structure.name=多方块结构信标 -tile.mass_storage.name=大容量存储单元 +tile.mass_storage.name=大规模存储单元 tile.meteor_battery.name=星辉静电发生器 tile.meteor_brick.name=陨石砖 tile.meteor_brick_chiseled.name=錾制陨石砖 tile.meteor_brick_cracked.name=裂纹陨石砖 tile.meteor_brick_mossy.name=苔藓陨石砖 tile.meteor_pillar.name=竖纹陨石砖 -tile.meteor_polished.name=磨制陨石块 +tile.meteor_polished.name=平滑陨石块 tile.meteor_spawner.name=赛博螃蟹组装机 tile.mine_ap.name=反步兵地雷 tile.mine_fat.name=核地雷 @@ -4842,7 +4801,7 @@ tile.nuke_fstbmb.name=BF炸弹 tile.nuke_gadget.name=小玩意 tile.nuke_man.name=胖子 tile.nuke_mike.name=常青藤迈克 -tile.nuke_n2.name=N²炸弹 +tile.nuke_n2.name=N2炸弹 tile.nuke_n45.name=N45水雷 tile.nuke_prototype.name=原型 tile.nuke_solinium.name=蔚蓝洗礼 @@ -4850,54 +4809,54 @@ tile.nuke_tsar.name=沙皇炸弹 tile.oil_duct.name=输油管 tile.oil_duct_solid.name=粗输油管 tile.oil_pipe.name=原油抽取管 -tile.ore_alexandrite.name=紫翠宝石矿 +tile.ore_alexandrite.name=亚历山大变石矿 tile.ore_aluminium.name=铝矿石 tile.ore_asbestos.name=石棉矿 tile.ore_australium.name=奥斯矿石 -tile.ore_bedrock.name=基岩矿床 -tile.ore_bedrock_coltan.name=基岩层钶钽铁矿 -tile.ore_bedrock_oil.name=基岩层石油矿床 +tile.ore_bedrock.name=基岩矿石 +tile.ore_bedrock_coltan.name=基岩钶钽铁矿 +tile.ore_bedrock_oil.name=基岩油层 tile.ore_beryllium.name=铍矿石 tile.ore_cinnebar.name=朱砂矿石 tile.ore_coal_oil.name=含油煤矿石 -tile.ore_coal_oil_burning.name=烧焦的含油煤矿石 +tile.ore_coal_oil_burning.name=燃烧的含油煤矿石 tile.ore_cobalt.name=钴矿石 -tile.ore_coltan.name=钶钽铁矿石 +tile.ore_coltan.name=钶钽铁矿 tile.ore_copper.name=铜矿石 tile.ore_daffergon.name=达夫贡矿石 -tile.ore_depth_borax.name=深层硼砂矿石 +tile.ore_depth_borax.name=深层硼砂矿 tile.ore_depth_cinnebar.name=深层朱砂矿石 -tile.ore_depth_nether_neodymium.name=下界深层钕矿石 +tile.ore_depth_nether_neodymium.name=深层钕矿石 tile.ore_depth_zirconium.name=深层锆矿石 tile.ore_fluorite.name=氟石矿石 -tile.ore_gneiss_asbestos.name=片岩石棉矿 -tile.ore_gneiss_copper.name=片岩铜矿石 -tile.ore_gneiss_gas.name=天然气页岩 -tile.ore_gneiss_gold.name=片岩金矿石 -tile.ore_gneiss_iron.name=片岩铁矿石 -tile.ore_gneiss_lithium.name=片岩锂矿石 -tile.ore_gneiss_rare.name=片岩稀土矿 -tile.ore_gneiss_schrabidium.name=片岩Sa326矿石 -tile.ore_gneiss_uranium.name=片岩铀矿 -tile.ore_gneiss_uranium_scorched.name=烧焦的片岩铀矿 +tile.ore_gneiss_asbestos.name=石棉矿页岩 +tile.ore_gneiss_copper.name=铜矿页岩 +tile.ore_gneiss_gas.name=气页岩 +tile.ore_gneiss_gold.name=金矿页岩 +tile.ore_gneiss_iron.name=铁矿页岩 +tile.ore_gneiss_lithium.name=锂矿页岩 +tile.ore_gneiss_rare.name=稀土矿页岩 +tile.ore_gneiss_schrabidium.name=Sa326矿页岩 +tile.ore_gneiss_uranium.name=铀矿页岩 +tile.ore_gneiss_uranium_scorched.name=烧焦的铀矿页岩 tile.ore_lead.name=铅矿石 tile.ore_lignite.name=褐煤矿石 tile.ore_meteor_aluminium.name=铝矿陨石 tile.ore_meteor_copper.name=铜矿陨石 tile.ore_meteor_lead.name=铅矿陨石 tile.ore_meteor_lithium.name=锂矿陨石 -tile.ore_meteor_starmetal.name=星辉金属矿陨石 +tile.ore_meteor_starmetal.name=星辉矿陨石 tile.ore_meteor_sulfur.name=硫磺矿陨石 tile.ore_meteor_thorium.name=钍矿陨石 tile.ore_meteor_titanium.name=钛矿陨石 tile.ore_meteor_tungsten.name=钨矿陨石 tile.ore_meteor_uranium.name=铀矿陨石 -tile.ore_nether_coal.name=燃烧的下界煤矿石 +tile.ore_nether_coal.name=燃烧下界煤矿 tile.ore_nether_cobalt.name=下界钴矿石 tile.ore_nether_fire.name=火矿石 tile.ore_nether_plutonium.name=下界钚矿石 -tile.ore_nether_schrabidium.name=下界Sa326异变铀金属矿石 -tile.ore_nether_smoldering.name=闷烧的下界石 +tile.ore_nether_schrabidium.name=下界Sa326矿石 +tile.ore_nether_smoldering.name=阴燃下界岩 tile.ore_nether_sulfur.name=下界硫磺矿石 tile.ore_nether_tungsten.name=下界钨矿石 tile.ore_nether_uranium.name=下界铀矿石 @@ -4909,77 +4868,77 @@ tile.ore_oil_sand.name=沥青砂 tile.ore_random.name=%s 矿 tile.ore_rare.name=稀土矿石 tile.ore_reiium.name=雷恩矿石 -tile.ore_schrabidium.name=Sa326异变铀金属矿石 +tile.ore_schrabidium.name=Sa326矿石 tile.ore_sulfur.name=硫磺矿石 -tile.ore_tektite_osmiridium.name=渗铱锇熔融石 +tile.ore_tektite_osmiridium.name=渗锇熔融石 tile.ore_thorium.name=钍矿石 tile.ore_tikite.name=赛瑞克矿石 tile.ore_titanium.name=钛矿石 tile.ore_tungsten.name=钨矿石 -tile.ore_unobtainium.name=阿诺布汀矿石 +tile.ore_unobtainium.name=难得素矿石 tile.ore_uranium.name=铀矿石 tile.ore_uranium_scorched.name=烧焦的铀矿石 tile.ore_verticium.name=韦德赛矿石 -tile.ore_volcano.name=地热口 +tile.ore_volcano.name=地热裂缝 tile.ore_weidanium.name=魏丹矿石 tile.pink_barrel.name=煤油桶 tile.pink_log.name=粉色原木 tile.pink_planks.name=粉色木板 tile.pink_slab.name=粉色木半砖 tile.pink_stairs.name=粉色木台阶 -tile.plant_dead.name=死亡的植物 -tile.plant_flower.cd0.name=芥柳 -tile.plant_flower.cd1.name=芥柳 +tile.plant_dead.name=死亡植物 +tile.plant_flower.cd0.name=芥子柳 +tile.plant_flower.cd1.name=芥子柳 tile.plant_flower.foxglove.name=毛地黄 tile.plant_flower.nightshade.name=颠茄 tile.plant_flower.tobacco.name=烟草 tile.plant_flower.weed.name=大麻 tile.plant_reeds.name=芦苇 -tile.plant_tall.cd2.name=芥柳 -tile.plant_tall.cd3.name=芥柳 -tile.plant_tall.cd4.name=芥柳 (成熟) +tile.plant_tall.cd2.name=芥子柳 +tile.plant_tall.cd3.name=芥子柳 +tile.plant_tall.cd4.name=芥子柳(成熟) tile.plant_tall.weed.name=大麻 tile.plasma.name=等离子 tile.plasma_heater.name=等离子加热器 tile.pole_satellite_receiver.name=卫星天线 tile.pole_top.name=天线顶部 -tile.press_preheater.name=燃烧器压力预热器 +tile.press_preheater.name=锻压机压力预热器 tile.pribris.name=RBMK石墨式反应堆残骸 -tile.pribris_burning.name=燃烧的RBMK石墨式反应堆残骸 -tile.pribris_digamma.name=发黑的RBMK石墨式反应堆残骸 -tile.pribris_radiating.name=阴燃的RBMK石墨式反应堆残骸 -tile.radio_torch_receiver.name=红石无线信号接收器 -tile.radio_torch_receiver.desc=可在平坦表面或与比较器兼容的块上放置 -tile.radio_torch_sender.name=红石无线信号发送器 -tile.radio_torch_sender.desc=可在平坦表面或与比较器兼容的块上放置$读取红石信号或比较器输入 +tile.pribris_burning.name=燃烧的RBMK反应堆残骸 +tile.pribris_digamma.name=发黑的RBMK反应堆残骸 +tile.pribris_radiating.name=阴燃的RBMK反应堆残骸 +tile.radio_torch_receiver.name=无线红石信号接收器 +tile.radio_torch_receiver.desc=可在平坦表面或与比较器兼容的方块上放置 +tile.radio_torch_sender.name=无线红石信号发射器 +tile.radio_torch_sender.desc=可在平坦表面或比较器兼容的方块上放置$读取红石信号或比较器输入 tile.radiobox.name=无线怪物清除箱 -tile.radiorec.name=FM收音机 +tile.radiorec.name=坏掉的收音机 tile.rail_booster.name=高速动力轨道 tile.rail_highspeed.name=高速轨道 -tile.rail_narrow.name=窄轨距车厢轨道 -tile.rail_wood.name=木轨 -tile.rbmk_absorber.name=RBMK石墨式反应堆硼中子吸收器 -tile.rbmk_blank.name=RBMK石墨式反应堆结构柱 -tile.rbmk_boiler.name=RBMK石墨式反应堆蒸汽管道 +tile.rail_narrow.name=窄轨距轨道 +tile.rail_wood.name=木制轨道 +tile.rbmk_absorber.name=RBMK反应堆硼中子吸收器 +tile.rbmk_blank.name=RBMK反应堆结构柱 +tile.rbmk_boiler.name=RBMK反应堆蒸汽管道 tile.rbmk_console.name=RBMK石墨式反应堆控制台 -tile.rbmk_cooler.name=RBMK石墨式反应堆冷却器 -tile.rbmk_control.name=RBMK石墨式反应堆控制棒 -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_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_steam_inlet.name=RBMK石墨式反应堆(ReaSim)进水口 -tile.rbmk_steam_outlet.name=RBMK石墨式反应堆(ReaSim)蒸汽出口 -tile.rbmk_storage.name=RBMK石墨式反应堆燃料棒燃料棒储存柱 +tile.rbmk_cooler.name=RBMK冷却器 +tile.rbmk_control.name=RBMK反应堆控制棒 +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_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_steam_inlet.name=RBMK ReaSim进水口 +tile.rbmk_steam_outlet.name=RBMK ReaSim蒸汽出口 +tile.rbmk_storage.name=RBMK燃料棒存储棒 tile.reactor_computer.name=反应堆控制器 tile.reactor_conductor.name=反应堆锅炉 tile.reactor_control.name=控制棒 @@ -4989,22 +4948,25 @@ tile.reactor_hatch.name=反应堆端口 tile.reactor_inserter.name=反应堆燃料插入器 tile.red_barrel.name=炸药桶 tile.red_cable.name=紫铜电线 -tile.red_cable_classic.name=紫铜电线(经典) -tile.red_cable_paintable.name=可涂漆红铜线缆块 -tile.red_connector.name=电线连接器 +tile.red_cable_classic.name=紫铜电缆(经典型) +tile.red_cable_paintable.name=可涂漆紫铜线 +tile.red_connector.name=电力连接器 tile.red_pylon.name=电线杆 tile.red_pylon_large.name=大型输电塔 tile.red_wire_coated.name=密封紫铜电缆 tile.reinforced_brick.name=强化石头 -tile.reinforced_brick_stairs.name=强化石头楼梯 -tile.reinforced_ducrete.name=强化贫铀高密度混凝土 +tile.reinforced_brick_stairs.name=钢筋石楼梯 +tile.reinforced_ducrete.name=加固高密度贫铀混凝土 tile.reinforced_glass.name=强化玻璃 +tile.reinforced_glass_pane.name=强化玻璃窗 tile.reinforced_lamp_off.name=强化红石灯 tile.reinforced_lamp_on.name=强化红石灯 tile.reinforced_light.name=强化萤石 tile.reinforced_sand.name=强化砂石 tile.reinforced_stone.name=致密石头 tile.reinforced_stone_stairs.name=致密石头楼梯 +tile.reinforced_laminate.name=强化层压板 +tile.reinforced_laminate_pane.name=强化层压板隔板 tile.rejuvinator.name=再生装置 tile.residue.name=云残留 tile.safe.name=保险箱 @@ -5014,10 +4976,10 @@ tile.sand_dirty.name=油砂 tile.sand_dirty_red.name=红色油砂 tile.sand_gold.name=金沙 tile.sand_gold198.name=金-198沙 -tile.sand_lead.name=铅砂 -tile.sand_polonium.name=钋砂 +tile.sand_lead.name=铅沙 +tile.sand_polonium.name=钋沙 tile.sand_quartz.name=石英砂 -tile.sand_uranium.name=铀砂 +tile.sand_uranium.name=铀沙 tile.sat_dock.name=卸货平台 tile.sat_foeq.name=实验型核能PEAF-Mk.I FOEQ Duna探测器[装饰块] tile.sat_laser.name=轨道死光炮[装饰块] @@ -5025,45 +4987,46 @@ tile.sat_mapper.name=地表测绘卫星[装饰块] tile.sat_radar.name=雷达探测卫星[装饰块] tile.sat_resonator.name=X晶体共振卫星[装饰块] tile.sat_scanner.name=绘测和资源探测卫星[装饰块] -tile.schrabidic_block.name=Sa326元素酸液 +tile.schrabidic_block.name=Sa酸 tile.seal_controller.name=发射井舱门开关 tile.seal_frame.name=发射井舱门框架 tile.seal_hatch.name=发射井舱门 tile.sellafield.0.name=放射性熔融凝固物 -tile.sellafield.1.name=热放射性熔融凝固物 +tile.sellafield.1.name=高温放射性熔融凝固物 tile.sellafield.2.name=沸腾的放射性熔融凝固物 tile.sellafield.3.name=灼热的放射性熔融凝固物 -tile.sellafield.4.name=地狱的放射性熔融凝固物 -tile.sellafield.5.name=高放射性堆芯熔融凝固物 -tile.sellafield_slaked.name=冷却的放射性熔融凝固物 +tile.sellafield.4.name=地狱般的放射性熔融凝固物 +tile.sellafield.5.name=放射性熔融凝固物核心 +tile.sellafield_slaked.name=消沉的放射性熔融凝固物 tile.semtex.name=塞姆汀塑胶炸药 -tile.solar_mirror.name=阳光反射镜 +tile.solar_mirror.name=定日镜 tile.soyuz_capsule.name=货物着陆舱 -tile.soyuz_launcher.name=联盟号巨型运载火箭发射平台 -tile.spikes.name=尖刺 +tile.soyuz_launcher.name=联盟号发射平台 +tile.spikes.name=地刺 tile.stalactite.asbestos.name=石棉钟乳石 tile.stalactite.sulfur.name=含硫钟乳石 tile.stalagmite.asbestos.name=石棉石笋 -tile.stalagmite.sulfur.name=硫磺石笋 +tile.stalagmite.sulfur.name=含硫石笋 tile.steel_beam.name=钢梁 tile.steel_corner.name=钢墙角 tile.steel_grate.name=钢格栅 tile.steel_grate_wide.name=物品格栅 -tile.steel_grate_wide.desc=允许掉落的物品和XP穿过 +tile.steel_grate_wide.desc=只会让物品和经验球掉落下去 tile.steel_poles.name=钢杆 tile.steel_roof.name=钢天花顶 tile.steel_scaffold.name=钢脚手架 tile.steel_wall.name=钢墙 -tile.stone_cracked.name=碎石 -tile.stone_depth.name=深板岩 -tile.stone_depth_nether.name=下界深板岩 -tile.stone_gneiss.name=石墨片岩 +tile.stone_cracked.name=破碎的石头 +tile.stone_depth.name=深层岩石 +tile.stone_depth_nether.name=下界深层岩石 +tile.stone_gneiss.name=石墨页岩 tile.stone_porous.name=多孔石 -tile.stone_resource.asbestos.name=蛇纹石石棉 +tile.stone_resource.asbestos.name=温石棉 +tile.stone_resource.bauxite.name=铝土矿 tile.stone_resource.hematite.name=赤铁矿 tile.stone_resource.limestone.name=石灰石 tile.stone_resource.malachite.name=孔雀石 -tile.stone_resource.sulfur.name=含硫岩层 +tile.stone_resource.sulfur.name=硫磺石 tile.struct_iter_core.name=聚变反应堆核心组件 tile.struct_launcher.name=发射台部件 tile.struct_launcher_core.name=紧凑型发射台核心组件 @@ -5071,14 +5034,14 @@ tile.struct_launcher_core_large.name=发射台核心组件 tile.struct_plasma_core.name=等离子加热器核心组件 tile.struct_scaffold.name=发射台骨架 tile.struct_soyuz_core.name=联盟号发射器核心组件 -tile.struct_watz_core.name=Watz瓦茨电厂核心组件 -tile.substation.name=变电器 +tile.struct_watz_core.name=Watz发电厂核心组件 +tile.substation.name=变电站 tile.sulfuric_acid_block.name=硫酸 -tile.taint.name=污点 +tile.taint.name=腐质 tile.taint_barrel.name=IMP残渣桶 tile.tape_recorder.name=录音机 tile.tektite.name=熔融石 -tile.teleanchor.name=远程传送锚 +tile.teleanchor.name=传送锚 tile.tesla.name=特斯拉线圈 tile.test_nuke.name=测试核弹 tile.therm_endo.name=吸热炸弹 @@ -5088,81 +5051,77 @@ tile.tile_lab_broken.name=破损实验室瓷砖 tile.tile_lab_cracked.name=开裂实验室瓷砖 tile.tnt_ntm.name=货真价实的TNT tile.toxic_block.name=绿色软泥 -tile.transition_seal.name=过渡仓密封门 -tile.turret_arty.name=重炮炮塔"格里格" -tile.turret_cheapo.name=奇普·加特林哨兵 -tile.turret_chekhov.name=重机枪炮台"契诃夫之枪" -tile.turret_cwis.name=MK-15“密集阵”近防系统 +tile.transition_seal.name=巨型安全门 +tile.turret_arty.name=重炮炮塔“格雷格” +tile.turret_cheapo.name=奇普-加特林哨兵 +tile.turret_chekhov.name=重机枪炮塔“契诃夫的枪” +tile.turret_cwis.name=Mk-15“密集阵”近防系统 tile.turret_flamer.name=喷火炮塔 -tile.turret_friendly.name=链式机枪炮塔"友好先生" +tile.turret_friendly.name=轻机枪炮塔“友好先生” tile.turret_fritz.name=重型火焰喷射器炮塔“弗里茨” -tile.turret_howard.name=双管近防炮"霍华德" -tile.turret_howard_damaged.name=双管近防炮 "玛土撒拉" tile.turret_heavy.name=重型机枪炮塔 -tile.turret_himars.name=远程火箭弹炮塔"亨利" -tile.turret_jeremy.name=重炮炮台"杰米里" +tile.turret_himars.name=火箭炮塔“亨利” +tile.turret_howard.name=双联守门员近防系统“霍华德” +tile.turret_howard_damaged.name=CIWS双联守门员近防系统 "玛士撒拉" +tile.turret_jeremy.name=重炮炮塔“杰里米” tile.turret_light.name=轻型机枪炮塔 tile.turret_maxwell.name=高能微波炮塔 "麦克斯韦" tile.turret_rocket.name=火箭炮塔 -tile.turret_richard.name=蜂巢火箭弹炮塔"理查德" +tile.turret_richard.name=火箭炮塔“理查德” tile.turret_spitfire.name=目前没有名字[开发中] -tile.turret_sentry.name=哨岗炮塔 "布朗" +tile.turret_sentry.name=哨兵炮塔“布朗” tile.turret_tau.name=陶子炮塔 -tile.turret_tauon.name=XVL1456原型炮塔 "负陶子发射器" +tile.turret_tauon.name=XVL1456原型陶子发射器炮塔"陶恩" tile.vacuum.name=真空 tile.vault_door.name=避难所防爆门 tile.vent_chlorine.name=氯气排气口 tile.vent_chlorine_seal.name=氯气容器 tile.vent_cloud.name=云排气口 tile.vent_pink_cloud.name=粉色云排气口 -tile.vinyl_tile.large.name=大块乙烯基瓷砖 -tile.vinyl_tile.small.name=小块乙烯基瓷砖 tile.vinyl_tile.large.name=大型乙烯基瓷砖 tile.vinyl_tile.small.name=小型乙烯基瓷砖 tile.vitrified_barrel.name=玻璃化核废料桶 -tile.volcanic_lava_block.name=火山岩浆 +tile.volcanic_lava_block.name=火山熔岩 tile.volcano_core.name=火山核心 tile.waste_earth.name=死亡草地 -tile.waste_leaves.name=死亡树叶 +tile.waste_leaves.name=枯叶 tile.waste_log.name=烧焦原木 tile.waste_mycelium.name=发光菌丝 tile.waste_planks.name=烧焦木板 tile.waste_trinitite.name=核融玻璃矿石 tile.waste_trinitite_red.name=红色核融玻璃矿石 -tile.watz.name=Watz瓦茨电厂 -tile.watz_conductor.name=Watz瓦茨发电塔电力端口 -tile.watz_control.name=Watz瓦茨发电塔加强控制棒 -tile.watz_cooler.name=Watz瓦茨电厂过冷器 -tile.watz_core.name=Watz瓦茨发电塔控制器 -tile.watz_element.name=Watz瓦茨电厂反应室 -tile.watz_end.name=Watz瓦茨电厂稳定元件 -tile.watz_end_bolted.name=Watz瓦茨电厂稳定元件(铆接) -tile.watz_hatch.name=Watz瓦茨发电塔端口 -tile.watz_pump.name=Watz电厂压力泵 +tile.watz.name=Watz发电厂 +tile.watz_conductor.name=Watz电力端口 +tile.watz_control.name=加强控制棒 +tile.watz_cooler.name=Watz反应堆过冷器 +tile.watz_core.name=Watz反应堆控制器 +tile.watz_element.name=Watz反应室 +tile.watz_end.name=Watz反应堆稳定元件 +tile.watz_end_bolted.name=Watz反应堆稳定元件(铆接) +tile.watz_hatch.name=Watz反应堆端口 +tile.watz_pump.name=Watz压力泵 tile.yellow_barrel.name=核废料桶 -tile.zirnox_destroyed.name=熔毁ZIRNOX锆诺克斯反应堆 - -trait.asbestos=石棉粉尘 -trait.blinding=致盲性 -trait.coal=煤粉尘 -trait.digamma=Ϝ迪伽马辐射 -trait.drop=掉落危险 +tile.zirnox_destroyed.name=损毁的ZINROX +trait.asbestos=石棉 +trait.blinding=致盲 +trait.coal=煤尘 +trait.digamma=迪伽马辐射 +trait.drop=掉落物危险 trait.explosive=高度易燃/易爆 -trait.furnace=在核熔炉中可熔炼%s个物品 -trait.heat=产生%s热量 +trait.furnace=可在核熔炉中工作 %s 次 +trait.heat=提供 %s 热量 trait.hlParticle=粒子半衰期: %s trait.hlPlayer=玩家半衰期: %s -trait.hot=自燃/炽热 -trait.hydro=遇水爆炸 +trait.hot=自燃/高温 +trait.hydro=与水反应 trait.radioactive=放射性 trait.radResistance=辐射抗性: %s - trait.rbmk.coreTemp=核心温度: %s trait.rbmk.depletion=燃料消耗: %s trait.rbmk.diffusion=扩散度: %s trait.rbmk.fluxFunc=中子放射函数: %s trait.rbmk.funcType=中子放射函数类型: %s -trait.rbmk.heat=每1中子通量产生的热量: %s +trait.rbmk.heat=每接受一个中子产生的热量: %s trait.rbmk.melt=熔点: %s trait.rbmk.neutron.any=所有中子 trait.rbmk.neutron.fast=快中子 @@ -5174,13 +5133,12 @@ trait.rbmk.splitsWith=裂变需要: %s trait.rbmk.xenon=氙元素堆积程度: %s trait.rbmk.xenonBurn=氙元素燃烧函数: %s trait.rbmk.xenonGen=氙元素产生函数: %s - trait.rbmx.coreTemp=核心熵: %s trait.rbmx.depletion=衰变: %s trait.rbmx.diffusion=能量潮涌: %s -trait.rbmx.fluxFunc=Ϝ迪伽马粒子放射函数: %s -trait.rbmx.funcType=Ϝ迪伽马粒子放射函数类型: %s -trait.rbmx.heat=满功率时每tick产生的热量: %s +trait.rbmx.fluxFunc=F迪伽马粒子放射函数: %s +trait.rbmx.funcType=F迪伽马粒子放射函数类型: %s +trait.rbmx.heat=满功率下每刻产生的热量: %s trait.rbmx.melt=崩溃深度: %s trait.rbmk.neutron.any.x=所有非欧几里德形时空平面 trait.rbmk.neutron.fast.x=椭圆非欧几里德形时空平面 @@ -5192,57 +5150,55 @@ trait.rbmx.splitsWith=接受: %s trait.rbmx.xenon=铅元素堆积程度: %s trait.rbmx.xenonBurn=铅元素寂灭函数: %s trait.rbmx.xenonGen=铅元素产生函数: %s - trait.tile.cluster=只有在被玩家破坏时才会掉落 trait.tile.depth=只能被爆炸破坏 - tool.ability.centrifuge=自动离心 tool.ability.crystallizer=自动结晶 tool.ability.explosion=爆破 tool.ability.hammer=范围挖掘 tool.ability.luck=时运 -tool.ability.mercury=自动汞采集 +tool.ability.mercury=水银提取 tool.ability.midas=点石成金 tool.ability.recursion=连锁挖矿 tool.ability.shredder=自动粉碎 tool.ability.silktouch=精准采集 tool.ability.smelter=自动熔炼 - -turret.animals=攻击中立生物: %s -turret.arty.artillery=§e重炮模式$宽度: 250m$范围: 3,000m -turret.arty.cannon=§e加农炮模式$宽度: 32m$范围: 250m -turret.arty.manual=§e手动模式$范围: 3,000m -turret.machines=攻击机器: %s -turret.mobs=攻击敌对生物: %s -turret.none=无白名单 -turret.off=OFF -turret.on=ON -turret.players=攻击玩家: %s - +turret.animals=被动目标:%s +turret.arty.artillery=§e火炮模式$最低射程: 250m$最大射程: 3,000m +turret.arty.cannon=§e炮塔模式$最低射程: 32m$射程: 250m +turret.arty.manual=§e手动模式$射程: 3,000m +turret.machines=以机械为目标: %s +turret.mobs=以怪物为目标: %s +turret.none=无 +turret.off=关 +turret.on=开 +turret.players=以玩家为目标:%s wavelengths.name.ir=红外线 wavelengths.name.visible=可见光 wavelengths.name.uv=紫外线 wavelengths.name.gamma=伽马射线 -wavelengths.name.drx=Ϝ迪伽马射线 +wavelengths.name.drx=迪伽玛 wavelengths.waveRange.ir=780nm-1mm wavelengths.waveRange.visible=400nm-780nm wavelengths.waveRange.uv=100nm-400nm wavelengths.waveRange.gamma=<100pm wavelengths.waveRange.drx=1916169普朗克长度 - -weapon.ability.beheader=斩首者 -weapon.ability.bobble=收藏家的运气 -weapon.ability.chainsaw=苦痛之锯 +weapon.ability.beheader=斩首 +weapon.ability.bobble=收藏家之运 +weapon.ability.chainsaw=痛苦面"锯" weapon.ability.fire=燃烧 -weapon.ability.radiation=放射性刀片 -weapon.ability.phosphorus=磷烧伤 -weapon.ability.stun=眩晕打击 +weapon.ability.radiation=辐射 +weapon.ability.phosphorus=白磷刀刃 +weapon.ability.stun=震撼 weapon.ability.vampire=吸血 -weapon.elecGun.modeChange=开火模式切换为: +weapon.elecGun.modeChange=开火模式更改为: weapon.elecGun.glass_cannon.radio=无线电波 weapon.elecGun.glass_cannon.micro=微波 weapon.elecGun.glass_cannon.ir=红外线 weapon.elecGun.glass_cannon.visible=可见光 weapon.elecGun.glass_cannon.uv=紫外线 weapon.elecGun.glass_cannon.xray=X射线 -weapon.elecGun.glass_cannon.gamma=γ射线 \ No newline at end of file +weapon.elecGun.glass_cannon.gamma=伽马射线 +hadron.error=错误! +container.reactor=增殖反应堆 +death.attack.subAtomic=%1$s 的原子被 %2$s 摧毁 \ No newline at end of file From 5d13557f23421366f3bb133d91dbc4d65df4bb28 Mon Sep 17 00:00:00 2001 From: Doctor17-git <60807716+Doctor17-git@users.noreply.github.com> Date: Sun, 11 Jun 2023 19:07:35 +0300 Subject: [PATCH 065/109] Updated ru_RU.lang updated russian localization --- src/main/resources/assets/hbm/lang/ru_RU.lang | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/main/resources/assets/hbm/lang/ru_RU.lang b/src/main/resources/assets/hbm/lang/ru_RU.lang index a4786659c..4aa131493 100644 --- a/src/main/resources/assets/hbm/lang/ru_RU.lang +++ b/src/main/resources/assets/hbm/lang/ru_RU.lang @@ -1184,6 +1184,12 @@ hbmfluid.fishoil=Рыбий жир hbmfluid.sunfloweroil=Подсолнечное масло hbmfluid.nitroglycerin=Нитроглицерин hbmfluid.redmud=Красный шлам +hbmfluid.calcium_chloride=Раствор хлорида кальция +hbmfluid.chlorocalcite_cleaned=Очищенный раствор хлоркальцита +hbmfluid.chlorocalcite_mix=Смешанный раствор хлоркальцита +hbmfluid.chlorocalcite_solution=Раствор хлоркальцита +hbmfluid.potassium_chloride=Раствор хлорида калия +hbmfluid.calcium_solution=Раствор кальция hbmmat.actinium227=Актиний-227 hbmmat.advancedalloy=Продвинутый сплав @@ -1497,6 +1503,9 @@ chem.NITRIC_ACID=Производство азотной кислоты chem.SOLVENT=Смешивание органического растворителя chem.PET=Синтез ПЭТ chem.TATB=Синтез TATB +chem.CC_CENTRIFUGE=Отделение хлоркальцита +chem.CC_ELECTROLYSIS=Электролиз хлорида кальция +chem.PC_ELECTROLYSIS=Электролиз хлорида калия item.record.lc.desc=Valve - Diabolic Adrenaline Guitar/Lambda Core item.record.ss.desc=Valve - Sector Sweep @@ -1789,6 +1798,13 @@ tile.machine_lithium_battery.name=Литий-ионное энергохрани tile.machine_schrabidium_battery.name=Шрабидиевое энергохранилище tile.machine_dineutronium_battery.name=Спарк-энергохранилище container.battery=Энергохранилище +tile.capacitor_bus.name=Шина конденсатора +tile.capacitor_bus.desc=Выходной блок для конденсаторов$Может быть подключен по прямой линии +tile.capacitor_copper.name=Медный конденсатор +tile.capacitor_gold.name=Золотой конденсатор +tile.capacitor_niobium.name=Ниобиевый конденсатор +tile.capacitor_tantalium.name=Танталовый конденсатор +tile.capacitor.desc=Вход: Сверху$Выход: Снизу через шину tile.machine_coal_off.name=Генератор внутреннего сгорания tile.machine_coal_on.name=Генератор внутреннего сгорания container.machineCoal=Генератор внутреннего сгорания @@ -4307,6 +4323,9 @@ item.ammo_arty_nuke.name=Ядерный 16-дюймовый артиллерий item.ammo_arty_phosphorus.name=Фосфорный 16-дюймовый артиллерийский снаряд item.ammo_arty_phosphorus_multi.name=Фосфорный 16-дюймовый мульти-снаряд item.ammo_arty_mini_nuke_multi.name=Мини-ядерный 16-дюймовый мульти-снаряд +item.ammo_arty_phosgene.name=Фосгеновый 16-дюймовый артиллерийский снаряд +item.ammo_arty_mustard_gas.name=16-дюймовый артиллерийский снаряд с горчичным газом +item.ammo_arty_chlorine.name=Хлорный 16-дюймовый артиллерийский снаряд item.ammo_luna.name=Лунный снайперский саботажный снаряд item.ammo_luna_explosive.name=Лунный снайперский взрывной снаряд item.ammo_luna_incendiary.name=Лунный снайперский зажигательный снаряд @@ -5117,6 +5136,8 @@ item.shimmer_axe_head.name=Тяжелое лезвие топора item.shimmer_handle.name=Усиленная полимерная ручка item.redcoil_capacitor.name=Краснокатушечный конденсатор +item.euphemium_capacitor.name=Эвфемиевый конденсатор +item.euphemium_capacitor.desc=Позволяет пассивно рассеивать накопленную положительную энергию. item.detonator.name=Детонатор item.detonator_multi.name=Мульти-детонатор item.detonator_laser.name=Лазерный детонатор @@ -5330,6 +5351,10 @@ item.stamp_357.name=Штамп пули .357 Магнум item.stamp_44.name=Штамп пули .44 Магнум item.stamp_9.name=Штамп малого калибра item.stamp_50.name=Штамп большого калибра +item.stamp_desh_357.name=Штамп пули .357 Магнум (Деш) +item.stamp_desh_44.name=Штамп пули .44 Магнум (Деш) +item.stamp_desh_50.name=Штамп большого калибра (Деш) +item.stamp_desh_9.name=Штамп малого калибра (Деш) item.part_lithium.name=Коробка литиевой пыли item.part_beryllium.name=Коробка бериллиевой пыли @@ -5405,6 +5430,7 @@ item.oil_detector.desc2=Детектор найдет только более к item.oil_detector.bullseye=Нефтяной резервуар прямо снизу! item.oil_detector.detected=Поблизости обнаружен резервуар нефти. item.oil_detector.noOil=Нефти не обнаружено. +item.pollution_detector.name=Детектор загрязнения item.geiger_counter.name=Ручной счетчик Гейгера item.gas_tester.name=Газовый датчик item.dosimeter.name=Дозиметр From d3907c72aa3fc0d4fcbd9c6e90337fd4d98e1c92 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Sun, 11 Jun 2023 20:59:22 -0500 Subject: [PATCH 066/109] Minor addition in pollution code. (clamping values) --- .../com/hbm/handler/pollution/PollutionHandler.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java index 16d91da8d..1cd2250b8 100644 --- a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -172,10 +172,18 @@ public class PollutionHandler { data.pollution[S] *= 0.8F; } else { data.pollution[S] *= 0.99F; + /* Clamp soot pollution to 0 near low values. */ + if(data.pollution[S] < 0.0001F) { + data.pollution[S] = 0; + } } - + data.pollution[H] *= 0.999F; - + /* Clamp Heavy pollution to 0 near low values. */ + if(data.pollution[H] < 0.001F) { + data.pollution[H] = 0; + } + /* SPREADING */ //apply new data to self PollutionData newData = newPollution.get(chunk.getKey()); From b9c23718484ecabe6e0c494a6611a07a14f2a328 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Sun, 11 Jun 2023 21:52:31 -0500 Subject: [PATCH 067/109] Small changes to Boiler callback code following the change with OC and string returns. --- .../machine/rbmk/TileEntityRBMKBoiler.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java index 6faf888fa..92dd33539 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java @@ -383,10 +383,10 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I @Optional.Method(modid = "OpenComputers") public Object[] getSteamType(Context context, Arguments args) { FluidType type = steam.getTankType(); - if(type == Fluids.STEAM) {return new Object[] {"0"};} - else if(type == Fluids.HOTSTEAM) {return new Object[] {"1"};} - else if(type == Fluids.SUPERHOTSTEAM) {return new Object[] {"2"};} - else if(type == Fluids.ULTRAHOTSTEAM) {return new Object[] {"3"};} + if(type == Fluids.STEAM) {return new Object[] {0};} + else if(type == Fluids.HOTSTEAM) {return new Object[] {1};} + else if(type == Fluids.SUPERHOTSTEAM) {return new Object[] {2};} + else if(type == Fluids.ULTRAHOTSTEAM) {return new Object[] {3};} else {return new Object[] {"Unknown Error"};} } @@ -401,16 +401,16 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I } if(type == 0) { steam.setTankType(Fluids.STEAM); - return new Object[] {"true"}; + return new Object[] {true}; } else if(type == 1) { steam.setTankType(Fluids.HOTSTEAM); - return new Object[] {"true"}; + return new Object[] {true}; } else if(type == 2) { steam.setTankType(Fluids.SUPERHOTSTEAM); - return new Object[] {"true"}; + return new Object[] {true}; } else { steam.setTankType(Fluids.ULTRAHOTSTEAM); - return new Object[] {"true"}; + return new Object[] {true}; } } From 3ab84d4f8a4f59722d85757158438b2eb8763234 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Sun, 11 Jun 2023 22:31:53 -0500 Subject: [PATCH 068/109] Percentage my beloved --- .../com/hbm/tileentity/machine/TileEntityReactorResearch.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java index aae6849e0..3e17bf1e0 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java @@ -400,7 +400,7 @@ public class TileEntityReactorResearch extends TileEntityMachineBase implements @Callback @Optional.Method(modid = "OpenComputers") public Object[] getLevel(Context context, Arguments args) { - return new Object[] {level}; + return new Object[] {level * 100}; } @Callback From 506a70a413063c4683d31d837e75f05b78358e8a Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Sun, 11 Jun 2023 23:26:53 -0500 Subject: [PATCH 069/109] geiger counter OC compat --- .../tileentity/machine/TileEntityGeiger.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java b/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java index e9b9e17db..ac7bddef0 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java @@ -4,9 +4,15 @@ import java.util.ArrayList; import java.util.List; import com.hbm.handler.radiation.ChunkRadiationManager; +import cpw.mods.fml.common.Optional; +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.tileentity.TileEntity; -public class TileEntityGeiger extends TileEntity { +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public class TileEntityGeiger extends TileEntity implements SimpleComponent { int timer = 0; int ticker = 0; @@ -57,5 +63,15 @@ public class TileEntityGeiger extends TileEntity { int rads = (int)Math.ceil(ChunkRadiationManager.proxy.getRadiation(worldObj, xCoord, yCoord, zCoord)); return rads; } + @Override + public String getComponentName() { + return "ntm_geiger"; + } + + @Callback + @Optional.Method(modid = "OpenComputers") + public Object[] getRads(Context context, Arguments args) { + return new Object[] {check()}; + } } From 11fc87d0ad0ad32ae57a39648bb6ddf726826851 Mon Sep 17 00:00:00 2001 From: Toshayo Date: Sat, 10 Jun 2023 15:43:05 +0200 Subject: [PATCH 070/109] Changed decimal colors to hexadecimal --- src/main/java/com/hbm/potion/HbmPotion.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/hbm/potion/HbmPotion.java b/src/main/java/com/hbm/potion/HbmPotion.java index 7d5855009..a7688f2da 100644 --- a/src/main/java/com/hbm/potion/HbmPotion.java +++ b/src/main/java/com/hbm/potion/HbmPotion.java @@ -47,10 +47,10 @@ public class HbmPotion extends Potion { } public static void init() { - taint = registerPotion(PotionConfig.taintID, true, 8388736, "potion.hbm_taint", 0, 0); - radiation = registerPotion(PotionConfig.radiationID, true, 8700200, "potion.hbm_radiation", 1, 0); - bang = registerPotion(PotionConfig.bangID, true, 1118481, "potion.hbm_bang", 3, 0); - mutation = registerPotion(PotionConfig.mutationID, false, 8388736, "potion.hbm_mutation", 2, 0); + taint = registerPotion(PotionConfig.taintID, true, 0x800080, "potion.hbm_taint", 0, 0); + radiation = registerPotion(PotionConfig.radiationID, true, 0x84C128, "potion.hbm_radiation", 1, 0); + bang = registerPotion(PotionConfig.bangID, true, 0x111111, "potion.hbm_bang", 3, 0); + mutation = registerPotion(PotionConfig.mutationID, false, 0x800080, "potion.hbm_mutation", 2, 0); radx = registerPotion(PotionConfig.radxID, false, 0xBB4B00, "potion.hbm_radx", 5, 0); lead = registerPotion(PotionConfig.leadID, true, 0x767682, "potion.hbm_lead", 6, 0); radaway = registerPotion(PotionConfig.radawayID, false, 0xBB4B00, "potion.hbm_radaway", 7, 0); @@ -58,7 +58,7 @@ public class HbmPotion extends Potion { phosphorus = registerPotion(PotionConfig.phosphorusID, true, 0xFFFF00, "potion.hbm_phosphorus", 1, 1); stability = registerPotion(PotionConfig.stabilityID, false, 0xD0D0D0, "potion.hbm_stability", 2, 1); potionsickness = registerPotion(PotionConfig.potionsicknessID, false, 0xff8080, "potion.hbm_potionsickness", 3, 1); - death = registerPotion(PotionConfig.deathID, false, 1118481, "potion.hbm_death", 4, 1); + death = registerPotion(PotionConfig.deathID, false, 0x111111, "potion.hbm_death", 4, 1); } public static HbmPotion registerPotion(int id, boolean isBad, int color, String name, int x, int y) { From d3e6e226007966c01614f5d40a8e6c2abd645e3e Mon Sep 17 00:00:00 2001 From: Toshayo Date: Mon, 12 Jun 2023 11:18:15 +0200 Subject: [PATCH 071/109] Bring back CurseForge config example file --- curseforge.properties.example | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 curseforge.properties.example diff --git a/curseforge.properties.example b/curseforge.properties.example new file mode 100644 index 000000000..002b2b4f5 --- /dev/null +++ b/curseforge.properties.example @@ -0,0 +1,5 @@ +# CurseForge API token (obtainable from https://legacy.curseforge.com/account/api-tokens) +api_key= + +# CurseForge project ID +project_id= From e94548ed0c1b30aa53ca3539149c0c9d289f81c3 Mon Sep 17 00:00:00 2001 From: Toshayo Date: Mon, 12 Jun 2023 11:58:11 +0200 Subject: [PATCH 072/109] Better CurseForge task configuration: display name, game versions and a fix for changelog backup not being replaced --- build.gradle | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 9a1ea516d..8cd9a478d 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,8 @@ +import org.gradle.plugins.ide.eclipse.model.internal.FileReferenceFactory + import java.nio.file.Files import java.nio.file.Paths +import java.nio.file.StandardCopyOption buildscript { repositories { @@ -53,7 +56,7 @@ eclipse.classpath.file.whenMerged { cp -> } // Create file reference factory - def fileref = new org.gradle.plugins.ide.eclipse.model.internal.FileReferenceFactory() + def fileref = new FileReferenceFactory() // Find all codechicken development jars cp.entries.findAll { entry -> entry.path.contains("codechicken") && entry.path.endsWith("-dev.jar") }.forEach { entry -> @@ -132,12 +135,20 @@ if(Files.exists(Paths.get("curseforge.properties"))) { projectId = cfprops.project_id releaseType = "release" + displayName = "Hbm's Nuclear Tech Mod " + version_name.replace("_", "") + " for Minecraft 1.7.10" + + gameVersions.addAll([ + "Forge", + "Java 8", + "Client", "Server" + ]) + if (Files.exists(Paths.get("changelog"))) { changelog = String.join("\r\n", Files.readAllLines(Paths.get("changelog"))) // Perform a backup of the changelog and create a new file for next changes doLast { - Files.move(Paths.get("changelog"), Paths.get("changelog.bak")) + Files.move(Paths.get("changelog"), Paths.get("changelog.bak"), StandardCopyOption.REPLACE_EXISTING) Files.createFile(Paths.get("changelog")) } } From 2a01d7f2fb53a47eea2b681d12876e8c3afee600 Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 12 Jun 2023 13:58:19 +0200 Subject: [PATCH 073/109] configurable fluid traits --- .../handler/pollution/PollutionHandler.java | 1 + .../com/hbm/inventory/fluid/FluidType.java | 2 +- .../java/com/hbm/inventory/fluid/Fluids.java | 79 +++++++++++++++++++ .../inventory/fluid/trait/FT_Combustible.java | 17 ++++ .../inventory/fluid/trait/FT_Coolable.java | 35 +++++++- .../inventory/fluid/trait/FT_Corrosive.java | 16 ++++ .../inventory/fluid/trait/FT_Flammable.java | 15 ++++ .../inventory/fluid/trait/FT_Heatable.java | 47 +++++++++++ .../hbm/inventory/fluid/trait/FT_Poison.java | 16 ++++ .../hbm/inventory/fluid/trait/FT_Toxin.java | 76 ++++++++++++++++++ .../fluid/trait/FT_VentRadiation.java | 15 ++++ .../hbm/inventory/fluid/trait/FluidTrait.java | 32 ++++++++ 12 files changed, 348 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java index 16d91da8d..570f91415 100644 --- a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -123,6 +123,7 @@ public class PollutionHandler { try { File pollutionFile = new File(dirPath, fileName); + if(!pollutionFile.getParentFile().exists()) pollutionFile.getParentFile().mkdirs(); if(!pollutionFile.exists()) pollutionFile.createNewFile(); NBTTagCompound data = perWorld.get(world).writeToNBT(); CompressedStreamTools.writeCompressed(data, new FileOutputStream(pollutionFile)); diff --git a/src/main/java/com/hbm/inventory/fluid/FluidType.java b/src/main/java/com/hbm/inventory/fluid/FluidType.java index d4dd7c272..390fcfede 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidType.java +++ b/src/main/java/com/hbm/inventory/fluid/FluidType.java @@ -48,7 +48,7 @@ public class FluidType { public double compression = DEFAULT_COMPRESSION; public HashMap containers = new HashMap(); - private HashMap, FluidTrait> traits = new HashMap(); + public HashMap, FluidTrait> traits = new HashMap(); //public List enumTraits = new ArrayList(); private ResourceLocation texture; diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 6a779d673..f9de9f7b3 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -1,12 +1,22 @@ package com.hbm.inventory.fluid; +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Map.Entry; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; import com.hbm.inventory.fluid.trait.*; import com.hbm.inventory.fluid.trait.FluidTraitSimple.*; import com.hbm.lib.ModDamageSource; +import com.hbm.main.MainRegistry; import com.hbm.potion.HbmPotion; import com.hbm.inventory.fluid.trait.FT_Combustible.FuelGrade; import com.hbm.inventory.fluid.trait.FT_Coolable.CoolingType; @@ -20,6 +30,8 @@ import net.minecraft.potion.PotionEffect; public class Fluids { + public static final Gson gson = new Gson(); + public static FluidType NONE; public static FluidType WATER; public static FluidType STEAM; @@ -562,6 +574,73 @@ public class Fluids { registerCalculatedFuel(SYNGAS, (coalHeat * (1000 /* bucket */ / 100 /* mB per coal */) * flammabilityLow * demandLow * complexityChemplant) * 1.5, 1.25, FuelGrade.GAS); //same as coal oil, +50% bonus registerCalculatedFuel(OXYHYDROGEN, 5_000, 3, FuelGrade.GAS); // whatever + + File folder = MainRegistry.configHbmDir; + + File config = new File(folder.getAbsolutePath() + File.separatorChar + "hbmFluids.json"); + File template = new File(folder.getAbsolutePath() + File.separatorChar + "_hbmFluids.json"); + + if(!config.exists()) { + writeDefault(template); + } else { + readConfig(config); + } + } + + private static void writeDefault(File file) { + + try { + JsonWriter writer = new JsonWriter(new FileWriter(file)); + writer.setIndent(" "); + writer.beginObject(); + + for(FluidType type : metaOrder) { + writer.name(type.getUnlocalizedName()).beginObject(); + + for(Entry, FluidTrait> entry : type.traits.entrySet()) { + writer.name(FluidTrait.traitNameMap.inverse().get(entry.getKey())).beginObject(); + entry.getValue().serializeJSON(writer); + writer.endObject(); + } + + writer.endObject(); + } + + writer.endObject(); + writer.close(); + } catch(IOException e) { + e.printStackTrace(); + } + } + + private static void readConfig(File config) { + + try { + JsonObject json = gson.fromJson(new FileReader(config), JsonObject.class); + + for(FluidType type : metaOrder) { + + JsonElement element = json.get(type.getUnlocalizedName()); + if(element != null) { + type.traits.clear(); + JsonObject obj = element.getAsJsonObject(); + + for(Entry entry : obj.entrySet()) { + Class traitClass = FluidTrait.traitNameMap.get(entry.getKey()); + try { + FluidTrait trait = traitClass.newInstance(); + trait.deserializeJSON(entry.getValue().getAsJsonObject()); + type.addTraits(trait); + } catch(Exception ex) { + ex.printStackTrace(); + } + } + } + } + + } catch(Exception ex) { + ex.printStackTrace(); + } } private static void registerCalculatedFuel(FluidType type, double base, double combustMult, FuelGrade grade) { diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Combustible.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Combustible.java index a88ac2c35..a297d40ca 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Combustible.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Combustible.java @@ -1,7 +1,10 @@ package com.hbm.inventory.fluid.trait; +import java.io.IOException; import java.util.List; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; import com.hbm.util.BobMathUtil; import net.minecraft.util.EnumChatFormatting; @@ -11,6 +14,8 @@ public class FT_Combustible extends FluidTrait { protected FuelGrade fuelGrade; protected long combustionEnergy; + public FT_Combustible() { } + public FT_Combustible(FuelGrade grade, long energy) { this.fuelGrade = grade; this.combustionEnergy = energy; @@ -53,4 +58,16 @@ public class FT_Combustible extends FluidTrait { return this.grade; } } + + @Override + public void serializeJSON(JsonWriter writer) throws IOException { + writer.name("energy").value(combustionEnergy); + writer.name("grade").value(fuelGrade.name()); + } + + @Override + public void deserializeJSON(JsonObject obj) { + this.combustionEnergy = obj.get("energy").getAsLong(); + this.fuelGrade = FuelGrade.valueOf(obj.get("grade").getAsString()); + } } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java index 25bd1488d..f25e77c35 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java @@ -1,9 +1,14 @@ package com.hbm.inventory.fluid.trait; +import java.io.IOException; import java.util.HashMap; import java.util.List; +import java.util.Map.Entry; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; import net.minecraft.util.EnumChatFormatting; @@ -11,10 +16,12 @@ public class FT_Coolable extends FluidTrait { protected HashMap efficiency = new HashMap(); - public final FluidType coolsTo; + public FluidType coolsTo; public int amountReq; public int amountProduced; - public final int heatEnergy; + public int heatEnergy; + + public FT_Coolable() { } public FT_Coolable(FluidType type, int req, int prod, int heat) { this.coolsTo = type; @@ -56,4 +63,28 @@ public class FT_Coolable extends FluidTrait { this.name = name; } } + + @Override + public void serializeJSON(JsonWriter writer) throws IOException { + writer.name("coolsTo").value(this.coolsTo.getUnlocalizedName()); + writer.name("amountReq").value(this.amountReq); + writer.name("amountProd").value(this.amountProduced); + writer.name("heatEnergy").value(this.heatEnergy); + + for(Entry entry : this.efficiency.entrySet()) { + writer.name(entry.getKey().name()).value(entry.getValue()); + } + } + + @Override + public void deserializeJSON(JsonObject obj) { + this.coolsTo = Fluids.fromName(obj.get("coolsTo").getAsString()); + this.amountReq = obj.get("amountReq").getAsInt(); + this.amountProduced = obj.get("amountProd").getAsInt(); + this.heatEnergy = obj.get("heatEnergy").getAsInt(); + + for(CoolingType type : CoolingType.values()) { + if(obj.has(type.name())) efficiency.put(type, obj.get(type.name()).getAsDouble()); + } + } } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Corrosive.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Corrosive.java index 4e0354033..2a459e25c 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Corrosive.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Corrosive.java @@ -1,7 +1,11 @@ package com.hbm.inventory.fluid.trait; +import java.io.IOException; import java.util.List; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; + import net.minecraft.util.EnumChatFormatting; public class FT_Corrosive extends FluidTrait { @@ -9,6 +13,8 @@ public class FT_Corrosive extends FluidTrait { /* 0-100 */ private int rating; + public FT_Corrosive() { } + public FT_Corrosive(int rating) { this.rating = rating; } @@ -29,4 +35,14 @@ public class FT_Corrosive extends FluidTrait { else info.add(EnumChatFormatting.YELLOW + "[Corrosive]"); } + + @Override + public void serializeJSON(JsonWriter writer) throws IOException { + writer.name("rating").value(rating); + } + + @Override + public void deserializeJSON(JsonObject obj) { + this.rating = obj.get("rating").getAsInt(); + } } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Flammable.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Flammable.java index c2b582ae5..82e309ef9 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Flammable.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Flammable.java @@ -1,7 +1,10 @@ package com.hbm.inventory.fluid.trait; +import java.io.IOException; import java.util.List; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; import com.hbm.util.BobMathUtil; import net.minecraft.util.EnumChatFormatting; @@ -11,6 +14,8 @@ public class FT_Flammable extends FluidTrait { /** How much heat energy (usually translates into HE 1:1) 1000mB hold */ private long energy; + public FT_Flammable() { } + public FT_Flammable(long energy) { this.energy = energy; } @@ -28,4 +33,14 @@ public class FT_Flammable extends FluidTrait { if(energy > 0) info.add(EnumChatFormatting.YELLOW + "Provides " + EnumChatFormatting.RED + "" + BobMathUtil.getShortNumber(energy) + "TU " + EnumChatFormatting.YELLOW + "per bucket"); } + + @Override + public void serializeJSON(JsonWriter writer) throws IOException { + writer.name("energy").value(energy); + } + + @Override + public void deserializeJSON(JsonObject obj) { + this.energy = obj.get("energy").getAsLong(); + } } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java index e01169076..310083cf3 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java @@ -1,12 +1,18 @@ package com.hbm.inventory.fluid.trait; +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; import net.minecraft.util.EnumChatFormatting; +import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Map.Entry; public class FT_Heatable extends FluidTrait { @@ -71,4 +77,45 @@ public class FT_Heatable extends FluidTrait { this.name = name; } } + + @Override + public void serializeJSON(JsonWriter writer) throws IOException { + + writer.name("steps").beginArray(); + + for(HeatingStep step : steps) { + writer.beginObject(); + writer.name("typeProduced").value(step.typeProduced.getUnlocalizedName()); + writer.name("amountReq").value(step.amountReq); + writer.name("amountProd").value(step.amountProduced); + writer.name("heatReq").value(step.heatReq); + writer.endObject(); + } + + writer.endArray(); + + for(Entry entry : this.efficiency.entrySet()) { + writer.name(entry.getKey().name()).value(entry.getValue()); + } + } + + @Override + public void deserializeJSON(JsonObject obj) { + + JsonArray steps = obj.get("steps").getAsJsonArray(); + + for(int i = 0; i < steps.size(); i++) { + JsonObject step = steps.get(i).getAsJsonObject(); + this.steps.add(new HeatingStep( + step.get("amountReq").getAsInt(), + step.get("heatReq").getAsInt(), + Fluids.fromName(step.get("typeProduced").getAsString()), + step.get("amountProd").getAsInt() + )); + } + + for(HeatingType type : HeatingType.values()) { + if(obj.has(type.name())) efficiency.put(type, obj.get(type.name()).getAsDouble()); + } + } } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Poison.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Poison.java index 2c176bc3e..335c182cb 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Poison.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Poison.java @@ -1,7 +1,11 @@ package com.hbm.inventory.fluid.trait; +import java.io.IOException; import java.util.List; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; + import net.minecraft.util.EnumChatFormatting; @Deprecated //use FT_Toxin instead @@ -10,6 +14,8 @@ public class FT_Poison extends FluidTrait { protected boolean withering = false; protected int level = 0; + public FT_Poison() { } + public FT_Poison(boolean withering, int level) { this.withering = withering; this.level = level; @@ -27,4 +33,14 @@ public class FT_Poison extends FluidTrait { public void addInfoHidden(List info) { info.add(EnumChatFormatting.GREEN + "[Toxic Fumes]"); } + + @Override public void serializeJSON(JsonWriter writer) throws IOException { + writer.name("level").value(this.level); + writer.name("withering").value(this.withering); + } + + @Override public void deserializeJSON(JsonObject obj) { + this.level = obj.get("level").getAsInt(); + this.withering = obj.get("withering").getAsBoolean(); + } } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java index fc759219b..354da3175 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java @@ -1,8 +1,12 @@ package com.hbm.inventory.fluid.trait; +import java.io.IOException; import java.util.ArrayList; import java.util.List; +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; import com.hbm.util.ArmorRegistry; import com.hbm.util.ArmorUtil; import com.hbm.util.I18nUtil; @@ -132,4 +136,76 @@ public class FT_Toxin extends FluidTrait { } } } + + @Override public void serializeJSON(JsonWriter writer) throws IOException { + + writer.name("entries").beginArray(); + + for(ToxinEntry entry : entries) { + writer.beginObject(); + + if(entry instanceof ToxinDirectDamage) { + ToxinDirectDamage e = (ToxinDirectDamage) entry; + writer.name("type").value("directdamage"); + writer.name("amount").value(e.amount); + writer.name("source").value(e.damage.damageType); + writer.name("delay").value(e.delay); + writer.name("hazmat").value(e.fullBody); + writer.name("masktype").value(e.clazz.name()); + } + if(entry instanceof ToxinEffects) { + ToxinEffects e = (ToxinEffects) entry; + writer.name("type").value("effects"); + writer.name("effects").beginArray(); + writer.setIndent(""); + for(PotionEffect effect : e.effects) { + writer.beginArray(); + writer.value(effect.getPotionID()).value(effect.getDuration()).value(effect.getAmplifier()).value(effect.getIsAmbient()); + writer.endArray(); + } + writer.endArray(); + writer.setIndent(" "); + writer.name("hazmat").value(e.fullBody); + writer.name("masktype").value(e.clazz.name()); + } + + writer.endObject(); + } + + writer.endArray(); + } + + @Override public void deserializeJSON(JsonObject obj) { + JsonArray array = obj.get("entries").getAsJsonArray(); + + for(int i = 0; i < array.size(); i++) { + JsonObject entry = array.get(i).getAsJsonObject(); + String name = entry.get("type").getAsString(); + + if(name.equals("directdamage")) { + ToxinDirectDamage e = new ToxinDirectDamage( + new DamageSource(entry.get("source").getAsString()), + entry.get("amount").getAsFloat(), + entry.get("delay").getAsInt(), + HazardClass.valueOf(entry.get("masktype").getAsString()), + entry.get("hazmat").getAsBoolean() + ); + this.entries.add(e); + } + + if(name.equals("effects")) { + ToxinEffects e = new ToxinEffects( + HazardClass.valueOf(entry.get("masktype").getAsString()), + entry.get("hazmat").getAsBoolean() + ); + JsonArray effects = entry.get("effects").getAsJsonArray(); + for(int j = 0; j < effects.size(); j++) { + JsonArray effect = effects.get(j).getAsJsonArray(); + PotionEffect potion = new PotionEffect(effect.get(0).getAsInt(), effect.get(1).getAsInt(), effect.get(2).getAsInt(), effect.get(3).getAsBoolean()); + e.effects.add(potion); + } + this.entries.add(e); + } + } + } } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_VentRadiation.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_VentRadiation.java index de8dd7764..516ef0e81 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_VentRadiation.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_VentRadiation.java @@ -1,7 +1,10 @@ package com.hbm.inventory.fluid.trait; +import java.io.IOException; import java.util.List; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.inventory.fluid.tank.FluidTank; @@ -12,6 +15,8 @@ public class FT_VentRadiation extends FluidTrait { float radPerMB = 0; + public FT_VentRadiation() { } + public FT_VentRadiation(float rad) { this.radPerMB = rad; } @@ -29,4 +34,14 @@ public class FT_VentRadiation extends FluidTrait { public void addInfo(List info) { info.add(EnumChatFormatting.YELLOW + "[Radioactive]"); } + + @Override + public void serializeJSON(JsonWriter writer) throws IOException { + writer.name("radiation").value(radPerMB); + } + + @Override + public void deserializeJSON(JsonObject obj) { + this.radPerMB = obj.get("radiation").getAsFloat(); + } } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java b/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java index 128e945b0..2d5bac5ab 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java @@ -1,12 +1,41 @@ package com.hbm.inventory.fluid.trait; +import java.io.IOException; import java.util.List; +import com.google.common.collect.HashBiMap; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.fluid.trait.FluidTraitSimple.*; import net.minecraft.world.World; public abstract class FluidTrait { + + public static HashBiMap> traitNameMap = HashBiMap.create(); + + static { + traitNameMap.put("combustible", FT_Combustible.class); // x + traitNameMap.put("coolable", FT_Coolable.class); // x + traitNameMap.put("corrosive", FT_Corrosive.class); // x + traitNameMap.put("flammable", FT_Flammable.class); // x + traitNameMap.put("heatable", FT_Heatable.class); // x + traitNameMap.put("poison", FT_Poison.class); // x + traitNameMap.put("toxin", FT_Toxin.class); // x + traitNameMap.put("ventradiation", FT_VentRadiation.class); // x + + traitNameMap.put("gaseous", FT_Gaseous.class); + traitNameMap.put("gaseous_art", FT_Gaseous_ART.class); + traitNameMap.put("liquid", FT_Liquid.class); + traitNameMap.put("viscous", FT_Viscous.class); + traitNameMap.put("plasma", FT_Plasma.class); + traitNameMap.put("amat", FT_Amat.class); + traitNameMap.put("leadcontainer", FT_LeadContainer.class); + traitNameMap.put("delicious", FT_Delicious.class); + traitNameMap.put("noid", FT_NoID.class); + traitNameMap.put("nocontainer", FT_NoContainer.class); + } /** Important information that should always be displayed */ public void addInfo(List info) { } @@ -14,4 +43,7 @@ public abstract class FluidTrait { public void addInfoHidden(List info) { } public void onFluidRelease(World world, int x, int y, int z, FluidTank tank, int overflowAmount) { } + + public void serializeJSON(JsonWriter writer) throws IOException { } + public void deserializeJSON(JsonObject obj) { } } From 58b08ac039be659e09fc723859fbaa06a5c9599b Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 12 Jun 2023 14:32:23 +0200 Subject: [PATCH 074/109] explosion chunk loader config --- src/main/java/com/hbm/config/BombConfig.java | 3 + .../com/hbm/entity/logic/EntityBalefire.java | 83 +++++---- .../hbm/entity/logic/EntityEnvirEffect.java | 49 ------ .../entity/logic/EntityEnvirEffectRad.java | 15 -- .../logic/EntityExplosionChunkloading.java | 51 ++++++ .../entity/logic/EntityNukeExplosionMK3.java | 89 +++++----- .../entity/logic/EntityNukeExplosionMK5.java | 10 +- .../com/hbm/entity/logic/EntityTomBlast.java | 9 +- .../missile/EntityMissileBaseAdvanced.java | 160 ++++++++---------- .../com/hbm/explosion/nt/IExplosionLogic.java | 1 + src/main/java/com/hbm/explosion/nt/Mark5.java | 1 + 11 files changed, 227 insertions(+), 244 deletions(-) delete mode 100644 src/main/java/com/hbm/entity/logic/EntityEnvirEffect.java delete mode 100644 src/main/java/com/hbm/entity/logic/EntityEnvirEffectRad.java create mode 100644 src/main/java/com/hbm/entity/logic/EntityExplosionChunkloading.java diff --git a/src/main/java/com/hbm/config/BombConfig.java b/src/main/java/com/hbm/config/BombConfig.java index df2eda4b6..8c32d0a8d 100644 --- a/src/main/java/com/hbm/config/BombConfig.java +++ b/src/main/java/com/hbm/config/BombConfig.java @@ -27,6 +27,7 @@ public class BombConfig { public static int limitExplosionLifespan = 0; public static int rain = 0; public static int cont = 0; + public static boolean chunkloading = true; public static void loadFromConfig(Configuration config) { @@ -100,5 +101,7 @@ public class BombConfig { Property rainCont = config.get(CATEGORY_NUKE, "6.06_falloutRainRadiation", 0); rainCont.comment = "Radiation in 100th RADs created by fallout rain"; cont = rainCont.getInt(); + + chunkloading = CommonConfig.createConfigBool(config, CATEGORY_NUKE, "6.XX_enableChunkLoading", "Allows all types of procedural explosions to keep the central chunk loaded.", true); } } diff --git a/src/main/java/com/hbm/entity/logic/EntityBalefire.java b/src/main/java/com/hbm/entity/logic/EntityBalefire.java index 00d0f38e9..73c8e51b2 100644 --- a/src/main/java/com/hbm/entity/logic/EntityBalefire.java +++ b/src/main/java/com/hbm/entity/logic/EntityBalefire.java @@ -7,11 +7,10 @@ import com.hbm.explosion.ExplosionBalefire; import com.hbm.explosion.ExplosionNukeGeneric; import com.hbm.main.MainRegistry; -import net.minecraft.entity.Entity; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -public class EntityBalefire extends Entity { +public class EntityBalefire extends EntityExplosionChunkloading { public int age = 0; public int destructionRange = 0; @@ -53,48 +52,46 @@ public class EntityBalefire extends Entity { super(p_i1582_1_); } - @Override - public void onUpdate() { - super.onUpdate(); - - if(!this.did) - { - if(GeneralConfig.enableExtendedLogging && !worldObj.isRemote) - MainRegistry.logger.log(Level.INFO, "[NUKE] Initialized BF explosion at " + posX + " / " + posY + " / " + posZ + " with strength " + destructionRange + "!"); - - exp = new ExplosionBalefire((int)this.posX, (int)this.posY, (int)this.posZ, this.worldObj, this.destructionRange); - - this.did = true; - } - - speed += 1; //increase speed to keep up with expansion - - boolean flag = false; - for(int i = 0; i < this.speed; i++) - { - flag = exp.update(); - - if(flag) { - this.setDead(); - } - } - - if(!mute && rand.nextInt(5) == 0) - this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "random.explode", 10000.0F, 0.8F + this.rand.nextFloat() * 0.2F); - - if(!flag) { - - if(!mute) - this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "ambient.weather.thunder", 10000.0F, 0.8F + this.rand.nextFloat() * 0.2F); - - ExplosionNukeGeneric.dealDamage(this.worldObj, this.posX, this.posY, this.posZ, this.destructionRange * 2); - } - - age++; - } - @Override - protected void entityInit() { } + public void onUpdate() { + super.onUpdate(); + + if(!worldObj.isRemote) loadChunk((int) Math.floor(posX / 16D), (int) Math.floor(posZ / 16D)); + + if(!this.did) { + if(GeneralConfig.enableExtendedLogging && !worldObj.isRemote) + MainRegistry.logger.log(Level.INFO, "[NUKE] Initialized BF explosion at " + posX + " / " + posY + " / " + posZ + " with strength " + destructionRange + "!"); + + exp = new ExplosionBalefire((int) this.posX, (int) this.posY, (int) this.posZ, this.worldObj, this.destructionRange); + + this.did = true; + } + + speed += 1; // increase speed to keep up with expansion + + boolean flag = false; + for(int i = 0; i < this.speed; i++) { + flag = exp.update(); + + if(flag) { + clearChunkLoader(); + this.setDead(); + } + } + + if(!mute && rand.nextInt(5) == 0) + this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "random.explode", 10000.0F, 0.8F + this.rand.nextFloat() * 0.2F); + + if(!flag) { + + if(!mute) + this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "ambient.weather.thunder", 10000.0F, 0.8F + this.rand.nextFloat() * 0.2F); + + ExplosionNukeGeneric.dealDamage(this.worldObj, this.posX, this.posY, this.posZ, this.destructionRange * 2); + } + + age++; + } public EntityBalefire mute() { this.mute = true; diff --git a/src/main/java/com/hbm/entity/logic/EntityEnvirEffect.java b/src/main/java/com/hbm/entity/logic/EntityEnvirEffect.java deleted file mode 100644 index 75c912a32..000000000 --- a/src/main/java/com/hbm/entity/logic/EntityEnvirEffect.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.hbm.entity.logic; - -import net.minecraft.entity.Entity; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; - -public abstract class EntityEnvirEffect extends Entity { - - public int maxAge = 100; - public int blockRadius = 7; - public int entityRadius = 7; - public int chance = 10; - public boolean hasBlockEffect = true; - public boolean hasEntityEffect = true; - - public EntityEnvirEffect(World p_i1582_1_) { - super(p_i1582_1_); - } - - @Override - protected void entityInit() { - - } - - @Override - protected void readEntityFromNBT(NBTTagCompound nbt) { - this.ticksExisted = nbt.getInteger("lifetime"); - this.maxAge = nbt.getInteger("lifecap"); - } - - @Override - protected void writeEntityToNBT(NBTTagCompound nbt) { - nbt.setInteger("lifetime", this.ticksExisted); - nbt.setInteger("lifecap", this.maxAge); - } - - public void onUpdate() { - - if(hasBlockEffect && rand.nextInt(chance) == 0) - applyBlockEffect(); - - if(hasEntityEffect && rand.nextInt(chance) == 0) - applyEntityEffect(); - } - - private void applyBlockEffect() { }; - private void applyEntityEffect() { }; - -} diff --git a/src/main/java/com/hbm/entity/logic/EntityEnvirEffectRad.java b/src/main/java/com/hbm/entity/logic/EntityEnvirEffectRad.java deleted file mode 100644 index f67bcaf6a..000000000 --- a/src/main/java/com/hbm/entity/logic/EntityEnvirEffectRad.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.hbm.entity.logic; - -import net.minecraft.world.World; - -public class EntityEnvirEffectRad extends EntityEnvirEffect { - - public EntityEnvirEffectRad(World p_i1582_1_) { - super(p_i1582_1_); - } - - public void randomizeAge(int min, int max) { - this.maxAge = min + rand.nextInt(max - min); - } - -} diff --git a/src/main/java/com/hbm/entity/logic/EntityExplosionChunkloading.java b/src/main/java/com/hbm/entity/logic/EntityExplosionChunkloading.java new file mode 100644 index 000000000..ca2ad6f6f --- /dev/null +++ b/src/main/java/com/hbm/entity/logic/EntityExplosionChunkloading.java @@ -0,0 +1,51 @@ +package com.hbm.entity.logic; + +import com.hbm.main.MainRegistry; + +import net.minecraft.entity.Entity; +import net.minecraft.world.ChunkCoordIntPair; +import net.minecraft.world.World; +import net.minecraftforge.common.ForgeChunkManager; +import net.minecraftforge.common.ForgeChunkManager.Ticket; +import net.minecraftforge.common.ForgeChunkManager.Type; + +public abstract class EntityExplosionChunkloading extends Entity implements IChunkLoader { + + private Ticket loaderTicket; + private ChunkCoordIntPair loadedChunk; + + public EntityExplosionChunkloading(World world) { + super(world); + } + + @Override + protected void entityInit() { + init(ForgeChunkManager.requestTicket(MainRegistry.instance, worldObj, Type.ENTITY)); + } + + @Override + public void init(Ticket ticket) { + if(!worldObj.isRemote && ticket != null) { + if(loaderTicket == null) { + loaderTicket = ticket; + loaderTicket.bindEntity(this); + loaderTicket.getModData(); + } + ForgeChunkManager.forceChunk(loaderTicket, new ChunkCoordIntPair(chunkCoordX, chunkCoordZ)); + } + } + + public void loadChunk(int x, int z) { + + if(this.loadedChunk == null) { + this.loadedChunk = new ChunkCoordIntPair(x, z); + ForgeChunkManager.forceChunk(loaderTicket, loadedChunk); + } + } + + public void clearChunkLoader() { + if(!worldObj.isRemote && loaderTicket != null && loadedChunk != null) { + ForgeChunkManager.unforceChunk(loaderTicket, loadedChunk); + } + } +} diff --git a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK3.java b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK3.java index 93335b142..665d9550d 100644 --- a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK3.java +++ b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK3.java @@ -20,14 +20,13 @@ import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.Vec3; import net.minecraft.world.World; @Spaghetti("why???") -public class EntityNukeExplosionMK3 extends Entity { +public class EntityNukeExplosionMK3 extends EntityExplosionChunkloading { public int age = 0; public int destructionRange = 0; @@ -59,31 +58,32 @@ public class EntityNukeExplosionMK3 extends Entity { long time = nbt.getLong("milliTime"); - if(BombConfig.limitExplosionLifespan > 0 && System.currentTimeMillis() - time > BombConfig.limitExplosionLifespan * 1000) + if(BombConfig.limitExplosionLifespan > 0 && System.currentTimeMillis() - time > BombConfig.limitExplosionLifespan * 1000) { + this.clearChunkLoader(); this.setDead(); + } - if(this.waste) - { - exp = new ExplosionNukeAdvanced((int)this.posX, (int)this.posY, (int)this.posZ, this.worldObj, this.destructionRange, this.coefficient, 0); + if(this.waste) { + exp = new ExplosionNukeAdvanced((int) this.posX, (int) this.posY, (int) this.posZ, this.worldObj, this.destructionRange, this.coefficient, 0); exp.readFromNbt(nbt, "exp_"); - wst = new ExplosionNukeAdvanced((int)this.posX, (int)this.posY, (int)this.posZ, this.worldObj, (int)(this.destructionRange * 1.8), this.coefficient, 2); + wst = new ExplosionNukeAdvanced((int) this.posX, (int) this.posY, (int) this.posZ, this.worldObj, (int) (this.destructionRange * 1.8), this.coefficient, 2); wst.readFromNbt(nbt, "wst_"); - vap = new ExplosionNukeAdvanced((int)this.posX, (int)this.posY, (int)this.posZ, this.worldObj, (int)(this.destructionRange * 2.5), this.coefficient, 1); + vap = new ExplosionNukeAdvanced((int) this.posX, (int) this.posY, (int) this.posZ, this.worldObj, (int) (this.destructionRange * 2.5), this.coefficient, 1); vap.readFromNbt(nbt, "vap_"); - } else { + } else { - if(extType == 0) { - expl = new ExplosionFleija((int)this.posX, (int)this.posY, (int)this.posZ, this.worldObj, this.destructionRange, this.coefficient, this.coefficient2); + if(extType == 0) { + expl = new ExplosionFleija((int) this.posX, (int) this.posY, (int) this.posZ, this.worldObj, this.destructionRange, this.coefficient, this.coefficient2); expl.readFromNbt(nbt, "expl_"); - } - if(extType == 1) { - sol = new ExplosionSolinium((int)this.posX, (int)this.posY, (int)this.posZ, this.worldObj, this.destructionRange, this.coefficient, this.coefficient2); - sol.readFromNbt(nbt, "sol_"); - } - } - - this.did = true; - + } + if(extType == 1) { + sol = new ExplosionSolinium((int) this.posX, (int) this.posY, (int) this.posZ, this.worldObj, this.destructionRange, this.coefficient, this.coefficient2); + sol.readFromNbt(nbt, "sol_"); + } + } + + this.did = true; + } @Override @@ -120,6 +120,8 @@ public class EntityNukeExplosionMK3 extends Entity { @Override public void onUpdate() { super.onUpdate(); + + if(!worldObj.isRemote) loadChunk((int) Math.floor(posX / 16D), (int) Math.floor(posZ / 16D)); if(!this.did) { @@ -149,25 +151,31 @@ public class EntityNukeExplosionMK3 extends Entity { boolean flag = false; boolean flag3 = false; - for(int i = 0; i < this.speed; i++) - { - if(waste) { - flag = exp.update(); - wst.update(); - flag3 = vap.update(); - - if(flag3) { - this.setDead(); - } - } else { - if(extType == 0) - if(expl.update()) - this.setDead(); - if(extType == 1) - if(sol.update()) - this.setDead(); - } - } + for(int i = 0; i < this.speed; i++) { + if(waste) { + flag = exp.update(); + wst.update(); + flag3 = vap.update(); + + if(flag3) { + this.clearChunkLoader(); + this.setDead(); + } + } else { + if(extType == 0) { + if(expl.update()) { + this.clearChunkLoader(); + this.setDead(); + } + } + if(extType == 1) { + if(sol.update()) { + this.clearChunkLoader(); + this.setDead(); + } + } + } + } if(!flag) { @@ -196,9 +204,6 @@ public class EntityNukeExplosionMK3 extends Entity { age++; } - - @Override - protected void entityInit() { } public static HashMap at = new HashMap(); diff --git a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java index e924e43da..15cb2679b 100644 --- a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java +++ b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java @@ -14,7 +14,6 @@ import com.hbm.util.ContaminationUtil; import com.hbm.util.ContaminationUtil.ContaminationType; import com.hbm.util.ContaminationUtil.HazardType; -import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; @@ -22,7 +21,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class EntityNukeExplosionMK5 extends Entity { +public class EntityNukeExplosionMK5 extends EntityExplosionChunkloading { //Strength of the blast public int strength; @@ -52,9 +51,12 @@ public class EntityNukeExplosionMK5 extends Entity { public void onUpdate() { if(strength == 0) { + this.clearChunkLoader(); this.setDead(); return; } + + if(!worldObj.isRemote) loadChunk((int) Math.floor(posX / 16D), (int) Math.floor(posZ / 16D)); for(Object player : this.worldObj.playerEntities) { ((EntityPlayer)player).triggerAchievement(MainRegistry.achManhattan); @@ -92,9 +94,11 @@ public class EntityNukeExplosionMK5 extends Entity { fallout.setScale((int)(this.length * 2.5 + falloutAdd) * BombConfig.falloutRange / 100); this.worldObj.spawnEntityInWorld(fallout); - + + this.clearChunkLoader(); this.setDead(); } else { + this.clearChunkLoader(); this.setDead(); } } diff --git a/src/main/java/com/hbm/entity/logic/EntityTomBlast.java b/src/main/java/com/hbm/entity/logic/EntityTomBlast.java index 4eb855576..093638a6d 100644 --- a/src/main/java/com/hbm/entity/logic/EntityTomBlast.java +++ b/src/main/java/com/hbm/entity/logic/EntityTomBlast.java @@ -8,11 +8,10 @@ import com.hbm.explosion.ExplosionTom; import com.hbm.main.MainRegistry; import com.hbm.saveddata.TomSaveData; -import net.minecraft.entity.Entity; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -public class EntityTomBlast extends Entity { +public class EntityTomBlast extends EntityExplosionChunkloading { public int age = 0; public int destructionRange = 0; @@ -54,6 +53,8 @@ public class EntityTomBlast extends Entity { public void onUpdate() { super.onUpdate(); + if(!worldObj.isRemote) loadChunk((int) Math.floor(posX / 16D), (int) Math.floor(posZ / 16D)); + if(!this.did) { if(GeneralConfig.enableExtendedLogging && !worldObj.isRemote) @@ -89,8 +90,4 @@ public class EntityTomBlast extends Entity { age++; } - - @Override - protected void entityInit() { - } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBaseAdvanced.java b/src/main/java/com/hbm/entity/missile/EntityMissileBaseAdvanced.java index 5c0d93b67..69d128a51 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBaseAdvanced.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileBaseAdvanced.java @@ -48,46 +48,36 @@ public abstract class EntityMissileBaseAdvanced extends Entity implements IChunk targetZ = (int) posZ; } - public boolean canBeCollidedWith() - { - return true; - } - - public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) - { - if (this.isEntityInvulnerable()) - { - return false; - } - else - { - if (!this.isDead && !this.worldObj.isRemote) - { - health -= p_70097_2_; - - if (this.health <= 0) - { - this.setDead(); - this.killMissile(); - } - } + public boolean canBeCollidedWith() { + return true; + } - return true; - } - } - - private void killMissile() { - ExplosionLarge.explode(worldObj, posX, posY, posZ, 5, true, false, true); - ExplosionLarge.spawnShrapnelShower(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 15, 0.075); - ExplosionLarge.spawnMissileDebris(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 0.25, getDebris(), getDebrisRareDrop()); - } + public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) { + if(this.isEntityInvulnerable()) { + return false; + } else { + if(!this.isDead && !this.worldObj.isRemote) { + health -= p_70097_2_; + + if(this.health <= 0) { + this.setDead(); + this.killMissile(); + } + } + + return true; + } + } + + private void killMissile() { + ExplosionLarge.explode(worldObj, posX, posY, posZ, 5, true, false, true); + ExplosionLarge.spawnShrapnelShower(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 15, 0.075); + ExplosionLarge.spawnMissileDebris(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 0.25, getDebris(), getDebrisRareDrop()); + } public EntityMissileBaseAdvanced(World world, float x, float y, float z, int a, int b) { super(world); this.ignoreFrustumCheck = true; - /*this.posX = x; - this.posY = y; - this.posZ = z;*/ this.setLocationAndAngles(x, y, z, 0, 0); startX = (int) x; startZ = (int) z; @@ -95,19 +85,19 @@ public abstract class EntityMissileBaseAdvanced extends Entity implements IChunk targetZ = b; this.motionY = 2; - Vec3 vector = Vec3.createVectorHelper(targetX - startX, 0, targetZ - startZ); - accelXZ = decelY = 1/vector.lengthVector(); + Vec3 vector = Vec3.createVectorHelper(targetX - startX, 0, targetZ - startZ); + accelXZ = decelY = 1 / vector.lengthVector(); decelY *= 2; - + velocity = 1; - this.setSize(1.5F, 1.5F); + this.setSize(1.5F, 1.5F); } @Override protected void entityInit() { init(ForgeChunkManager.requestTicket(MainRegistry.instance, worldObj, Type.ENTITY)); - this.dataWatcher.addObject(8, Integer.valueOf(this.health)); + this.dataWatcher.addObject(8, Integer.valueOf(this.health)); } @Override @@ -212,7 +202,6 @@ public abstract class EntityMissileBaseAdvanced extends Entity implements IChunk } if(!this.worldObj.isRemote) - //this.worldObj.spawnEntityInWorld(new EntitySmokeFX(this.worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0)); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacket(posX, posY, posZ, 2), new TargetPoint(worldObj.provider.dimensionId, posX, posY, posZ, 300)); @@ -220,30 +209,28 @@ public abstract class EntityMissileBaseAdvanced extends Entity implements IChunk this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.water && this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.flowing_water) { - if(!this.worldObj.isRemote) - { - onImpact(); - } - this.setDead(); - return; - } - - loadNeighboringChunks((int)(posX / 16), (int)(posZ / 16)); - - if(motionY < -1 && this.isCluster && !worldObj.isRemote) { - cluster(); - this.setDead(); - return; - } + if(!this.worldObj.isRemote) { + onImpact(); + } + this.killAndClear(); + return; + } + + loadNeighboringChunks((int) (posX / 16), (int) (posZ / 16)); + + if(motionY < -1 && this.isCluster && !worldObj.isRemote) { + cluster(); + this.setDead(); + return; + } } - } + } - @Override + @Override @SideOnly(Side.CLIENT) - public boolean isInRangeToRenderDist(double distance) - { - return distance < 500000; - } + public boolean isInRangeToRenderDist(double distance) { + return true; + } public abstract void onImpact(); @@ -272,30 +259,31 @@ public abstract class EntityMissileBaseAdvanced extends Entity implements IChunk List loadedChunks = new ArrayList(); - public void loadNeighboringChunks(int newChunkX, int newChunkZ) - { - if(!worldObj.isRemote && loaderTicket != null) - { - for(ChunkCoordIntPair chunk : loadedChunks) - { - ForgeChunkManager.unforceChunk(loaderTicket, chunk); - } + public void loadNeighboringChunks(int newChunkX, int newChunkZ) { + if(!worldObj.isRemote && loaderTicket != null) { + + clearChunkLoader(); - loadedChunks.clear(); - loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX + 1, newChunkZ + 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX - 1, newChunkZ - 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX + 1, newChunkZ - 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX - 1, newChunkZ + 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX + 1, newChunkZ)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ + 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX - 1, newChunkZ)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ - 1)); + loadedChunks.clear(); + loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ)); + loadedChunks.add(new ChunkCoordIntPair(newChunkX + (int) Math.ceil((this.posX + this.motionX) / 16D), newChunkZ + (int) Math.ceil((this.posZ + this.motionZ) / 16D))); - for(ChunkCoordIntPair chunk : loadedChunks) - { - ForgeChunkManager.forceChunk(loaderTicket, chunk); - } - } - } + for(ChunkCoordIntPair chunk : loadedChunks) { + ForgeChunkManager.forceChunk(loaderTicket, chunk); + } + } + } + + public void killAndClear() { + this.setDead(); + this.clearChunkLoader(); + } + + public void clearChunkLoader() { + if(!worldObj.isRemote && loaderTicket != null) { + for(ChunkCoordIntPair chunk : loadedChunks) { + ForgeChunkManager.unforceChunk(loaderTicket, chunk); + } + } + } } diff --git a/src/main/java/com/hbm/explosion/nt/IExplosionLogic.java b/src/main/java/com/hbm/explosion/nt/IExplosionLogic.java index b2b2e86b8..0886cb3eb 100644 --- a/src/main/java/com/hbm/explosion/nt/IExplosionLogic.java +++ b/src/main/java/com/hbm/explosion/nt/IExplosionLogic.java @@ -1,5 +1,6 @@ package com.hbm.explosion.nt; +@Deprecated public interface IExplosionLogic { public void updateLogic(); diff --git a/src/main/java/com/hbm/explosion/nt/Mark5.java b/src/main/java/com/hbm/explosion/nt/Mark5.java index 6827b6758..16d2d5ee4 100644 --- a/src/main/java/com/hbm/explosion/nt/Mark5.java +++ b/src/main/java/com/hbm/explosion/nt/Mark5.java @@ -10,6 +10,7 @@ import net.minecraft.init.Blocks; import net.minecraft.util.Vec3; import net.minecraft.world.World; +@Deprecated public class Mark5 implements IExplosionLogic { //holds rays after being calculated up to where the blocks get removed From 1406cb47d912fc8d9dd30eed9a5b0e0edd69ecaf Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Mon, 12 Jun 2023 15:44:29 -0500 Subject: [PATCH 075/109] Removing the clamp on pollution until I can think properly. --- .../java/com/hbm/handler/pollution/PollutionHandler.java | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java index c4c42b87b..6b701fe8c 100644 --- a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -173,17 +173,9 @@ public class PollutionHandler { data.pollution[S] *= 0.8F; } else { data.pollution[S] *= 0.99F; - /* Clamp soot pollution to 0 near low values. */ - if(data.pollution[S] < 0.0001F) { - data.pollution[S] = 0; - } } data.pollution[H] *= 0.999F; - /* Clamp Heavy pollution to 0 near low values. */ - if(data.pollution[H] < 0.001F) { - data.pollution[H] = 0; - } /* SPREADING */ //apply new data to self From 1c7d8e41f0b95fde2931fd11834a942a60b56506 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 13 Jun 2023 09:54:26 +0200 Subject: [PATCH 076/109] leaded fuel pollution --- .../handler/pollution/PollutionHandler.java | 2 ++ .../java/com/hbm/inventory/fluid/Fluids.java | 7 ++++--- .../hbm/inventory/fluid/trait/FluidTrait.java | 1 + .../fluid/trait/FluidTraitSimple.java | 10 +++++++++- .../machine/TileEntityHeaterOilburner.java | 6 +++++- .../TileEntityMachineCombustionEngine.java | 6 +++++- .../machine/TileEntityMachineDiesel.java | 6 ++++++ .../gui/processing/gui_electrolyser.png | Bin 9336 -> 9377 bytes 8 files changed, 32 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java index 570f91415..d781b4e32 100644 --- a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -32,6 +32,8 @@ public class PollutionHandler { /** Baserate of soot generation for a furnace-equivalent machine per second */ public static final float SOOT_PER_SECOND = 1F / 25F; + /** Baserate of heavy metal generation, balanced around the soot values of combustion engines */ + public static final float HEAVY_METAL_PER_SECOND = 1F / 50F; /////////////////////// /// UTILITY METHODS /// diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index f9de9f7b3..df3839c36 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -167,6 +167,7 @@ public class Fluids { public static final FT_NoContainer NOCON = new FT_NoContainer(); public static final FT_NoID NOID = new FT_NoID(); public static final FT_Delicious DELICIOUS = new FT_Delicious(); + public static final FT_Leaded LEADED = new FT_Leaded(); public static void init() { @@ -255,9 +256,9 @@ public class Fluids { SALIENT = new FluidType("SALIENT", 0x457F2D, 0, 0, 0, EnumSymbol.NONE).addTraits(DELICIOUS, LIQUID, VISCOUS); XPJUICE = new FluidType("XPJUICE", 0xBBFF09, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); ENDERJUICE = new FluidType("ENDERJUICE", 0x127766, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); - PETROIL_LEADED = new FluidType("PETROIL_LEADED", 0x44413d, 1, 3, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2331F6)).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 450_000), LIQUID); - GASOLINE_LEADED = new FluidType("GASOLINE_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2F775A)).addTraits(new FT_Flammable(400_000), new FT_Combustible(FuelGrade.HIGH, 1_500_000), LIQUID); - COALGAS_LEADED = new FluidType("COALGAS_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x1E155F)).addTraits(new FT_Flammable(75_000), new FT_Combustible(FuelGrade.MEDIUM, 250_000), LIQUID); + PETROIL_LEADED = new FluidType("PETROIL_LEADED", 0x44413d, 1, 3, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2331F6)).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 450_000), LIQUID, LEADED); + GASOLINE_LEADED = new FluidType("GASOLINE_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2F775A)).addTraits(new FT_Flammable(400_000), new FT_Combustible(FuelGrade.HIGH, 1_500_000), LIQUID, LEADED); + COALGAS_LEADED = new FluidType("COALGAS_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x1E155F)).addTraits(new FT_Flammable(75_000), new FT_Combustible(FuelGrade.MEDIUM, 250_000), LIQUID, LEADED); SULFURIC_ACID = new FluidType("SULFURIC_ACID", 0xB0AA64, 3, 0, 2, EnumSymbol.ACID).addTraits(new FT_Corrosive(50), LIQUID); COOLANT_HOT = new FluidType("COOLANT_HOT", 0x99525E, 1, 0, 0, EnumSymbol.NONE).setTemp(600).addTraits(LIQUID); MUG = new FluidType("MUG", 0x4B2D28, 0, 0, 0, EnumSymbol.NONE).addTraits(DELICIOUS, LIQUID); diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java b/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java index 2d5bac5ab..ba385ad54 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java @@ -33,6 +33,7 @@ public abstract class FluidTrait { traitNameMap.put("amat", FT_Amat.class); traitNameMap.put("leadcontainer", FT_LeadContainer.class); traitNameMap.put("delicious", FT_Delicious.class); + traitNameMap.put("leaded", FT_Leaded.class); traitNameMap.put("noid", FT_NoID.class); traitNameMap.put("nocontainer", FT_NoContainer.class); } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java b/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java index 319a7e6d4..d282cea42 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java @@ -49,10 +49,18 @@ public class FluidTraitSimple { info.add(EnumChatFormatting.DARK_RED + "[Requires hazardous material tank to hold]"); } } + public static class FT_Delicious extends FluidTrait { @Override public void addInfoHidden(List info) { info.add(EnumChatFormatting.DARK_GREEN + "[Delicious]"); - }} + } + } + + public static class FT_Leaded extends FluidTrait { + @Override public void addInfoHidden(List info) { + info.add(EnumChatFormatting.BLUE + "[Leaded Fuel]"); + } + } public static class FT_NoID extends FluidTrait { } public static class FT_NoContainer extends FluidTrait { } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java index a4ba8adab..555704c86 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java @@ -9,6 +9,7 @@ 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_Flammable; +import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Leaded; import com.hbm.inventory.gui.GUIOilburner; import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; @@ -73,7 +74,10 @@ public class TileEntityHeaterOilburner extends TileEntityMachineBase implements this.heatEnergy += heat * toBurn; - if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * burnRate * 0.5F); + if(worldObj.getTotalWorldTime() % 20 == 0) { + PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * burnRate * 0.5F); + if(tank.getTankType().hasTrait(FT_Leaded.class)) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.HEAVYMETAL, PollutionHandler.HEAVY_METAL_PER_SECOND * burnRate * 0.5F); + } shouldCool = false; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java index 64ea819ff..a01fd1347 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java @@ -9,6 +9,7 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Combustible; +import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Leaded; import com.hbm.inventory.gui.GUICombustionEngine; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemPistons.EnumPistonType; @@ -86,7 +87,10 @@ public class TileEntityMachineCombustionEngine extends TileEntityMachineBase imp this.power += toBurn * (trait.getCombustionEnergy() / 10_000D) * eff; fill -= toBurn; - if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * setting * 0.1F); + if(worldObj.getTotalWorldTime() % 20 == 0) { + PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * setting * 0.1F); + if(tank.getTankType().hasTrait(FT_Leaded.class)) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.HEAVYMETAL, PollutionHandler.HEAVY_METAL_PER_SECOND * setting * 0.1F); + } if(toBurn > 0) { wasOn = true; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java index 1ec212628..dcb1f443a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java @@ -6,6 +6,8 @@ import java.util.HashMap; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.FluidContainerRegistry; @@ -15,6 +17,7 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Combustible; import com.hbm.inventory.fluid.trait.FT_Combustible.FuelGrade; +import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Leaded; import com.hbm.inventory.gui.GUIMachineDiesel; import com.hbm.items.ModItems; import com.hbm.lib.Library; @@ -203,6 +206,9 @@ public class TileEntityMachineDiesel extends TileEntityMachineBase implements IE tank.setFill(tank.getFill() - 1); if(tank.getFill() < 0) tank.setFill(0); + + PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 0.5F); + if(tank.getTankType().hasTrait(FT_Leaded.class)) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.HEAVYMETAL, PollutionHandler.HEAVY_METAL_PER_SECOND * 0.5F); if(power + getHEFromFuel() <= powerCap) { power += getHEFromFuel(); diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_electrolyser.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_electrolyser.png index 7a250f025ce6a59109555b4547c758c80e23016a..3f28a4951cdbcaf884e974ae997476bfa9ff80c7 100644 GIT binary patch literal 9377 zcmZ{K1z42b*7h^O(5ZBX%8N)UAUQ}2QX(xWt#s!QO1B6ojjxn+_kc>nfCvZ(4AR{> z#Q*r7^PTH_*Z==>J=YU^_FjAKweNNBwIfnfU5S*4fd~KqQWa%+Z2*9PuMmI$0X~df z3$4Ki-0hKy4gvV{CwLJ70BnGYysVCQ##W|-Gt-2}%C%H{mZ$(+nKFs()=iaktMBp8 zRB`}9EsLVf=eKTOc-n8*Is3&po+fAw-aR?Pet%< zS4Ms2wt8p#J(andUG_k`-sjeO=; z+YK*`LkQkVowO?j?_r;2`L6#pclfj3$@H$2@!oQ;slM;rWYN=xMix7qv~V;Pgfx)j zh5x>rDPr7YqKzyNpkrhd{{BVpt>KR`4Yj+QN;3ZJg@F`dRzvEUozGb>xJ_jIbCyW_ zFHT)BM`;-uUzZ0zxNQG=s38ft%Y9T>a$I@r#2(>nZnLYQu3j9EkB^^-S!vbm6$%f! zfJ&cMO1(>kJdPy+WE(8Hcuf@%v({6rjtJj?6*5FaZ0c!w70$b-B?obhKTS6oSllR$Ds>^&Q-ccg~ME0&G zMZ&6mS9dpa?P$|AkbqhFfbbtyg_cYL`v5^FBs4UXj)le1HO>~rQHILJ2PhbOz+5x-S=6bP0G;p7;&vUa>4`4Tj7Xk6(`gC-FI;FLmjFQ?0- z+YE7k-!-TqN3rSBGcl3)AJ^C71F^SIA6UVX7AXQBFAu$`;F1y^eJPp%9djdXISZ~) z)0J^OyvcS)g~Do}rTs-KBVm|R*ZsU3=T^7*Bd$Dz6|38>NPsVO_&NP# z4SmpxiA`f5@VVO7c%P?8f$fP&{iC;mKDXjyP%>$aSBew4c|QlBt5u=K^-!Z$x{HRi z&tIabNB~W}$~bT6B=|95r26;AG;8(sdKP#2qN?A!#A&sbiZz zXZ`n8;mz-kubQomCPU0csds_BO|tN;qN_KUYlFd2QxJwQ=u z`x`-c`s-AtJKjDtImzc%T=8DlAs0a&k|tjP5M7Pb7_33q7c!GB!22p_^LO_Era4IR zd+5xnoxTBLH~=y=?D%SlQ;_|o3t!jqmmw{jc_bnJyG5Om|KZlI z1S7?Gph3!t-gN|GfEepZgA6YT031t&_#Z0nN)nr;vf-A(CHZkmKP_YN%_?uwbJLk-ofbB)vPdDeQ7DtDV4kp_e5D9Ps6_YlKRn0_^neZSvw8LR;T)R}!u4(y{H zwxxiIx|XxHsqk0!6KdUzC|zM={m>wieRwA^<7vty@%n)^rx~;P!qll~}48QcV+t<7F!vM_*ZjraffO5%{OFqkV321~CK7?2gXeGAwk4SvOm)q8?m=G&;mEgd9TQn%Yf-?W-;EuPJ^ zt6Oev2gc0I#1~}ysXRbP?$&ap1rBZ=_OIOPCfc$V%W?q{&zD~RQKHCJ3fd})CV~0I zQ~PVcs-m%~O}Ov)w+g6bGw}$TOilU^nu2Da2Z$O)vmH)W**vFV6B4$F``CA{rW^gw zS{CW%4|#!jVLpSCUwqO-0O$i&Nu zLe6dx?tX<~=UEPlsb$1n`G=ZpcN9cW6W2-~1MQaf)>&1FwH0z0i)2geWJ?s$)pV%o zpwk{XayP;J|NqY{+ zkmroir?vQV8_dC(-^+FPL)J~}&1+=Pj}0}CfS2!}mNiGfKfIMQ^89s68%PT&GrTbQ zZCY|4*~4-pa|39AeZ?geGU0ws3h@_P{zg68`wnY!IhL3ATH=PSU0C{bZ zjqmo|lU65>;cq;7$I+>hLeSZT!-@oLFoR19o>}>%3!YJ9e9O$^c88hQwWhjDXJhS- z-Mn|rYHm^#bES<%cf?2cZg2Lq0HQ{^3Y)YVJ}=-G`6=wfjKOtwXpu>Xksy%I|8p&M zcBpi5$?*IcIg0W>?yIN@dnJj~;#ih(+<>f>HXlQs9rj|a$!2L2GU*-r>$Z%gpVkEK zy#q-t!a7DWWQ*LNs4p1UA??9ZB1bX2jK_0N}dSO(8Kev6Sdyk{1;59D+D^E5=< z4yVmKE*U)%vher+b)(U|Be@z#wT}K3VxHGK9~^Pbnj>+@@t)G2lS1}%@aht0fF67% z!25Z4COERJv&3~f_jM>F;rQ1z%TjVSPUzB&kmJR!I2rHdu7s&qIjQXF*Nt#;0O_@P zB^bP7hg>`Qg5TuItPqw|#(IH@oer%>vceJ=9x+beoxDx_&VB@LOwcL3dR|S22O-Rh zo=->U%mgKeQrF0{Np^3ZCj;DzS0%gqz*{%`_TMIqA-lnY%~?7~#hhSO7{x!a7f6NF zR6hB@a2+7niT1H04j?8d)WdWw<5S~E-l)SoNG1iqa(rK0dw1F?f#0zns46Z|9 zeCl4<_EP;Hf7M7r}fH@Y3Z~QxOLS9 zkN_16%Y;X@b4<`S3Bga&*=cFEjd~$Q44RCqE{sQGWhxK{+Ja;{)U(N!3I-VPbwu?= zQ^4`W!4XC@Fk9NGHFmHW#)#RK%xf{^Mqv5PGcWB3u`JUpD9?8`4^6bR_09FWql)tj zebZ$_+dJYu+<9+(%^%=2&=QR3Rs~ELCB3QMr2j|PUkf}4Gi&(I4fPh-6h2#=iG0Ip zQ0h1We&@Df``kN7#qa%TLPV8chC{m8+4CsKsT!S45Xw3T_*v$14Z-Fnc9C1I-#a+2 zOOBW_F#UKWGo03YIO0A+@k~kUNGQJq11aA(l8g0dKMr>}m#o;KKk!C@QA5f}oiJI; z26>qI?Hhk`atw?tL?5MP zKRlpWGi9MB2n6L$w)?rXBsM%lu=O+`>BcMb*13yK!U6)_dZsqXy)`L&hR8Z9n{g8@ z%gb0TI%^>gA^zJ2uZGO5fdoaxTMB{_IxRd|@cuy?#Z;zr%5si!* zsAEV(Zt9qRJbh5jNsx1LzEVWur_h-}WgQ;QSf+X0P8(wZJ|Y7Q4&!T0%RZ1INkIEV zPud(94*68_e#}H2d;gBSv%40{$f%*7^>vU@RGb{jAVv0GVAF>7ANzzNg8Z_)e-j?< z<;sOS6QHjR9zd({$@GN*bAvCDO>N^G#UMDX-t@4bfBeuf%f9R+<}ZvVXBPh`9e6xx z0|BUk$XC;VJ_+>rUiOmqz!!T|Jg9WO-W>rkv4}qt6=_w8U5yN}`F|qJx24~3J_0`GqUOFZwdFkx> zLlcqVS?>i>z3fS{Qt2t#cDI#StHyLPIXSsfDO705m|xI!uynm|**w0I_4F(&n(#k3 zH1EEgtF#O+!7#9})G^JUxMGdy54X(D(-{El8%k^}Z78d)O!8ioRg3QhZQQhPy3S_cN3`-a`+$9$(0!uSl(?2cr5jQM}S-HTf9QKk?+uS{I?o@^tI>lH_!70vN|Ep~H!0X%>V|AwPKL zG@4_wq>LAB&3(m%fS1^vt1WT>Fu4d1`t1nMpm^i)xllZ+I90EPVbw7f{keq&)lLuG zk<9SHLp_1zu%5=uv|mElV*pHgOn00j=dV8yG!G+n-!hxvC*0isvg1E9A$}{IoK@Gg zk*UnIolGUEqM;!|?RMx(k!Xub0+l4qk}--{#j%NV9M0uvo$srKpaUXj41Gexe*#G} z*E!BuSyLgxY zv{ACYfSa3}^6lh89i9X$dUWihX%d$_2PG)dxW${Y_eE81ITt%kbgm{h9V4*C8@N*E z1p@*f967y8Arz-Ev$|bf{broJM=!p0S=@B)@gKSLTE`H0ksKG5tWf&bzCI$*bU=f|IqW{wuPqb&E;`pmaA?(yFt+C^cu_oMWA-+*^xzJjK!F?;GgZzjgOgo5FH&IAgFkM|;5K|-5)6r*VJ|9Qd6rK5L zXzs35mS?iR$-sfI2=|DSSKCPJtcIm)Jqu&Fc8D>^3!-%alB#p`|6qW{hsyl_v?iwV*2m&3(e>M9X7B(BB)*2N!n4jMev2VE=U~d(u|2{!GLG90 zN$CkSY4#-D^KP-@M}i*3lk!O9!?&Z2iNwc$zt=_;=|s(ycElXx?Fy88?Q2Y~n3h z#z*_--CcYT15`vm&Sr40h7Xf%>Uwcl2N6%ZqMYL$hgERLTTi>Xx{R~eyo$ohxsp{p zf`X*8m5Ova_xG!sm_P?U@@1~#Ey2M+JUTZ#EKE6M!j+82`@gw-O>w$4|oRhcYdT;g2L)^ztug`Au|Ks{^iIKY}zGt3LqF z{8TDaYw?N9B<%>+rk=FW1HxkQ7Sv z%8MPYQ&Lhs%>-BRijtA+>Gljzi0wfSy*S6Oj*F#PWa%pHiNiP&l>tDz=;piB)XJKg zkK+JHeCq~)$VRoc8Lu3A1`sf$hZZOTwzD)P0W%S7j&_Qts?qa>K&;#T@q7Bw$8m7( z$LMXD;T~uO%9JDV56o^Scl@oI`ezL2L$0|SmNNGQf}Y`pK$*WF$moLEe!5db#|wE| zkmcJ~kD04?$__!rB0(D;T#b&7+M~;j`SNvmat%xKOv+1?-WX7hyby|%=a_GWn5~j_ zIC}fZK>A#omE8GxdOBER6$M2^-h|$`5$p?nDWJzgeRy;vo5bajIX5>KZ&6w32)9rT zb!{Y3NfHniUdV=+*^+j!zVbVHZ}wJi%#r{HZ6KoUfDe6=4oc$MtRvW5)* z{(9u-AvdhM!wfFJHh&~=^+JRFl%QTf8Q(o-_=l|5%Vb1GX`>Z9V46ib+FoQ;w@@|U z)Dhwt%C@-|%2_?EI5+t2pHQW`C3B@z5`Is186uocLKPYI{v_3k9yF5F`CS#N-+N-; z*W90WXnNAJZ&4x7I}#1{>ck0A$He1r{MIV#HsNU*=ZMQ=Y2p_JEm77jJ)MZlkvqqgvdmoFV^89VmPui5%Z1C0^6R!5AgU0&#!w*z8Tg@j zxyDiKbX{wQ^IDrWErodXB6H)`KSW2M5JBB;zGeUzr-$f0bT*Z#;Da10Q8tg7aV8Wds&~={uwHVD%z83joh_;uCvkBxgx>iP6Cb~DBl{G7 zyff!Cd4qzFxPlKs(vQA7p>=t}L(}F#o%)GK-^+msHhm-QA-I^VM!Kq1A*LsXK$5rs z>590E2WDcVEmaj$SBBBY9#3$q_BfJ+X2h?8yF`ye+l9|olJD#db;SaxcHiHG{zoOI zr23rD1e9p1rgU|TYh@gGc?*REpWF(@X|J~5jqJxzR|q`)a&8*W>FLLW#Mm3*C2(N} zs|Jr-MWm@)@0|&rw^x4v<<6b6*YuncHy#T?rGOWHYQgzkgzb968>^B&_lVsrDCd${LGK1bXsC0 zlOkK@Y&shNt`=}Rnx+yizu^G3vYX|pDQ@*RXT2>4 zabDXkTGm?$);_zrHtfFsQKtTyeLVXd@hRw#9=IS49{Ec~WVf~)3@Du} zExsv6mYuIHDe~-I-A8o|iaR?njfe?cdMSL42M)q%ozD)1w8LppUyvNkcJkK~H5yZn z8i<_GVY0w`imRS@qS`nTMmDl4{vu@~YN=;kvtV|U`O9KnVzg(LePKV6%6hgePxqO?=`8&F z^`$!C!992WEPqSM75T{IRlE9VV3((#5WqYTdE<`2{rh1`tN}NH-2q{YSkmYaUBd&o znoLga!54bH-@F}&2ImFC~fDU94Wn`iJkyAgdZ2rPwqOwL`iH|inBhms}_Tp)Y zYbDvh7z#od8)5R{SnjXUKOGW*x!(Trq#tGA)7o@3!2lKAO)!U#9?TEieNsN{a-Ba? zScKbtroeW`0CncnKI;5UxElGaq z_TiZGd_j;VQu2XQ>E+(7U%q}De=3XlQyJj+6=uD31UQliXt@aQ((8_Io9Mt@lkiqs zg@e~?d1$Tz@T6dZ@(FkpN>}gb_UpTbs|DX&=+d8&zopB^(gAGC}c0()Y?2k?7Tn z#_&O+Ju)6P{rLIA&5x-^0hOg#b5(b8N5IPkZ|#a(z@HcuQFckKwABkxFo#Z3q5G?W zp*WZl@L6s#`7V+J(sDnvzdTjTKr`pZdV_y)h>mo~>>9)OoutG-f%uENcyBShoRJFm z>yDb7G!Up&y3e0>!U_rQd(kT^>B3wIv78$M&Z?AWMtu$UpLKMq<@2X|czl%}hOv=J zriES%G41v-IqOBL`aOm1zUKGu@R0G^nT@42^-o+(VCr_=Zr+jB6AF_g)-23F*QOkc z3Rw(2>hihDg(vM8p$AJ=&X(T(5bHgm#rwL=3lUYIY?MRH-easW-6;$(A~!qPo+&#& zJ6(uh_(p5W^^mK(lBonX@sbc*!$INDpE-7LQJHSIAbCCRV^&4-i$xD}aOc{Mf0#4> z{FghJ96)d80F9NCqJECcyF6Ar0th%hpH_up03}(phoG6*r-vAsSN>TtPshe!Jt9-( zMfk&c0qWDz-%7QTz;DCcL;X{hR&}5ghkQc>Cj`eT+=5u8N?9r^8>8XaN zkHc0WZ1qkWM?i#nzHSNqHf)zci3N~|pS$te_{dSquKzd*K|ZsfUsWn*U5S22e+mTXu@>|obJ=Fh zDABA&=Ia!Seh>7z6&ODWd60u#qtxLgVhkfVMeFX0TF(=o23-wO7x_QiCZg3V_ zc5yjfwoaG;VH3w&i#EN;6A}@*J%l|B?&QDw?{va7?AI{Y?&ZO@0Bob%3XtunV=s?E z4m^{B2m$g+xxjZY^(MBfP{%#KHfXf%lft!E@=7piAQ0hS6}}Fk2qPo3W%+q7JIiN3 zw|&|9OJmwf3Ya2PreObcp-m|!3}YiDDOK7}lysbZhb+?U-q&6jLXWj`12P{VLvI<6 zfbGX3>yV2%5mnSov)962H>+1ES14_&QA`Z_1%Kk1;Ra_qdAUy6bqH2QXEiRS_*7Q zoNY{7U%6DCOU+JbURixJkbd7|HFxV-3$q z=z)+`3$QQcY2^?owkA5T8wzuH0aGw37Zl~s4(>68zzLF&ZvY z$Rp58X+nlq&>H#<_?J45@T?%Gj}RyV>bH1U;{V$O|L1VMTgLJLKT6e$8K3J8w{0Ribv zLJ>hkK&m1Tdhdh|xySc;zq{@q_pY0D);XDE_MSa^|8|)<6KiCk!+4786aWB>db*m| z0RRGig#btd_^|YP?*KmF-s*Zck>Do?c`pV4Fo2$>+D-qLE3ZObc!qq}8p~82LQ_Sr ze{#(9%NFZo7MRgt%#?B}bF&i+@a2|_JzLQ)F02TKeXCEw#LvOk`D@+N(HHKk7R*e*b)tmW6Qeb4)| zKUVhv_`~SH?ySz|fvYuhV}TzdorN(m9+>AxUEOoT`b;`U6vLCzPbbkKdpvB78|<#C z7xap>+Dt-4yLtB?7K~p-g?&2A+7-sR1$|33R9VR63*23GeG@G@CchzlHCs{Imt|;3 z&{g%mgRwwPn_*;pvM^#Rg9vXqx%FWAz&;q$$vGI$~gXO>u&IqB%oqfp3X z%;tVQyNLO04^wsvt!m}SCJvvU48b5xUB*B20yrh5<+wT0nN1+(qqZ?C4Ip$8#iZn6 z833e&@9=Ae&l{b;aN*JNG1Kw-<@()3#iHP9KF^apCMb*MFzQV&f`$=-42NMGwpqqP z4qYh?NQj!K5h`i^LEG1_ylH*4R3NE)E|V*$M*~_=2APJSB4G$xT1h3PKRyYU_Hwuz zdD~%_+84)%yJhQ*MP~!{gF>ze4h7Pvtv5YcsiXvK0?2Sdf$b9qH)^tm>H|Wt*)Y8= zf)fZwa#p#GzWw~!@~}qKy!oEEi4ZCM;xAY5(;{mrOq!0c;9yst*;O|G+~bx-+8O(Z#oIm`gI z7a$x!@fUY9$XJX z+WM5O)J7EX31HFZkB0~8nR5PzatGybE+>svgZs|T!JSQM1ZtLGo;-K|I0lg}2ixa` z_wSrCK|^;qS6cEy*8-j_gwgisQKVAX?;Y2keZ2!+|J*^4V?o+Haniid->GknqAWSY z6M~QVfGAfcyqqHW0UOb(Yzx?<;3~L9N6cU5S_O`tGG3fXQ<8$7*v=ksD@Q-R>&*ss zZTG!cG7#PLB)a1Ylhd0!Fj555N@Y1x>nS1N+>>}Bu{s_yEQQvV8(z33M{q1>I#XOT zca))0RhhAsR5IB4L8)<3$E;(TAQ8au1V7#zmwr-H*&kmt>t-sYI-!pkM4tYNXOQPkVs|dFM5*q zBaCSGA^&FGkemPm#Y^xBSLpg)C91ucyX$r(IuKHbAvFB?me1ZOUboD}O<#tFh&M?d_RQ@uWn6~jdcjWo_tRxI`y`es7 z&h)sJrXVWk74!Nfq~jpDXxl-J2R-wZYuDg?#&acwoleE?3}IZoh^d^PTcZpu79Pm)k8O%*_s{?24{5Em4r=;jJl{DbE?w zxf)o*o|C$0FNAGB@TE7|MJ@;I2|kmTEZbqKcwd0N0V5rrr`^DrU*64PguN7a(BR)8 zC`eW|kfXo&_kYteVEF~FX-V2)`$*BY;*gculKrhL8_JU3cL$pID5&}yc-aANZv*#h zg?E$yAwHu_UIb%SXt@-eAlT!_RnoOgEaD*cGWrqvMrzXPEw46iLU7F%*n-WY59nT! zqhn42t?-rBqj%R-h?NL@XiEj-SkV_b!ZUwWykFb5dN0^x6YSXL(R*}n{1^%+NOoo* zzINYpbNf6P>|*culI&CX-MOL0kuoXXU2yPA%Us#3`gSGPQZyp074ZLvx;GP`swr@< zhEb#8Pdk0>M%=d_!S5QXv=6fYV0)a^H)K}9g#&1GlX3r*J6*@#VC^ANNS*1f&z3tlbZ z7Xl#?-`Q$tS~OEzV9Zoi{KI)I8Nq&aO!#`{-waO7EU+~*d)*fn`?0yeXZ7`?2uPCO z_!i&HYs28IlNva)l)o!&`e$kvwr(g26ZE%~0q_qCPb9AeXKh6?wmB>pt%(u=rqa@#Zq}rCyUY=|P39^OVgQLUWQ1 zi<>)PMnCxW!UJ8A&9t&>LFy3BFoXmn9^Stfo8)QR&89n@0L70)qE|v*+yz{UCDmfS zx5jb?ZH}oZ1^b&U>`dT0`H5d5)P<3{DE_xIGC5k*7zRKsk^{u}!&OCB3$sT0mTw>9 zVS$y;zR4&Zk|~04F9*RtDa|JIBDo|?U^;=AS5P_omt{!srfgN+^V_MJt75|ScWJz;r*KP z(__z!=W-CcBTIK_-|x~AUAcDAz$)752={hO2J0TkVmz`GCv!r}rTkpwg#=gbqVNZ6 z2Oo+G`BsSQd&$+I6P&>-*p7-lACrd?z3oidN<3`s2zF<_L-Vh!NbmBk`!PJs!^)o}U+uJAtlEf9555nQ2xe4$646iQPBttX14TF4dli`}}!0ce(r zI^!Euq;->5YoL=MS(%uhpHKRHSTmP(!v?M7ZxnpI-Dd~`L;#lCRnQU+`0{O)mUGXe z2LLoEv`(>st%nDyrKRO_P)6khS~cWP#u}XHJ@-)@(l2|UgAVpdP|?uP_>dKaAcHl_ zaQzk?&v4nfq^AR{u=Nbw&WWG@;Y!uUtF@r7Y4J@>YSUW*SF`OIS13a^4=Jx!dKU9s zw-x;?xzjTja56IezhUwvFB*1t*H*j>=D0ow`d6;(0|v+zd6R#|S6rp;tc+L%53R44 z%pe;x7{{;VxzqM__XEICJm6mMc!WR9iZ>OTO0!e-wjAu-_ZuU`CbmlgS?iA5MULFC z^$(>lCI%D$zO7!jPndwqvY>#{X1gFje3wP|mc}!<9w0|}iza)W z!^AOh6wP}_WJm(m7e?iqK(@u(i}%2VSZVN~-vF{?$Ss~I+w<1d(QUXPP>%hw#j~tL z2Eci*E@TP@5JxIM-;T-q(t=Ao``1>Rk4+dyiM25E z5)uNb9hl6nTr)AS+5g~@W}Y#{A~aN0!e%ViOw6GRD1WeLJu#yINXP%o+WIp(e-o7B z6jv1lUv%j1SH!D^5Ihqb`MW2OK#5#eGl#>)8ewJ8pdXq={Te{~{8H3N!m6|a;Qg0dt9Ph34EP>sP}fkx`};4$$jfS60)w4HOTITn z&OW_z4pcSB1-wstT^^tmn-s)+ovL1~UGmu9oY|2C#Qhkfmrihv` zt5B-m;Sx|Dg?ER$jU2cEt3QJS)0Ep{Fh69=r3Trwu)WgISSdL2I@91Gj5IkZAdrll z+>pPX|8#M4ZYuzk?`fw!U=%_8B&KLXC-0|2yWL%kH7qGFt*%;PU#v_K^;Au#VRL9Ba3YVvp1tZnV9a$^X-Qg>`<0f0hixQHM{ zLBx>qa&plwvh?QZ#`!nK2x{^!IxG41)VQ_fb{2tp$!K&V0pT2TwWrYJ`{VU-R(6~IZdJHEzBf1|nvl>$bEb?9{qwetHL0d{aZ~gO! zhY%RZug4;ib_&FagjH>%{`m-hrH`lC|9$; z?rhcK&kjo`^pBukH7_3koBK*20GVSoapY+iymAN)jKY}BZ&6%al&za!bF<-(ZU2@C z(PwAbTvc&~#H9*Um>LSPm|0j{=O)$b=l-U>?{ed(Pe02QjM8V?qWH&7J?Dg8uqK|!++A@m-kf5NWG<-0 z3$w(+0nm7N0s=U%UcLI@H1VEP{wj@agUVH!HV0%iH=r%5LGDKaU7dF;h7ypIy3)-y z7BV_Cj?1Z4rr)2LcnRT+p?=h`HZg#H?;Hyq2(WunoR-xdU`)N)#qiYN-N2u)<#*Tf z{qF-D+EFAYB_e^K9@m7z2W)m+2tGV%2;3Dx4kKHqJblMP2?Ptqy|hkykju@2Tm4JE zzMZ(M0x$H>gMqwW4v4=L1+4qDpt?NkbbPQP?QQ4;ZAn?#DA<`ZVFYNQq^Zc+Z3;y# zMacK%`1tsfyQS|X;CD45ylNOgXO@o1Tx&o&M_6PY;l1kW;jzh z!7b8i`z?pU9}4ih@L`mFNC;m;L&N;Sf?9=z*7;OpZ|Emw$R{y7P{andCtr_2X-X9j z7z0DC3nr1f{tfEA;s)G}ey@!RG}M+|&YUKk%Mt6GUs=(T&HMrao2X4nxyJNqG`zF3 z)7gtg6Z$g~V>$J<)BXZJ6@R%I9MkApFejh!7dd+*TDyPcEo!X;X2E>Rc+ z{x?|n%z*VzGi@+ZJ?_j<-9T7Qk%}U?tLmrAJiSPyXP3adG7#i@Qcwec90qQM7QVx> z#VtZ}uIK;rk>{QU;57HS4`LF5S>70JDeKW5?}~zfn!46d|7y2L2`;Yo1Lh#b31%nX zF`IOI(DJ@Z#X@>uuF-whca2Wt*G2W;{KRdLbW+@x1z2Gmj0#++s45PdwYDCblB=lm zWBSN#I`-iLiZxaf`pd-Ma3sAO!9%nRqBaM! zb%vC0om5ybrd^>aD=S;v2gLN|71!#$#qYe=W~-rUnw6~NFXkPrv{9D5!FoU^k;kb( zKj|Gz2h5>c0bo`I?_e_i8|hLzax5hZ@|(;Bdj2Mdt^KzVYOKr;6+oX#5!$cZ{Af~8 zaU7qTo>#vg`t%_AoEUa6xgHC1sX0wLWn_-ue-1Thyso}RG2R~K(UD?TTdstASg}6) z2pM4^=`#*wi{%~+?&^0oUbQ*#Vyw18obtUnZl(#YO%=0lz+m#1aHw*wKk|faVcWdX zg}fubbr&`aT5Z~dv!hAg;}bLosow=TOEX|kb6fjH^*%j!(s93ULbpvm^mYo#L$xOr z*ko?4JTEg-Y$2QtU0tOeJV!hczFWm924}hSQ%^o`Ef4*rEz_;J@s)fSeM+Qe-bUn$ zjSbJBqbc;)ljB42KxlIpv@j0RBDKDG>n64A@uOm^wnzD=21hx*k}Ba2Kg0zu-+&QV z#eNJVK~Nez__xL?p)?!@Ff6t(z42#mkkt*9S_>7}^he;~QcC#ssWttRl~%g?GEYH( zyv7&GV{auV9gTzC0& z&i#r)s4mO8_AiJ1G3OZwIYFum>Z4GGtq0=c0U%`V=Q%RD>22e~2+4H<8;N;NcAwSo>>mIJ{7+&NBH|;1lKZmf97L!Qd#E5yw z-)SO~9mu;2$Z35I^-T?PK#C}`-mR6B3oz{nhTiAg3RR9C+oQ>e(ngio?+=_m{@MIs zUuAl&uv}tI^Pzgs=M6(u1aQ>7JDzK;7;+>Jkb8B|w~B)gN5*Bv8lC#iGgUY{I65M4 z+_(V{DHj@l?j4iIy{LSGhWL>d=i+hiZsqp_57HeVJlA09tU}(*wl{bdD8{yS48!0X z5r&tI@zPjv@}SNjq#dg4`}CCW_FF*`8>f5)1M3oE=Fp_m=I7IHi1L-r&3k|X!{B)AS>#v!Db%U*hS*w?vT6=m>Z>x^!2D6V&y$xLt1opV0 zc~&8X6VAm$4=%ae-Tk8d_~SwTOxsPevJ;TdqTpf2(<_fV&J!5aA?|C?SNlKU%-5hN z@nez`Wpb&`-!8ajT!8hcIdV6$1o!yj z^lreN_0o(WFj@I66@p=4?vN%Y_*oHE1e1Dw4Tqm1P&8vBPkc%fYtZba>s?Ow+><>w z{OP3KZy6Vea0IzS7gXyR@x0%LLVAS{lX;SoOgoGFo@SR?WijAsy^r=h85kKSl6CkX zfD)zuM&fk2G{TJ$(#PaDe}r#KlfPPm`1pjby!J;nk|;vt@z7w1^?}p(U3wWv5lLrT zYM&8Ik~U`eljS0EOJXprh6{&z&D`sJBShHV;_m<(3*&?wCk~uwvFTT;g$5bHClzl? zP)Q1?S*YdRRpm-}QM+bs5BHLy$5AN{xjy9Yx4$=}(_1DP zwWTUL(ROc!68uX!{|3%)8m5G}X#TZg;o8vx)vY7(lAL|e93TYut2u->j~`Jj)w=Nv%=aLz$&LI`M+uVKF7f=0TG}TtPO;--r5`8d zaA2M@hX1%zk9_^?K+TJ{L0tG|zW^zK_mnhzV&Y+q?wt|KiupkQWBKvrhO>sGUIpU# z(YaRKldQEa%%%kA-U5wnX=0yFI#(RQEfH3O?CFac9N#{H&;BUJjG}3x+yPW?TI2M4 zB~BpM4#y4kuVE+s@*^XOzA;MWP$3ploOJb`1!o!!&6T3WxC^4XGlKK4KJp(+a4sBf zwl`Yh_qU}|%rx!Hiw{B6$0Rl_ZofithRsSq7up}-B_KifcoA;G0-+k5>~BTPo;mfO zEBlx@OiKV-!w$WY#-GEivtVvm&x`I40F|xh-PIrGK3dhSA8mD~@}x|e{TO{XzH%ih zDG&n2b{nx=3*)5v;<4dw)u;H)VEXD1U)9E!DO`&CCvS?oXMBnC8b=(LDwaR=6cQEXwZ1@ljvf z;lA`OD;1(k-qDL7K>XWW`HWrH3}qic=AQ9Yu$e^;aJ5Pv$8w%cJFROoeCx6RXt#E7x)=Xt-PGMfiB-8&s{2RbYCB(QbR@E zHtCWe7zKnV<4$|B;2&uyO@Ne+3d4Qt{MA)<2j64m|8k_95be~DEr`oCnL(WJm6q4N zhG9n9m=wWqo?z`9ur2^dU{Mf8{7P2KJDR@p=3rKe?X9!(CS-eUmBua6?gV>3$(&tl zc_P86idEDU(94a-3+V)1{++0oQd`?l{Q79?aaj-)n1NxMX}3&b5v7sSV%dM2G3#Zr zXktSURE8dpy7TrT8jlu618P3ZUHgEE+{th|EuIhDbAQ%;$dwS{5QHF!5%=E)0gZbF z=B=sBm(cipBONcR@?<7*s4Iqvh-8 z%o*Us^5M#p;)Z|t!BHgdfl!a*hv89H4B$b6`MaR4UxzzD_S6wXR70U1CJpnO;Zg75mU?Yf6#&N z4E_!jW2CkO{L8qUorwLvjI7BH(*Dn|n(uSWfzSVr{2vZanPaAr*y#1sAlTvj0$>v@ z1IMV-bV1i2F#yaWj%@#BD#-}FZesf%+nLygqo1CA_LnZaZ%j?&|2M_|iu$ikB2T@b zA=7gL0ylfa0Gt14M(IBisnY}iL7>tiPi_8pLer3cWoU=}OOQlMV*hqZA5=`{=Y6@&t1LvvwM#7m9OAYB0x{eK=Y%zZTSBJvKvP9 From 4cd26174fbcfcc24fcc0bf26ba4f4dbb60ac37b8 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 13 Jun 2023 16:30:46 +0200 Subject: [PATCH 077/109] more pollution, igen defuckening part 4 --- .../hbm/items/tool/ItemPollutionDetector.java | 18 ++++++++++++++---- .../machine/TileEntityMachineIGenerator.java | 8 ++++---- .../machine/oil/TileEntityMachineGasFlare.java | 6 +++++- .../machine/oil/TileEntityMachineRefinery.java | 4 ++++ .../storage/TileEntityMachineFluidTank.java | 8 ++++++++ 5 files changed, 35 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java b/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java index 5b0d27663..dca184a67 100644 --- a/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java +++ b/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java @@ -23,10 +23,20 @@ public class ItemPollutionDetector extends Item { PollutionData data = PollutionHandler.getPollutionData(world, (int) Math.floor(entity.posX), (int) Math.floor(entity.posY), (int) Math.floor(entity.posZ)); if(data == null) data = new PollutionData(); + + float soot = data.pollution[PollutionType.SOOT.ordinal()]; + float poison = data.pollution[PollutionType.POISON.ordinal()]; + float heavymetal = data.pollution[PollutionType.HEAVYMETAL.ordinal()]; + float fallout = data.pollution[PollutionType.FALLOUT.ordinal()]; + + soot = ((int) soot * 100) / 100F; + poison = ((int) poison * 100) / 100F; + heavymetal = ((int) heavymetal * 100) / 100F; + fallout = ((int) fallout * 100) / 100F; - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Soot: " + data.pollution[PollutionType.SOOT.ordinal()]).color(EnumChatFormatting.YELLOW).flush(), 100, 2000), (EntityPlayerMP) entity); - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Poison: " + data.pollution[PollutionType.POISON.ordinal()]).color(EnumChatFormatting.YELLOW).flush(), 101, 2000), (EntityPlayerMP) entity); - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Heavy metal: " + data.pollution[PollutionType.HEAVYMETAL.ordinal()]).color(EnumChatFormatting.YELLOW).flush(), 102, 2000), (EntityPlayerMP) entity); - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Fallout: " + data.pollution[PollutionType.FALLOUT.ordinal()]).color(EnumChatFormatting.YELLOW).flush(), 103, 2000), (EntityPlayerMP) entity); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Soot: " + soot).color(EnumChatFormatting.YELLOW).flush(), 100, 2000), (EntityPlayerMP) entity); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Poison: " + poison).color(EnumChatFormatting.YELLOW).flush(), 101, 2000), (EntityPlayerMP) entity); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Heavy metal: " + heavymetal).color(EnumChatFormatting.YELLOW).flush(), 102, 2000), (EntityPlayerMP) entity); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Fallout: " + fallout).color(EnumChatFormatting.YELLOW).flush(), 103, 2000), (EntityPlayerMP) entity); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java index dd49bbf75..f980ca60b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java @@ -64,11 +64,11 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement public static int coalGenRate = 20; public static double rtgHeatMult = 0.15D; public static double waterPowerMult = 1.0D; - public static double lubePowerMult = 1.0D; - public static double heatExponent = 1.1D; + public static double lubePowerMult = 1.5D; + public static double heatExponent = 1.15D; public static int waterRate = 10; public static int lubeRate = 1; - public static long fluidHeatDiv = 5_000L; + public static long fluidHeatDiv = 1_000L; @Override public String getConfigName() { @@ -275,7 +275,7 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement public int getPowerFromFuel(boolean con) { FluidType type = tanks[1].getTankType(); - return type.hasTrait(FT_Flammable.class) ? (int)(type.getTrait(FT_Flammable.class).getHeatEnergy() / (con ? 1000L : fluidHeatDiv)) : 0; + return type.hasTrait(FT_Flammable.class) ? (int)(type.getTrait(FT_Flammable.class).getHeatEnergy() / (con ? 5000L : fluidHeatDiv)) : 0; } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java index d305dc9b9..8ad9a8e13 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java @@ -15,6 +15,7 @@ import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Flammable; import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Gaseous; import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Gaseous_ART; +import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Leaded; import com.hbm.inventory.gui.GUIMachineGasFlare; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; @@ -160,7 +161,10 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements if(worldObj.getTotalWorldTime() % 3 == 0) this.worldObj.playSoundEffect(this.xCoord, this.yCoord + 11, this.zCoord, "hbm:weapon.flamethrowerShoot", 1.5F, 0.75F); - if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 5); + if(worldObj.getTotalWorldTime() % 20 == 0) { + PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 5); + if(tank.getTankType().hasTrait(FT_Leaded.class)) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.HEAVYMETAL, PollutionHandler.HEAVY_METAL_PER_SECOND * 5); + } } } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java index d36a3370d..27e48d4a1 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java @@ -203,6 +203,10 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements for(Entity e : affected) e.setFire(5); Random rand = worldObj.rand; ParticleUtil.spawnGasFlame(worldObj, xCoord + rand.nextDouble(), yCoord + 1.5 + rand.nextDouble() * 3, zCoord + rand.nextDouble(), rand.nextGaussian() * 0.05, 0.1, rand.nextGaussian() * 0.05); + + if(worldObj.getTotalWorldTime() % 20 == 0) { + PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 70); + } } } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java index 391f5fe43..2b2c311b8 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java @@ -5,6 +5,8 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.handler.MultiblockHandlerXR; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.interfaces.IFluidSource; @@ -18,6 +20,7 @@ import com.hbm.inventory.fluid.trait.FT_Flammable; import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Amat; import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Gaseous; import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Gaseous_ART; +import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Leaded; import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Liquid; import com.hbm.inventory.gui.GUIMachineFluidTank; import com.hbm.inventory.fluid.Fluids; @@ -179,6 +182,11 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements Random rand = worldObj.rand; ParticleUtil.spawnGasFlame(worldObj, xCoord + rand.nextDouble(), yCoord + 0.5 + rand.nextDouble(), zCoord + rand.nextDouble(), rand.nextGaussian() * 0.2, 0.1, rand.nextGaussian() * 0.2); + if(worldObj.getTotalWorldTime() % 20 == 0) { + PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 50); + if(type.hasTrait(FT_Leaded.class)) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.HEAVYMETAL, PollutionHandler.HEAVY_METAL_PER_SECOND * 50); + } + } else if(type.hasTrait(FT_Gaseous.class) || type.hasTrait(FT_Gaseous_ART.class)) { if(worldObj.getTotalWorldTime() % 5 == 0) { From 3f2e7313a90e3c7619c6e7554eb68750e781067b Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 14 Jun 2023 22:25:54 +0200 Subject: [PATCH 078/109] the biting thing --- changelog | 33 - .../java/com/hbm/main/ResourceManager.java | 2 + .../render/tileentity/RendererObjTester.java | 125 ++- .../assets/hbm/models/mobs/glyphid.obj | 996 ++++++++++++++++++ .../assets/hbm/textures/entity/glyphid.png | Bin 0 -> 887 bytes 5 files changed, 1121 insertions(+), 35 deletions(-) create mode 100644 src/main/resources/assets/hbm/models/mobs/glyphid.obj create mode 100644 src/main/resources/assets/hbm/textures/entity/glyphid.png diff --git a/changelog b/changelog index 4af358249..e69de29bb 100644 --- a/changelog +++ b/changelog @@ -1,33 +0,0 @@ -## Added -* Machines now emit soot. Soot collects in units of 4x4 chunks, and spreads into neighboring regions. High levels of soot cause visible smog. - * The system has yet to be balanced, it's possible that only a few machines cause way too much soot or barely any -* Gas artillery shells - * Chlorine - * Phosgene - * Mustard gas -* Euphemium capacitor - * Used for schrabidium transmutation, has infinite durability -* Capacitor blocks - * Like batteries without GUIs that are constantly in input/output mode - * Input is on the top of the capacitor block, for output the capacitor has to be placed onto a capaictor bus - * Capacitor buses have one side for the output, multiple buses can be chained up given they are placed in a straight line - * Incentivizes splitting the power grid, looping the output back into the input will yield the same weirdness as combining multiple IO energy storage blocks -* Desh bullet stamps - * Like regular bullets stamps but with infinite durability - -## Changed -* Updated russian and chinese localization -* Mist now spawns cloud particles with the correct color instead of standard white -* HE artillery shells and rockets now turn blocks into slag -* The old static bunker structure has been removed and replaced with dynamically generated ones, using the same style of generation as vanilla strongholds. -* Changed the processing for chlorocalcite, instead of using a combination furnace it now requires a six step cleaning and electrolysis process - -## Fixed -* Fixed the TOXIC trait not respecting protection when applying potion effects -* Fixed some armor recipes only accepting polymer and not bakelite -* Fixed turbofans not sucking in players -* Fixed NTM skybox not applying to superflat worlds -* Fixed breeding slot in the fusion reactor never resettingthe progress after completing an operation -* Fixed potential issue where tanks would send fluids to invalidated tile entities, voiding themselves almost instantly -* Fixed cadmium and technetium steel blocks not having ore dict names -* Fixed potential crash regarding certain potion code running clientside \ No newline at end of file diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 3dfe7107b..f889c98d1 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -305,6 +305,7 @@ public class ResourceManager { public static final IModelCustom ufo = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/mobs/ufo.obj")); public static final IModelCustom mini_ufo = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/mobs/mini_ufo.obj")); public static final IModelCustom siege_ufo = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/mobs/siege_ufo.obj")); + public static final IModelCustom glyphid = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/mobs/glyphid.obj")); //ZIRNOX public static final IModelCustom zirnox = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/zirnox.obj")); @@ -658,6 +659,7 @@ public class ResourceManager { public static final ResourceLocation iou = new ResourceLocation(RefStrings.MODID, "textures/entity/iou.png"); public static final ResourceLocation spider_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/blockspider.png"); public static final ResourceLocation ufo_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/ufo.png"); + public static final ResourceLocation glyphid_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid.png"); //ZIRNOX public static final ResourceLocation zirnox_tex = new ResourceLocation(RefStrings.MODID, "textures/models/zirnox.png"); diff --git a/src/main/java/com/hbm/render/tileentity/RendererObjTester.java b/src/main/java/com/hbm/render/tileentity/RendererObjTester.java index 7c8eebb57..467a4c14a 100644 --- a/src/main/java/com/hbm/render/tileentity/RendererObjTester.java +++ b/src/main/java/com/hbm/render/tileentity/RendererObjTester.java @@ -9,6 +9,7 @@ import org.lwjgl.opengl.GL12; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.HorsePronter; import net.minecraft.client.renderer.ItemRenderer; @@ -30,8 +31,9 @@ public class RendererObjTester extends TileEntitySpecialRenderer { GL11.glPushMatrix(); GL11.glTranslated(x + 0.5, y, z + 0.5); GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glTranslated(0, 0, 0.75); + /*GL11.glTranslated(0, 0, 0.75); this.bindTexture(new ResourceLocation(RefStrings.MODID, "textures/models/horse/dyx.png")); HorsePronter.reset(); //HorsePronter.pose(HorsePronter.id_lfl, 0, System.currentTimeMillis() % 360 / 10D, 0); @@ -59,7 +61,126 @@ public class RendererObjTester extends TileEntitySpecialRenderer { float f15 = icon.getMaxU(); float f4 = icon.getMinV(); float f5 = icon.getMaxV(); - ItemRenderer.renderItemIn2D(Tessellator.instance, f15, f4, f14, f5, icon.getIconWidth(), icon.getIconHeight(), 0.0625F); + ItemRenderer.renderItemIn2D(Tessellator.instance, f15, f4, f14, f5, icon.getIconWidth(), icon.getIconHeight(), 0.0625F);*/ + + double speed = 100D; + double chewing = 200D; + double cy0 = Math.sin(System.currentTimeMillis() / speed % (Math.PI * 2)); + double cy1 = Math.sin(System.currentTimeMillis() / speed % (Math.PI * 2) - Math.PI * 0.5); + double cy2 = Math.sin(System.currentTimeMillis() / speed % (Math.PI * 2) - Math.PI); + double cy3 = Math.sin(System.currentTimeMillis() / speed % (Math.PI * 2) - Math.PI * 0.75); + + double cy4 = Math.sin(System.currentTimeMillis() / chewing % (Math.PI * 2)); + double cy5 = Math.sin(System.currentTimeMillis() / chewing % (Math.PI * 2) - Math.PI * 0.5); + + this.bindTexture(ResourceManager.glyphid_tex); + ResourceManager.glyphid.renderPart("Body"); + ResourceManager.glyphid.renderPart("ArmorFront"); + ResourceManager.glyphid.renderPart("ArmorLeft"); + ResourceManager.glyphid.renderPart("ArmorRight"); + + /// LEFT ARM /// + GL11.glPushMatrix(); + GL11.glTranslated(0.25, 0.625, 0.0625); + GL11.glRotated(10, 0, 1, 0); + GL11.glRotated(35 + cy1 * 20, 1, 0, 0); + GL11.glTranslated(-0.25, -0.625, -0.0625); + ResourceManager.glyphid.renderPart("ArmLeftUpper"); + GL11.glTranslated(0.25, 0.625, 0.4375); + GL11.glRotated(-75 - cy1 * 20 + cy0 * 20, 1, 0, 0); + GL11.glTranslated(-0.25, -0.625, -0.4375); + ResourceManager.glyphid.renderPart("ArmLeftMid"); + GL11.glTranslated(0.25, 0.625, 0.9375); + GL11.glRotated(90 - cy0 * 45, 1, 0, 0); + GL11.glTranslated(-0.25, -0.625, -0.9375); + ResourceManager.glyphid.renderPart("ArmLeftLower"); + ResourceManager.glyphid.renderPart("ArmLeftArmor"); + GL11.glPopMatrix(); + + /// RIGHT ARM /// + GL11.glPushMatrix(); + GL11.glTranslated(-0.25, 0.625, 0.0625); + GL11.glRotated(-10, 0, 1, 0); + GL11.glRotated(35 + cy2 * 20, 1, 0, 0); + GL11.glTranslated(0.25, -0.625, -0.0625); + ResourceManager.glyphid.renderPart("ArmRightUpper"); + GL11.glTranslated(-0.25, 0.625, 0.4375); + GL11.glRotated(-75 - cy2 * 20 + cy3 * 20, 1, 0, 0); + GL11.glTranslated(0.25, -0.625, -0.4375); + ResourceManager.glyphid.renderPart("ArmRightMid"); + GL11.glTranslated(-0.25, 0.625, 0.9375); + GL11.glRotated(90 - cy3 * 45, 1, 0, 0); + GL11.glTranslated(0.25, -0.625, -0.9375); + ResourceManager.glyphid.renderPart("ArmRightLower"); + ResourceManager.glyphid.renderPart("ArmRightArmor"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + + GL11.glTranslated(0, 0.5, 0.25); + GL11.glRotated(cy5 * 15 + 15, 0, 0, 1); + GL11.glTranslated(0, -0.5, -0.25); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.5, 0.25); + GL11.glRotated(-7.5 - cy4 * 7.5, 1, 0, 0); + GL11.glTranslated(0, -0.5, -0.25); + ResourceManager.glyphid.renderPart("JawTop"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.5, 0.25); + GL11.glRotated(7.5 + cy4 * 7.5, 0, 1, 0); + GL11.glRotated(7.5 + cy4 * 7.5, 1, 0, 0); + GL11.glTranslated(0, -0.5, -0.25); + ResourceManager.glyphid.renderPart("JawLeft"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.5, 0.25); + GL11.glRotated(-7.5 - cy4 * 7.5, 0, 1, 0); + GL11.glRotated(7.5 + cy4 * 7.5, 1, 0, 0); + GL11.glTranslated(0, -0.5, -0.25); + ResourceManager.glyphid.renderPart("JawRight"); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + double steppy = 15; + double bend = 60; + + for(int i = 0; i < 3; i++) { + + double c0 = cy0 * (i == 1 ? -1 : 1); + double c1 = cy1 * (i == 1 ? -1 : 1); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.25, 0); + GL11.glRotated(i * 30 - 15 + c0 * 7.5, 0, 1, 0); + GL11.glRotated(steppy + c1 * steppy, 0, 0, 1); + GL11.glTranslated(0, -0.25, 0); + ResourceManager.glyphid.renderPart("LegLeftUpper"); + GL11.glTranslated(0.5625, 0.25, 0); + GL11.glRotated(-bend - c1 * steppy, 0, 0, 1); + GL11.glTranslated(-0.5625, -0.25, 0); + ResourceManager.glyphid.renderPart("LegLeftLower"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.25, 0); + GL11.glRotated(i * 30 - 45 + c0 * 7.5, 0, 1, 0); + GL11.glRotated(-steppy + c1 * steppy, 0, 0, 1); + GL11.glTranslated(0, -0.25, 0); + ResourceManager.glyphid.renderPart("LegRightUpper"); + GL11.glTranslated(-0.5625, 0.25, 0); + GL11.glRotated(bend - c1 * steppy, 0, 0, 1); + GL11.glTranslated(0.5625, -0.25, 0); + ResourceManager.glyphid.renderPart("LegRightLower"); + GL11.glPopMatrix(); + } + + this.bindTexture(ResourceManager.universal); + GL11.glScaled(0.05, 0.05, 0.05); + ResourceManager.sphere_uv.renderAll(); GL11.glPopMatrix(); } diff --git a/src/main/resources/assets/hbm/models/mobs/glyphid.obj b/src/main/resources/assets/hbm/models/mobs/glyphid.obj new file mode 100644 index 000000000..84cdc3f0e --- /dev/null +++ b/src/main/resources/assets/hbm/models/mobs/glyphid.obj @@ -0,0 +1,996 @@ +# Blender v2.79 (sub 0) OBJ File: 'glyphid.blend' +# www.blender.org +o JawLeft +v 0.187500 0.312500 0.250000 +v 0.187500 0.312500 0.625000 +v 0.187500 0.500000 0.250000 +v 0.187500 0.500000 0.625000 +v 0.000000 0.312500 0.250000 +v 0.000000 0.312500 0.625000 +v 0.000000 0.500000 0.625000 +vt 0.112500 0.408451 +vt 0.075000 0.492958 +vt 0.075000 0.408451 +vt 0.150000 0.408451 +vt 0.112500 0.492958 +vt 0.075000 0.535211 +vt 0.150000 0.492958 +vt 0.112500 0.535211 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +s off +f 1/1/1 6/2/1 5/3/1 +f 3/4/2 2/5/2 1/1/2 +f 2/5/3 7/6/3 6/2/3 +f 1/1/1 2/5/1 6/2/1 +f 3/4/2 4/7/2 2/5/2 +f 2/5/3 4/8/3 7/6/3 +o JawRight +v -0.187500 0.312500 0.625000 +v -0.187500 0.312500 0.250000 +v -0.187500 0.500000 0.250000 +v -0.187500 0.500000 0.625000 +v 0.000000 0.312500 0.250000 +v 0.000000 0.312500 0.625000 +v 0.000000 0.500000 0.625000 +vt 0.075000 0.408451 +vt 0.037500 0.492958 +vt 0.037500 0.408451 +vt 0.075000 0.492958 +vt 0.037500 0.535211 +vt 0.000000 0.492958 +vt 0.000000 0.408451 +vt 0.075000 0.535211 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +s off +f 12/9/4 8/10/4 9/11/4 +f 13/12/5 11/13/5 8/10/5 +f 9/11/6 11/14/6 10/15/6 +f 12/9/4 13/12/4 8/10/4 +f 13/12/5 14/16/5 11/13/5 +f 9/11/6 8/10/6 11/14/6 +o JawTop +v -0.187500 0.687500 0.250000 +v 0.187500 0.687500 0.250000 +v -0.187500 0.687500 0.625000 +v 0.187500 0.687500 0.625000 +v -0.187500 0.500000 0.250000 +v 0.187500 0.500000 0.250000 +v -0.187500 0.500000 0.625000 +v 0.187500 0.500000 0.625000 +v 0.000000 0.500000 0.625000 +vt -0.000000 0.661972 +vt 0.037500 0.577465 +vt 0.037500 0.661972 +vt 0.075000 0.535211 +vt 0.112500 0.577465 +vt 0.112500 0.661972 +vt 0.150000 0.577465 +vt 0.150000 0.661972 +vt -0.000000 0.577465 +vt 0.037500 0.535211 +vt 0.112500 0.535211 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +s off +f 19/17/7 17/18/7 15/19/7 +f 23/20/8 18/21/8 17/18/8 +f 16/22/9 22/23/9 20/24/9 +f 15/19/10 18/21/10 16/22/10 +f 19/17/7 21/25/7 17/18/7 +f 17/18/8 21/26/8 23/20/8 +f 23/20/8 22/27/8 18/21/8 +f 16/22/9 18/21/9 22/23/9 +f 15/19/10 17/18/10 18/21/10 +o LegRightUpper +v -0.562500 0.250000 -0.031250 +v -0.562500 0.187500 -0.031250 +v -0.562500 0.250000 0.031250 +v -0.562500 0.187500 0.031250 +v -0.062500 0.250000 0.031250 +v -0.062500 0.250000 -0.031250 +v -0.062500 0.187500 -0.031250 +v -0.062500 0.187500 0.031250 +vt 0.612500 0.380282 +vt 0.625000 0.394366 +vt 0.612500 0.394366 +vt 0.625000 0.507042 +vt 0.612500 0.521127 +vt 0.612500 0.507042 +vt 0.637500 0.394366 +vt 0.600000 0.507042 +vt 0.600000 0.394366 +vt 0.650000 0.394366 +vt 0.637500 0.507042 +vt 0.625000 0.380282 +vt 0.625000 0.521127 +vt 0.650000 0.507042 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn -0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +s off +f 25/28/11 26/29/11 24/30/11 +f 28/31/12 30/32/12 29/33/12 +f 27/34/13 28/31/13 26/29/13 +f 24/30/14 30/35/14 25/36/14 +f 25/37/15 31/38/15 27/34/15 +f 26/29/16 29/33/16 24/30/16 +f 25/28/11 27/39/11 26/29/11 +f 28/31/12 31/40/12 30/32/12 +f 27/34/13 31/38/13 28/31/13 +f 24/30/14 29/33/14 30/35/14 +f 25/37/15 30/41/15 31/38/15 +f 26/29/16 28/31/16 29/33/16 +o LegLeftLower +v 0.562500 0.250000 0.031250 +v 0.562500 0.187500 0.031250 +v 0.562500 0.250000 -0.031250 +v 0.562500 0.187500 -0.031250 +v 0.937500 0.250000 -0.031250 +v 0.937500 0.250000 0.031250 +v 0.937500 0.187500 0.031250 +v 0.937500 0.187500 -0.031250 +v 1.000000 0.187500 0.000000 +v 0.500000 0.218750 0.062500 +v 0.500000 0.218750 -0.062500 +v 0.875000 0.218750 -0.062500 +v 0.875000 0.218750 0.062500 +v 0.500000 0.281250 -0.062500 +v 0.500000 0.281250 0.062500 +v 0.875000 0.281250 -0.062500 +v 0.875000 0.281250 0.062500 +vt 0.675000 0.507042 +vt 0.662500 0.521127 +vt 0.662500 0.507042 +vt 0.662500 0.422535 +vt 0.650000 0.422535 +vt 0.650000 0.408451 +vt 0.687500 0.422535 +vt 0.693750 0.408451 +vt 0.700000 0.422535 +vt 0.675000 0.422535 +vt 0.687500 0.507042 +vt 0.650000 0.507042 +vt 0.750000 0.408451 +vt 0.775000 0.492958 +vt 0.750000 0.492958 +vt 0.687500 0.408451 +vt 0.668750 0.408451 +vt 0.712500 0.492958 +vt 0.737500 0.408451 +vt 0.737500 0.492958 +vt 0.712500 0.507042 +vt 0.737500 0.507042 +vt 0.737500 0.394366 +vt 0.712500 0.408451 +vt 0.712500 0.394366 +vt 0.700000 0.408451 +vt 0.700000 0.492958 +vt 0.675000 0.521127 +vt 0.700000 0.507042 +vt 0.775000 0.408451 +vn -1.0000 0.0000 0.0000 +vn 0.4472 0.0000 0.8944 +vn 0.0000 -1.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.4472 0.0000 -0.8944 +vn 0.7071 0.7071 0.0000 +vn 1.0000 0.0000 0.0000 +s off +f 34/42/17 33/43/17 32/44/17 +f 37/45/18 38/46/18 40/47/18 +f 39/48/19 40/49/19 38/50/19 +f 32/44/20 36/51/20 34/42/20 +f 34/42/21 39/48/21 35/52/21 +f 33/53/22 37/45/22 32/44/22 +f 43/54/19 41/55/19 42/56/19 +f 40/57/23 39/48/23 36/51/23 +f 36/51/24 37/45/24 40/58/24 +f 46/59/20 47/60/20 45/61/20 +f 41/62/17 45/61/17 42/63/17 +f 42/56/21 47/60/21 43/54/21 +f 43/64/25 48/65/25 44/66/25 +f 44/67/22 46/59/22 41/68/22 +f 34/42/17 35/69/17 33/43/17 +f 38/50/19 33/70/19 35/52/19 +f 35/52/19 39/48/19 38/50/19 +f 32/44/20 37/45/20 36/51/20 +f 34/42/21 36/51/21 39/48/21 +f 33/53/22 38/46/22 37/45/22 +f 43/54/19 44/71/19 41/55/19 +f 46/59/20 48/65/20 47/60/20 +f 41/62/17 46/59/17 45/61/17 +f 42/56/21 45/61/21 47/60/21 +f 43/64/25 47/60/25 48/65/25 +f 44/67/22 48/65/22 46/59/22 +o LegLeftUpper +v 0.562500 0.250000 0.031250 +v 0.562500 0.187500 0.031250 +v 0.562500 0.250000 -0.031250 +v 0.562500 0.187500 -0.031250 +v 0.062500 0.250000 -0.031250 +v 0.062500 0.250000 0.031250 +v 0.062500 0.187500 0.031250 +v 0.062500 0.187500 -0.031250 +vt 0.612500 0.380282 +vt 0.625000 0.394366 +vt 0.612500 0.394366 +vt 0.625000 0.507042 +vt 0.612500 0.521127 +vt 0.612500 0.507042 +vt 0.637500 0.394366 +vt 0.600000 0.507042 +vt 0.600000 0.394366 +vt 0.650000 0.394366 +vt 0.637500 0.507042 +vt 0.625000 0.380282 +vt 0.625000 0.521127 +vt 0.650000 0.507042 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +s off +f 50/72/26 51/73/26 49/74/26 +f 53/75/27 55/76/27 54/77/27 +f 52/78/28 53/75/28 51/73/28 +f 49/74/29 55/79/29 50/80/29 +f 50/81/30 56/82/30 52/78/30 +f 51/73/31 54/77/31 49/74/31 +f 50/72/26 52/83/26 51/73/26 +f 53/75/27 56/84/27 55/76/27 +f 52/78/28 56/82/28 53/75/28 +f 49/74/29 54/77/29 55/79/29 +f 50/81/30 55/85/30 56/82/30 +f 51/73/31 53/75/31 54/77/31 +o ArmorRight +v 0.000000 0.343750 -1.281250 +v 0.000000 0.343750 -0.468750 +v 0.000000 0.843750 -1.281250 +v 0.000000 0.843750 -0.468750 +v -0.343750 0.343750 -1.281250 +v -0.343750 0.343750 -0.468750 +v -0.343750 0.843750 -1.281250 +v -0.343750 0.843750 -0.468750 +v -0.281250 0.781250 -1.406250 +v -0.281250 0.343750 -1.406250 +v -0.281250 0.781250 -1.281250 +v -0.281250 0.343750 -1.281250 +v 0.000000 0.343750 -1.406250 +v 0.000000 0.781250 -1.406250 +v 0.000000 0.781250 -1.281250 +vt 0.168750 0.295775 +vt 0.237500 0.112676 +vt 0.237500 0.295775 +vt 0.168750 0.000000 +vt 0.168750 0.112676 +vt 0.168750 0.408451 +vt 0.337500 0.295775 +vt 0.475000 0.267606 +vt 0.418750 0.295775 +vt 0.418750 0.267606 +vt 0.475000 0.169014 +vt 0.500000 0.267606 +vt 0.418750 0.169014 +vt 0.237500 -0.000000 +vt 0.237500 0.408451 +vt 0.337500 0.112676 +vt 0.475000 0.295775 +vt 0.500000 0.169014 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +s off +f 60/86/32 63/87/32 64/88/32 +f 57/89/33 63/87/33 59/90/33 +f 64/88/34 58/91/34 60/86/34 +f 63/87/35 62/92/35 64/88/35 +f 65/93/32 71/94/32 70/95/32 +f 66/96/35 67/97/35 65/93/35 +f 65/93/33 69/98/33 66/96/33 +f 60/86/32 59/90/32 63/87/32 +f 57/89/33 61/99/33 63/87/33 +f 64/88/34 62/100/34 58/91/34 +f 63/87/35 61/101/35 62/92/35 +f 65/93/32 67/102/32 71/94/32 +f 66/96/35 68/103/35 67/97/35 +f 65/93/33 70/95/33 69/98/33 +o ArmorLeft +v 0.000000 0.343750 -1.281250 +v 0.000000 0.343750 -0.468750 +v 0.000000 0.843750 -1.281250 +v 0.000000 0.843750 -0.468750 +v 0.343750 0.343750 -1.281250 +v 0.343750 0.343750 -0.468750 +v 0.000000 0.781250 -1.281250 +v 0.343750 0.843750 -1.281250 +v 0.000000 0.781250 -1.406250 +v 0.343750 0.843750 -0.468750 +v 0.000000 0.343750 -1.406250 +v 0.281250 0.781250 -1.281250 +v 0.281250 0.343750 -1.281250 +v 0.281250 0.781250 -1.406250 +v 0.281250 0.343750 -1.406250 +vt 0.168750 0.295775 +vt 0.100000 0.408451 +vt 0.100000 0.295775 +vt 0.418750 0.267606 +vt 0.362500 0.295775 +vt 0.362500 0.267606 +vt 0.100000 0.000000 +vt 0.168750 0.112676 +vt 0.100000 0.112676 +vt -0.000000 0.112676 +vt 0.337500 0.169014 +vt 0.362500 0.169014 +vt 0.418750 0.169014 +vt 0.168750 0.408451 +vt 0.418750 0.295775 +vt 0.168750 0.000000 +vt 0.000000 0.295775 +vt 0.337500 0.267606 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +s off +f 75/104/36 77/105/36 81/106/36 +f 80/107/37 83/108/37 85/109/37 +f 76/110/38 74/111/38 79/112/38 +f 81/106/39 76/113/39 79/112/39 +f 85/109/39 84/114/39 86/115/39 +f 80/107/38 86/115/38 82/116/38 +f 81/106/37 74/111/37 75/104/37 +f 75/104/36 73/117/36 77/105/36 +f 80/107/37 78/118/37 83/108/37 +f 76/110/38 72/119/38 74/111/38 +f 81/106/39 77/120/39 76/113/39 +f 85/109/39 83/121/39 84/114/39 +f 80/107/38 85/109/38 86/115/38 +f 81/106/37 79/112/37 74/111/37 +o ArmorFront +v -0.281250 0.781250 0.281250 +v -0.281250 0.781250 -0.281250 +v 0.281250 0.781250 0.281250 +v 0.281250 0.781250 -0.281250 +v -0.281250 0.531250 0.281250 +v -0.281250 0.531250 -0.281250 +v 0.281250 0.531250 0.281250 +v 0.281250 0.531250 -0.281250 +vt 0.775000 0.633803 +vt 0.887500 0.507042 +vt 0.887500 0.633803 +vt 0.937500 0.633803 +vt 0.775000 0.690141 +vt 0.725000 0.507042 +vt 0.775000 0.507042 +vt 0.775000 0.450704 +vt 0.937500 0.507042 +vt 0.887500 0.690141 +vt 0.725000 0.633803 +vt 0.887500 0.450704 +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.0000 0.0000 1.0000 +s off +f 88/122/40 89/123/40 90/124/40 +f 89/123/41 94/125/41 90/124/41 +f 90/124/42 92/126/42 88/122/42 +f 88/122/43 91/127/43 87/128/43 +f 91/129/44 89/123/44 87/128/44 +f 88/122/40 87/128/40 89/123/40 +f 89/123/41 93/130/41 94/125/41 +f 90/124/42 94/131/42 92/126/42 +f 88/122/43 92/132/43 91/127/43 +f 91/129/44 93/133/44 89/123/44 +o ArmRightUpper +v -0.375000 0.687500 0.437500 +v -0.375000 0.562500 0.437500 +v -0.375000 0.687500 0.062500 +v -0.375000 0.562500 0.062500 +v -0.250000 0.687500 0.062500 +v -0.250000 0.687500 0.437500 +v -0.250000 0.562500 0.437500 +v -0.250000 0.562500 0.062500 +vt 0.325000 0.633803 +vt 0.300000 0.549296 +vt 0.325000 0.549296 +vt 0.375000 0.549296 +vt 0.350000 0.633803 +vt 0.350000 0.549296 +vt 0.350000 0.661972 +vt 0.325000 0.661972 +vt 0.325000 0.521127 +vt 0.400000 0.633803 +vt 0.400000 0.549296 +vt 0.300000 0.633803 +vt 0.375000 0.633803 +vt 0.350000 0.521127 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +s off +f 97/134/45 96/135/45 95/136/45 +f 101/137/46 99/138/46 100/139/46 +f 97/134/47 102/140/47 98/141/47 +f 96/142/48 100/139/48 95/136/48 +f 98/143/49 101/137/49 96/144/49 +f 95/136/50 99/138/50 97/134/50 +f 97/134/45 98/145/45 96/135/45 +f 101/137/46 102/146/46 99/138/46 +f 97/134/47 99/138/47 102/140/47 +f 96/142/48 101/147/48 100/139/48 +f 98/143/49 102/146/49 101/137/49 +f 95/136/50 100/139/50 99/138/50 +o ArmRightMid +v -0.375000 0.687500 0.437500 +v -0.375000 0.562500 0.437500 +v -0.250000 0.687500 0.437500 +v -0.250000 0.562500 0.437500 +v -0.375000 0.687500 0.937500 +v -0.375000 0.562500 0.937500 +v -0.250000 0.687500 0.937500 +v -0.250000 0.562500 0.937500 +vt 0.450000 0.633803 +vt 0.425000 0.661972 +vt 0.425000 0.633803 +vt 0.425000 0.492958 +vt 0.450000 0.521127 +vt 0.425000 0.521127 +vt 0.475000 0.633803 +vt 0.500000 0.521127 +vt 0.500000 0.633803 +vt 0.400000 0.633803 +vt 0.475000 0.521127 +vt 0.450000 0.661972 +vt 0.450000 0.492958 +vt 0.400000 0.521127 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 -0.0000 +vn 1.0000 0.0000 0.0000 +s off +f 105/148/51 104/149/51 103/150/51 +f 108/151/52 109/152/52 107/153/52 +f 106/154/53 108/155/53 104/156/53 +f 104/157/54 107/153/54 103/150/54 +f 103/150/55 109/152/55 105/148/55 +f 105/148/56 110/158/56 106/154/56 +f 105/148/51 106/159/51 104/149/51 +f 108/151/52 110/160/52 109/152/52 +f 106/154/53 110/158/53 108/155/53 +f 104/157/54 108/161/54 107/153/54 +f 103/150/55 107/153/55 109/152/55 +f 105/148/56 109/152/56 110/158/56 +o ArmRightArmor +v -0.437500 0.625000 0.812500 +v -0.187500 0.625000 0.812500 +v -0.437500 0.625000 1.562500 +v -0.187500 0.625000 1.562500 +v -0.187500 0.750000 0.812500 +v -0.437500 0.750000 0.812500 +v -0.187500 0.750000 1.562500 +v -0.437500 0.750000 1.562500 +vt 0.400000 0.492958 +vt 0.450000 0.323944 +vt 0.450000 0.492958 +vt 0.325000 0.492958 +vt 0.375000 0.323944 +vt 0.375000 0.492958 +vt 0.300000 0.323944 +vt 0.300000 0.492958 +vt 0.375000 0.521127 +vt 0.400000 0.323944 +vt 0.375000 0.295775 +vt 0.325000 0.323944 +vt 0.325000 0.295775 +vt 0.325000 0.521127 +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.0000 -0.0000 1.0000 +s off +f 112/162/57 113/163/57 111/164/57 +f 116/165/58 117/166/58 115/167/58 +f 113/168/59 116/165/59 111/169/59 +f 112/170/60 116/165/60 115/167/60 +f 112/162/61 117/166/61 114/171/61 +f 114/172/62 118/173/62 113/174/62 +f 112/162/57 114/171/57 113/163/57 +f 116/165/58 118/173/58 117/166/58 +f 113/168/59 118/173/59 116/165/59 +f 112/170/60 111/175/60 116/165/60 +f 112/162/61 115/167/61 117/166/61 +f 114/172/62 117/166/62 118/173/62 +o ArmRightLower +v -0.375000 0.687500 0.937500 +v -0.375000 0.562500 0.937500 +v -0.250000 0.687500 0.937500 +v -0.250000 0.562500 0.937500 +v -0.375000 0.687500 1.687500 +v -0.375000 0.562500 1.687500 +v -0.250000 0.687500 1.687500 +v -0.250000 0.562500 1.687500 +v -0.312500 0.562500 1.812500 +vt 0.550000 0.633803 +vt 0.525000 0.661972 +vt 0.525000 0.633803 +vt 0.525000 0.464789 +vt 0.537500 0.436620 +vt 0.550000 0.464789 +vt 0.575000 0.464789 +vt 0.575000 0.633803 +vt 0.587500 0.436620 +vt 0.600000 0.464789 +vt 0.500000 0.633803 +vt 0.575000 0.436620 +vt 0.500000 0.436620 +vt 0.500000 0.464789 +vt 0.550000 0.661972 +vt 0.600000 0.633803 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.7071 0.7071 +vn 0.0000 1.0000 -0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.8944 0.0000 0.4472 +vn -0.8944 0.0000 0.4472 +s off +f 121/176/63 120/177/63 119/178/63 +f 123/179/64 127/180/64 125/181/64 +f 121/176/65 123/179/65 125/181/65 +f 121/176/66 126/182/66 122/183/66 +f 126/182/67 127/184/67 124/185/67 +f 120/186/68 123/179/68 119/178/68 +f 125/181/69 127/187/69 126/182/69 +f 127/188/70 123/179/70 124/189/70 +f 121/176/63 122/190/63 120/177/63 +f 121/176/65 119/178/65 123/179/65 +f 121/176/66 125/181/66 126/182/66 +f 124/185/67 120/191/67 122/183/67 +f 122/183/67 126/182/67 124/185/67 +f 120/186/68 124/189/68 123/179/68 +o ArmLeftArmor +v 0.187500 0.625000 0.812500 +v 0.437500 0.625000 0.812500 +v 0.187500 0.625000 1.562500 +v 0.437500 0.625000 1.562500 +v 0.437500 0.750000 0.812500 +v 0.187500 0.750000 0.812500 +v 0.437500 0.750000 1.562500 +v 0.187500 0.750000 1.562500 +vt 0.400000 0.492958 +vt 0.450000 0.323944 +vt 0.450000 0.492958 +vt 0.325000 0.492958 +vt 0.375000 0.323944 +vt 0.375000 0.492958 +vt 0.300000 0.323944 +vt 0.300000 0.492958 +vt 0.375000 0.521127 +vt 0.400000 0.323944 +vt 0.325000 0.295775 +vt 0.325000 0.323944 +vt 0.325000 0.521127 +vt 0.375000 0.295775 +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.0000 -0.0000 1.0000 +s off +f 129/192/71 130/193/71 128/194/71 +f 133/195/72 134/196/72 132/197/72 +f 130/198/73 133/195/73 128/199/73 +f 129/200/74 133/195/74 132/197/74 +f 129/192/75 134/196/75 131/201/75 +f 130/202/76 134/196/76 135/203/76 +f 129/192/71 131/201/71 130/193/71 +f 133/195/72 135/203/72 134/196/72 +f 130/198/73 135/203/73 133/195/73 +f 129/200/74 128/204/74 133/195/74 +f 129/192/75 132/197/75 134/196/75 +f 130/202/76 131/205/76 134/196/76 +o ArmLeftUpper +v 0.250000 0.687500 0.437500 +v 0.250000 0.562500 0.437500 +v 0.250000 0.687500 0.062500 +v 0.250000 0.562500 0.062500 +v 0.375000 0.687500 0.062500 +v 0.375000 0.687500 0.437500 +v 0.375000 0.562500 0.437500 +v 0.375000 0.562500 0.062500 +vt 0.325000 0.633803 +vt 0.300000 0.549296 +vt 0.325000 0.549296 +vt 0.375000 0.549296 +vt 0.350000 0.633803 +vt 0.350000 0.549296 +vt 0.350000 0.661972 +vt 0.325000 0.661972 +vt 0.325000 0.521127 +vt 0.400000 0.633803 +vt 0.400000 0.549296 +vt 0.300000 0.633803 +vt 0.375000 0.633803 +vt 0.350000 0.521127 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +s off +f 138/206/77 137/207/77 136/208/77 +f 142/209/78 140/210/78 141/211/78 +f 138/206/79 143/212/79 139/213/79 +f 137/214/80 141/211/80 136/208/80 +f 139/215/81 142/209/81 137/216/81 +f 136/208/82 140/210/82 138/206/82 +f 138/206/77 139/217/77 137/207/77 +f 142/209/78 143/218/78 140/210/78 +f 138/206/79 140/210/79 143/212/79 +f 137/214/80 142/219/80 141/211/80 +f 139/215/81 143/218/81 142/209/81 +f 136/208/82 141/211/82 140/210/82 +o ArmLeftMid +v 0.250000 0.687500 0.437500 +v 0.250000 0.562500 0.437500 +v 0.375000 0.687500 0.437500 +v 0.375000 0.562500 0.437500 +v 0.250000 0.687500 0.937500 +v 0.250000 0.562500 0.937500 +v 0.375000 0.687500 0.937500 +v 0.375000 0.562500 0.937500 +vt 0.450000 0.633803 +vt 0.425000 0.661972 +vt 0.425000 0.633803 +vt 0.425000 0.492958 +vt 0.450000 0.521127 +vt 0.425000 0.521127 +vt 0.475000 0.633803 +vt 0.500000 0.521127 +vt 0.500000 0.633803 +vt 0.400000 0.633803 +vt 0.475000 0.521127 +vt 0.450000 0.661972 +vt 0.450000 0.492958 +vt 0.400000 0.521127 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 -0.0000 +vn 1.0000 0.0000 0.0000 +s off +f 146/220/83 145/221/83 144/222/83 +f 149/223/84 150/224/84 148/225/84 +f 147/226/85 149/227/85 145/228/85 +f 145/229/86 148/225/86 144/222/86 +f 144/222/87 150/224/87 146/220/87 +f 146/220/88 151/230/88 147/226/88 +f 146/220/83 147/231/83 145/221/83 +f 149/223/84 151/232/84 150/224/84 +f 147/226/85 151/230/85 149/227/85 +f 145/229/86 149/233/86 148/225/86 +f 144/222/87 148/225/87 150/224/87 +f 146/220/88 150/224/88 151/230/88 +o ArmLeftLower +v 0.250000 0.687500 0.937500 +v 0.250000 0.562500 0.937500 +v 0.375000 0.687500 0.937500 +v 0.375000 0.562500 0.937500 +v 0.250000 0.687500 1.687500 +v 0.250000 0.562500 1.687500 +v 0.375000 0.687500 1.687500 +v 0.375000 0.562500 1.687500 +v 0.312500 0.562500 1.812500 +vt 0.550000 0.633803 +vt 0.525000 0.661972 +vt 0.525000 0.633803 +vt 0.525000 0.464789 +vt 0.537500 0.436620 +vt 0.550000 0.464789 +vt 0.575000 0.464789 +vt 0.575000 0.633803 +vt 0.587500 0.436620 +vt 0.600000 0.464789 +vt 0.500000 0.633803 +vt 0.575000 0.436620 +vt 0.500000 0.436620 +vt 0.500000 0.464789 +vt 0.550000 0.661972 +vt 0.600000 0.633803 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.7071 0.7071 +vn 0.0000 1.0000 -0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.8944 0.0000 0.4472 +vn -0.8944 0.0000 0.4472 +s off +f 154/234/89 153/235/89 152/236/89 +f 156/237/90 160/238/90 158/239/90 +f 154/234/91 156/237/91 158/239/91 +f 154/234/92 159/240/92 155/241/92 +f 159/240/93 160/242/93 157/243/93 +f 153/244/94 156/237/94 152/236/94 +f 158/239/95 160/245/95 159/240/95 +f 160/246/96 156/237/96 157/247/96 +f 154/234/89 155/248/89 153/235/89 +f 154/234/91 152/236/91 156/237/91 +f 154/234/92 158/239/92 159/240/92 +f 157/243/93 153/249/93 155/241/93 +f 155/241/93 159/240/93 157/243/93 +f 153/244/94 157/247/94 156/237/94 +o Body +v -0.250000 0.250000 0.250000 +v -0.250000 0.750000 0.250000 +v -0.250000 0.250000 -0.250000 +v -0.250000 0.750000 -0.250000 +v 0.250000 0.250000 0.250000 +v 0.250000 0.750000 0.250000 +v 0.250000 0.250000 -0.250000 +v 0.250000 0.750000 -0.250000 +v -0.187500 0.312500 -0.250000 +v -0.187500 0.687500 -0.250000 +v 0.187500 0.312500 -0.250000 +v 0.187500 0.687500 -0.250000 +v -0.187500 0.687500 -0.500000 +v -0.187500 0.312500 -0.500000 +v 0.187500 0.312500 -0.500000 +v 0.187500 0.687500 -0.500000 +v -0.312500 0.187500 -0.500000 +v 0.312500 0.187500 -0.500000 +v -0.312500 0.812500 -0.500000 +v 0.312500 0.812500 -0.500000 +v -0.312500 0.812500 -1.250000 +v -0.312500 0.187500 -1.250000 +v 0.312500 0.187500 -1.250000 +v 0.312500 0.812500 -1.250000 +v -0.250000 0.250000 -1.250000 +v 0.250000 0.250000 -1.250000 +v -0.250000 0.750000 -1.250000 +v 0.250000 0.750000 -1.250000 +v -0.250000 0.750000 -1.375000 +v -0.250000 0.250000 -1.375000 +v 0.250000 0.250000 -1.375000 +v 0.250000 0.750000 -1.375000 +v -0.187500 0.250000 0.187500 +v 0.187500 0.250000 0.187500 +v -0.187500 0.250000 -0.187500 +v 0.187500 0.250000 -0.187500 +v -0.187500 0.187500 -0.187500 +v -0.187500 0.187500 0.187500 +v 0.187500 0.187500 0.187500 +v 0.187500 0.187500 -0.187500 +vt 0.100000 0.887324 +vt 0.000000 0.774648 +vt 0.100000 0.774648 +vt 0.400000 0.887324 +vt 0.300000 0.774648 +vt 0.400000 0.774648 +vt 0.300000 0.887324 +vt 0.200000 0.774648 +vt 0.200000 0.887324 +vt 0.200000 0.661972 +vt 0.100000 0.661972 +vt 0.100000 1.000000 +vt 0.200000 1.000000 +vt 0.400000 0.746479 +vt 0.450000 0.830986 +vt 0.400000 0.830986 +vt 0.400000 0.661972 +vt 0.450000 0.746479 +vt 0.450000 0.915493 +vt 0.400000 0.915493 +vt 0.450000 1.000000 +vt 0.400000 1.000000 +vt 0.725000 0.690141 +vt 0.600000 0.830986 +vt 0.600000 0.690141 +vt 1.000000 0.830986 +vt 0.875000 0.690141 +vt 1.000000 0.690141 +vt 0.875000 0.830986 +vt 0.725000 0.830986 +vt 0.450000 0.690141 +vt 0.600000 1.000000 +vt 0.725000 0.521127 +vt 0.850000 0.971831 +vt 0.750000 0.859155 +vt 0.850000 0.859155 +vt 0.750000 1.000000 +vt 0.850000 1.000000 +vt 0.850000 0.830986 +vt 0.750000 0.830986 +vt 0.725000 0.859155 +vt 0.750000 0.971831 +vt 0.725000 0.971831 +vt 0.875000 0.971831 +vt 0.875000 0.859155 +vt 0.212500 0.901408 +vt 0.287500 0.985915 +vt 0.212500 0.985915 +vt 0.300000 0.985915 +vt 0.287500 0.901408 +vt 0.300000 0.901408 +vt 0.200000 0.901408 +vt 0.200000 0.985915 +vt 0.287500 0.887324 +vt 0.212500 0.887324 +vt 0.212500 1.000000 +vt 0.287500 1.000000 +vt 0.000000 0.887324 +vt 0.450000 0.661972 +vt 0.450000 0.830986 +vt 0.725000 1.000000 +vt 0.600000 0.521127 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +s off +f 162/250/97 163/251/97 161/252/97 +f 164/253/98 167/254/98 163/255/98 +f 168/256/99 165/257/99 167/254/99 +f 166/258/100 161/252/100 165/257/100 +f 167/259/101 161/252/101 163/260/101 +f 164/261/102 166/258/102 168/262/102 +f 171/263/99 176/264/99 172/265/99 +f 169/266/101 175/267/101 171/263/101 +f 172/265/102 173/268/102 170/269/102 +f 170/269/97 174/270/97 169/271/97 +f 178/272/100 179/273/100 177/274/100 +f 181/275/98 183/276/98 182/277/98 +f 178/272/99 184/278/99 180/279/99 +f 179/273/97 182/280/97 177/274/97 +f 180/279/102 181/281/102 179/273/102 +f 177/274/101 183/282/101 178/272/101 +f 189/283/98 191/284/98 190/285/98 +f 188/286/102 189/283/102 187/287/102 +f 185/288/101 191/284/101 186/289/101 +f 186/290/99 192/291/99 188/292/99 +f 187/293/97 190/285/97 185/294/97 +f 197/295/101 199/296/101 198/297/101 +f 194/298/99 200/299/99 196/300/99 +f 195/301/97 198/297/97 193/302/97 +f 196/303/98 197/295/98 195/304/98 +f 193/305/100 199/296/100 194/306/100 +f 162/250/97 164/307/97 163/251/97 +f 164/253/98 168/256/98 167/254/98 +f 168/256/99 166/258/99 165/257/99 +f 166/258/100 162/250/100 161/252/100 +f 167/259/101 165/257/101 161/252/101 +f 164/261/102 162/250/102 166/258/102 +f 171/263/99 175/267/99 176/264/99 +f 169/266/101 174/308/101 175/267/101 +f 172/265/102 176/264/102 173/268/102 +f 170/269/97 173/268/97 174/270/97 +f 178/272/100 180/279/100 179/273/100 +f 181/275/98 184/278/98 183/276/98 +f 178/272/99 183/276/99 184/278/99 +f 179/273/97 181/309/97 182/280/97 +f 180/279/102 184/310/102 181/281/102 +f 177/274/101 182/311/101 183/282/101 +f 189/283/98 192/291/98 191/284/98 +f 188/286/102 192/291/102 189/283/102 +f 185/288/101 190/285/101 191/284/101 +f 186/290/99 191/284/99 192/291/99 +f 187/293/97 189/283/97 190/285/97 +f 197/295/101 200/299/101 199/296/101 +f 194/298/99 199/296/99 200/299/99 +f 195/301/97 197/295/97 198/297/97 +f 196/303/98 200/299/98 197/295/98 +f 193/305/100 198/297/100 199/296/100 +o LegRightLower +v -0.562500 0.250000 -0.031250 +v -0.562500 0.187500 -0.031250 +v -0.562500 0.250000 0.031250 +v -0.562500 0.187500 0.031250 +v -0.937500 0.250000 0.031250 +v -0.937500 0.250000 -0.031250 +v -0.937500 0.187500 -0.031250 +v -0.937500 0.187500 0.031250 +v -1.000000 0.187500 0.000000 +v -0.500000 0.218750 -0.062500 +v -0.500000 0.218750 0.062500 +v -0.875000 0.218750 0.062500 +v -0.875000 0.218750 -0.062500 +v -0.500000 0.281250 0.062500 +v -0.500000 0.281250 -0.062500 +v -0.875000 0.281250 0.062500 +v -0.875000 0.281250 -0.062500 +vt 0.675000 0.507042 +vt 0.662500 0.521127 +vt 0.662500 0.507042 +vt 0.662500 0.422535 +vt 0.650000 0.422535 +vt 0.650000 0.408451 +vt 0.687500 0.422535 +vt 0.693750 0.408451 +vt 0.700000 0.422535 +vt 0.675000 0.422535 +vt 0.687500 0.507042 +vt 0.650000 0.507042 +vt 0.750000 0.408451 +vt 0.775000 0.492958 +vt 0.750000 0.492958 +vt 0.687500 0.408451 +vt 0.668750 0.408451 +vt 0.712500 0.492958 +vt 0.737500 0.408451 +vt 0.737500 0.492958 +vt 0.712500 0.507042 +vt 0.737500 0.507042 +vt 0.737500 0.394366 +vt 0.712500 0.408451 +vt 0.712500 0.394366 +vt 0.700000 0.408451 +vt 0.700000 0.492958 +vt 0.675000 0.521127 +vt 0.700000 0.507042 +vt 0.775000 0.408451 +vn 1.0000 0.0000 0.0000 +vn -0.4472 0.0000 -0.8944 +vn 0.0000 -1.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.4472 0.0000 0.8944 +vn -0.7071 0.7071 0.0000 +vn -1.0000 0.0000 0.0000 +s off +f 203/312/103 202/313/103 201/314/103 +f 206/315/104 207/316/104 209/317/104 +f 208/318/105 209/319/105 207/320/105 +f 201/314/106 205/321/106 203/312/106 +f 203/312/107 208/318/107 204/322/107 +f 202/323/108 206/315/108 201/314/108 +f 212/324/105 210/325/105 211/326/105 +f 209/327/109 208/318/109 205/321/109 +f 205/321/110 206/315/110 209/328/110 +f 215/329/106 216/330/106 214/331/106 +f 210/332/103 214/331/103 211/333/103 +f 211/326/107 216/330/107 212/324/107 +f 212/334/111 217/335/111 213/336/111 +f 213/337/108 215/329/108 210/338/108 +f 203/312/103 204/339/103 202/313/103 +f 207/320/105 202/340/105 204/322/105 +f 204/322/105 208/318/105 207/320/105 +f 201/314/106 206/315/106 205/321/106 +f 203/312/107 205/321/107 208/318/107 +f 202/323/108 207/316/108 206/315/108 +f 212/324/105 213/341/105 210/325/105 +f 215/329/106 217/335/106 216/330/106 +f 210/332/103 215/329/103 214/331/103 +f 211/326/107 214/331/107 216/330/107 +f 212/334/111 216/330/111 217/335/111 +f 213/337/108 217/335/108 215/329/108 diff --git a/src/main/resources/assets/hbm/textures/entity/glyphid.png b/src/main/resources/assets/hbm/textures/entity/glyphid.png new file mode 100644 index 0000000000000000000000000000000000000000..dd5d4ec03f7b3891eaa798e0b0887a6143d5dd81 GIT binary patch literal 887 zcmV--1Bm>IP)dalRKx6iHLR4|xtR0ukf}=A-xe2q7QBdGs?xtbPN(tU$cX znD(`8Iof(tzGuwu7h^JqkPk5G$KY#|BI24M3%C{<%TssJtOiK8#80GFF)Sbz7Ldr| zW1w2P0Yu0G)?W7PFlOx(vA8J7YyAnokQK5f+e0k>GVmUP~XNm5&;Wv~Sj zVF8J-fJ7D_1N)4fiz3mB_v; zyrs1HD((NPy7wMB+=ij@OT!jOWb!evv7A!1N#1i+U(bDy+q8D{$Gi^?1Gso)LSrIZ zAQ2Xj2n$H05I0@Fc0IC-o5y8nCB;2qRjz!sB?em{k;%QV6SsMBTvf+=ZTz=VJORIb z?(Pr2-0upchgvUc8dvP zDJ4uDRGU)Sz}tO32ne~c$4`0-3Q<8*788oErmLul`T+oM&cl;w^L%;ilK;80Ubn32 z^2=M>hQL0nzyJDfFPHB8z4JNky}D5S?1hPB--U^RmqlY@Y8hn;h| z)Y--C1w4ooZ{4N=%g2#dHwL<%c#dvfxc{b)4a9a52Jg-?u>^i=K-^0|`x}54ZR^rb z{*kAxs5lmDn_@3*>=`>LF_!GRaE!WZn@U4eI-KW>jjCj>q6;s%PjVFkE(r@rgasrr zxf2;W9p9v1+AGctTObj!i$wA}b(*#nfOrZNdkJLr-rG2_|C_ Date: Thu, 15 Jun 2023 15:13:24 +0200 Subject: [PATCH 079/109] glyphids --- .../java/com/hbm/entity/EntityMappings.java | 1 + .../com/hbm/entity/mob/EntityGlyphid.java | 164 +++++++++++++++++ .../handler/pollution/PollutionHandler.java | 3 +- src/main/java/com/hbm/main/ClientProxy.java | 1 + .../hbm/render/entity/mob/RenderGlyphid.java | 167 ++++++++++++++++++ 5 files changed, 335 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/hbm/entity/mob/EntityGlyphid.java create mode 100644 src/main/java/com/hbm/render/entity/mob/RenderGlyphid.java diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 797097dfc..04499718a 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -238,6 +238,7 @@ public class EntityMappings { addMob(EntitySiegeSkeleton.class, "entity_meme_skeleton", 0x303030, 0x000080); addMob(EntitySiegeUFO.class, "entity_meme_ufo", 0x303030, 0x800000); addMob(EntitySiegeCraft.class, "entity_meme_craft", 0x303030, 0x808000); + addMob(EntityGlyphid.class, "entity_glyphid", 0x724A21, 0xD2BB72); addSpawn(EntityCreeperPhosgene.class, 5, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); addSpawn(EntityCreeperVolatile.class, 10, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java new file mode 100644 index 000000000..416b316b7 --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java @@ -0,0 +1,164 @@ +package com.hbm.entity.mob; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EnumCreatureAttribute; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAIAttackOnCollide; +import net.minecraft.entity.ai.EntityAIHurtByTarget; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAIMoveTowardsRestriction; +import net.minecraft.entity.ai.EntityAINearestAttackableTarget; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.ai.EntityAIWander; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.monster.EntityMob; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.DamageSource; +import net.minecraft.world.World; + +public class EntityGlyphid extends EntityMob { + + public EntityGlyphid(World world) { + super(world); + this.tasks.addTask(0, new EntityAISwimming(this)); + this.tasks.addTask(2, new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.0D, false)); + this.tasks.addTask(5, new EntityAIMoveTowardsRestriction(this, 1.0D)); + this.tasks.addTask(7, new EntityAIWander(this, 1.0D)); + this.tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); + this.tasks.addTask(8, new EntityAILookIdle(this)); + this.targetTasks.addTask(1, new EntityAIHurtByTarget(this, true)); + this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 0, true)); + this.setSize(2F, 1F); + } + + @Override + protected void entityInit() { + super.entityInit(); + this.dataWatcher.addObject(16, new Byte((byte) 0)); //wall climbing + this.dataWatcher.addObject(17, new Byte((byte) 0b11111)); //armor + } + + @Override + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(32D); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.8D); + } + + @Override + public boolean attackEntityFrom(DamageSource source, float amount) { + + if(!source.isDamageAbsolute() && !source.isUnblockable() && !worldObj.isRemote) { + byte armor = this.dataWatcher.getWatchableObjectByte(17); + + if(armor != 0) { //if at least one bit of armor is present + int chance = amount < 10 ? 5 : amount < 20 ? 3 : 2; //chances of armor being broken off + if(this.rand.nextInt(chance) == 0) { + List indices = Arrays.asList(0, 1, 2, 3, 4); + Collections.shuffle(indices); + + for(Integer i : indices) { + byte bit = (byte) (1 << i); + if((armor & bit) > 0) { //if this bit is present... + armor &= ~bit; //...remove it + armor = (byte) (armor & 0b11111); + this.dataWatcher.updateObject(17, armor); + return false; + } + } + } + + amount -= 0.5; + } + + int divisor = 1; + + for(int i = 0; i < 5; i++) { + if((armor & (1 << i)) > 0) { + divisor++; + } + } + + System.out.println("" + divisor); + + amount /= divisor; + } + + return super.attackEntityFrom(source, amount); + } + + @Override + public boolean attackEntityAsMob(Entity victum) { + if(this.isSwingInProgress) return false; + this.swingItem(); + return super.attackEntityAsMob(victum); + } + + @Override + public void onUpdate() { + super.onUpdate(); + + if(!this.worldObj.isRemote) { + this.setBesideClimbableBlock(this.isCollidedHorizontally); + + if(worldObj.getTotalWorldTime() % 100 == 0) { + this.swingItem(); + } + } + } + + @Override + protected void updateArmSwingProgress() { + int i = this.swingDuration(); + + if(this.isSwingInProgress) { + ++this.swingProgressInt; + + if(this.swingProgressInt >= i) { + this.swingProgressInt = 0; + this.isSwingInProgress = false; + } + } else { + this.swingProgressInt = 0; + } + + this.swingProgress = (float) this.swingProgressInt / (float) i; + } + + public int swingDuration() { + return 15; + } + + @Override + public void setInWeb() { } + + @Override + public boolean isOnLadder() { + return this.isBesideClimbableBlock(); + } + + public boolean isBesideClimbableBlock() { + return (this.dataWatcher.getWatchableObjectByte(16) & 1) != 0; + } + + public void setBesideClimbableBlock(boolean climbable) { + byte watchable = this.dataWatcher.getWatchableObjectByte(16); + + if(climbable) { + watchable = (byte) (watchable | 1); + } else { + watchable &= -2; + } + + this.dataWatcher.updateObject(16, Byte.valueOf(watchable)); + } + + @Override + public EnumCreatureAttribute getCreatureAttribute() { + return EnumCreatureAttribute.ARTHROPOD; + } +} diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java index bbc4e7099..d62fd28e6 100644 --- a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -122,14 +122,15 @@ public class PollutionHandler { if(!event.world.isRemote) { WorldServer world = (WorldServer) event.world; String dirPath = getDataDir(world); + File pollutionFile = new File(dirPath, fileName); try { - File pollutionFile = new File(dirPath, fileName); if(!pollutionFile.getParentFile().exists()) pollutionFile.getParentFile().mkdirs(); if(!pollutionFile.exists()) pollutionFile.createNewFile(); NBTTagCompound data = perWorld.get(world).writeToNBT(); CompressedStreamTools.writeCompressed(data, new FileOutputStream(pollutionFile)); } catch(Exception ex) { + System.out.println("Failed to write " + pollutionFile.getAbsolutePath()); ex.printStackTrace(); } } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 492673357..ab05362d0 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -721,6 +721,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntitySiegeSkeleton.class, new RenderSiegeSkeleton()); RenderingRegistry.registerEntityRenderingHandler(EntitySiegeTunneler.class, new RenderSiegeTunneler()); RenderingRegistry.registerEntityRenderingHandler(EntityGhost.class, new RenderGhost()); + RenderingRegistry.registerEntityRenderingHandler(EntityGlyphid.class, new RenderGlyphid()); //"particles" RenderingRegistry.registerEntityRenderingHandler(EntitySmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.smoke1, ModItems.smoke2, ModItems.smoke3, ModItems.smoke4, ModItems.smoke5, ModItems.smoke6, ModItems.smoke7, ModItems.smoke8 })); RenderingRegistry.registerEntityRenderingHandler(EntityBSmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.b_smoke1, ModItems.b_smoke2, ModItems.b_smoke3, ModItems.b_smoke4, ModItems.b_smoke5, ModItems.b_smoke6, ModItems.b_smoke7, ModItems.b_smoke8 })); diff --git a/src/main/java/com/hbm/render/entity/mob/RenderGlyphid.java b/src/main/java/com/hbm/render/entity/mob/RenderGlyphid.java new file mode 100644 index 000000000..30915068e --- /dev/null +++ b/src/main/java/com/hbm/render/entity/mob/RenderGlyphid.java @@ -0,0 +1,167 @@ +package com.hbm.render.entity.mob; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.renderer.entity.RenderLiving; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; + +public class RenderGlyphid extends RenderLiving { + + public RenderGlyphid() { + super(new ModelGlyphid(), 1.0F); + this.shadowOpaque = 0.0F; + } + + @Override + protected ResourceLocation getEntityTexture(Entity p_110775_1_) { + return ResourceManager.glyphid_tex; + } + + public static class ModelGlyphid extends ModelBase { + + double bite = 0; + + @Override + public void setLivingAnimations(EntityLivingBase entity, float limbSwing, float limbSwingAmount, float interp) { + bite = entity.getSwingProgress(interp); + } + + @Override + public void render(Entity entity, float limbSwing, float limbSwingAmount, float rotationYaw, float rotationHeadYaw, float rotationPitch, float scale) { + GL11.glPushMatrix(); + + GL11.glRotatef(180, 1, 0, 0); + GL11.glTranslatef(0, -1.5F, 0); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + + EntityLivingBase living = (EntityLivingBase) entity; + byte armor = living.getDataWatcher().getWatchableObjectByte(17); + //MainRegistry.proxy.displayTooltip("" + limbSwingAmount, 999); + + double walkCycle = limbSwing; + + double speed = 100000D; + double chewing = 200000D; + double cy0 = Math.sin(walkCycle % (Math.PI * 2)); + double cy1 = Math.sin(walkCycle % (Math.PI * 2) - Math.PI * 0.5); + double cy2 = Math.sin(walkCycle % (Math.PI * 2) - Math.PI); + double cy3 = Math.sin(walkCycle % (Math.PI * 2) - Math.PI * 0.75); + + double bite = MathHelper.clamp_double(Math.sin(this.bite * Math.PI * 2 - Math.PI * 0.5), 0, 1) * 20; + double headTilt = Math.sin(this.bite * Math.PI) * 30; + + ResourceManager.glyphid.renderPart("Body"); + if((armor & (1 << 0)) > 0) ResourceManager.glyphid.renderPart("ArmorFront"); + if((armor & (1 << 1)) > 0) ResourceManager.glyphid.renderPart("ArmorLeft"); + if((armor & (1 << 2)) > 0) ResourceManager.glyphid.renderPart("ArmorRight"); + + /// LEFT ARM /// + GL11.glPushMatrix(); + GL11.glTranslated(0.25, 0.625, 0.0625); + GL11.glRotated(10, 0, 1, 0); + GL11.glRotated(35 + cy1 * 20, 1, 0, 0); + GL11.glTranslated(-0.25, -0.625, -0.0625); + ResourceManager.glyphid.renderPart("ArmLeftUpper"); + GL11.glTranslated(0.25, 0.625, 0.4375); + GL11.glRotated(-75 - cy1 * 20 + cy0 * 20, 1, 0, 0); + GL11.glTranslated(-0.25, -0.625, -0.4375); + ResourceManager.glyphid.renderPart("ArmLeftMid"); + GL11.glTranslated(0.25, 0.625, 0.9375); + GL11.glRotated(90 - cy0 * 45, 1, 0, 0); + GL11.glTranslated(-0.25, -0.625, -0.9375); + ResourceManager.glyphid.renderPart("ArmLeftLower"); + if((armor & (1 << 3)) > 0) ResourceManager.glyphid.renderPart("ArmLeftArmor"); + GL11.glPopMatrix(); + + /// RIGHT ARM /// + GL11.glPushMatrix(); + GL11.glTranslated(-0.25, 0.625, 0.0625); + GL11.glRotated(-10, 0, 1, 0); + GL11.glRotated(35 + cy2 * 20, 1, 0, 0); + GL11.glTranslated(0.25, -0.625, -0.0625); + ResourceManager.glyphid.renderPart("ArmRightUpper"); + GL11.glTranslated(-0.25, 0.625, 0.4375); + GL11.glRotated(-75 - cy2 * 20 + cy3 * 20, 1, 0, 0); + GL11.glTranslated(0.25, -0.625, -0.4375); + ResourceManager.glyphid.renderPart("ArmRightMid"); + GL11.glTranslated(-0.25, 0.625, 0.9375); + GL11.glRotated(90 - cy3 * 45, 1, 0, 0); + GL11.glTranslated(0.25, -0.625, -0.9375); + ResourceManager.glyphid.renderPart("ArmRightLower"); + if((armor & (1 << 4)) > 0) ResourceManager.glyphid.renderPart("ArmRightArmor"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + + GL11.glTranslated(0, 0.5, 0.25); + GL11.glRotated(headTilt, 0, 0, 1); + GL11.glTranslated(0, -0.5, -0.25); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.5, 0.25); + GL11.glRotated(-bite, 1, 0, 0); + GL11.glTranslated(0, -0.5, -0.25); + ResourceManager.glyphid.renderPart("JawTop"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.5, 0.25); + GL11.glRotated(bite, 0, 1, 0); + GL11.glRotated(bite, 1, 0, 0); + GL11.glTranslated(0, -0.5, -0.25); + ResourceManager.glyphid.renderPart("JawLeft"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.5, 0.25); + GL11.glRotated(-bite, 0, 1, 0); + GL11.glRotated(bite, 1, 0, 0); + GL11.glTranslated(0, -0.5, -0.25); + ResourceManager.glyphid.renderPart("JawRight"); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + double steppy = 15; + double bend = 60; + + for(int i = 0; i < 3; i++) { + + double c0 = cy0 * (i == 1 ? -1 : 1); + double c1 = cy1 * (i == 1 ? -1 : 1); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.25, 0); + GL11.glRotated(i * 30 - 15 + c0 * 7.5, 0, 1, 0); + GL11.glRotated(steppy + c1 * steppy, 0, 0, 1); + GL11.glTranslated(0, -0.25, 0); + ResourceManager.glyphid.renderPart("LegLeftUpper"); + GL11.glTranslated(0.5625, 0.25, 0); + GL11.glRotated(-bend - c1 * steppy, 0, 0, 1); + GL11.glTranslated(-0.5625, -0.25, 0); + ResourceManager.glyphid.renderPart("LegLeftLower"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.25, 0); + GL11.glRotated(i * 30 - 45 + c0 * 7.5, 0, 1, 0); + GL11.glRotated(-steppy + c1 * steppy, 0, 0, 1); + GL11.glTranslated(0, -0.25, 0); + ResourceManager.glyphid.renderPart("LegRightUpper"); + GL11.glTranslated(-0.5625, 0.25, 0); + GL11.glRotated(bend - c1 * steppy, 0, 0, 1); + GL11.glTranslated(0.5625, -0.25, 0); + ResourceManager.glyphid.renderPart("LegRightLower"); + GL11.glPopMatrix(); + } + + GL11.glPopMatrix(); + } + } +} From ec052ca2b8a3e3f392eb98b11a89bf1e56b8dbe8 Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 15 Jun 2023 22:56:41 +0200 Subject: [PATCH 080/109] enhanced glyphid crumblyness --- .../java/com/hbm/entity/mob/EntityGlyphid.java | 9 ++++----- .../assets/hbm/textures/entity/glyphid.png | Bin 887 -> 2472 bytes 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java index 416b316b7..3fba43067 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java @@ -46,7 +46,7 @@ public class EntityGlyphid extends EntityMob { protected void applyEntityAttributes() { super.applyEntityAttributes(); this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(32D); - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.8D); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(1D); } @Override @@ -57,7 +57,7 @@ public class EntityGlyphid extends EntityMob { if(armor != 0) { //if at least one bit of armor is present int chance = amount < 10 ? 5 : amount < 20 ? 3 : 2; //chances of armor being broken off - if(this.rand.nextInt(chance) == 0) { + if(this.rand.nextInt(chance) == 0 && amount > 1) { List indices = Arrays.asList(0, 1, 2, 3, 4); Collections.shuffle(indices); @@ -67,7 +67,8 @@ public class EntityGlyphid extends EntityMob { armor &= ~bit; //...remove it armor = (byte) (armor & 0b11111); this.dataWatcher.updateObject(17, armor); - return false; + amount = 0; + break; } } } @@ -83,8 +84,6 @@ public class EntityGlyphid extends EntityMob { } } - System.out.println("" + divisor); - amount /= divisor; } diff --git a/src/main/resources/assets/hbm/textures/entity/glyphid.png b/src/main/resources/assets/hbm/textures/entity/glyphid.png index dd5d4ec03f7b3891eaa798e0b0887a6143d5dd81..5294c0dc7f1d74e215b63c67abf9ac5a01cc3b99 100644 GIT binary patch delta 2447 zcmV;A32^rJ2B;H|Gk*zRNklq5;#5CZx431p{vJu6b{^SLO~exCCmyr3pq3OcKa9D%lMrksni_Qqu)onvkSX+kYU~zeXN60ahe!p!B1YC+$mF z*&lRJ-^p5CRG1S(&*?+f)YaK=axeV8Vlb(2GpvIRHp3d$Z*K;n3MJ1H#?ZC8NFi4} zt{t)lO-SQTEQdS*fa3V`E9adgTO`?-S@+ZS+&Jv`^Q#uuJJ{JCJC0BqC5?%}^6&uw z79<-YtA9le2Rqy3D0?(*eyo3*Sd5Z~Aq%1_c{wQP6Qq!S96hUZ6f1a)&yV%fYXEQ= zgB3JWLRAbL9Fgo)aBr17#DX;zqG1U=PtCWiKaGT7yaxcD9qk&HEqkS_g4m z*&jr`X3DE_Y0+ZLm?T^JV&~GeyjR_BFW}AaBY(en>Rox5lA0gu550TnMWq-mWfS|E+>o(0wEOvIaT zTz@4p#-_U;7vX+TJp5Nx?yH-$g_>Dp#m*&j@819Qv%KO553 zmPwVA7X12Rqx)9M`aZ>keRk{Qk*i@FX!$Zicmc@|bh; zY76hzpv_0{I2HF11CsRh`w9nw^gAw_I8bu78_v z6Y_Y!hJs3*9K|=m*f%6$yOz=7UI1^X<%$hth}Fcmx

    wSMR69!CtTAsa`@9OnYj!L& z>ewG6k3MuNfhqD3%U2iS>-RJD9)Ek2^1NP!&?GPwAD)*4#z6N&rHPXykw;ZnLvQ2- zp8>$+4Hqx#Xr6EH_2X7jX&Q6w^#|TtKZ;pNU`&Ov5A7Gme@IlhvR@aG@ysDT@BNebw9dGzfVf@TuaN}wA@_9K3`LsXTMC#iA_9)S`WF|V65UVG;| zt%RZky7e-?&5>e1N?ywT0f1kP(Xs)}2Ih?4x_iwV%T+`BE)Up6s`D z9>3;56}BMtonlZ-2-PNDN`JQ^r4n5w6p6=Af^jTf_pje~HV?^o@O;m+gHqsJE-jiq z@^qO9-57vxSNQv3%tUaUcf({(Gpym`?kANzNkzD1rX-LTO!@W4-A~^7=xHsL77JV) zs1ZUpCYAPsu`H>lL1;<}rGPahfm-(DuK)fk`kT|D7t1VE@0O8?EPwy=Z$KQ)F9E<@ zLb80O;fG;$Amy>Fq6>N!Z{;@BAs3b;P?JRM<}O{iQP6T0bzYn>T7Cn#011qRBNrio z=+UWXr|10Z`=3Grd7E=07bJnv-?(52OnM^Ay90#e*|zRpYpoIp5PIPhs03V-Arepfw9mi`n@nqxT!>8dn`bnrvz5xBa+Ypw3fE4A4wod zAPobg3TOW`zj(R~|(1|12aL?Jn`moIcI9yJeLE-gCeqMdg^1tXHEZIjv%)2c7P zScQ3rA{7@8>wh2K7_Qcut)y#HJE%Dyyngv;qiw#OsghU;=VL-zaxS(>bGyQ+FeL`S zS4oXLg!ZWffFIkf4K9n$N1Jc03ST6g3Zo68QitbjgUfD=CVBYB$&+3cTFFZRRg+%x zemai#&jOwb13;j<0KPOzLlO&Cu1-vg*zkWXpq>X~AYq=EW!BVcvAB^@TfYhGKjU~0* z0w^j7)p=gXQeg~Ds7>TVa5d!B8|jG9+BH<{h(OQF+vfq*3j>6xvnq(0Kg zMJj04+JEO_1Eqi$16u%@yjc7vk$2I^&6}+VoCvpb2yWD+kV8`cd7%={D`gCApGEdT zQQ$id{^6mNjYx>aascyF;hzP`8;X61!^u1EtU;xtpZD%PDHLkV1fcWn*IO) delta 849 zcmV-X1Frn26ZZy?Gk*gvNkldalRKx6iHLR4|xtR0ukf}=A-xe2q7QBdGs?x ztbPN(tU$cXnD(`8Iof(tzGuwu7h^JqkPk5G$KY#|BI24M3xBv48p~66(X0kYx5Q7R zRxvCf6&8@l;$xs%x&cJU0@hyk>@a5S6tTD{$!q-yzmOZ4Sb6mvtv_pc3?#Dn7&sSB zTzAo#2wNbL#Vt_v6B6gPZTa{Z-H=r8h#3n2wm>p0AQ2XjNRi-mNM1`Hqm_>u^KyeN zkVt-BcxA8!5`SRw|Q|~ zRmXd6{I^m(0l$6j?hn7*?+VARTj$$fz3f@Vx|1^7T=@H;zS;Qa@2D24j}WDVac3y~ zX8@3Q(^z_TiwR>XB}^Sun^M`p+kHL=2)VJxPkIXqQ9)A{6N;~hQL0nzyJDfFPHB8z4JNky}D5S?1hPB--U^RmqlY@Y8hn;h|)Y--C1w4ooZ{4N=%g2#dHwL<%c#dvfxc{b)4a9a52Jg-?u>^i= zK-^0|`x}54ZR^rb{*kAxs5lmDn_@3*>=`>LF@KiqyKs!UYnw_#R63mJjE$;fuA&Ps zxleKx0xk&)NQ4C>GPx5OIvwAnU)n3q4O<`)v5Q3VJ9V126@YjO6nhC|_TJk#vHzRF zxUz{UGlwmZ$gF{MV|gc5tpVKk6KgBY+!EOWiLih~SU@5yAQ2Xj2n$GL)-YyYFFWl+ z>q>TySw|~_umuuf0g14HM2dZUIs9bRU<-s74l Date: Fri, 16 Jun 2023 13:53:42 +0200 Subject: [PATCH 081/109] brenda is coming --- .../java/com/hbm/entity/EntityMappings.java | 3 + .../com/hbm/entity/mob/EntityGlyphid.java | 89 +++++++++++++----- .../hbm/entity/mob/EntityGlyphidBehemoth.java | 60 ++++++++++++ .../hbm/entity/mob/EntityGlyphidBrawler.java | 60 ++++++++++++ .../hbm/entity/mob/EntityGlyphidBrenda.java | 60 ++++++++++++ src/main/java/com/hbm/main/ClientProxy.java | 3 + .../java/com/hbm/main/ResourceManager.java | 3 + .../hbm/render/entity/mob/RenderGlyphid.java | 9 +- .../assets/hbm/textures/armor/grenade_nan.png | Bin 203 -> 0 bytes .../hbm/textures/entity/glyphid_behemoth.png | Bin 0 -> 2508 bytes .../hbm/textures/entity/glyphid_brawler.png | Bin 0 -> 2474 bytes .../hbm/textures/entity/glyphid_brenda.png | Bin 0 -> 2270 bytes 12 files changed, 259 insertions(+), 28 deletions(-) create mode 100644 src/main/java/com/hbm/entity/mob/EntityGlyphidBehemoth.java create mode 100644 src/main/java/com/hbm/entity/mob/EntityGlyphidBrawler.java create mode 100644 src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java delete mode 100644 src/main/resources/assets/hbm/textures/armor/grenade_nan.png create mode 100644 src/main/resources/assets/hbm/textures/entity/glyphid_behemoth.png create mode 100644 src/main/resources/assets/hbm/textures/entity/glyphid_brawler.png create mode 100644 src/main/resources/assets/hbm/textures/entity/glyphid_brenda.png diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 04499718a..1f39d3317 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -239,6 +239,9 @@ public class EntityMappings { addMob(EntitySiegeUFO.class, "entity_meme_ufo", 0x303030, 0x800000); addMob(EntitySiegeCraft.class, "entity_meme_craft", 0x303030, 0x808000); addMob(EntityGlyphid.class, "entity_glyphid", 0x724A21, 0xD2BB72); + addMob(EntityGlyphidBrawler.class, "entity_glyphid_brawler", 0x273038, 0xD2BB72); + addMob(EntityGlyphidBehemoth.class, "entity_glyphid_behemoth", 0x267F00, 0xD2BB72); + addMob(EntityGlyphidBrenda.class, "entity_glyphid_brenda", 0x4FC0C0, 0xA0A0A0); addSpawn(EntityCreeperPhosgene.class, 5, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); addSpawn(EntityCreeperVolatile.class, 10, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java index 3fba43067..829b4c97a 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java @@ -4,6 +4,8 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; +import com.hbm.main.ResourceManager; + import net.minecraft.entity.Entity; import net.minecraft.entity.EnumCreatureAttribute; import net.minecraft.entity.SharedMonsterAttributes; @@ -18,6 +20,7 @@ import net.minecraft.entity.ai.EntityAIWatchClosest; import net.minecraft.entity.monster.EntityMob; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.DamageSource; +import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; public class EntityGlyphid extends EntityMob { @@ -32,7 +35,15 @@ public class EntityGlyphid extends EntityMob { this.tasks.addTask(8, new EntityAILookIdle(this)); this.targetTasks.addTask(1, new EntityAIHurtByTarget(this, true)); this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 0, true)); - this.setSize(2F, 1F); + this.setSize(1.75F, 1F); + } + + public ResourceLocation getSkin() { + return ResourceManager.glyphid_tex; + } + + public double getScale() { + return 1.0D; } @Override @@ -45,8 +56,9 @@ public class EntityGlyphid extends EntityMob { @Override protected void applyEntityAttributes() { super.applyEntityAttributes(); - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(32D); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(30D); this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(1D); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(5D); } @Override @@ -56,39 +68,64 @@ public class EntityGlyphid extends EntityMob { byte armor = this.dataWatcher.getWatchableObjectByte(17); if(armor != 0) { //if at least one bit of armor is present - int chance = amount < 10 ? 5 : amount < 20 ? 3 : 2; //chances of armor being broken off + + if(amount < getDamageThreshold()) return false; + + int chance = getArmorBreakChance(amount); //chances of armor being broken off if(this.rand.nextInt(chance) == 0 && amount > 1) { - List indices = Arrays.asList(0, 1, 2, 3, 4); - Collections.shuffle(indices); - - for(Integer i : indices) { - byte bit = (byte) (1 << i); - if((armor & bit) > 0) { //if this bit is present... - armor &= ~bit; //...remove it - armor = (byte) (armor & 0b11111); - this.dataWatcher.updateObject(17, armor); - amount = 0; - break; - } - } + breakOffArmor(); + amount = 0; } - amount -= 0.5; + amount -= getDamageThreshold(); + if(amount < 0) return false; } - int divisor = 1; - - for(int i = 0; i < 5; i++) { - if((armor & (1 << i)) > 0) { - divisor++; - } - } - - amount /= divisor; + amount = this.calculateDamage(amount); } return super.attackEntityFrom(source, amount); } + + public int getArmorBreakChance(float amount) { + return amount < 10 ? 5 : amount < 20 ? 3 : 2; + } + + public float calculateDamage(float amount) { + + byte armor = this.dataWatcher.getWatchableObjectByte(17); + int divisor = 1; + + for(int i = 0; i < 5; i++) { + if((armor & (1 << i)) > 0) { + divisor++; + } + } + + amount /= divisor; + + return amount; + } + + public float getDamageThreshold() { + return 0.5F; + } + + public void breakOffArmor() { + byte armor = this.dataWatcher.getWatchableObjectByte(17); + List indices = Arrays.asList(0, 1, 2, 3, 4); + Collections.shuffle(indices); + + for(Integer i : indices) { + byte bit = (byte) (1 << i); + if((armor & bit) > 0) { + armor &= ~bit; + armor = (byte) (armor & 0b11111); + this.dataWatcher.updateObject(17, armor); + break; + } + } + } @Override public boolean attackEntityAsMob(Entity victum) { diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBehemoth.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBehemoth.java new file mode 100644 index 000000000..f4d058ab2 --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidBehemoth.java @@ -0,0 +1,60 @@ +package com.hbm.entity.mob; + +import com.hbm.main.ResourceManager; + +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; + +public class EntityGlyphidBehemoth extends EntityGlyphid { + + public EntityGlyphidBehemoth(World world) { + super(world); + this.setSize(2.25F, 1.25F); + } + + @Override + public ResourceLocation getSkin() { + return ResourceManager.glyphid_behemoth_tex; + } + + @Override + public double getScale() { + return 1.5D; + } + + @Override + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(100D); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.8D); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(25D); + } + + @Override + public int getArmorBreakChance(float amount) { + return amount < 15 ? 10 : amount < 25 ? 5 : amount > 75 ? 1 : 3; + } + + @Override + public float calculateDamage(float amount) { + + byte armor = this.dataWatcher.getWatchableObjectByte(17); + int divisor = 1; + + for(int i = 0; i < 5; i++) { + if((armor & (1 << i)) > 0) { + divisor += 3; + } + } + + amount /= divisor; + + return amount; + } + + @Override + public float getDamageThreshold() { + return 2.5F; + } +} diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBrawler.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBrawler.java new file mode 100644 index 000000000..60f18e6ed --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidBrawler.java @@ -0,0 +1,60 @@ +package com.hbm.entity.mob; + +import com.hbm.main.ResourceManager; + +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; + +public class EntityGlyphidBrawler extends EntityGlyphid { + + public EntityGlyphidBrawler(World world) { + super(world); + this.setSize(2F, 1.125F); + } + + @Override + public ResourceLocation getSkin() { + return ResourceManager.glyphid_brawler_tex; + } + + @Override + public double getScale() { + return 1.25D; + } + + @Override + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(50D); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(1D); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(10D); + } + + @Override + public int getArmorBreakChance(float amount) { + return amount < 10 ? 10 : amount < 20 ? 5 : amount > 50 ? 1 : 3; + } + + @Override + public float calculateDamage(float amount) { + + byte armor = this.dataWatcher.getWatchableObjectByte(17); + int divisor = 1; + + for(int i = 0; i < 5; i++) { + if((armor & (1 << i)) > 0) { + divisor += 2; + } + } + + amount /= divisor; + + return amount; + } + + @Override + public float getDamageThreshold() { + return 1.0F; + } +} diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java new file mode 100644 index 000000000..660d71afd --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java @@ -0,0 +1,60 @@ +package com.hbm.entity.mob; + +import com.hbm.main.ResourceManager; + +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; + +public class EntityGlyphidBrenda extends EntityGlyphid { + + public EntityGlyphidBrenda(World world) { + super(world); + this.setSize(2.5F, 2F); + } + + @Override + public ResourceLocation getSkin() { + return ResourceManager.glyphid_brenda_tex; + } + + @Override + public double getScale() { + return 2D; + } + + @Override + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(250D); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.8D); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(50D); + } + + @Override + public int getArmorBreakChance(float amount) { + return amount < 25 ? 100 : amount > 500 ? 1 : 10; + } + + @Override + public float calculateDamage(float amount) { + + byte armor = this.dataWatcher.getWatchableObjectByte(17); + int divisor = 1; + + for(int i = 0; i < 5; i++) { + if((armor & (1 << i)) > 0) { + divisor += 5; + } + } + + amount /= divisor; + + return amount; + } + + @Override + public float getDamageThreshold() { + return 10F; + } +} diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index ab05362d0..a9f2b5ca8 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -722,6 +722,9 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntitySiegeTunneler.class, new RenderSiegeTunneler()); RenderingRegistry.registerEntityRenderingHandler(EntityGhost.class, new RenderGhost()); RenderingRegistry.registerEntityRenderingHandler(EntityGlyphid.class, new RenderGlyphid()); + RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidBrawler.class, new RenderGlyphid()); + RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidBehemoth.class, new RenderGlyphid()); + RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidBrenda.class, new RenderGlyphid()); //"particles" RenderingRegistry.registerEntityRenderingHandler(EntitySmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.smoke1, ModItems.smoke2, ModItems.smoke3, ModItems.smoke4, ModItems.smoke5, ModItems.smoke6, ModItems.smoke7, ModItems.smoke8 })); RenderingRegistry.registerEntityRenderingHandler(EntityBSmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.b_smoke1, ModItems.b_smoke2, ModItems.b_smoke3, ModItems.b_smoke4, ModItems.b_smoke5, ModItems.b_smoke6, ModItems.b_smoke7, ModItems.b_smoke8 })); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index f889c98d1..1db20b3a6 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -660,6 +660,9 @@ public class ResourceManager { public static final ResourceLocation spider_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/blockspider.png"); public static final ResourceLocation ufo_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/ufo.png"); public static final ResourceLocation glyphid_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid.png"); + public static final ResourceLocation glyphid_brawler_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_brawler.png"); + public static final ResourceLocation glyphid_behemoth_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_behemoth.png"); + public static final ResourceLocation glyphid_brenda_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_brenda.png"); //ZIRNOX public static final ResourceLocation zirnox_tex = new ResourceLocation(RefStrings.MODID, "textures/models/zirnox.png"); diff --git a/src/main/java/com/hbm/render/entity/mob/RenderGlyphid.java b/src/main/java/com/hbm/render/entity/mob/RenderGlyphid.java index 30915068e..c64649c77 100644 --- a/src/main/java/com/hbm/render/entity/mob/RenderGlyphid.java +++ b/src/main/java/com/hbm/render/entity/mob/RenderGlyphid.java @@ -2,6 +2,7 @@ package com.hbm.render.entity.mob; import org.lwjgl.opengl.GL11; +import com.hbm.entity.mob.EntityGlyphid; import com.hbm.main.ResourceManager; import net.minecraft.client.model.ModelBase; @@ -19,8 +20,9 @@ public class RenderGlyphid extends RenderLiving { } @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return ResourceManager.glyphid_tex; + protected ResourceLocation getEntityTexture(Entity entity) { + EntityGlyphid glyphid = (EntityGlyphid) entity; + return glyphid.getSkin(); } public static class ModelGlyphid extends ModelBase { @@ -41,6 +43,9 @@ public class RenderGlyphid extends RenderLiving { GL11.glEnable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_CULL_FACE); + double s = ((EntityGlyphid) entity).getScale(); + GL11.glScaled(s, s, s); + EntityLivingBase living = (EntityLivingBase) entity; byte armor = living.getDataWatcher().getWatchableObjectByte(17); //MainRegistry.proxy.displayTooltip("" + limbSwingAmount, 999); diff --git a/src/main/resources/assets/hbm/textures/armor/grenade_nan.png b/src/main/resources/assets/hbm/textures/armor/grenade_nan.png deleted file mode 100644 index b07dad82cb5fca8af25e193e3255f2af16ca356f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 203 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf`gu!Qs&#>`VeoYIb6Mw<&;$S)yGOnN diff --git a/src/main/resources/assets/hbm/textures/entity/glyphid_behemoth.png b/src/main/resources/assets/hbm/textures/entity/glyphid_behemoth.png new file mode 100644 index 0000000000000000000000000000000000000000..b59f6e2510b3fb89d1d635fa8acaa6edab768786 GIT binary patch literal 2508 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/entity/glyphid_brenda.png b/src/main/resources/assets/hbm/textures/entity/glyphid_brenda.png new file mode 100644 index 0000000000000000000000000000000000000000..b831b1a1fcd39d9308aa317d05669a96c812f98b GIT binary patch literal 2270 zcmV<42qE{0P)@-)o^U>T2C4@khDbuAz7K9o;)p19<3AFcjrp4Uetc^_<2 z1&}=a*F1eNcfeAF*S!YDzO0=c7>$#DmAJA$g&2dpMk zGNw^sDH2OmnDl|xLvf~gF#DJoW>!xXDp$d|a6UJa$ z`w+;AXY24Rh|7ASNTCWL>{cgBL6(nMJ0I_t#$h3ZQQPbL-ds5LAtz_@MMQ2{KEyMN zzV9dh?0jSOWBGi)1V~=JT{sj=l$DDLXAogMoXsM(U@$peK3%xOB+4L(lfVhdNz|7XzI-Co|{iwINyU;UtxtK zsYzCnE-!wX=^Siuu=tPnwKJv4Lj|PjEy?%%bgaK;=O?r4?-xII(Wz&ANm{9u(J0g+{sgG4im#sK69?iqrGka(VI78{#hoV&|+d z#Z#cwah`zdP+$z$A5;^QWRZs^>|xV&UDb7+h+Mtl;uXzX`SdK2fiYKI*ORw?h_w_L zGhxl!`LAvKr$n8dpUCHT-$X=qO4B@5XDl9^1k&7zl)2`ZvYNiOhyQCSkpHbZim$I< zR1f-o6p@MfvaeG${`LEB(O`N)pvHN1U7N278SKC<72tPybv=LYi#v&>3dC~gw;5=v zOrB-RF-!=w$cU+|q`c>=mMYXD5C3DZVm~A=<^M#8K;3oZcA}*G$GZdPDFw2H@b%x$GrvZAl8;Tw@q4RV4(hs=f3`s? z0{539)8nMrz;d3;R>Ufg?JD-cCYKEDP-%Hffu0h*!L@B$;c*roeKBEp{3db)1;$i% z3qZ_)D|r`z zDE+Q_O=NwUfE#WmlaLIzgNV5O5??>Kn zi`bj+*b1sEp<=0H_so?|l}$5d=0PUpW+6*~9(i0Q)y_>ukR5?VsP4afJL2jWJ2~-8 z81uOfE;1S?K7R9I^u7krbSfUqQCF%A-}_^0!X%ib(((g z?B1@7r#$^JdDg4KT=G&tbJc6k$8wy%1|}vfA~Vw!nX1tu&nl}yHkz>ark^J*m%IS! z)K0=Gy9PEQ^LL{Rk0_BT`M7{EiChQ&73wPVKLsmD4q}sJm0bgq!-UI=pV9ZCXs&1H zC$m-7+UxSfcwYio_fvag%Pe1sR6*wEd?*x|u!bh+6PXA$LnPSyS9te51o~I#O3U{T z0e2M^nfpFog}ra;tc4`?kxnT}0_i2EEh)_6Kn0%R#lE4-CGXh4;CfBW77_My3U=yN z$YGiPp%9F8aLVBQeRdl$RQk??KRmQ{BNk$@oXFu!_@*H1ILpgp@~(5&5IaN_@lUDI zFJirY{bJUUzKFkz@J?xtfqjGPCCDPsBdc`lbsg9zxL$(d16At~;ii!1LE}Piue>Cz z$yOi+xi=*=DS;JS2fJtyvfm3UylvQj0c^6bM5?7`oKzqxF7{QzF-Sy{tY{A$_Nc#4 sAF@o?+p~Jt*MVT%%Q>YE^uHAU0y`?k^ Date: Sat, 17 Jun 2023 18:29:57 +0200 Subject: [PATCH 082/109] glyphid bombardier, train collisions --- .../java/com/hbm/entity/EntityMappings.java | 3 + .../com/hbm/entity/mob/EntityGlyphid.java | 4 +- .../hbm/entity/mob/EntityGlyphidBehemoth.java | 2 +- .../hbm/entity/mob/EntityGlyphidBlaster.java | 80 ++++++++++++++ .../entity/mob/EntityGlyphidBombardier.java | 101 ++++++++++++++++++ .../hbm/entity/mob/EntityGlyphidBrawler.java | 2 +- .../hbm/entity/mob/EntityGlyphidBrenda.java | 23 +++- .../hbm/entity/projectile/EntityAcidBomb.java | 60 +++++++++++ .../hbm/entity/train/EntityRailCarBase.java | 68 ++++++++++-- src/main/java/com/hbm/main/ClientProxy.java | 4 + .../java/com/hbm/main/ResourceManager.java | 2 + src/main/resources/assets/hbm/lang/de_DE.lang | 4 + src/main/resources/assets/hbm/lang/en_US.lang | 4 + .../hbm/textures/entity/glyphid_blaster.png | Bin 0 -> 2428 bytes .../textures/entity/glyphid_bombardier.png | Bin 0 -> 2507 bytes 15 files changed, 346 insertions(+), 11 deletions(-) create mode 100644 src/main/java/com/hbm/entity/mob/EntityGlyphidBlaster.java create mode 100644 src/main/java/com/hbm/entity/mob/EntityGlyphidBombardier.java create mode 100644 src/main/java/com/hbm/entity/projectile/EntityAcidBomb.java create mode 100644 src/main/resources/assets/hbm/textures/entity/glyphid_blaster.png create mode 100644 src/main/resources/assets/hbm/textures/entity/glyphid_bombardier.png diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 1f39d3317..c50d13566 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -211,6 +211,7 @@ public class EntityMappings { addEntity(EntitySawblade.class, "entity_stray_saw", 1000); addEntity(EntityChemical.class, "entity_chemthrower_splash", 1000); addEntity(EntityMist.class, "entity_mist", 250, false); + addEntity(EntityAcidBomb.class, "entity_acid_bomb", 1000); addEntity(EntityItemWaste.class, "entity_item_waste", 100); addEntity(EntityItemBuoyant.class, "entity_item_buoyant", 100); @@ -242,6 +243,8 @@ public class EntityMappings { addMob(EntityGlyphidBrawler.class, "entity_glyphid_brawler", 0x273038, 0xD2BB72); addMob(EntityGlyphidBehemoth.class, "entity_glyphid_behemoth", 0x267F00, 0xD2BB72); addMob(EntityGlyphidBrenda.class, "entity_glyphid_brenda", 0x4FC0C0, 0xA0A0A0); + addMob(EntityGlyphidBombardier.class, "entity_glyphid_bombardier", 0xDDD919, 0xDBB79D); + addMob(EntityGlyphidBlaster.class, "entity_glyphid_blaster", 0xD83737, 0xDBB79D); addSpawn(EntityCreeperPhosgene.class, 5, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); addSpawn(EntityCreeperVolatile.class, 10, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java index 829b4c97a..92fd49785 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java @@ -78,7 +78,7 @@ public class EntityGlyphid extends EntityMob { } amount -= getDamageThreshold(); - if(amount < 0) return false; + if(amount < 0) return true; } amount = this.calculateDamage(amount); @@ -141,7 +141,7 @@ public class EntityGlyphid extends EntityMob { if(!this.worldObj.isRemote) { this.setBesideClimbableBlock(this.isCollidedHorizontally); - if(worldObj.getTotalWorldTime() % 100 == 0) { + if(worldObj.getTotalWorldTime() % 200 == 0) { this.swingItem(); } } diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBehemoth.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBehemoth.java index f4d058ab2..bf3215059 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidBehemoth.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidBehemoth.java @@ -33,7 +33,7 @@ public class EntityGlyphidBehemoth extends EntityGlyphid { @Override public int getArmorBreakChance(float amount) { - return amount < 15 ? 10 : amount < 25 ? 5 : amount > 75 ? 1 : 3; + return amount < 20 ? 10 : amount < 100 ? 5 : amount > 200 ? 1 : 3; } @Override diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBlaster.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBlaster.java new file mode 100644 index 000000000..5e922ab49 --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidBlaster.java @@ -0,0 +1,80 @@ +package com.hbm.entity.mob; + +import com.hbm.main.ResourceManager; + +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; + +public class EntityGlyphidBlaster extends EntityGlyphidBombardier { + + public EntityGlyphidBlaster(World world) { + super(world); + this.setSize(2F, 1.125F); + } + + @Override + public ResourceLocation getSkin() { + return ResourceManager.glyphid_blaster_tex; + } + + @Override + public double getScale() { + return 1.25D; + } + + @Override + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(50D); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(1D); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(10D); + } + + @Override + public int getArmorBreakChance(float amount) { + return amount < 10 ? 10 : amount < 25 ? 5 : amount > 100 ? 1 : 3; + } + + @Override + public float calculateDamage(float amount) { + + byte armor = this.dataWatcher.getWatchableObjectByte(17); + int divisor = 1; + + for(int i = 0; i < 5; i++) { + if((armor & (1 << i)) > 0) { + divisor += 2; + } + } + + amount /= divisor; + + return amount; + } + + @Override + public float getDamageThreshold() { + return 1.0F; + } + + @Override + public float getBombDamage() { + return 10F; + } + + @Override + public int getBombCount() { + return 20; + } + + @Override + public float getSpreadMult() { + return 0.75F; + } + + @Override + public double getV0() { + return 1.25D; + } +} diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBombardier.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBombardier.java new file mode 100644 index 000000000..61750f0ee --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidBombardier.java @@ -0,0 +1,101 @@ +package com.hbm.entity.mob; + +import com.hbm.entity.projectile.EntityAcidBomb; +import com.hbm.main.ResourceManager; + +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class EntityGlyphidBombardier extends EntityGlyphid { + + public EntityGlyphidBombardier(World world) { + super(world); + } + + public ResourceLocation getSkin() { + return ResourceManager.glyphid_bombardier_tex; + } + + protected Entity lastTarget; + protected double lastX; + protected double lastY; + protected double lastZ; + + @Override + public void onUpdate() { + super.onUpdate(); + + if(!this.worldObj.isRemote) { + + Entity e = this.getEntityToAttack(); + + if(this.ticksExisted % 20 == 0 && e != null) { + this.lastTarget = e; + this.lastX = e.posX; + this.lastY = e.posY; + this.lastZ = e.posZ; + } + + if(this.ticksExisted % 20 == 1 && e != null) { + + boolean topAttack = rand.nextBoolean(); + + double velX = e.posX - lastX; + double velY = e.posY - lastY; + double velZ = e.posZ - lastZ; + + if(this.lastTarget != e || Vec3.createVectorHelper(velX, velY, velZ).lengthVector() > 30) { + velX = velY = velZ = 0; + } + + int prediction = topAttack ? 60 : 20; + Vec3 delta = Vec3.createVectorHelper(e.posX - posX + velX * prediction, (e.posY + e.height / 2) - (posY + 1) + velY * prediction, e.posZ - posZ + velZ * prediction); + double len = delta.lengthVector(); + if(len < 3) return; + double targetYaw = -Math.atan2(delta.xCoord, delta.zCoord); + + double x = Math.sqrt(delta.xCoord * delta.xCoord + delta.zCoord * delta.zCoord); + double y = delta.yCoord; + double v0 = getV0(); + double v02 = v0 * v0; + double g = 0.04D; + double upperLower = topAttack ? 1 : -1; + double targetPitch = Math.atan((v02 + Math.sqrt(v02*v02 - g*(g*x*x + 2*y*v02)) * upperLower) / (g*x)); + + if(!Double.isNaN(targetPitch)) { + + Vec3 fireVec = Vec3.createVectorHelper(v0, 0, 0); + fireVec.rotateAroundZ((float) -targetPitch); + fireVec.rotateAroundY((float) -(targetYaw + Math.PI * 0.5)); + + for(int i = 0; i < getBombCount(); i++) { + EntityAcidBomb bomb = new EntityAcidBomb(worldObj, posX, posY + 1, posZ); + bomb.setThrowableHeading(fireVec.xCoord, fireVec.yCoord, fireVec.zCoord, (float) v0, i * getSpreadMult()); + bomb.damage = getBombDamage(); + worldObj.spawnEntityInWorld(bomb); + } + + this.swingItem(); + } + } + } + } + + public float getBombDamage() { + return 1.5F; + } + + public int getBombCount() { + return 10; + } + + public float getSpreadMult() { + return 1F; + } + + public double getV0() { + return 1D; + } +} diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBrawler.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBrawler.java index 60f18e6ed..749230a42 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidBrawler.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidBrawler.java @@ -33,7 +33,7 @@ public class EntityGlyphidBrawler extends EntityGlyphid { @Override public int getArmorBreakChance(float amount) { - return amount < 10 ? 10 : amount < 20 ? 5 : amount > 50 ? 1 : 3; + return amount < 10 ? 10 : amount < 25 ? 5 : amount > 100 ? 1 : 3; } @Override diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java index 660d71afd..309ac38fb 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java @@ -3,6 +3,8 @@ package com.hbm.entity.mob; import com.hbm.main.ResourceManager; import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; @@ -11,6 +13,7 @@ public class EntityGlyphidBrenda extends EntityGlyphid { public EntityGlyphidBrenda(World world) { super(world); this.setSize(2.5F, 2F); + this.isImmuneToFire = true; } @Override @@ -33,7 +36,7 @@ public class EntityGlyphidBrenda extends EntityGlyphid { @Override public int getArmorBreakChance(float amount) { - return amount < 25 ? 100 : amount > 500 ? 1 : 10; + return amount < 25 ? 100 : amount > 1000 ? 1 : 10; } @Override @@ -57,4 +60,22 @@ public class EntityGlyphidBrenda extends EntityGlyphid { public float getDamageThreshold() { return 10F; } + + @Override + public void setDead() { + if(!this.worldObj.isRemote && this.getHealth() <= 0.0F) { + for(int i = 0; i < 12; ++i) { + EntityGlyphid glyphid = new EntityGlyphid(worldObj); + glyphid.setLocationAndAngles(this.posX, this.posY + 0.5D, this.posZ, rand.nextFloat() * 360.0F, 0.0F); + glyphid.addPotionEffect(new PotionEffect(Potion.resistance.id, 5 * 60 * 20, 2)); + glyphid.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 5 * 60 * 20, 0)); + glyphid.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 5 * 60 * 20, 4)); + glyphid.addPotionEffect(new PotionEffect(Potion.field_76444_x.id, 5 * 60 * 20, 19)); + this.worldObj.spawnEntityInWorld(glyphid); + glyphid.moveEntity(rand.nextGaussian(), 0, rand.nextGaussian()); + } + } + + super.setDead(); + } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityAcidBomb.java b/src/main/java/com/hbm/entity/projectile/EntityAcidBomb.java new file mode 100644 index 000000000..8a688df2d --- /dev/null +++ b/src/main/java/com/hbm/entity/projectile/EntityAcidBomb.java @@ -0,0 +1,60 @@ +package com.hbm.entity.projectile; + +import com.hbm.entity.mob.EntityGlyphid; +import com.hbm.lib.ModDamageSource; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.World; + +public class EntityAcidBomb extends EntityThrowableInterp { + + public float damage = 1.5F; + + public EntityAcidBomb(World world) { + super(world); + } + + public EntityAcidBomb(World world, double x, double y, double z) { + super(world, x, y, z); + } + + @Override + protected void onImpact(MovingObjectPosition mop) { + + if(worldObj.isRemote) return; + + if(mop.typeOfHit == mop.typeOfHit.ENTITY) { + + if(!(mop.entityHit instanceof EntityGlyphid)) { + mop.entityHit.attackEntityFrom(ModDamageSource.acid, damage); + this.setDead(); + } + } + + if(mop.typeOfHit == mop.typeOfHit.BLOCK) + this.setDead(); + } + + @Override + public double getGravityVelocity() { + return 0.04D; + } + + @Override + protected float getAirDrag() { + return 1.0F; + } + + @Override + public void writeEntityToNBT(NBTTagCompound nbt) { + super.writeEntityToNBT(nbt); + nbt.setFloat("damage", damage); + } + + @Override + public void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); + this.damage = nbt.getFloat("damage"); + } +} diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index afd7b25ab..37f77f79f 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -132,7 +132,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { data.setString("type", "debug"); data.setInteger("color", 0x0000ff); data.setFloat("scale", 1.5F); - data.setString("text", id); + data.setString("text", id + " (#" + train.ltuIndex + ")"); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, train.posX, train.posY + 1, train.posZ), new TargetPoint(this.dimension, train.posX, train.posY + 1, train.posZ, 50)); } } @@ -180,9 +180,6 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { } } else { - - PacketDispatcher.wrapper.sendToAllAround(new PlayerInformPacket(ChatBuilder.start("" + this.rotationPitch).color(EnumChatFormatting.RED).flush(), 1), - new TargetPoint(dimension, posX, posY + 1, posZ, 50)); if(this.coupledFront != null && this.coupledFront.isDead) { this.coupledFront = null; @@ -319,7 +316,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { for(LogicalTrainUnit ltu : ltus) { - double speed = ltu.getTotalSpeed(); + double speed = ltu.getTotalSpeed() + ltu.pushForce; if(Math.abs(speed) < 0.001) speed = 0; @@ -346,6 +343,10 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { } else { ltu.setRenderPos(train, frontPos, backPos); } + + //ltu.pushForce *= 0.95; + ltu.pushForce = 0; + ltu.collideTrain(speed); continue; } @@ -355,6 +356,12 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { } else { ltu.moveTrainByApproach(speed); } + + if(ltu.trains.length != 1) { + //ltu.pushForce *= 0.95; + ltu.pushForce = 0; + ltu.collideTrain(speed); + } } } @@ -540,6 +547,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { public static class LogicalTrainUnit { + protected double pushForce; protected EntityRailCarBase trains[]; /** Assumes that the train is an endpoint, i.e. that only one coupling is in use */ @@ -742,7 +750,6 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { /** Determines the "front" wagon based on the movement and moves it, then moves all other wagons towards that */ public void moveTrainByApproach(double speed) { boolean forward = speed < 0; - double origSpeed = speed; speed = Math.abs(speed); EntityRailCarBase previous = null; @@ -798,6 +805,55 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { current.motionY = current.rotationPitch / 360D; current.velocityChanged = true; } + + public void collideTrain(double speed) { + EntityRailCarBase collidingTrain = speed > 0 ? trains[0] : trains[trains.length - 1]; + List intersect = collidingTrain.worldObj.getEntitiesWithinAABB(EntityRailCarBase.class, collidingTrain.boundingBox.expand(1, 1, 1)); + EntityRailCarBase collidesWith = null; + + for(EntityRailCarBase train : intersect) { + if(train.ltu != null && train.ltu != this) { + collidesWith = train; + break; + } + } + + if(collidesWith == null) return; + + Vec3 delta = Vec3.createVectorHelper(collidingTrain.posX - collidesWith.posX, 0, collidingTrain.posZ - collidesWith.posZ); + double totalSpan = collidingTrain.getCollisionSpan() + collidesWith.getCollisionSpan(); + double diff = delta.lengthVector(); + if(diff > totalSpan) return; + double push = (totalSpan - diff); + + //PacketDispatcher.wrapper.sendToAllAround(new PlayerInformPacket(ChatBuilder.start("" + collidesWith.ltuIndex + " " + collidingTrain.ltuIndex).color(EnumChatFormatting.RED).flush(), 1), + // new TargetPoint(collidingTrain.dimension, collidingTrain.posX, collidingTrain.posY + 1, collidingTrain.posZ, 50)); + + EntityRailCarBase[][] whatever = new EntityRailCarBase[][] {{collidingTrain, collidesWith}, {collidesWith, collidingTrain}}; + for(EntityRailCarBase[] array : whatever) { + LogicalTrainUnit ltu = array[0].ltu; + if(ltu.trains.length == 1) { + Vec3 rot = Vec3.createVectorHelper(0, 0, array[0].getCollisionSpan()); + rot.rotateAroundX((float) (array[0].rotationPitch * Math.PI / 180D)); + rot.rotateAroundY((float) (-array[0].rotationYaw * Math.PI / 180)); + Vec3 forward = Vec3.createVectorHelper(array[1].posX - (array[0].posX + rot.xCoord), 0, array[1].posZ - (array[0].posZ + rot.zCoord)); + Vec3 backward = Vec3.createVectorHelper(array[1].posX - (array[0].posX - rot.xCoord), 0, array[1].posZ - (array[0].posZ - rot.zCoord)); + + if(forward.lengthVector() > backward.lengthVector()) { + ltu.pushForce += push; + } else { + ltu.pushForce -= push; + } + } else { + + if(array[0].ltuIndex < ltu.trains.length / 2) { + ltu.pushForce -= push; + } else { + ltu.pushForce += push; + } + } + } + } } @Override diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index a9f2b5ca8..f171c9f71 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -19,6 +19,7 @@ import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; +import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -587,6 +588,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntitySawblade.class, new RenderSawblade()); RenderingRegistry.registerEntityRenderingHandler(EntityChemical.class, new RenderChemical()); RenderingRegistry.registerEntityRenderingHandler(EntityMist.class, new RenderMist()); + RenderingRegistry.registerEntityRenderingHandler(EntityAcidBomb.class, new RenderSnowball(Items.slime_ball)); //grenades RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeGeneric.class, new RenderSnowball(ModItems.grenade_generic)); RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeStrong.class, new RenderSnowball(ModItems.grenade_strong)); @@ -725,6 +727,8 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidBrawler.class, new RenderGlyphid()); RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidBehemoth.class, new RenderGlyphid()); RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidBrenda.class, new RenderGlyphid()); + RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidBombardier.class, new RenderGlyphid()); + RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidBlaster.class, new RenderGlyphid()); //"particles" RenderingRegistry.registerEntityRenderingHandler(EntitySmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.smoke1, ModItems.smoke2, ModItems.smoke3, ModItems.smoke4, ModItems.smoke5, ModItems.smoke6, ModItems.smoke7, ModItems.smoke8 })); RenderingRegistry.registerEntityRenderingHandler(EntityBSmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.b_smoke1, ModItems.b_smoke2, ModItems.b_smoke3, ModItems.b_smoke4, ModItems.b_smoke5, ModItems.b_smoke6, ModItems.b_smoke7, ModItems.b_smoke8 })); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 1db20b3a6..9f3b71fdb 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -663,6 +663,8 @@ public class ResourceManager { public static final ResourceLocation glyphid_brawler_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_brawler.png"); public static final ResourceLocation glyphid_behemoth_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_behemoth.png"); public static final ResourceLocation glyphid_brenda_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_brenda.png"); + public static final ResourceLocation glyphid_bombardier_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_bombardier.png"); + public static final ResourceLocation glyphid_blaster_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_blaster.png"); //ZIRNOX public static final ResourceLocation zirnox_tex = new ResourceLocation(RefStrings.MODID, "textures/models/zirnox.png"); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index a92874167..6ea95cce7 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -505,6 +505,10 @@ digamma.title=DIGAMMA-DIAGNOSEGERÄT entity.entity_cyber_crab.name=Cyber-Krabbe entity.entity_elder_one.name=Quackos der Älteste entity.entity_fucc_a_ducc.name=Ente +entity.entity_glyphid.name=Glyphid +entity.entity_glyphid_behemoth.name=Glyphid-Behemoth +entity.entity_glyphid_brawler.name=Glyphid-Schläger +entity.entity_glyphid_brenda.name=Brenda entity.entity_ntm_fbi.name=FBI Agent entity.entity_ntm_radiation_blaze.name=Kernschmelze-Elementar entity.hbm.entity_ntm_ufo.name=Marsianisches Invasionsschiff diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index a7feb2556..cec6b2cbc 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -951,6 +951,10 @@ digamma.title=DIGAMMA DIAGNOSTIC entity.entity_cyber_crab.name=Cyber Crab entity.entity_elder_one.name=Quackos The Elder One entity.entity_fucc_a_ducc.name=Duck +entity.entity_glyphid.name=Glyphid +entity.entity_glyphid_behemoth.name=Glyphid Behemoth +entity.entity_glyphid_brawler.name=Glyphid Brawler +entity.entity_glyphid_brenda.name=Brenda entity.entity_ntm_fbi.name=FBI Agent entity.entity_ntm_radiation_blaze.name=Meltdown Elemental entity.hbm.entity_ntm_ufo.name=Martian Invasion Ship diff --git a/src/main/resources/assets/hbm/textures/entity/glyphid_blaster.png b/src/main/resources/assets/hbm/textures/entity/glyphid_blaster.png new file mode 100644 index 0000000000000000000000000000000000000000..f99440f7b127789cd9a8ba4341b7f2291880616a GIT binary patch literal 2428 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 Date: Sat, 17 Jun 2023 22:55:05 +0200 Subject: [PATCH 083/109] glyphid hives --- src/main/java/com/hbm/blocks/ModBlocks.java | 8 +- .../blocks/generic/BlockGlyphidSpawner.java | 49 +++++++ .../java/com/hbm/entity/EntityMappings.java | 1 + .../com/hbm/entity/mob/EntityGlyphid.java | 13 ++ .../hbm/entity/mob/EntityGlyphidBrenda.java | 2 +- .../hbm/entity/mob/EntityGlyphidScout.java | 102 ++++++++++++++ src/main/java/com/hbm/lib/HbmWorldGen.java | 8 ++ src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/ResourceManager.java | 1 + .../java/com/hbm/tileentity/TileMappings.java | 2 + .../com/hbm/world/feature/GlyphidHive.java | 128 ++++++++++++++++++ .../hbm/textures/blocks/glyphid_base.png | Bin 0 -> 583 bytes .../hbm/textures/blocks/glyphid_base_2.png | Bin 0 -> 560 bytes .../hbm/textures/entity/glyphid_scout.png | Bin 0 -> 2378 bytes 14 files changed, 313 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java create mode 100644 src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java create mode 100644 src/main/java/com/hbm/world/feature/GlyphidHive.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/glyphid_base.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/glyphid_base_2.png create mode 100644 src/main/resources/assets/hbm/textures/entity/glyphid_scout.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 1a9438c41..e745ad561 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -495,11 +495,13 @@ public class ModBlocks { public static Block glass_ash; public static Block glass_quartz; - public static Block mush; public static Block mush_block; public static Block mush_block_stem; + public static Block glyphid_base; + public static Block glyphid_spawner; + public static Block plant_flower; public static Block plant_tall; public static Block plant_dead; @@ -1695,6 +1697,8 @@ public class ModBlocks { mush = new BlockMush(Material.plants).setBlockName("mush").setCreativeTab(MainRegistry.blockTab).setLightLevel(0.5F).setStepSound(Block.soundTypeGrass).setBlockTextureName(RefStrings.MODID + ":mush"); mush_block = new BlockMushHuge(Material.plants).setBlockName("mush_block").setLightLevel(1.0F).setStepSound(Block.soundTypeGrass).setHardness(0.2F).setBlockTextureName(RefStrings.MODID + ":mush_block_skin"); mush_block_stem = new BlockMushHuge(Material.plants).setBlockName("mush_block_stem").setLightLevel(1.0F).setStepSound(Block.soundTypeGrass).setHardness(0.2F).setBlockTextureName(RefStrings.MODID + ":mush_block_stem"); + glyphid_base = new BlockBase(Material.coral).setBlockName("glyphid_base").setStepSound(Block.soundTypeCloth).setHardness(0.5F); + glyphid_spawner = new BlockGlyphidSpawner(Material.coral).setBlockName("glyphid_spawner").setStepSound(Block.soundTypeCloth).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":glyphid_base"); plant_flower = new BlockNTMFlower().setBlockName("plant_flower").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGrass).setHardness(0.0F); plant_tall = new BlockTallPlant().setBlockName("plant_tall").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGrass).setHardness(0.0F); @@ -2836,6 +2840,8 @@ public class ModBlocks { GameRegistry.registerBlock(mush, mush.getUnlocalizedName()); GameRegistry.registerBlock(mush_block, mush_block.getUnlocalizedName()); GameRegistry.registerBlock(mush_block_stem, mush_block_stem.getUnlocalizedName()); + GameRegistry.registerBlock(glyphid_base, glyphid_base.getUnlocalizedName()); + GameRegistry.registerBlock(glyphid_spawner, glyphid_spawner.getUnlocalizedName()); GameRegistry.registerBlock(moon_turf, moon_turf.getUnlocalizedName()); //Waste diff --git a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java new file mode 100644 index 000000000..155b256fc --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java @@ -0,0 +1,49 @@ +package com.hbm.blocks.generic; + +import java.util.List; + +import com.hbm.entity.mob.EntityGlyphid; +import com.hbm.entity.mob.EntityGlyphidScout; + +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.EnumDifficulty; +import net.minecraft.world.World; + +public class BlockGlyphidSpawner extends BlockContainer { + + public BlockGlyphidSpawner(Material p_i45386_1_) { + super(p_i45386_1_); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityGlpyhidSpawner(); + } + + public static class TileEntityGlpyhidSpawner extends TileEntity { + + @Override + public void updateEntity() { + + if(!worldObj.isRemote && worldObj.getTotalWorldTime() % 60 == 0 && this.worldObj.difficultySetting != EnumDifficulty.PEACEFUL) { + + List list = worldObj.getEntitiesWithinAABB(EntityGlyphid.class, AxisAlignedBB.getBoundingBox(xCoord - 4, yCoord + 1, zCoord - 4, xCoord + 5, yCoord + 4, zCoord + 5)); + + if(list.size() < 3) { + EntityGlyphid glyphid = new EntityGlyphid(worldObj); + glyphid.setLocationAndAngles(xCoord + 0.5, yCoord + 1, zCoord + 0.5, worldObj.rand.nextFloat() * 360.0F, 0.0F); + this.worldObj.spawnEntityInWorld(glyphid); + } + + if(worldObj.rand.nextInt(20) == 0) { + EntityGlyphidScout scout = new EntityGlyphidScout(worldObj); + scout.setLocationAndAngles(xCoord + 0.5, yCoord + 1, zCoord + 0.5, worldObj.rand.nextFloat() * 360.0F, 0.0F); + this.worldObj.spawnEntityInWorld(scout); + } + } + } + } +} diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index c50d13566..d231fa8b6 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -245,6 +245,7 @@ public class EntityMappings { addMob(EntityGlyphidBrenda.class, "entity_glyphid_brenda", 0x4FC0C0, 0xA0A0A0); addMob(EntityGlyphidBombardier.class, "entity_glyphid_bombardier", 0xDDD919, 0xDBB79D); addMob(EntityGlyphidBlaster.class, "entity_glyphid_blaster", 0xD83737, 0xDBB79D); + addMob(EntityGlyphidScout.class, "entity_glyphid_scout", 0x273038, 0xB9E36B); addSpawn(EntityCreeperPhosgene.class, 5, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); addSpawn(EntityCreeperVolatile.class, 10, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java index 92fd49785..230fd56c2 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java @@ -19,6 +19,7 @@ import net.minecraft.entity.ai.EntityAIWander; import net.minecraft.entity.ai.EntityAIWatchClosest; import net.minecraft.entity.monster.EntityMob; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.DamageSource; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; @@ -197,4 +198,16 @@ public class EntityGlyphid extends EntityMob { public EnumCreatureAttribute getCreatureAttribute() { return EnumCreatureAttribute.ARTHROPOD; } + + @Override + public void writeEntityToNBT(NBTTagCompound nbt) { + super.writeEntityToNBT(nbt); + nbt.setByte("armor", this.dataWatcher.getWatchableObjectByte(17)); + } + + @Override + public void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); + this.dataWatcher.updateObject(17, nbt.getByte("armor")); + } } diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java index 309ac38fb..bdce3e7bc 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java @@ -12,7 +12,7 @@ public class EntityGlyphidBrenda extends EntityGlyphid { public EntityGlyphidBrenda(World world) { super(world); - this.setSize(2.5F, 2F); + this.setSize(2.5F, 1.75F); this.isImmuneToFire = true; } diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java new file mode 100644 index 000000000..ae20a35a8 --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java @@ -0,0 +1,102 @@ +package com.hbm.entity.mob; + +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.world.feature.GlyphidHive; + +import net.minecraft.block.Block; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class EntityGlyphidScout extends EntityGlyphid { + + public boolean hasHome = false; + public double homeX; + public double homeY; + public double homeZ; + + public EntityGlyphidScout(World world) { + super(world); + this.setSize(1.25F, 0.75F); + } + + @Override + public float getDamageThreshold() { + return 0.0F; + } + + @Override + public ResourceLocation getSkin() { + return ResourceManager.glyphid_scout_tex; + } + + @Override + public double getScale() { + return 0.75D; + } + + @Override + public int getArmorBreakChance(float amount) { + return 1; + } + + @Override + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(16D); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(1.5D); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(2D); + } + + @Override + protected boolean canDespawn() { + return true; + } + + @Override + public void onUpdate() { + super.onUpdate(); + + if(!worldObj.isRemote) { + + if(!this.hasHome) { + this.homeX = posX; + this.homeY = posY; + this.homeZ = posZ; + this.hasHome = true; + } + + if(this.ticksExisted > 0 && this.ticksExisted % 1200 == 0 && Vec3.createVectorHelper(posX - homeX, posY - homeY, posZ - homeZ).lengthVector() > 16) { + + Block b = worldObj.getBlock((int) Math.floor(posX), (int) Math.floor(posY - 1), (int) Math.floor(posZ)); + + if(b.isNormalCube() && b != ModBlocks.glyphid_base) { + this.setDead(); + worldObj.newExplosion(this, posX, posY, posZ, 5F, false, false); + GlyphidHive.generate(worldObj, (int) Math.floor(posX), (int) Math.floor(posY), (int) Math.floor(posZ), rand); + } + } + } + } + + @Override + public void writeEntityToNBT(NBTTagCompound nbt) { + super.writeEntityToNBT(nbt); + nbt.setBoolean("hasHome", hasHome); + nbt.setDouble("homeX", homeX); + nbt.setDouble("homeY", homeY); + nbt.setDouble("homeZ", homeZ); + } + + @Override + public void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); + this.hasHome = nbt.getBoolean("hasHome"); + this.homeX = nbt.getDouble("homeX"); + this.homeY = nbt.getDouble("homeY"); + this.homeZ = nbt.getDouble("homeZ"); + } +} diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index 2d1bd69c5..04c41da43 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -34,6 +34,7 @@ import com.hbm.world.feature.DepthDeposit; import com.hbm.world.feature.Dud; import com.hbm.world.feature.Geyser; import com.hbm.world.feature.GeyserLarge; +import com.hbm.world.feature.GlyphidHive; import com.hbm.world.feature.Meteorite; import com.hbm.world.feature.OilBubble; import com.hbm.world.feature.OilSandBubble; @@ -216,6 +217,13 @@ public class HbmWorldGen implements IWorldGenerator { } if(GeneralConfig.enableDungeons && world.provider.isSurfaceWorld()) { + + if(rand.nextInt(1000) == 0) { + int x = i + rand.nextInt(16) + 8; + int z = j + rand.nextInt(16) + 8; + int y = world.getHeightValue(x, z); + GlyphidHive.generate(world, x, y, z, rand); + } if(biome == BiomeGenBase.plains || biome == BiomeGenBase.desert) { if(WorldConfig.radioStructure > 0 && rand.nextInt(WorldConfig.radioStructure) == 0) { diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index f171c9f71..8f491ea8d 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -729,6 +729,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidBrenda.class, new RenderGlyphid()); RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidBombardier.class, new RenderGlyphid()); RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidBlaster.class, new RenderGlyphid()); + RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidScout.class, new RenderGlyphid()); //"particles" RenderingRegistry.registerEntityRenderingHandler(EntitySmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.smoke1, ModItems.smoke2, ModItems.smoke3, ModItems.smoke4, ModItems.smoke5, ModItems.smoke6, ModItems.smoke7, ModItems.smoke8 })); RenderingRegistry.registerEntityRenderingHandler(EntityBSmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.b_smoke1, ModItems.b_smoke2, ModItems.b_smoke3, ModItems.b_smoke4, ModItems.b_smoke5, ModItems.b_smoke6, ModItems.b_smoke7, ModItems.b_smoke8 })); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 9f3b71fdb..1f9716a94 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -665,6 +665,7 @@ public class ResourceManager { public static final ResourceLocation glyphid_brenda_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_brenda.png"); public static final ResourceLocation glyphid_bombardier_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_bombardier.png"); public static final ResourceLocation glyphid_blaster_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_blaster.png"); + public static final ResourceLocation glyphid_scout_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_scout.png"); //ZIRNOX public static final ResourceLocation zirnox_tex = new ResourceLocation(RefStrings.MODID, "textures/models/zirnox.png"); diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index f7098e052..e9ba74599 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -9,6 +9,7 @@ import com.hbm.blocks.generic.BlockBedrockOreTE.TileEntityBedrockOre; import com.hbm.blocks.generic.BlockBobble.TileEntityBobble; import com.hbm.blocks.generic.BlockDynamicSlag.TileEntitySlag; import com.hbm.blocks.generic.BlockEmitter.TileEntityEmitter; +import com.hbm.blocks.generic.BlockGlyphidSpawner.TileEntityGlpyhidSpawner; import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; import com.hbm.blocks.generic.BlockMotherOfAllOres.TileEntityRandomOre; import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe; @@ -193,6 +194,7 @@ public class TileMappings { put(TileEntityPipeGauge.class, "tileentity_pipe_gauge"); put(TileEntityMachineBAT9000.class, "tileentity_bat9000"); put(TileEntityMachineOrbus.class, "tileentity_orbus"); + put(TileEntityGlpyhidSpawner.class, "tileentity_glyphid_spawner"); put(TileEntityLoot.class, "tileentity_ntm_loot"); put(TileEntityBobble.class, "tileentity_ntm_bobblehead"); diff --git a/src/main/java/com/hbm/world/feature/GlyphidHive.java b/src/main/java/com/hbm/world/feature/GlyphidHive.java new file mode 100644 index 000000000..5c60e3ff2 --- /dev/null +++ b/src/main/java/com/hbm/world/feature/GlyphidHive.java @@ -0,0 +1,128 @@ +package com.hbm.world.feature; + +import java.util.Random; + +import com.hbm.blocks.ModBlocks; + +import net.minecraft.init.Blocks; +import net.minecraft.world.World; + +public class GlyphidHive { + + public static final int[][][] schematic = new int[][][] { + { + {0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,1,1,1,0,0,0,0}, + {0,0,0,1,1,1,1,1,0,0,0}, + {0,0,0,1,1,1,1,1,0,0,0}, + {0,0,0,1,1,1,1,1,0,0,0}, + {0,0,0,0,1,1,1,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0}, + }, + { + {0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,1,1,1,0,0,0,0}, + {0,0,0,1,1,9,1,1,0,0,0}, + {0,0,1,1,9,9,9,1,1,0,0}, + {0,0,1,9,9,9,9,9,1,0,0}, + {0,0,1,1,9,9,9,1,1,0,0}, + {0,0,0,1,1,9,1,1,0,0,0}, + {0,0,0,0,1,1,1,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0}, + }, + { + {0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,4,4,4,0,0,0,0}, + {0,0,0,1,1,9,1,1,0,0,0}, + {0,0,1,1,9,9,9,1,1,0,0}, + {0,3,1,9,9,9,9,9,1,5,0}, + {0,3,9,9,9,9,9,9,9,5,0}, + {0,3,1,9,9,9,9,9,1,5,0}, + {0,0,1,1,9,9,9,1,1,0,0}, + {0,0,0,1,1,9,1,1,0,0,0}, + {0,0,0,0,2,2,2,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0}, + }, + { + {0,0,0,0,0,4,0,0,0,0,0}, + {0,0,0,0,4,4,4,0,0,0,0}, + {0,0,0,1,4,9,4,1,0,0,0}, + {0,0,1,1,9,9,9,1,1,0,0}, + {0,3,3,9,9,9,9,9,5,5,0}, + {3,3,9,9,9,9,9,9,9,5,5}, + {0,3,3,9,9,9,9,9,5,5,0}, + {0,0,1,1,9,9,9,1,1,0,0}, + {0,0,0,1,2,9,2,1,0,0,0}, + {0,0,0,0,2,2,2,0,0,0,0}, + {0,0,0,0,0,2,0,0,0,0,0}, + }, + { + {0,0,0,0,4,4,4,0,0,0,0}, + {0,0,0,1,4,4,4,1,0,0,0}, + {0,0,1,1,4,9,4,1,1,0,0}, + {0,1,1,1,9,9,0,1,1,1,0}, + {3,3,3,9,9,9,9,9,5,5,5}, + {3,3,9,9,9,9,9,9,9,5,5}, + {3,3,3,9,9,9,9,9,5,5,5}, + {0,1,1,1,9,9,9,1,1,1,0}, + {0,0,1,1,2,9,2,1,1,0,0}, + {0,0,0,1,2,2,2,1,0,0,0}, + {0,0,0,0,2,2,2,0,0,0,0}, + }, + { + {0,0,0,0,1,1,1,0,0,0,0}, + {0,0,0,1,1,1,1,1,0,0,0}, + {0,0,1,1,1,1,1,1,1,0,0}, + {0,1,1,1,1,1,1,1,1,1,0}, + {1,1,1,1,1,1,1,1,1,1,1}, + {1,1,1,1,1,1,1,1,1,1,1}, + {1,1,1,1,1,1,1,1,1,1,1}, + {0,1,1,1,1,1,1,1,1,1,0}, + {0,0,1,1,1,1,1,1,1,0,0}, + {0,0,0,1,1,1,1,1,0,0,0}, + {0,0,0,0,1,1,1,0,0,0,0}, + }, + { + {0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,1,1,1,0,0,0,0}, + {0,0,0,1,1,1,1,1,0,0,0}, + {0,0,1,1,1,1,1,1,1,0,0}, + {0,1,1,1,1,1,1,1,1,1,0}, + {0,1,1,1,1,1,1,1,1,1,0}, + {0,1,1,1,1,1,1,1,1,1,0}, + {0,0,1,1,1,1,1,1,1,0,0}, + {0,0,0,1,1,1,1,1,0,0,0}, + {0,0,0,0,1,1,1,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0}, + } + }; + + public static void generate(World world, int x, int y, int z, Random rand) { + + int orientation = rand.nextInt(4) + 2; + + for(int i = 0; i < 11; i++) { + for(int j = 0; j < 7; j++) { + for(int k = 0; k < 11; k++) { + + int block = schematic[6 - j][i][k]; + + if(block == 1 || (block != orientation && block > 1 && block < 6)) { + world.setBlock(x + i - 5, y + j - 2, z + k - 5, ModBlocks.glyphid_base); + } + if(block == 9) { + world.setBlock(x + i - 5, y + j - 2, z + k - 5, Blocks.air); + } + } + } + } + + world.setBlock(x, y - 1, z, ModBlocks.glyphid_spawner); + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/glyphid_base.png b/src/main/resources/assets/hbm/textures/blocks/glyphid_base.png new file mode 100644 index 0000000000000000000000000000000000000000..ef6bca81580e47f00c436f188a0b9dbab716210a GIT binary patch literal 583 zcmV-N0=WH&P)aR~LkcU!Mh96&7%JL>v|F3ZWzlNp|L6Z__U!YAkADHm@_^%X%{h{N z9&c^|5W*)-a|ZJ{R=lK;V}ekUsEpP~_5ofM`#l$TIs+h0bA<4*;w5RC-kAgHW206>@Bh9$sFV zPOC7gJ8-8n(jN~9)>L6cAp0aLqig_!Py(>IzpKG7ul`GzH0C7EoMFR~sO)64PqD&N zYtx|ya-1%9zT1!_U_LinsF}4^htqY}ch>uD z^+~(B`T2{pEX5YJ=JWF&FMm3;+xAIu5K6qBLs68pjz literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/glyphid_base_2.png b/src/main/resources/assets/hbm/textures/blocks/glyphid_base_2.png new file mode 100644 index 0000000000000000000000000000000000000000..541a53c5f56156aede4138dd7d332424794fa7f9 GIT binary patch literal 560 zcmV-00?+-4P)r7UJMf+)l?Omx>Fj}sc&pbu~ZZtET9o(Dj%OG}a{B-o{F_bJPVN3=m71wfF9 zr>%E5W(RcF!QQ6?yHxJkT@!%0=aI)rNsz}0K@`eEmSIXIA3iRyUp8{z9*)okeeyUd z6$|h>4gkCNkf3Omd12o*FrlN1$mtC`(?v1JJ8lU z(p*I=VWcqdk?N1lhEw(j!|VdkHg%eR zPc)j%8d!H7TJJiX@`A>7B~Z@&di5-A=&o}E7V{89A&T8KrKh>)v8`r*3bGB+f*=)O y%P>*w;fNp#v41j&6h31uLKwO=)!NcpNZt-nVV77+#1llKOG&{KPD5HPekP8>|8e2 z*BW(Nc5-$uk2hWvUVBV$75iEDUx_vF$eYgQBGM*6%dNT?#-m|Q^Tr%`ewx-g1h=yU zBNb5skvyHq=K5M)u9(i|4e~G@8(*)feGvM9Es2`W<}w})wI)>yW5k-Tu#o;-8Jwv6;T5DhE}m9p1(&Pn}AddQX271 zG|f_`b}UB~ajY&X%*0?CAF`*ex`rg&< z$J${@6_SPzoj1Z16mL$S)jN)5i!2+{cRiNp`eAQQpH({E+ruN--JY1zXlYCcss8AS zWkW2rn9k<%_VB2_dOMoeKUBYnFNWl)%cAH?UJeR;f(Yy8dgYBG)<0B_c@e2k45`4A zlByy<43zAcbDw(>T1oYVJR=+HpECX;5~BW|h&1eISGOb=4I7BSUC}bG5BqLz;qvY*}qi1~V!rdVZo-{R%L zlZwxwx#!YY|4?4lFC;M*k=A0E7_ZE0V~rK^EH>BIni8nUwMVi3u{`>kxvJ+$p4HDg zw&jwCPI_{@j%}i*b9XJqo6~0%JG6{cdzu2PZP!!KbT*HlM7RSkwhvf#(Q=!xj6DL& z-df{$_weqUGFB3S)+DKsVDS9)_tm3^TdiQJ5``~qG@SM5;Z|*I zpTGXT^(2+>>1NWYI}&@yO465$k7har13u8>A)n8rxsu0Gn-CVM z_w00NzBg~Jw(_4pUDV`py@vuN&Mpaqmb&GWcAULWgTc`=n9;7w!E4t6?Y;6?ER z;stlD50QuSMG1_Nr?|0tTfSU;bk{hrp0X9Sup}_%AAT(f3<2kZ(!?ZL_C7@&Wo z??*VS4R5Elzx$P|p^rXUD z+*Yw)U^ojyUrZQ=-$M853oQu@N!fKspzhLm8p5>o<-OwCB#_JaO;{@WlE4tIT>@k8 zAlmN^{&w41JKK12zv{~dT41|q`G4%j^oi(8B@T7-qB+l4wghe!`z=SBu?*rANiUV~ ztcXOVyg$%T5l4abAdjSVkwB6B|F`vtq%RZjz|CZ`WHOd1ft5&YUJCi|BLOWBl~p2@ zmCi+!Kt6D*M2SdU9x~KceIGWk5~)hc7a|3ghsu&~6hV|gbOWpiZEpBS`}BeRCJ_~v zmqr=3yUH{kL@tsg&8Dl1_uOy{CjVI)SRsgfRfylCvl zu8N4ro#9<`^YQwpMuo2vwF;{ZLaEdAo#EZOjVF2fWAdz5g{kDlplXSEuE%y<-v=5h zEFvw{6=_PNMV{4GoorNL&)wmNmP%d;>DZ~lYTE})6=qUI#3V{Yf@S`fNh1E4do5(~k ziAIHQjU@JwPA*~&vsb`^7mhkh&;xzYHBuQY1 ztm`_r#&+R7k!s)AnM3_~tWv^Gxk!hAsue_7_J-jh_9seIgn?7P0?ZhWS_&xliOqo>TgV`gK-el(^7W3EzrDS`KsU<&)RX w1CE!Z!rqzH%YO}&MmiRG_WGyvE9t8E7wWzFSXyJMiU0rr07*qoM6N<$g6IsD%>V!Z literal 0 HcmV?d00001 From 0a8ec4a38946741a5c9d4c23eda57ef1b3fc2afc Mon Sep 17 00:00:00 2001 From: Vaern Date: Sat, 17 Jun 2023 18:24:29 -0700 Subject: [PATCH 084/109] reworked book lore's clientside --- .../com/hbm/inventory/gui/GUIBookLore.java | 388 +++++------------- src/main/java/com/hbm/items/ModItems.java | 2 +- .../com/hbm/items/special/ItemBookLore.java | 93 +++-- src/main/resources/assets/hbm/lang/en_US.lang | 64 +-- .../hbm/textures/gui/book/book_lore.png | Bin 0 -> 21362 bytes .../assets/hbm/textures/items/book_cover.png | Bin 0 -> 244 bytes .../assets/hbm/textures/items/book_pages.png | Bin 0 -> 211 bytes .../assets/hbm/textures/items/book_title.png | Bin 0 -> 166 bytes 8 files changed, 193 insertions(+), 354 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/gui/book/book_lore.png create mode 100644 src/main/resources/assets/hbm/textures/items/book_cover.png create mode 100644 src/main/resources/assets/hbm/textures/items/book_pages.png create mode 100644 src/main/resources/assets/hbm/textures/items/book_title.png diff --git a/src/main/java/com/hbm/inventory/gui/GUIBookLore.java b/src/main/java/com/hbm/inventory/gui/GUIBookLore.java index b8f203f23..223f49130 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIBookLore.java +++ b/src/main/java/com/hbm/inventory/gui/GUIBookLore.java @@ -7,132 +7,160 @@ import org.lwjgl.opengl.GL11; import com.hbm.items.special.ItemBookLore.*; import com.hbm.lib.RefStrings; +import com.hbm.util.I18nUtil; + import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ResourceLocation; -// and you may ask yourself: vaer, why do this? this is basically just a copy of GUIScreenGuide. -// and I would answer, shut the fuck up nerd, the guide book system is too involved for my small -// brain to use for god knows how many tidbits of lore. i'll settle for a text box and cool textures, thanks public class GUIBookLore extends GuiScreen { - protected int xSize; - protected int ySize; + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/book/book_lore.png"); + protected int guiLeft; protected int guiTop; + protected static int sizeX = 272; + protected static int sizeY = 182; - private NBTTagCompound tag; //Used for save-dependent information, like the MKU recipe - private BookLoreType type; + protected BookLoreType type; + protected NBTTagCompound tag; - public int itemTexture; + //judgement + protected int color; - protected GUIPage mainPage; - protected GUIPage auxPage; - protected GUIPageButton button; - - int page = 0; - int maxPage; + protected int page; + protected int maxPage; public GUIBookLore(EntityPlayer player) { + ItemStack stack = player.getHeldItem(); + if(!stack.hasTagCompound()) return; + this.type = BookLoreType.getTypeFromStack(stack); - type = BookLoreType.getTypeFromStack(player.getHeldItem()); - tag = player.getHeldItem().getTagCompound(); //compound is created or gotten in method above - GUIAppearance setup = type.appearance; - - mainPage = setup.mainPage; - auxPage = setup.auxPage; - button = setup.button; - itemTexture = setup.itemTexture; - - if(type.pages <= 1) { - xSize = auxPage.sizeX; - ySize = auxPage.sizeY; - } else { - xSize = mainPage.sizeX; - ySize = mainPage.sizeY; - } - - maxPage = mainPage.isTwoPages ? (int)Math.ceil(type.pages / 2D) - 1 : type.pages - 1; + if(type == null) return; + this.tag = stack.getTagCompound(); + this.color = tag.getInteger("cov_col"); + if(color <= 0) + color = 0x303030; + this.maxPage = (int)Math.ceil(type.pages / 2D) - 1; } @Override public void initGui() { - super.initGui(); - this.guiLeft = (this.width - this.xSize) / 2; - this.guiTop = (this.height - this.ySize) / 2; + if(type == null) this.mc.thePlayer.closeScreen(); + this.guiLeft = (this.width - this.sizeX) / 2; + this.guiTop = (this.height - this.sizeY) / 2; } @Override - public void drawScreen(int mouseX, int mouseY, float f) { + public void drawScreen(int i, int j, float f) { this.drawDefaultBackground(); - this.drawGuiContainerBackgroundLayer(f, mouseX, mouseY); + this.drawGuiContainerBackgroundLayer(f, i, j); GL11.glDisable(GL11.GL_LIGHTING); - this.drawGuiContainerForegroundLayer(mouseX, mouseY); + this.drawGuiContainerForegroundLayer(i, j); GL11.glEnable(GL11.GL_LIGHTING); } protected void drawGuiContainerBackgroundLayer(float f, int i, int j) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - if(page == maxPage && (page + 1) * 2 > type.pages) { //odd numbered pages - Minecraft.getMinecraft().getTextureManager().bindTexture(auxPage.texture); - func_146110_a(guiLeft, guiTop, auxPage.u, auxPage.v, auxPage.sizeX, auxPage.sizeY, 512, 512); - } else { - Minecraft.getMinecraft().getTextureManager().bindTexture(mainPage.texture); - func_146110_a(guiLeft, guiTop, mainPage.u, mainPage.v, mainPage.sizeX, mainPage.sizeY, 512, 512); + float r = (float)(color >> 16 & 255) / 255F; + float g = (float)(color >> 8 & 255) / 255F; + float b = (float)(color & 255) / 255F; + GL11.glColor4f(r, g, b, 1.0F); + func_146110_a(guiLeft, guiTop, 0, 0, sizeX, sizeY, 512, 512); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + func_146110_a(guiLeft + 7, guiTop + 7, 0, 182, 258, 165, 512, 512); + + final boolean overY = j >= guiTop + 155 && j < guiTop + 165; + if(page > 0) { + if(overY && i >= guiLeft + 24 && i <= guiLeft + 42) + func_146110_a(guiLeft + 24, guiTop + 155, 295, 13, 18, 10, 512, 512); + else + func_146110_a(guiLeft + 24, guiTop + 155, 272, 13, 18, 10, 512, 512); } - int width = page == maxPage && (page + 1) * 2 > type.pages ? auxPage.sizeX : mainPage.sizeX; - - if(page > 0) - button.renderButton(this, width, guiLeft, guiTop, false, i, j); - - if(page < maxPage) - button.renderButton(this, width, guiLeft, guiTop, true, i, j); + if(page < maxPage) { + if(overY && i >= guiLeft + 230 && i <= guiLeft + 248) + func_146110_a(guiLeft + 230, guiTop + 155, 295, 0, 18, 10, 512, 512); + else + func_146110_a(guiLeft + 230, guiTop + 155, 272, 0, 18, 10, 512, 512); + } } protected void drawGuiContainerForegroundLayer(int x, int y) { String key = "book_lore." + type.keyI18n + ".page."; - if(mainPage.isTwoPages) { - int defacto = page * 2 + 1; - String text = type.resolveKey(key + defacto, tag); + for(int i = 0; i < 2; i++) { + int defacto = this.page * 2 + i; //TODO: force i18n to index from 0 instead of 1 - if((page + 1) * 2 <= type.pages) { //Checks if text should be rendered as an aux or a main page - mainPage.renderText(text, fontRendererObj, guiLeft, guiTop, false); + if(defacto < this.type.pages) { + String text = I18nUtil.resolveKey(key + defacto); //TODO tag-based argument formatting - text = type.resolveKey(key + (defacto + 1), tag); //kinda awkward, but no way around it - mainPage.renderText(text, fontRendererObj, guiLeft, guiTop, true); - } else - auxPage.renderText(text, fontRendererObj, guiLeft, guiTop, false); - - } else { - String text = type.resolveKey(key + (page + 1), tag); - - if(page < maxPage) - mainPage.renderText(text, fontRendererObj, guiLeft, guiTop, false); - else - auxPage.renderText(text, fontRendererObj, guiLeft, guiTop, false); + float scale = 1; + int width = 100; + int widthScaled = (int) (width * scale); + + List lines = new ArrayList(); + String[] words = text.split(" "); + + lines.add(words[0]); + int indent = this.fontRendererObj.getStringWidth(words[0]); + + for(int w = 1; w < words.length; w++) { + if(words[w].equals("$")) { + if(w + 1 < words.length && !words[w + 1].equals("$")) { + lines.add(words[++w]); + indent = this.fontRendererObj.getStringWidth(words[w]); + } else + lines.add(""); + + continue; + } + + indent += this.fontRendererObj.getStringWidth(" " + words[w]); + + if(indent <= widthScaled) { + String last = lines.get(lines.size() - 1); + lines.set(lines.size() - 1, last += (" " + words[w])); + } else { + lines.add(words[w]); + indent = this.fontRendererObj.getStringWidth(words[w]); + } + } + + GL11.glPushMatrix(); + GL11.glScalef(1F/scale, 1F/scale, 1F); + + for(int l = 0; l < lines.size(); l++) { + this.fontRendererObj.drawString(lines.get(l), + (int)((guiLeft + 20 + i * 130) * scale), + (int)((guiTop + 20) * scale + (9 * l)), + 0x0F0F0F); + } + + GL11.glPopMatrix(); + } } } @Override protected void mouseClicked(int i, int j, int k) { - int q = 0; //if both buttons are somehow simultaneously clicked then obviously something's wrong already + if(j < guiTop + 155 || j >= guiTop + 165) return; - if(page > 0) - q = button.handleInput(xSize, guiLeft, guiTop, false, i, j); - - if(page < maxPage && q == 0) - q = button.handleInput(xSize, guiLeft, guiTop, true, i, j); - - if(q != 0) { + if(page > 0 && i >= guiLeft + 24 && i <= guiLeft + 42) { + page--; + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + } + + if(page < maxPage && i >= guiLeft + 230 && i <= guiLeft + 248) { + page++; mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); - this.page += q; } } @@ -142,208 +170,4 @@ public class GUIBookLore extends GuiScreen { this.mc.thePlayer.closeScreen(); } } - - // turn page buttons, one-page, both page textures, sizes, positions, etc. - public enum GUIAppearance { - GUIDEBOOK(new GUIPage(272, 182, new ResourceLocation(RefStrings.MODID + ":textures/gui/book/book.png")).setScale(2F).setMargins(20, 20, 20), - new GUIPageButton(18, 10, 17, 148, new ResourceLocation(RefStrings.MODID + ":textures/gui/book/notebook_and_papers.png")).setUV(263, 0, 512, 512), - 0), //Guide Book - LOOSEPAPER(new GUIPage(130, 165, new ResourceLocation(RefStrings.MODID + ":textures/gui/book/notebook_and_papers.png"), false).setMargins(12, 10, 16).setUV(133, 0), - new GUIPageButton(18, 10, 17, 148, new ResourceLocation(RefStrings.MODID + ":textures/gui/book/notebook_and_papers.png")).setUV(263, 0, 512, 512), - 1), //Singular loose page - LOOSEPAPERS(new GUIPage(133, 165, new ResourceLocation(RefStrings.MODID + ":textures/gui/book/notebook_and_papers.png"), false).setMargins(12, 10, 16), - new GUIPageButton(18, 10, 17, 148, new ResourceLocation(RefStrings.MODID + ":textures/gui/book/notebook_and_papers.png")).setUV(263, 0, 512, 512), - 2), //Collection of loose pages - NOTEBOOK(new GUIPage(133, 165, new ResourceLocation(RefStrings.MODID + ":textures/gui/book/notebook_and_papers.png"), false).setMargins(10, 10, 16).setUV(0, 165), - new GUIPage(133, 165, new ResourceLocation(RefStrings.MODID + ":textures/gui/book/notebook_and_papers.png"), false).setMargins(10, 10, 16).setUV(133, 165), - new GUIPageButton(18, 10, 17, 148, new ResourceLocation(RefStrings.MODID + ":textures/gui/book/notebook_and_papers.png")).setUV(263, 0, 512, 512), - 3); - - public int itemTexture; - - protected GUIPage mainPage; //"Main" page, usually two pages. GUI accounts for one-paged main pages. - protected GUIPage auxPage; //"Aux" page, AKA the final page if the max pages is oddly numbered. - //If two-sided, text will be positioned on the left page. - protected GUIPageButton button; - - private GUIAppearance(GUIPage main, GUIPage aux, GUIPageButton button, int texture) { - this.mainPage = main; - this.auxPage = aux; - this.button = button; - this.itemTexture = texture; - } - - private GUIAppearance(GUIPage main, GUIPageButton button, int texture) { - this.mainPage = main; - this.auxPage = main; - this.button = button; - this.itemTexture = texture; - } - - } - - private static class GUIPage { - protected ResourceLocation texture; - - //UV positioning - protected int u = 0; //X/U pos in texture - protected int v = 0; //Y/V pos in texture - - protected int sizeX; //X size of the page - protected int sizeY; //Y size of the page - - //Text positioning - protected int marginInner = 10; //Margin from inner edge of page - protected int marginOuter = 10; //Margin from outer edge of page - protected int marginY = 20; //Margin from upper edge of page - protected boolean isTwoPages = true; //Has two pages to display text - protected float scale = 1.0F; //Scale of the text; larger values are smaller - protected int spacing = 9; //12 is a more comfortable spacing - - protected GUIPage(int x, int y, ResourceLocation texture, boolean twoPages) { - this.sizeX = x; - this.sizeY = y; - this.texture = texture; - this.isTwoPages = twoPages; - } - - protected GUIPage(int x, int y, ResourceLocation texture) { - this.sizeX = x; - this.sizeY = y; - this.texture = texture; - } - - protected GUIPage setUV(int u, int v) { - this.u = u; - this.v = v; - return this; - } - - protected GUIPage setScale(float scale) { - this.scale = scale; - return this; - } - - protected GUIPage setMargins(int inner, int outer, int upper) { - this.marginInner = inner; - this.marginOuter = outer; - this.marginY = upper; - return this; - } - - protected GUIPage setSpacing(int spacing) { - this.spacing = spacing; - return this; - } - - protected void renderText(String text, FontRenderer renderer, int left, int top, boolean secondPage) { - int width = (isTwoPages ? sizeX / 2 : sizeX) - marginInner - marginOuter; - int widthScaled = (int) (width * scale); - - List lines = new ArrayList(); - String[] words = text.split(" "); - - lines.add(words[0]); - int indent = renderer.getStringWidth(words[0]); - - for(int w = 1; w < words.length; w++) { - - if(words[w].equals("$")) { - if(w + 1 < words.length && !words[w + 1].equals("$")) { - lines.add(words[++w]); - indent = renderer.getStringWidth(words[w]); - } else - lines.add(""); - - continue; - } - - indent += renderer.getStringWidth(" " + words[w]); - - if(indent <= widthScaled) { - String last = lines.get(lines.size() - 1); - lines.set(lines.size() - 1, last += (" " + words[w])); - } else { - lines.add(words[w]); - indent = renderer.getStringWidth(words[w]); - } - } - - GL11.glPushMatrix(); - GL11.glScalef(1F/scale, 1F/scale, 1F); - - int sideOffset = secondPage ? sizeX / 2 + marginInner : marginOuter; - - for(int l = 0; l < lines.size(); l++) { - renderer.drawString(lines.get(l), (int)((left + sideOffset) * scale), (int)((top + marginY) * scale + (spacing * l)), 4210752); - } - - GL11.glPopMatrix(); - } - } - - private static class GUIPageButton { - protected ResourceLocation texture; - - protected int sizeX; //size of a single button; full texture is 2*sizeX : 2*sizeZ - protected int sizeY; - protected int x; //x position on page, relative to edge of the page it is on. - protected int y; //y position on page, relative to the top edge of the page. - - /* Left, Unsel | Right, Unsel - * Left, Sel | Right, Sel - */ - protected int u = 0; //upper lefthand corner where the button textures lie. - protected int v = 0; //assumes uniform size for each. - protected int sizeU = sizeX * 2; //Size of UV texture - protected int sizeV = sizeY * 2; - - protected GUIPageButton(int sizeX, int sizeY, int x, int y, ResourceLocation tex) { - this.sizeX = sizeX; - this.sizeY = sizeY; - this.x = x; - this.y = y; - this.texture = tex; - } - - protected GUIPageButton setUV(int u, int v, int sizeU, int sizeV) { - this.u = u; - this.v = v; - this.sizeU = sizeU; - this.sizeV = sizeV; - return this; - } - - protected void renderButton(GuiScreen screen, int width, int left, int top, boolean rightPage, int i, int j) { - Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - boolean overY = j >= top + y && j < top + y + sizeY; - - if(!rightPage) { - if(i >= left + x && i < left + x + sizeX && overY) { - func_146110_a(left + x, top + y, u, v + sizeY, sizeX, sizeY, sizeU, sizeV); - } else { - func_146110_a(left + x, top + y, u, v, sizeX, sizeY, sizeU, sizeV); - } - } else { - if(i >= left + width - x - sizeX && i < left + width - x && overY) { - func_146110_a(left + width - x - sizeX, top + y, u + sizeX, v + sizeY, sizeX, sizeY, sizeU, sizeV); - } else { - func_146110_a(left + width - x - sizeX, top + y, u + sizeX, v, sizeX, sizeY, sizeU, sizeV); - } - } - } - - protected int handleInput(int width, int left, int top, boolean rightPage, int i, int j) { - boolean overY = j >= top + y && j < top + y + sizeY; - if(!rightPage) { - if(i >= left + x && i < left + x + sizeX && overY) - return -1; - } else { - if(i >= left + width - x - sizeX && i < left + width - x && overY) - return 1; - } - - return 0; - } - } } \ No newline at end of file diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 35b9cb0d5..5454ea196 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -5355,7 +5355,7 @@ public class ModItems { record_glass = new ItemModRecord("glass").setUnlocalizedName("record_glass").setCreativeTab(null).setTextureName(RefStrings.MODID + ":record_glass"); book_guide = new ItemGuideBook().setUnlocalizedName("book_guide").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":book_guide"); - book_lore = new ItemBookLore().setUnlocalizedName("book_lore").setCreativeTab(null).setTextureName(RefStrings.MODID + ":holotape"); + book_lore = new ItemBookLore().setUnlocalizedName("book_lore").setCreativeTab(null).setTextureName(RefStrings.MODID + ":book_pages"); holotape_image = new ItemHolotapeImage().setUnlocalizedName("holotape_image").setCreativeTab(null).setTextureName(RefStrings.MODID + ":holotape"); holotape_damaged = new Item().setUnlocalizedName("holotape_damaged").setCreativeTab(null).setTextureName(RefStrings.MODID + ":holotape_damaged"); diff --git a/src/main/java/com/hbm/items/special/ItemBookLore.java b/src/main/java/com/hbm/items/special/ItemBookLore.java index b34aa2598..805b5c7c1 100644 --- a/src/main/java/com/hbm/items/special/ItemBookLore.java +++ b/src/main/java/com/hbm/items/special/ItemBookLore.java @@ -3,7 +3,6 @@ package com.hbm.items.special; import java.util.List; import com.hbm.inventory.gui.GUIBookLore; -import com.hbm.inventory.gui.GUIBookLore.GUIAppearance; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IGUIProvider; @@ -58,31 +57,53 @@ public class ItemBookLore extends Item implements IGUIProvider { return "book_lore." + type.keyI18n; } - protected IIcon[] icons; + //Textures - public final static String[] itemTextures = new String[] { ":book_guide", ":paper_loose", ":papers_loose", ":notebook" }; + @SideOnly(Side.CLIENT) protected IIcon[] overlays; + @Override @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister reg) { - String[] iconStrings = itemTextures; - this.icons = new IIcon[itemTextures.length]; + super.registerIcons(reg); - for(int i = 0; i < icons.length; i++) { - this.icons[i] = reg.registerIcon(RefStrings.MODID + itemTextures[i]); + this.overlays = new IIcon[2]; + this.overlays[0] = reg.registerIcon(RefStrings.MODID + ":book_cover"); + this.overlays[1] = reg.registerIcon(RefStrings.MODID + ":book_title"); + } + + @Override + @SideOnly(Side.CLIENT) + public boolean requiresMultipleRenderPasses() { return true; } + + @Override + public int getRenderPasses(int metadata) { return 3; } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIconFromDamageForRenderPass(int meta, int pass) { + if(pass == 0) return this.itemIcon; + return overlays[pass - 1]; + } + + @Override + @SideOnly(Side.CLIENT) + public int getColorFromItemStack(ItemStack stack, int pass) { + switch(pass) { + default: return 0xFFFFFF; + case 1: //book cover + if(stack.hasTagCompound()) { + int color = stack.stackTagCompound.getInteger("cov_col"); + if(color > 0) return color; + } + return 0x303030; + case 2: //title color + if(stack.hasTagCompound()) { + int color = stack.stackTagCompound.getInteger("tit_col"); + if(color > 0) return color; + } + return 0xFFFFFF; } } - - @Override - public IIcon getIconIndex(ItemStack stack) { - return this.getIcon(stack, 1); - } - - @Override - public IIcon getIcon(ItemStack stack, int pass) { - BookLoreType type = BookLoreType.getTypeFromStack(stack); - - return this.icons[type.appearance.itemTexture]; - } @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { @@ -96,57 +117,51 @@ public class ItemBookLore extends Item implements IGUIProvider { } public enum BookLoreType { - TEST(true, "test", 5, GUIAppearance.NOTEBOOK), - BOOK_IODINE(true, "book_iodine", 3, GUIAppearance.LOOSEPAPERS) { + TEST(true, "test", 5), + BOOK_IODINE(true, "book_iodine", 3) { public String resolveKey(String key, NBTTagCompound tag) { return I18nUtil.resolveKey(key, tag.getInteger("mku_slot")); }}, - BOOK_PHOSPHOROUS(true, "book_phosphorous", 2, GUIAppearance.LOOSEPAPERS) { + BOOK_PHOSPHOROUS(true, "book_phosphorous", 2) { public String resolveKey(String key, NBTTagCompound tag) { return I18nUtil.resolveKey(key, tag.getInteger("mku_slot")); }}, - BOOK_DUST(true, "book_dust", 3, GUIAppearance.LOOSEPAPERS) { + BOOK_DUST(true, "book_dust", 3) { public String resolveKey(String key, NBTTagCompound tag) { return I18nUtil.resolveKey(key, tag.getInteger("mku_slot")); }}, - BOOK_MERCURY(true, "book_mercury", 2, GUIAppearance.LOOSEPAPERS) { + BOOK_MERCURY(true, "book_mercury", 2) { public String resolveKey(String key, NBTTagCompound tag) { return I18nUtil.resolveKey(key, tag.getInteger("mku_slot")); }}, - BOOK_FLOWER(true, "book_flower", 2, GUIAppearance.LOOSEPAPERS) { + BOOK_FLOWER(true, "book_flower", 2) { public String resolveKey(String key, NBTTagCompound tag) { return I18nUtil.resolveKey(key, tag.getInteger("mku_slot")); }}, - BOOK_SYRINGE(true, "book_syringe", 2, GUIAppearance.LOOSEPAPERS) { + BOOK_SYRINGE(true, "book_syringe", 2) { public String resolveKey(String key, NBTTagCompound tag) { return I18nUtil.resolveKey(key, tag.getInteger("mku_slot")); }}, - RESIGNATION_NOTE(true, "resignation_note", 3, GUIAppearance.NOTEBOOK), - MEMO_STOCKS(false, "memo_stocks", 1, GUIAppearance.LOOSEPAPER), - MEMO_SCHRAB_GSA(false, "memo_schrab_gsa", 2, GUIAppearance.LOOSEPAPERS), - MEMO_SCHRAB_RD(false, "memo_schrab_rd", 4, GUIAppearance.LOOSEPAPERS), - MEMO_SCHRAB_NUKE(true, "memo_schrab_nuke", 3, GUIAppearance.LOOSEPAPERS), + RESIGNATION_NOTE(true, "resignation_note", 3), + MEMO_STOCKS(false, "memo_stocks", 1), + MEMO_SCHRAB_GSA(false, "memo_schrab_gsa", 2), + MEMO_SCHRAB_RD(false, "memo_schrab_rd", 4), + MEMO_SCHRAB_NUKE(true, "memo_schrab_nuke", 3), ; - //Why? it's quite simple; i am too burnt out and also doing it the other way - //is too inflexible for my taste - public final GUIAppearance appearance; //gui and item texture appearance - public boolean hasAuthor = false; public final String keyI18n; public final int pages; - private BookLoreType(Boolean author, String key, int max, GUIAppearance appearance) { + private BookLoreType(Boolean author, String key, int max) { this.hasAuthor = author; this.keyI18n = key; this.pages = max; - this.appearance = appearance; } - private BookLoreType(String key, int max, GUIAppearance appearance) { + private BookLoreType(String key, int max) { this.keyI18n = key; this.pages = max; - this.appearance = appearance; } /** Function to resolve I18n keys using potential save-dependent information, a la format specifiers. */ diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index cec6b2cbc..539596cf5 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -323,68 +323,68 @@ book.starter.page18=vær is just a guy who has been trapped in the grey void fea book_lore.author=By %s book_lore.test.name=Test book_lore.test.author=the dude -book_lore.test.page.1=>hello anons before i begin let me clarify that i'm not gay. >Be me >This night >18 > At hanging out with my best friend with my parents gone for a few days >We've been best friends for a year now >Been drinking a bit and playing lots of video games and ordered a pizza >We were having a blast >At a certain point in the night like around 9:00 he makes a really funny joke that I don't remember but I know that it made us both laugh really hard > With out thinking I brush my right hand through his semi-curly black hair and call him a funny boy >He blushes >I realize I'm feeling flustered >We're kinda close >All of the sudden he kisses me and for some reason I kiss him back >We make love >Cuddle together and fall asleep >Wake up in the middle of the night with his head snuggled up on my chest and neck area >It feels nice but I'm not a homosexual -book_lore.test.page.2=I'm typing this as he's asleep in my arms. How do I let my best friend down nicely? I don't want to be a [redacted] /b/ -book_lore.test.page.3=3 -book_lore.test.page.4=4 -book_lore.test.page.5=5 +book_lore.test.page.0=>hello anons before i begin let me clarify that i'm not gay. >Be me >This night >18 > At hanging out with my best friend with my parents gone for a few days >We've been best friends for a year now >Been drinking a bit and playing lots of video games and ordered a pizza >We were having a blast >At a certain point in the night like around 9:00 he makes a really funny joke that I don't remember but I know that it made us both laugh really hard > With out thinking I brush my right hand through his semi-curly black hair and call him a funny boy >He blushes >I realize I'm feeling flustered >We're kinda close >All of the sudden he kisses me and for some reason I kiss him back >We make love >Cuddle together and fall asleep >Wake up in the middle of the night with his head snuggled up on my chest and neck area >It feels nice but I'm not a homosexual +book_lore.test.page.1=I'm typing this as he's asleep in my arms. How do I let my best friend down nicely? I don't want to be a [redacted] /b/ +book_lore.test.page.2=3 +book_lore.test.page.3=4 +book_lore.test.page.4=5 book_lore.book_iodine.name=Note book_lore.book_iodine.author=Dave -book_lore.book_iodine.page.1=alright you will not believe this, but old man weathervane finally managed to show up again since he left two weeks ago and what's more surprising is the fact that he actually decided to spill the beans on what they were doing in the canyon: -book_lore.book_iodine.page.2=apparently the morons from R&D discovered a compound that is mostly inorganic, pretty much like a toxin in nature, but get this: the dying cells will reproduce said toxin and excrete it through the skin, creating an aerosol that is highly contagious. -book_lore.book_iodine.page.3=it's just like a virus, but not a virus. the composition is weird, you can mix it in any household bottle but you do have to get the order right. the doc told me that the first ingredient which is just powdered iodine crystals goes into slot %d +book_lore.book_iodine.page.0=alright you will not believe this, but old man weathervane finally managed to show up again since he left two weeks ago and what's more surprising is the fact that he actually decided to spill the beans on what they were doing in the canyon: +book_lore.book_iodine.page.1=apparently the morons from R&D discovered a compound that is mostly inorganic, pretty much like a toxin in nature, but get this: the dying cells will reproduce said toxin and excrete it through the skin, creating an aerosol that is highly contagious. +book_lore.book_iodine.page.2=it's just like a virus, but not a virus. the composition is weird, you can mix it in any household bottle but you do have to get the order right. the doc told me that the first ingredient which is just powdered iodine crystals goes into slot %d book_lore.book_phosphorous.name=Note book_lore.book_phosphorous.author=Dave -book_lore.book_phosphorous.page.1=heyo, it's me again. i assume you got my last memo, the doc wasn't too happy about it. i'll have to do this quick, the dunderheads from R&D are currently moaning again, probably over money. again. anyway, doc weathervane found that the second -book_lore.book_phosphorous.page.2=ingredient is red phosphorous, whihc has to be mixed into slot %d +book_lore.book_phosphorous.page.0=heyo, it's me again. i assume you got my last memo, the doc wasn't too happy about it. i'll have to do this quick, the dunderheads from R&D are currently moaning again, probably over money. again. anyway, doc weathervane found that the second +book_lore.book_phosphorous.page.1=ingredient is red phosphorous, whihc has to be mixed into slot %d book_lore.book_dust.name=Note book_lore.book_dust.author=Dave -book_lore.book_dust.page.1=the doc was furious when he found out that the R&D dorks kept the one remaining sample, ranting about gross negligence this and a doomsday scenario that. i told him to chill for a minute, getting all worked up isn't good for his blood pressure, not -book_lore.book_dust.page.2=that he has much blood left to begin with. one of the R&D morons slipped some more info into last week's circular, they call their little concoction \"MKU\" whatever that means, and that it contains actual household lint. can you believe that? one of the most -book_lore.book_dust.page.3=dangerous inventions of theirs and it contains dust. strangely they also mentioned that it goes into slot %d +book_lore.book_dust.page.0=the doc was furious when he found out that the R&D dorks kept the one remaining sample, ranting about gross negligence this and a doomsday scenario that. i told him to chill for a minute, getting all worked up isn't good for his blood pressure, not +book_lore.book_dust.page.1=that he has much blood left to begin with. one of the R&D morons slipped some more info into last week's circular, they call their little concoction \"MKU\" whatever that means, and that it contains actual household lint. can you believe that? one of the most +book_lore.book_dust.page.2=dangerous inventions of theirs and it contains dust. strangely they also mentioned that it goes into slot %d book_lore.book_mercury.name=Note book_lore.book_mercury.author=Dave -book_lore.book_mercury.page.1=well that settles that. not counting the vomitting blood part, the toxicological report mostly resembles that of mercury poisoning. why? because our little mix also contains mercury! i just wonder where all that stuff comes from when being -book_lore.book_mercury.page.2=replicated by the body? whatever, the mercury goes into slot %d +book_lore.book_mercury.page.0=well that settles that. not counting the vomitting blood part, the toxicological report mostly resembles that of mercury poisoning. why? because our little mix also contains mercury! i just wonder where all that stuff comes from when being +book_lore.book_mercury.page.1=replicated by the body? whatever, the mercury goes into slot %d book_lore.book_flower.name=Note book_lore.book_flower.author=Dave -book_lore.book_flower.page.1=remember when i mentioned in my first memo that the compound is mostly anorganic? well guess what, the old man shared the fourth ingredient: ipomoea nil, a genus of flower. morning glory! it might be due to its low sulfur content, whatever might be the case, -book_lore.book_flower.page.2=it does not work with other flowers. the morning glory goes into slot %d +book_lore.book_flower.page.0=remember when i mentioned in my first memo that the compound is mostly anorganic? well guess what, the old man shared the fourth ingredient: ipomoea nil, a genus of flower. morning glory! it might be due to its low sulfur content, whatever might be the case, +book_lore.book_flower.page.1=it does not work with other flowers. the morning glory goes into slot %d book_lore.book_syringe.name=Note book_lore.book_syringe.author=Dave -book_lore.book_syringe.page.1=a little addendum to my fifth message, obviously you have to store this MKU stuff in a container. the R&D nuts used regular metal syringes that they got from medical. surplus ware i presume, they got thousands of needles just lying around. the metal -book_lore.book_syringe.page.2=syringe goes into slot %d +book_lore.book_syringe.page.0=a little addendum to my fifth message, obviously you have to store this MKU stuff in a container. the R&D nuts used regular metal syringes that they got from medical. surplus ware i presume, they got thousands of needles just lying around. the metal +book_lore.book_syringe.page.1=syringe goes into slot %d book_lore.resignation_note.name=Letter of Resignation book_lore.resignation_note.author=Kosma -book_lore.resignation_note.page.1=Management downsized our department again yesterday. Those idiots only have themselves to blame, I don't know what they were expecting after that fiasco. Who the hell leaks that sort of information? We're losing millions and -book_lore.resignation_note.page.2=it's ME who's the one out of a job now. I'M the one being asked to resign. I hope you asshats finally learn from your overabundance of mistakes and take that stick out of your ass. -book_lore.resignation_note.page.3=I'm not coming back on Friday. Just send the paycheck. +book_lore.resignation_note.page.0=Management downsized our department again yesterday. Those idiots only have themselves to blame, I don't know what they were expecting after that fiasco. Who the hell leaks that sort of information? We're losing millions and +book_lore.resignation_note.page.1=it's ME who's the one out of a job now. I'M the one being asked to resign. I hope you asshats finally learn from your overabundance of mistakes and take that stick out of your ass. +book_lore.resignation_note.page.2=I'm not coming back on Friday. Just send the paycheck. book_lore.memo_stocks.name=Intracorporate Memorandum -book_lore.memo_stocks.page.1=Investor Relations - $ $ There's been some glaring discrepancies in the figures provided for the latest quarterly report. It would be prudent for the financial department to make some adjustments, so there won't be any concern. +book_lore.memo_stocks.page.0=Investor Relations - $ $ There's been some glaring discrepancies in the figures provided for the latest quarterly report. It would be prudent for the financial department to make some adjustments, so there won't be any concern. book_lore.memo_schrab_gsa.name=Internal Memorandum -book_lore.memo_schrab_gsa.page.1=Contract Management - $ $ Legal has made a breakthrough with the DLA. They've awarded us with a 45 BILLION GSA Schedule for further procurement and research of saralloy. At current estimates, that would be at minimum -book_lore.memo_schrab_gsa.page.2=a 40%% profit on related operations, let alone the possibility of future contracts. Due to the confidential nature, all fiscal evidence is to remain private. +book_lore.memo_schrab_gsa.page.0=Contract Management - $ $ Legal has made a breakthrough with the DLA. They've awarded us with a 45 BILLION GSA Schedule for further procurement and research of saralloy. At current estimates, that would be at minimum +book_lore.memo_schrab_gsa.page.1=a 40%% profit on related operations, let alone the possibility of future contracts. Due to the confidential nature, all fiscal evidence is to remain private. book_lore.memo_schrab_rd.name=Internal Memorandum -book_lore.memo_schrab_rd.page.1=Research & Development - $ $ Our main production method of saralloy has been through the new particle accelerator. However, the energy costs are exorbitantly high compared to the amount of output. -book_lore.memo_schrab_rd.page.2=Doctor Schrabauer, however, has discovered a new interaction - called "Strange Lepton Oscillation" - that could significantly reduce costs. Through a not entirely understood process, supplied electrons are transmuted into extremely -book_lore.memo_schrab_rd.page.3=high-energy photons, through a strange charm. This is an extreme exception to many established particle conversion laws, but preliminary experiments have proved that these protons transmute into up and down quarks, eventually creating saralloy. -book_lore.memo_schrab_rd.page.4=Strangely, the prototype requires Tungsten alloyed with small amounts of saralloy. In addition, a special capacitor is required to negate the leftover positive charge. +book_lore.memo_schrab_rd.page.0=Research & Development - $ $ Our main production method of saralloy has been through the new particle accelerator. However, the energy costs are exorbitantly high compared to the amount of output. +book_lore.memo_schrab_rd.page.1=Doctor Schrabauer, however, has discovered a new interaction - called "Strange Lepton Oscillation" - that could significantly reduce costs. Through a not entirely understood process, supplied electrons are transmuted into extremely +book_lore.memo_schrab_rd.page.2=high-energy photons, through a strange charm. This is an extreme exception to many established particle conversion laws, but preliminary experiments have proved that these protons transmute into up and down quarks, eventually creating saralloy. +book_lore.memo_schrab_rd.page.3=Strangely, the prototype requires Tungsten alloyed with small amounts of saralloy. In addition, a special capacitor is required to negate the leftover positive charge. book_lore.memo_schrab_nuke.name=Research Report book_lore.memo_schrab_nuke.author=Doctor Schrabauer -book_lore.memo_schrab_nuke.page.1=Our most recent investigation led us to the effects of nuclear explosions on materials. Thanks to our grant money, we *accidentally* tested our theory on direct saralloy synthesis from uranium. -book_lore.memo_schrab_nuke.page.2=Only our cyclotron has actually created saralloy previously. However, at our underground shot at Everwerpen, miniscule traces of saralloy were found in uranium ore at the site. All pure, metallic uranium nearby had fissioned. -book_lore.memo_schrab_nuke.page.3=As such, given enough uranium ore concentrated around an explosive, or perhaps even a dirty bomb rich in waste containing fissionable material, one could hypothetically create enough saralloy to collect manually. +book_lore.memo_schrab_nuke.page.0=Our most recent investigation led us to the effects of nuclear explosions on materials. Thanks to our grant money, we *accidentally* tested our theory on direct saralloy synthesis from uranium. +book_lore.memo_schrab_nuke.page.1=Only our cyclotron has actually created saralloy previously. However, at our underground shot at Everwerpen, miniscule traces of saralloy were found in uranium ore at the site. All pure, metallic uranium nearby had fissioned. +book_lore.memo_schrab_nuke.page.2=As such, given enough uranium ore concentrated around an explosive, or perhaps even a dirty bomb rich in waste containing fissionable material, one could hypothetically create enough saralloy to collect manually. cannery.f1=[ Press F1 for help ] diff --git a/src/main/resources/assets/hbm/textures/gui/book/book_lore.png b/src/main/resources/assets/hbm/textures/gui/book/book_lore.png new file mode 100644 index 0000000000000000000000000000000000000000..c5f8a42844b16892a2f0ba92ac28e271e41c44dc GIT binary patch literal 21362 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/book_cover.png b/src/main/resources/assets/hbm/textures/items/book_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..c073dfceda017919d8407bdab6cc2cfb8d2ceb6b GIT binary patch literal 244 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G|^0G|-o{rmU-|NsB(+qV}lUfi%@15kLz>|HWIimfEbFBmBG|3Aa#{Y&-( zMK}vQB8wRq_zr_GNS%G~10G|-o?c29UM@P?`IrG}JYe2E;hant5inS!jFZe$YF#O)e2QrAWz$3Dl zfr0NZ2s0kfUy%Y7wDELt4ABTadd8ZML4kw$Le!4`Gj-*iA3e%oS6c7#W2%0Gs)Vvc wg6@U5Qmzv^MG_0F;+``v?$drdS$s!6<6-8F3E{`C0?lFYboFyt=akR{0Bg%ZbpQYW literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/book_title.png b/src/main/resources/assets/hbm/textures/items/book_title.png new file mode 100644 index 0000000000000000000000000000000000000000..9513bc51beae6f61feb68855a451f736711b61e9 GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucL2FMJ#}EtuWC_Lx_5uzwBN&CJ9OL}hnvd1zJ_&=>|!S3j3^ HP6 Date: Sun, 18 Jun 2023 20:11:36 +0200 Subject: [PATCH 085/109] spicy himars ammo, more glyphid crap, compressor work --- .../blocks/generic/BlockGlyphidSpawner.java | 26 +- .../hbm/blocks/machine/MachineCompressor.java | 17 + .../hbm/blocks/rail/RailStandardCurve.java | 56 + .../java/com/hbm/config/GeneralConfig.java | 2 - .../com/hbm/entity/mob/EntityGlyphid.java | 7 + .../hbm/entity/mob/EntityGlyphidScout.java | 59 +- .../com/hbm/handler/EntityEffectHandler.java | 11 +- .../java/com/hbm/handler/HbmKeybinds.java | 2 +- .../handler/nei/CrucibleAlloyingHandler.java | 4 +- .../container/ContainerCompressor.java | 63 + .../hbm/inventory/fluid/tank/FluidTank.java | 2 +- .../com/hbm/inventory/gui/GUICompressor.java | 50 + .../inventory/material/MatDistribution.java | 2 +- .../inventory/recipes/CrucibleRecipes.java | 8 +- .../com/hbm/items/machine/ItemScraps.java | 67 +- .../com/hbm/items/weapon/ItemAmmoHIMARS.java | 27 +- .../render/tileentity/RenderCompressor.java | 27 +- .../machine/TileEntityMachineCompressor.java | 30 +- .../network/TileEntityConverterRfHe.java | 2 +- .../hbm/models/machines/electrolyser.obj | 8174 +++++++++++++---- .../gui/processing/gui_compressor.png | Bin 0 -> 3119 bytes .../gui/processing/gui_electrolyser_fluid.png | Bin 0 -> 3941 bytes .../gui/processing/gui_electrolyser_metal.png | Bin 0 -> 4062 bytes .../hbm/textures/items/scraps_additive.png | Bin 0 -> 731 bytes .../hbm/textures/items/scraps_liquid.png | Bin 0 -> 697 bytes .../textures/models/machines/compressor.png | Bin 2131 -> 3463 bytes .../textures/models/machines/electrolyser.png | Bin 17310 -> 95595 bytes .../models/projectiles/himars_single_lava.png | Bin 0 -> 1547 bytes .../projectiles/himars_standard_lava.png | Bin 0 -> 860 bytes 29 files changed, 6820 insertions(+), 1816 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/container/ContainerCompressor.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUICompressor.java create mode 100644 src/main/resources/assets/hbm/textures/gui/processing/gui_compressor.png create mode 100644 src/main/resources/assets/hbm/textures/gui/processing/gui_electrolyser_fluid.png create mode 100644 src/main/resources/assets/hbm/textures/gui/processing/gui_electrolyser_metal.png create mode 100644 src/main/resources/assets/hbm/textures/items/scraps_additive.png create mode 100644 src/main/resources/assets/hbm/textures/items/scraps_liquid.png create mode 100644 src/main/resources/assets/hbm/textures/models/projectiles/himars_single_lava.png create mode 100644 src/main/resources/assets/hbm/textures/models/projectiles/himars_standard_lava.png diff --git a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java index 155b256fc..a489018f1 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java +++ b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java @@ -1,9 +1,15 @@ package com.hbm.blocks.generic; import java.util.List; +import java.util.Random; import com.hbm.entity.mob.EntityGlyphid; +import com.hbm.entity.mob.EntityGlyphidBlaster; +import com.hbm.entity.mob.EntityGlyphidBombardier; +import com.hbm.entity.mob.EntityGlyphidBrawler; import com.hbm.entity.mob.EntityGlyphidScout; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; @@ -29,21 +35,33 @@ public class BlockGlyphidSpawner extends BlockContainer { public void updateEntity() { if(!worldObj.isRemote && worldObj.getTotalWorldTime() % 60 == 0 && this.worldObj.difficultySetting != EnumDifficulty.PEACEFUL) { - - List list = worldObj.getEntitiesWithinAABB(EntityGlyphid.class, AxisAlignedBB.getBoundingBox(xCoord - 4, yCoord + 1, zCoord - 4, xCoord + 5, yCoord + 4, zCoord + 5)); + + + float soot = PollutionHandler.getPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT); + List list = worldObj.getEntitiesWithinAABB(EntityGlyphid.class, AxisAlignedBB.getBoundingBox(xCoord - 6, yCoord + 1, zCoord - 6, xCoord + 7, yCoord + 9, zCoord + 7)); if(list.size() < 3) { - EntityGlyphid glyphid = new EntityGlyphid(worldObj); + EntityGlyphid glyphid = createGlyphid(soot); glyphid.setLocationAndAngles(xCoord + 0.5, yCoord + 1, zCoord + 0.5, worldObj.rand.nextFloat() * 360.0F, 0.0F); this.worldObj.spawnEntityInWorld(glyphid); } - if(worldObj.rand.nextInt(20) == 0) { + if(worldObj.rand.nextInt(20) == 0 && soot > 0) { EntityGlyphidScout scout = new EntityGlyphidScout(worldObj); scout.setLocationAndAngles(xCoord + 0.5, yCoord + 1, zCoord + 0.5, worldObj.rand.nextFloat() * 360.0F, 0.0F); this.worldObj.spawnEntityInWorld(scout); } } } + + public EntityGlyphid createGlyphid(float soot) { + Random rand = new Random(); + + if(soot < 1) { + return rand.nextInt(5) == 0 ? new EntityGlyphidBombardier(worldObj) : new EntityGlyphid(worldObj); + } + + return rand.nextInt(5) == 0 ? new EntityGlyphidBlaster(worldObj) : new EntityGlyphidBrawler(worldObj); + } } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineCompressor.java b/src/main/java/com/hbm/blocks/machine/MachineCompressor.java index 3aa083e0b..791ad2f77 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCompressor.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCompressor.java @@ -4,8 +4,10 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.tileentity.machine.TileEntityMachineCompressor; import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; public class MachineCompressor extends BlockDummyable { @@ -29,4 +31,19 @@ public class MachineCompressor extends BlockDummyable { public int getOffset() { return 2; } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + return this.standardOpenBehavior(world, x, y, z, player, 0); + } + + @Override + protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { + return super.checkRequirement(world, x, y, z, dir, o); + } + + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + } } diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java b/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java index bc3401b04..10bed1608 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java @@ -142,4 +142,60 @@ public class RailStandardCurve extends BlockDummyable implements IRailNTM { this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); } + + @Override + protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + dir = dir.getOpposite(); + + int dX = dir.offsetX; + int dZ = dir.offsetZ; + int rX = rot.offsetX; + int rZ = rot.offsetZ; + + return world.getBlock(x + dX, y, z + dZ).isReplaceable(world, x + dX, y, z + dZ) && + world.getBlock(x + rX, y, z + rZ).isReplaceable(world, x + rX, y, z + rZ) && + world.getBlock(x + dX + rX, y, z + dZ + rZ).isReplaceable(world, x + dX + rX, y, z + dZ + rZ) && + world.getBlock(x + dX + rX * 2, y, z + dZ + rZ * 2).isReplaceable(world, x + dX + rX * 2, y, z + dZ + rZ * 2) && + world.getBlock(x + dX * 2 + rX, y, z + dZ * 2 + rZ).isReplaceable(world, x + dX * 2 + rX, y, z + dZ * 2 + rZ) && + world.getBlock(x + dX * 2 + rX * 2, y, z + dZ * 2 + rZ * 2).isReplaceable(world, x + dX * 2 + rX * 2, y, z + dZ * 2 + rZ * 2) && + world.getBlock(x + dX * 3 + rX, y, z + dZ * 3 + rZ).isReplaceable(world, x + dX * 3 + rX, y, z + dZ * 3 + rZ) && + world.getBlock(x + dX * 3 + rX * 2, y, z + dZ * 3 + rZ * 2).isReplaceable(world, x + dX * 3 + rX * 2, y, z + dZ * 3 + rZ * 2) && + world.getBlock(x + dX * 2 + rX * 3, y, z + dZ * 2 + rZ * 3).isReplaceable(world, x + dX * 2 + rX * 3, y, z + dZ * 2 + rZ * 3) && + world.getBlock(x + dX * 3 + rX * 3, y, z + dZ * 3 + rZ * 3).isReplaceable(world, x + dX * 3 + rX * 3, y, z + dZ * 3 + rZ * 3) && + world.getBlock(x + dX * 4 + rX * 3, y, z + dZ * 4 + rZ * 3).isReplaceable(world, x + dX * 4 + rX * 3, y, z + dZ * 4 + rZ * 3) && + world.getBlock(x + dX * 3 + rX * 4, y, z + dZ * 3 + rZ * 4).isReplaceable(world, x + dX * 3 + rX * 4, y, z + dZ * 3 + rZ * 4) && + world.getBlock(x + dX * 4 + rX * 4, y, z + dZ * 4 + rZ * 4).isReplaceable(world, x + dX * 4 + rX * 4, y, z + dZ * 4 + rZ * 4); + } + + @Override + protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + + BlockDummyable.safeRem = true; + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + dir = dir.getOpposite(); + + int dX = dir.offsetX; + int dZ = dir.offsetZ; + int rX = rot.offsetX; + int rZ = rot.offsetZ; + + world.setBlock(x + dX, y, z + dZ, this, dir.ordinal(), 3); + world.setBlock(x + rX, y, z + rZ, this, rot.ordinal(), 3); + world.setBlock(x + dX + rX, y, z + dZ + rZ, this, rot.ordinal(), 3); + world.setBlock(x + dX + rX * 2, y, z + dZ + rZ * 2, this, rot.ordinal(), 3); + world.setBlock(x + dX * 2 + rX, y, z + dZ * 2 + rZ, this, dir.ordinal(), 3); + world.setBlock(x + dX * 2 + rX * 2, y, z + dZ * 2 + rZ * 2, this, dir.ordinal(), 3); + world.setBlock(x + dX * 3 + rX, y, z + dZ * 3 + rZ, this, dir.ordinal(), 3); + world.setBlock(x + dX * 3 + rX * 2, y, z + dZ * 3 + rZ * 2, this, dir.ordinal(), 3); + world.setBlock(x + dX * 2 + rX * 3, y, z + dZ * 2 + rZ * 3, this, rot.ordinal(), 3); + world.setBlock(x + dX * 3 + rX * 3, y, z + dZ * 3 + rZ * 3, this, rot.ordinal(), 3); + world.setBlock(x + dX * 4 + rX * 3, y, z + dZ * 4 + rZ * 3, this, dir.ordinal(), 3); + world.setBlock(x + dX * 3 + rX * 4, y, z + dZ * 3 + rZ * 4, this, rot.ordinal(), 3); + world.setBlock(x + dX * 4 + rX * 4, y, z + dZ * 4 + rZ * 4, this, rot.ordinal(), 3); + + BlockDummyable.safeRem = false; + } } diff --git a/src/main/java/com/hbm/config/GeneralConfig.java b/src/main/java/com/hbm/config/GeneralConfig.java index 557ca2a0c..97bdee342 100644 --- a/src/main/java/com/hbm/config/GeneralConfig.java +++ b/src/main/java/com/hbm/config/GeneralConfig.java @@ -24,7 +24,6 @@ public class GeneralConfig { public static boolean enableCrosshairs = true; public static boolean enableReflectorCompat = false; public static boolean enableRenderDistCheck = true; - public static boolean enableCustomDashKeybind = false; public static boolean enableReEval = true; public static boolean enableSilentCompStackErrors = true; public static boolean enableChunkyNEIHandler = true; @@ -82,7 +81,6 @@ public class GeneralConfig { enableCrosshairs = config.get(CATEGORY_GENERAL, "1.22_enableCrosshairs", true, "Shows custom crosshairs when an NTM gun is being held").getBoolean(true); enableReflectorCompat = config.get(CATEGORY_GENERAL, "1.24_enableReflectorCompat", false, "Enable old reflector oredict name (\"plateDenseLead\") instead of new \"plateTungCar\"").getBoolean(false); enableRenderDistCheck = config.get(CATEGORY_GENERAL, "1.25_enableRenderDistCheck", true, "Check invalid render distances (over 16, without OptiFine) and fix it").getBoolean(true); - enableCustomDashKeybind = config.get(CATEGORY_GENERAL, "1.26_enableCustomDashKeybind", false, "Enable custom dash keybind instead of shift").getBoolean(false); enableReEval = config.get(CATEGORY_GENERAL, "1.27_enableReEval", true, "Allows re-evaluating power networks on link remove instead of destroying and recreating").getBoolean(true); enableSilentCompStackErrors = config.get(CATEGORY_GENERAL, "1.28_enableSilentCompStackErrors", false, "Enabling this will disable log spam created by unregistered items in ComparableStack instances.").getBoolean(false); hintPos = CommonConfig.createConfigInt(config, CATEGORY_GENERAL, "1.29_hudOverlayPosition", "0: Top left\n1: Top right\n2: Center right\n3: Center Left", 0); diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java index 230fd56c2..bc570fe02 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java @@ -61,6 +61,12 @@ public class EntityGlyphid extends EntityMob { this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(1D); this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(5D); } + + @Override + protected Entity findPlayerToAttack() { + EntityPlayer entityplayer = this.worldObj.getClosestVulnerablePlayerToEntity(this, 32.0D); + return entityplayer != null && this.canEntityBeSeen(entityplayer) ? entityplayer : null; + } @Override public boolean attackEntityFrom(DamageSource source, float amount) { @@ -123,6 +129,7 @@ public class EntityGlyphid extends EntityMob { armor &= ~bit; armor = (byte) (armor & 0b11111); this.dataWatcher.updateObject(17, armor); + worldObj.playSoundAtEntity(this, "mob.zombie.woodbreak", 1.0F, 1.25F); break; } } diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java index ae20a35a8..181156e09 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java @@ -5,8 +5,11 @@ import com.hbm.main.ResourceManager; import com.hbm.world.feature.GlyphidHive; import net.minecraft.block.Block; +import net.minecraft.block.material.Material; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.ResourceLocation; import net.minecraft.util.Vec3; import net.minecraft.world.World; @@ -68,12 +71,33 @@ public class EntityGlyphidScout extends EntityGlyphid { this.homeZ = posZ; this.hasHome = true; } + + if(rand.nextInt(20) == 0) fleeingTick = 2; - if(this.ticksExisted > 0 && this.ticksExisted % 1200 == 0 && Vec3.createVectorHelper(posX - homeX, posY - homeY, posZ - homeZ).lengthVector() > 16) { + if(this.ticksExisted > 0 && this.ticksExisted % 1200 == 0 && Vec3.createVectorHelper(posX - homeX, posY - homeY, posZ - homeZ).lengthVector() > 8) { Block b = worldObj.getBlock((int) Math.floor(posX), (int) Math.floor(posY - 1), (int) Math.floor(posZ)); - if(b.isNormalCube() && b != ModBlocks.glyphid_base) { + int accuracy = 16; + for(int i = 0; i < accuracy; i++) { + float angle = (float) Math.toRadians(360D / accuracy * i); + Vec3 rot = Vec3.createVectorHelper(0, 0, 16); + rot.rotateAroundY(angle); + Vec3 pos = Vec3.createVectorHelper(this.posX, this.posY + 1, this.posZ); + Vec3 nextPos = Vec3.createVectorHelper(this.posX + rot.xCoord, this.posY + 1, this.posZ + rot.zCoord); + MovingObjectPosition mop = this.worldObj.rayTraceBlocks(pos, nextPos); + + if(mop != null && mop.typeOfHit == mop.typeOfHit.BLOCK) { + + Block block = worldObj.getBlock(mop.blockX, mop.blockY, mop.blockZ); + + if(block == ModBlocks.glyphid_base) { + return; + } + } + } + + if(b.getMaterial() != Material.air && b.isNormalCube() && b != ModBlocks.glyphid_base) { this.setDead(); worldObj.newExplosion(this, posX, posY, posZ, 5F, false, false); GlyphidHive.generate(worldObj, (int) Math.floor(posX), (int) Math.floor(posY), (int) Math.floor(posZ), rand); @@ -82,6 +106,37 @@ public class EntityGlyphidScout extends EntityGlyphid { } } + @Override + protected void updateWanderPath() { + this.worldObj.theProfiler.startSection("stroll"); + boolean flag = false; + int pathX = -1; + int pathY = -1; + int pathZ = -1; + float maxWeight = -99999.0F; + + for(int l = 0; l < 5; ++l) { + int x = MathHelper.floor_double(this.posX + (double) this.rand.nextInt(25) - 12.0D); + int y = MathHelper.floor_double(this.posY + (double) this.rand.nextInt(11) - 5.0D); + int z = MathHelper.floor_double(this.posZ + (double) this.rand.nextInt(25) - 12.0D); + float weight = this.getBlockPathWeight(x, y, z); + + if(weight > maxWeight) { + maxWeight = weight; + pathX = x; + pathY = y; + pathZ = z; + flag = true; + } + } + + if(flag) { + this.setPathToEntity(this.worldObj.getEntityPathToXYZ(this, pathX, pathY, pathZ, 10.0F, true, false, false, true)); + } + + this.worldObj.theProfiler.endSection(); + } + @Override public void writeEntityToNBT(NBTTagCompound nbt) { super.writeEntityToNBT(nbt); diff --git a/src/main/java/com/hbm/handler/EntityEffectHandler.java b/src/main/java/com/hbm/handler/EntityEffectHandler.java index 6d6f29d5c..d3d177c43 100644 --- a/src/main/java/com/hbm/handler/EntityEffectHandler.java +++ b/src/main/java/com/hbm/handler/EntityEffectHandler.java @@ -484,16 +484,7 @@ public class EntityEffectHandler { int dashCount = armorDashCount + armorModDashCount; - boolean dashActivated = false; - - - if(!GeneralConfig.enableCustomDashKeybind) { - dashActivated = !player.capabilities.isFlying && player.isSneaking(); - } else { - dashActivated = props.getKeyPressed(EnumKeybind.DASH); - } - - //System.out.println(dashCount); + boolean dashActivated = props.getKeyPressed(EnumKeybind.DASH); if(dashCount * 30 < props.getStamina()) props.setStamina(dashCount * 30); diff --git a/src/main/java/com/hbm/handler/HbmKeybinds.java b/src/main/java/com/hbm/handler/HbmKeybinds.java index b07989f7f..6ae2507e1 100644 --- a/src/main/java/com/hbm/handler/HbmKeybinds.java +++ b/src/main/java/com/hbm/handler/HbmKeybinds.java @@ -22,7 +22,7 @@ public class HbmKeybinds { public static KeyBinding jetpackKey = new KeyBinding(category + ".toggleBack", Keyboard.KEY_C, category); public static KeyBinding hudKey = new KeyBinding(category + ".toggleHUD", Keyboard.KEY_V, category); public static KeyBinding reloadKey = new KeyBinding(category + ".reload", Keyboard.KEY_R, category); - public static KeyBinding dashKey = new KeyBinding(category + ".dash", Keyboard.KEY_F, category); + public static KeyBinding dashKey = new KeyBinding(category + ".dash", Keyboard.KEY_LSHIFT, category); public static KeyBinding trainKey = new KeyBinding(category + ".trainInv", Keyboard.KEY_R, category); public static KeyBinding craneUpKey = new KeyBinding(category + ".craneMoveUp", Keyboard.KEY_UP, category); diff --git a/src/main/java/com/hbm/handler/nei/CrucibleAlloyingHandler.java b/src/main/java/com/hbm/handler/nei/CrucibleAlloyingHandler.java index 1f2d9a359..80ccd314b 100644 --- a/src/main/java/com/hbm/handler/nei/CrucibleAlloyingHandler.java +++ b/src/main/java/com/hbm/handler/nei/CrucibleAlloyingHandler.java @@ -35,8 +35,8 @@ public class CrucibleAlloyingHandler extends TemplateRecipeHandler { public RecipeSet(CrucibleRecipe recipe) { List inputs = new ArrayList(); List outputs = new ArrayList(); - for(MaterialStack stack : recipe.input) inputs.add(ItemScraps.create(stack)); - for(MaterialStack stack : recipe.output) outputs.add(ItemScraps.create(stack)); + for(MaterialStack stack : recipe.input) inputs.add(ItemScraps.create(stack, true)); + for(MaterialStack stack : recipe.output) outputs.add(ItemScraps.create(stack, true)); this.template = new PositionedStack(new ItemStack(ModItems.crucible_template, 1, recipe.getId()), 75, 6); this.crucible = new PositionedStack(new ItemStack(ModBlocks.machine_crucible), 75, 42); diff --git a/src/main/java/com/hbm/inventory/container/ContainerCompressor.java b/src/main/java/com/hbm/inventory/container/ContainerCompressor.java new file mode 100644 index 000000000..32e147770 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerCompressor.java @@ -0,0 +1,63 @@ +package com.hbm.inventory.container; + +import com.hbm.tileentity.machine.TileEntityMachineCompressor; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerCompressor extends Container { + + private TileEntityMachineCompressor compressor; + + public ContainerCompressor(InventoryPlayer playerInv, TileEntityMachineCompressor tile) { + compressor = tile; + + //Fluid ID + this.addSlotToContainer(new Slot(tile, 0, 35, 72)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(playerInv, j + i * 9 + 9, 8 + j * 18, 122 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(playerInv, i, 8 + i * 18, 180)); + } + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return compressor.isUseableByPlayer(player); + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(index); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(index == 0) { + if(!this.mergeItemStack(var5, 1, this.inventorySlots.size(), true)) { + return null; + } + } else if(!this.mergeItemStack(var5, 0, 1, false)) { + return null; + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + } + + return var3; + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java index ee0dfe019..90e8b3bbf 100644 --- a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java +++ b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java @@ -238,7 +238,7 @@ public class FluidTank { list.add(fluid + "/" + maxFluid + "mB"); if(this.pressure != 0) { - list.add(EnumChatFormatting.RED + "" + this.pressure + "mB/l"); + list.add(EnumChatFormatting.RED + "" + this.pressure + " PU"); } type.addInfo(list); diff --git a/src/main/java/com/hbm/inventory/gui/GUICompressor.java b/src/main/java/com/hbm/inventory/gui/GUICompressor.java new file mode 100644 index 000000000..c31ee0baf --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUICompressor.java @@ -0,0 +1,50 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerCompressor; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityMachineCompressor; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUICompressor extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_compressor.png"); + private TileEntityMachineCompressor solidifier; + + public GUICompressor(InventoryPlayer invPlayer, TileEntityMachineCompressor tedf) { + super(new ContainerCompressor(invPlayer, tedf)); + solidifier = tedf; + + this.xSize = 176; + this.ySize = 204; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + //solidifier.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 35, guiTop + 36, 16, 52); + //this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 134, guiTop + 18, 16, 52, solidifier.power, solidifier.maxPower); + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + + String name = this.solidifier.hasCustomInventoryName() ? this.solidifier.getInventoryName() : I18n.format(this.solidifier.getInventoryName()); + + this.fontRendererObj.drawString(name, 70 - this.fontRendererObj.getStringWidth(name) / 2, 6, 0xC7C1A3); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } +} diff --git a/src/main/java/com/hbm/inventory/material/MatDistribution.java b/src/main/java/com/hbm/inventory/material/MatDistribution.java index a8793dc1c..11a636399 100644 --- a/src/main/java/com/hbm/inventory/material/MatDistribution.java +++ b/src/main/java/com/hbm/inventory/material/MatDistribution.java @@ -69,7 +69,7 @@ public class MatDistribution extends SerializableRecipe { registerOre(OreDictManager.AL.ore(), MAT_ALUMINIUM, INGOT.q(2), MAT_STONE, QUART.q(1)); } - registerOre(OreDictManager.COAL.ore(), MAT_COAL, GEM.q(4), MAT_STONE, QUART.q(1)); + registerOre(OreDictManager.COAL.ore(), MAT_CARBON, GEM.q(3), MAT_STONE, QUART.q(1)); registerOre(OreDictManager.GOLD.ore(), MAT_GOLD, INGOT.q(2), MAT_LEAD, NUGGET.q(3), MAT_STONE, QUART.q(1)); registerOre(OreDictManager.U.ore(), MAT_URANIUM, INGOT.q(2), MAT_LEAD, NUGGET.q(3), MAT_STONE, QUART.q(1)); registerOre(OreDictManager.TH232.ore(), MAT_THORIUM, INGOT.q(2), MAT_URANIUM, NUGGET.q(3), MAT_STONE, QUART.q(1)); diff --git a/src/main/java/com/hbm/inventory/recipes/CrucibleRecipes.java b/src/main/java/com/hbm/inventory/recipes/CrucibleRecipes.java index 1c87197ba..fecbd9e20 100644 --- a/src/main/java/com/hbm/inventory/recipes/CrucibleRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CrucibleRecipes.java @@ -248,7 +248,7 @@ public class CrucibleRecipes extends SerializableRecipe { if(!ores.isEmpty()) { List stacks = new ArrayList(); - stacks.add(ItemScraps.create(new MaterialStack(convert, (int) (shape.q(1) * out / in)))); + stacks.add(ItemScraps.create(new MaterialStack(convert, (int) (shape.q(1) * out / in)), true)); map.put(new OreDictStack(name), stacks); } } @@ -257,7 +257,7 @@ public class CrucibleRecipes extends SerializableRecipe { for(Entry> entry : Mats.materialOreEntries.entrySet()) { List stacks = new ArrayList(); for(MaterialStack mat : entry.getValue()) { - stacks.add(ItemScraps.create(mat)); + stacks.add(ItemScraps.create(mat, true)); } map.put(new OreDictStack(entry.getKey()), stacks); } @@ -265,7 +265,7 @@ public class CrucibleRecipes extends SerializableRecipe { for(Entry> entry : Mats.materialEntries.entrySet()) { List stacks = new ArrayList(); for(MaterialStack mat : entry.getValue()) { - stacks.add(ItemScraps.create(mat)); + stacks.add(ItemScraps.create(mat, true)); } map.put(entry.getKey().copy(), stacks); } @@ -293,7 +293,7 @@ public class CrucibleRecipes extends SerializableRecipe { for(Mold mold : ItemMold.molds) { ItemStack out = mold.getOutput(material); if(out != null) { - ItemStack scrap = ItemScraps.create(new MaterialStack(material, mold.getCost())); + ItemStack scrap = ItemScraps.create(new MaterialStack(material, mold.getCost()), true); ItemStack shape = new ItemStack(ModItems.mold, 1, mold.id); ItemStack basin = new ItemStack(mold.size == 0 ? ModBlocks.foundry_mold : mold.size == 1 ? ModBlocks.foundry_basin : Blocks.fire); ItemStack[] entry = new ItemStack[] {scrap, shape, basin, out}; diff --git a/src/main/java/com/hbm/items/machine/ItemScraps.java b/src/main/java/com/hbm/items/machine/ItemScraps.java index 3e6134ffa..5c3436148 100644 --- a/src/main/java/com/hbm/items/machine/ItemScraps.java +++ b/src/main/java/com/hbm/items/machine/ItemScraps.java @@ -9,25 +9,39 @@ import com.hbm.inventory.material.Mats; import com.hbm.inventory.material.Mats.MaterialStack; import com.hbm.items.ModItems; import com.hbm.items.special.ItemAutogen; +import com.hbm.lib.RefStrings; import com.hbm.util.I18nUtil; import com.hbm.inventory.material.NTMMaterial; import com.hbm.inventory.material.NTMMaterial.SmeltingBehavior; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IIcon; import net.minecraft.util.StatCollector; public class ItemScraps extends ItemAutogen { + + @SideOnly(Side.CLIENT) public IIcon liquidIcon; + @SideOnly(Side.CLIENT) public IIcon addiviceIcon; public ItemScraps() { super(null); } + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister reg) { + super.registerIcons(reg); + this.liquidIcon = reg.registerIcon(RefStrings.MODID + ":scraps_liquid"); + this.addiviceIcon = reg.registerIcon(RefStrings.MODID + ":scraps_additive"); + } + @Override @SideOnly(Side.CLIENT) public void getSubItems(Item item, CreativeTabs tab, List list) { @@ -38,8 +52,48 @@ public class ItemScraps extends ItemAutogen { } } + @Override + @SideOnly(Side.CLIENT) + public int getColorFromItemStack(ItemStack stack, int layer) { + + if(stack.hasTagCompound() && stack.stackTagCompound.getBoolean("liquid")) { + + NTMMaterial mat = Mats.matById.get(stack.getItemDamage()); + + if(mat != null) { + return mat.moltenColor; + } + } + + return super.getColorFromItemStack(stack, layer); + } + + @SideOnly(Side.CLIENT) + public IIcon getIconIndex(ItemStack stack) { + + if(stack.hasTagCompound() && stack.stackTagCompound.getBoolean("liquid")) { + + NTMMaterial mat = Mats.matById.get(stack.getItemDamage()); + + if(mat != null) { + if(mat.smeltable == mat.smeltable.SMELTABLE) return this.liquidIcon; + if(mat.smeltable == mat.smeltable.ADDITIVE) return this.addiviceIcon; + } + } + + return this.getIconFromDamage(stack.getItemDamage()); + } + @Override public String getItemStackDisplayName(ItemStack stack) { + + if(stack.hasTagCompound() && stack.stackTagCompound.getBoolean("liquid")) { + MaterialStack contents = getMats(stack); + if(contents != null) { + return I18nUtil.resolveKey(contents.material.getUnlocalizedName()); + } + } + return ("" + StatCollector.translateToLocal(this.getUnlocalizedNameInefficiently(stack) + ".name")).trim(); } @@ -48,7 +102,13 @@ public class ItemScraps extends ItemAutogen { MaterialStack contents = getMats(stack); if(contents != null) { - list.add(I18nUtil.resolveKey(contents.material.getUnlocalizedName()) + ", " + Mats.formatAmount(contents.amount, Keyboard.isKeyDown(Keyboard.KEY_LSHIFT))); + + if(stack.hasTagCompound() && stack.stackTagCompound.getBoolean("liquid")) { + list.add(Mats.formatAmount(contents.amount, Keyboard.isKeyDown(Keyboard.KEY_LSHIFT))); + if(contents.material.smeltable == contents.material.smeltable.ADDITIVE) list.add(EnumChatFormatting.DARK_RED + "Additive, not castable!"); + } else { + list.add(I18nUtil.resolveKey(contents.material.getUnlocalizedName()) + ", " + Mats.formatAmount(contents.amount, Keyboard.isKeyDown(Keyboard.KEY_LSHIFT))); + } } } @@ -69,11 +129,16 @@ public class ItemScraps extends ItemAutogen { } public static ItemStack create(MaterialStack stack) { + return create(stack, false); + } + + public static ItemStack create(MaterialStack stack, boolean liquid) { if(stack.material == null) return new ItemStack(ModItems.nothing); //why do i bother adding checks for fucking everything when they don't work ItemStack scrap = new ItemStack(ModItems.scraps, 1, stack.material.id); scrap.stackTagCompound = new NBTTagCompound(); scrap.stackTagCompound.setInteger("amount", stack.amount); + if(liquid) scrap.stackTagCompound.setBoolean("liquid", true); return scrap; } } diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java b/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java index b3d26faf8..a33cdff56 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java @@ -23,6 +23,7 @@ import com.hbm.potion.HbmPotion; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -39,7 +40,7 @@ import net.minecraft.util.Vec3; public class ItemAmmoHIMARS extends Item { - public static HIMARSRocket[] itemTypes = new HIMARSRocket[ /* >>> */ 7 /* <<< */ ]; + public static HIMARSRocket[] itemTypes = new HIMARSRocket[ /* >>> */ 8 /* <<< */ ]; public static final int SMALL = 0; public static final int LARGE = 1; @@ -48,6 +49,7 @@ public class ItemAmmoHIMARS extends Item { public static final int SMALL_TB = 4; public static final int LARGE_TB = 5; public static final int SMALL_MINI_NUKE = 6; + public static final int SMALL_LAVA = 7; public ItemAmmoHIMARS() { this.setHasSubtypes(true); @@ -64,6 +66,7 @@ public class ItemAmmoHIMARS extends Item { list.add(new ItemStack(item, 1, SMALL_HE)); list.add(new ItemStack(item, 1, SMALL_WP)); list.add(new ItemStack(item, 1, SMALL_TB)); + list.add(new ItemStack(item, 1, SMALL_LAVA)); list.add(new ItemStack(item, 1, SMALL_MINI_NUKE)); list.add(new ItemStack(item, 1, LARGE)); list.add(new ItemStack(item, 1, LARGE_TB)); @@ -103,6 +106,11 @@ public class ItemAmmoHIMARS extends Item { list.add(r + "Deals nuclear damage"); list.add(r + "Destroys blocks"); break; + case SMALL_LAVA: + list.add(y + "Strength: 20"); + list.add(r + "Creates volcanic lava"); + list.add(r + "Destroys blocks"); + break; case LARGE: list.add(y + "Strength: 50"); list.add(y + "Damage modifier: 5x"); @@ -139,13 +147,13 @@ public class ItemAmmoHIMARS extends Item { public void onUpdate(EntityArtilleryRocket rocket) { } } - public static void standardExplosion(EntityArtilleryRocket rocket, MovingObjectPosition mop, float size, float rangeMod, boolean breaksBlocks) { + public static void standardExplosion(EntityArtilleryRocket rocket, MovingObjectPosition mop, float size, float rangeMod, boolean breaksBlocks, Block slag, int slagMeta) { rocket.worldObj.playSoundEffect(rocket.posX, rocket.posY, rocket.posZ, "hbm:weapon.explosionMedium", 20.0F, 0.9F + rocket.worldObj.rand.nextFloat() * 0.2F); Vec3 vec = Vec3.createVectorHelper(rocket.motionX, rocket.motionY, rocket.motionZ).normalize(); ExplosionVNT xnt = new ExplosionVNT(rocket.worldObj, mop.hitVec.xCoord - vec.xCoord, mop.hitVec.yCoord - vec.yCoord, mop.hitVec.zCoord - vec.zCoord, size); if(breaksBlocks) { xnt.setBlockAllocator(new BlockAllocatorStandard(48)); - xnt.setBlockProcessor(new BlockProcessorStandard().setNoDrop().withBlockEffect(new BlockMutatorDebris(ModBlocks.block_slag, 1))); + xnt.setBlockProcessor(new BlockProcessorStandard().setNoDrop().withBlockEffect(new BlockMutatorDebris(slag, slagMeta))); } xnt.setEntityProcessor(new EntityProcessorCross(7.5).withRangeMod(rangeMod)); xnt.setPlayerProcessor(new PlayerProcessorStandard()); @@ -163,9 +171,10 @@ public class ItemAmmoHIMARS extends Item { private void init() { /* STANDARD ROCKETS */ - this.itemTypes[SMALL] = new HIMARSRocket("standard", "himars_standard", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 20F, 3F, false); }}; - this.itemTypes[SMALL_HE] = new HIMARSRocket("standard_he", "himars_standard_he", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 20F, 3F, true); }}; - this.itemTypes[LARGE] = new HIMARSRocket("single", "himars_single", 1) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 50F, 5F, true); }}; + this.itemTypes[SMALL] = new HIMARSRocket("standard", "himars_standard", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 20F, 3F, false, ModBlocks.slag, 1); }}; + this.itemTypes[SMALL_HE] = new HIMARSRocket("standard_he", "himars_standard_he", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 20F, 3F, true, ModBlocks.slag, 1); }}; + this.itemTypes[SMALL_LAVA] = new HIMARSRocket("standard_lava", "himars_standard_lava", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 20F, 3F, true, ModBlocks.volcanic_lava_block, 0); }}; + this.itemTypes[LARGE] = new HIMARSRocket("single", "himars_single", 1) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 50F, 5F, true, ModBlocks.slag, 1); }}; this.itemTypes[SMALL_MINI_NUKE] = new HIMARSRocket("standard_mini_nuke", "himars_standard_mini_nuke", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { @@ -177,7 +186,7 @@ public class ItemAmmoHIMARS extends Item { this.itemTypes[SMALL_WP] = new HIMARSRocket("standard_wp", "himars_standard_wp", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { - standardExplosion(rocket, mop, 20F, 3F, false); + standardExplosion(rocket, mop, 20F, 3F, false, ModBlocks.slag, 1); ExplosionLarge.spawnShrapnels(rocket.worldObj, (int) mop.hitVec.xCoord, (int) mop.hitVec.yCoord, (int) mop.hitVec.zCoord, 30); ExplosionChaos.burn(rocket.worldObj, (int) mop.hitVec.xCoord, (int) mop.hitVec.yCoord, (int) mop.hitVec.zCoord, 20); int radius = 30; @@ -200,14 +209,14 @@ public class ItemAmmoHIMARS extends Item { this.itemTypes[SMALL_TB] = new HIMARSRocket("standard_tb", "himars_standard_tb", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { - standardExplosion(rocket, mop, 20F, 10F, true); + standardExplosion(rocket, mop, 20F, 10F, true, ModBlocks.slag, 1); ExplosionLarge.spawnShrapnels(rocket.worldObj, (int) mop.hitVec.xCoord, (int) mop.hitVec.yCoord, (int) mop.hitVec.zCoord, 30); standardMush(rocket, mop, 20); }}; this.itemTypes[LARGE_TB] = new HIMARSRocket("single_tb", "himars_single_tb", 1) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { - standardExplosion(rocket, mop, 50F, 12F, true); + standardExplosion(rocket, mop, 50F, 12F, true, ModBlocks.slag, 1); ExplosionLarge.spawnShrapnels(rocket.worldObj, (int) mop.hitVec.xCoord, (int) mop.hitVec.yCoord, (int) mop.hitVec.zCoord, 30); standardMush(rocket, mop, 35); }}; diff --git a/src/main/java/com/hbm/render/tileentity/RenderCompressor.java b/src/main/java/com/hbm/render/tileentity/RenderCompressor.java index 1d6f0a04e..4c8eb0faa 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderCompressor.java +++ b/src/main/java/com/hbm/render/tileentity/RenderCompressor.java @@ -2,6 +2,7 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; +import com.hbm.blocks.BlockDummyable; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; @@ -14,11 +15,35 @@ public class RenderCompressor extends TileEntitySpecialRenderer { GL11.glPushMatrix(); GL11.glTranslated(x + 0.5D, y, z + 0.5D); GL11.glEnable(GL11.GL_LIGHTING); + + switch(tile.getBlockMetadata() - BlockDummyable.offset) { + case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; + } GL11.glDisable(GL11.GL_CULL_FACE); GL11.glShadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.compressor_tex); - ResourceManager.compressor.renderAll(); + ResourceManager.compressor.renderPart("Compressor"); + + double h = (System.currentTimeMillis() * 0.005) % 6D; + + if(h > 3) h = 6 - h; + + GL11.glPushMatrix(); + GL11.glTranslated(0, h - 3, 0); + ResourceManager.compressor.renderPart("Pump"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1.5, 0); + GL11.glRotated((System.currentTimeMillis() * -0.5) % 360, 1, 0, 0); + GL11.glTranslated(0, -1.5, 0); + ResourceManager.compressor.renderPart("Fan"); + GL11.glPopMatrix(); + GL11.glShadeModel(GL11.GL_FLAT); GL11.glEnable(GL11.GL_CULL_FACE); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java index 38afcc4fc..932e56e59 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java @@ -1,21 +1,45 @@ package com.hbm.tileentity.machine; +import com.hbm.inventory.container.ContainerCompressor; +import com.hbm.inventory.gui.GUICompressor; +import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; -public class TileEntityMachineCompressor extends TileEntityMachineBase { +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.world.World; + +public class TileEntityMachineCompressor extends TileEntityMachineBase implements IGUIProvider { public TileEntityMachineCompressor() { - super(0); + super(1); } @Override public String getName() { - return null; + return "container.machineCompressor"; } @Override public void updateEntity() { + if(!worldObj.isRemote) { + + } + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerCompressor(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUICompressor(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityConverterRfHe.java b/src/main/java/com/hbm/tileentity/network/TileEntityConverterRfHe.java index 0949504e7..7346c5066 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityConverterRfHe.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityConverterRfHe.java @@ -40,7 +40,7 @@ public class TileEntityConverterRfHe extends TileEntityLoadedBase implements IEn return 0; if(simulate) - return 0; + return maxReceive; recursionBrake = true; diff --git a/src/main/resources/assets/hbm/models/machines/electrolyser.obj b/src/main/resources/assets/hbm/models/machines/electrolyser.obj index cb38ef317..48e2cfa01 100644 --- a/src/main/resources/assets/hbm/models/machines/electrolyser.obj +++ b/src/main/resources/assets/hbm/models/machines/electrolyser.obj @@ -1,1779 +1,6405 @@ -# Blender v2.79 (sub 0) OBJ File: '' +# Blender v2.79 (sub 0) OBJ File: 'lyser2.blend' # www.blender.org -mtllib electrolyser.mtl -o Cube.002_Cube.011 -v 1.750445 2.755059 -3.250000 -v 2.217445 0.847998 -3.250000 -v 1.717445 0.847998 -3.250000 -v 2.217445 0.847997 -2.750000 -v 1.750445 2.755059 -2.750000 -v 1.717445 0.847997 -2.750000 -v 2.250000 2.754050 -2.750000 -v 2.104444 3.109622 -2.750000 -v 2.250000 2.754050 -3.250000 -v 2.104444 3.109622 -3.250000 -v 1.255321 3.251352 -2.750000 -v 1.609638 3.604429 -2.750000 -v 1.254558 3.751828 -2.749999 -v 1.255321 3.251352 -3.250000 -v 1.609638 3.604429 -3.250000 -v 1.254558 3.751828 -3.249999 -v 0.548897 3.251829 -2.750000 -v 0.548897 3.251829 -3.250000 -v 0.548897 3.751829 -3.249999 -v 1.750445 2.755059 -1.250000 -v 2.217445 0.847997 -1.250000 -v 1.717445 0.847997 -1.250000 -v 2.217445 0.847997 -0.750000 -v 1.750445 2.755059 -0.750000 -v 1.717445 0.847997 -0.750000 -v 2.250000 2.754050 -0.750000 -v 2.104444 3.109622 -0.750000 -v 2.250000 2.754050 -1.250000 -v 2.104444 3.109622 -1.250000 -v 1.255321 3.251351 -0.749999 -v 1.609638 3.604428 -0.749999 -v 1.254558 3.751828 -0.749999 -v 1.255321 3.251351 -1.250000 -v 1.609638 3.604428 -1.249999 -v 1.254558 3.751828 -1.249999 -v 0.548897 3.251829 -0.749999 -v 0.548897 3.251829 -1.250000 -v 0.548897 3.751829 -1.249999 -v 1.750445 2.755059 0.750000 -v 2.217445 0.847997 0.750000 -v 1.717445 0.847997 0.750000 -v 2.217445 0.847997 1.250000 -v 1.750445 2.755059 1.250000 -v 1.717445 0.847997 1.250000 -v 2.250000 2.754050 1.250000 -v 2.104444 3.109622 1.250000 -v 2.250000 2.754050 0.750000 -v 2.104444 3.109622 0.750000 -v 1.255321 3.251351 1.250000 -v 1.609638 3.604428 1.250001 -v 1.254558 3.751828 1.250001 -v 1.255321 3.251351 0.750001 -v 1.609638 3.604428 0.750001 -v 1.254558 3.751828 0.750001 -v 0.548897 3.251829 1.250000 -v 0.548897 3.251829 0.750001 -v 0.548897 3.751829 0.750001 -v 1.750445 2.755059 2.750000 -v 2.217445 0.847997 2.750000 -v 1.717445 0.847997 2.750000 -v 2.217445 0.847996 3.250000 -v 1.750445 2.755059 3.250000 -v 1.717445 0.847996 3.250000 -v 2.250000 2.754050 3.250000 -v 2.104444 3.109622 3.250000 -v 2.250000 2.754050 2.750000 -v 2.104444 3.109622 2.750000 -v 1.255321 3.251351 3.250000 -v 1.609638 3.604428 3.250000 -v 1.254558 3.751827 3.250001 -v 1.255321 3.251351 2.750000 -v 1.609638 3.604428 2.750000 -v 1.254558 3.751827 2.750001 -v 0.548897 3.251828 3.250000 -v 0.548897 3.251828 2.750000 -v 0.548897 3.751828 2.750001 -v -1.500000 -0.000001 4.500000 -v -2.499999 0.000001 -4.500001 -v -1.499999 0.000001 -4.500001 -v -1.499999 1.000001 -4.499999 -v -2.500001 0.999999 4.499999 -v -1.500002 0.999999 4.500000 -v 2.500001 1.000001 -4.499998 -v 2.500000 -0.000001 4.500000 -v 2.500000 0.000001 -4.500000 -v -2.500000 -0.000001 4.500000 -v -2.500000 1.000001 -4.500000 -v 1.500002 1.000001 -4.499999 -v 1.500001 0.000001 -4.500000 -v 2.499999 0.999999 4.500003 -v 1.500000 -0.000001 4.500000 -v 1.499998 0.999999 4.500001 -v -0.750001 2.249999 4.050001 -v 0.750000 2.360113 -3.175483 -v 0.587706 3.889888 -3.175482 -v 0.750000 3.889888 -3.175482 -v 0.750001 2.250001 -4.049997 -v 0.750000 2.250000 0.000001 -v -0.750000 2.250000 0.000000 -v -0.551251 3.999999 3.857973 -v -0.551250 3.807398 -3.857970 -v -0.551250 4.000000 -3.857970 -v 0.749999 2.360112 3.912016 -v 0.587704 3.889886 3.912017 -v 0.749999 3.889886 3.912017 -v 0.587706 2.360114 -3.912014 -v 0.587706 2.360113 -3.175483 -v 0.551250 4.000000 -3.857970 -v -0.750000 4.000000 -4.049997 -v 0.551249 3.999999 3.857974 -v -0.750001 3.999999 4.050001 -v 0.749999 3.999999 4.050002 -v 0.750000 4.000000 0.000002 -v -0.750000 4.000000 0.000001 -v 0.551249 3.807396 3.857974 -v 0.551250 3.807398 -3.857970 -v -0.551251 3.807396 3.857973 -v -0.750001 3.889887 2.162985 -v -0.587706 3.889887 2.899516 -v -0.750001 3.889887 2.899516 -v 0.749999 2.360112 3.175485 -v 0.587704 2.360112 3.912016 -v -0.587706 2.360112 2.899515 -v -0.750001 2.360112 2.899515 -v 0.749999 3.889887 2.899517 -v 0.587705 3.889887 2.162986 -v 0.749999 3.889887 2.162986 -v -0.750001 2.360113 2.162984 -v -0.587706 3.889887 2.162985 -v 0.749999 2.249999 4.050002 -v 0.587705 2.360113 2.162986 -v 0.749999 2.360113 2.162986 -v -0.587706 2.360113 2.162984 -v 0.749999 2.360112 2.899517 -v 0.587704 3.889887 2.899517 -v 0.750000 3.889887 -1.150482 -v 0.587705 3.889887 -1.887013 -v 0.750000 3.889887 -1.887013 -v 0.587704 2.360112 2.899517 -v 0.587705 2.360113 -1.887014 -v 0.750000 2.360113 -1.887014 -v 0.750000 2.250000 -3.037498 -v 0.750001 4.000000 -4.049997 -v 0.750001 2.360114 -3.912014 -v 0.750000 4.000000 -3.037497 -v 0.750001 3.889888 -3.912013 -v -0.750001 2.250000 3.037500 -v -0.750001 2.360112 3.912015 -v -0.750001 2.360112 3.175484 -v -0.750001 4.000000 3.037501 -v -0.750001 3.889886 3.912016 -v -0.750001 3.889887 3.175485 -v -0.750000 2.360113 -0.874515 -v -0.750000 2.250000 -1.012499 -v -0.750000 2.360113 -0.137984 -v -0.750000 4.000000 -1.012498 -v -0.750000 3.889887 -0.137983 -v -0.750000 3.889887 -0.874514 -v 0.750000 2.360113 0.874516 -v 0.750000 2.250000 1.012501 -v 0.750000 2.360113 0.137986 -v 0.750000 3.889887 0.874517 -v 0.750000 3.889887 0.137987 -v 0.750000 4.000000 1.012502 -v 0.749999 2.250000 2.025002 -v 0.749999 2.250000 3.037502 -v 0.749999 4.000000 2.025002 -v 0.749999 4.000000 3.037502 -v -0.750000 2.250000 -3.037498 -v -0.750000 2.360113 -2.162983 -v -0.750000 2.360113 -2.899513 -v -0.750000 4.000000 -2.024998 -v -0.750000 2.250000 -2.024998 -v -0.750000 4.000000 -3.037498 -v -0.750000 3.889887 -2.162983 -v -0.750000 3.889888 -2.899513 -v -0.750001 2.250000 1.012500 -v -0.750001 2.360113 1.887015 -v -0.750001 2.360113 1.150485 -v -0.750001 4.000000 2.025001 -v -0.750001 2.250000 2.025001 -v -0.750001 4.000000 1.012501 -v -0.750001 3.889887 1.887016 -v -0.750001 3.889887 1.150486 -v 0.750000 2.250000 -1.012499 -v 0.750000 2.360113 -1.150483 -v 0.750000 4.000000 -2.024998 -v 0.750000 2.250000 -2.024998 -v 0.750000 4.000000 -1.012498 -v 0.750000 2.360113 -0.137984 -v 0.750000 2.360113 -0.874514 -v 0.750000 3.889887 -0.137983 -v 0.750000 3.889887 -0.874513 -v -0.750001 2.360113 0.874516 -v -0.750000 2.360113 0.137985 -v -0.750001 3.889887 0.874517 -v -0.750000 3.889887 0.137986 -v -0.750000 2.360114 -3.912014 -v -0.750000 2.250001 -4.049997 -v -0.750000 2.360113 -3.175483 -v -0.750000 3.889888 -3.175482 -v -0.750000 3.889888 -3.912013 -v 0.749999 3.889887 3.175486 -v 0.749999 2.360113 1.887016 -v 0.750000 2.360113 1.150486 -v 0.749999 3.889887 1.887017 -v 0.750000 3.889887 1.150487 -v -0.750000 2.360113 -1.887014 -v -0.750000 2.360113 -1.150484 -v -0.750000 3.889887 -1.150483 -v -0.750000 3.889887 -1.887013 -v 0.750000 2.360113 -2.162982 -v 0.750000 2.360113 -2.899513 -v 0.750000 3.889887 -2.162982 -v 0.750000 3.889888 -2.899513 -v -0.587706 2.360112 3.912015 -v -0.587706 3.889887 3.175485 -v -0.587706 2.360112 3.175484 -v -0.587705 2.360113 -0.137984 -v -0.587705 3.889887 -0.874514 -v -0.587705 2.360113 -0.874515 -v 0.587705 2.360113 0.137986 -v 0.587705 3.889887 0.874517 -v 0.587705 2.360113 0.874516 -v -0.587705 2.360113 -2.162983 -v -0.587705 3.889888 -2.899513 -v -0.587705 2.360113 -2.899513 -v -0.587706 2.360113 1.887015 -v -0.587706 3.889887 1.150486 -v -0.587706 2.360113 1.150485 -v 0.587705 3.889887 -1.150482 -v 0.587705 2.360113 -1.150483 -v 0.587705 2.360113 -0.874514 -v 0.587705 3.889887 -0.137983 -v 0.587705 2.360113 -0.137984 -v -0.587706 2.360113 0.874516 -v -0.587705 3.889887 0.137986 -v -0.587705 2.360113 0.137985 -v -0.587705 2.360113 -3.175483 -v -0.587705 3.889888 -3.912013 -v -0.587705 2.360114 -3.912014 -v 0.587704 2.360112 3.175485 -v 0.587705 2.360113 1.150486 -v 0.587705 3.889887 1.887017 -v 0.587705 2.360113 1.887016 -v -0.587705 2.360113 -1.150484 -v -0.587705 3.889887 -1.887013 -v -0.587705 2.360113 -1.887014 -v 0.587706 2.360113 -2.899513 -v 0.587705 3.889887 -2.162982 -v 0.587705 2.360113 -2.162982 -v 0.587704 3.889887 3.175486 -v 0.587706 3.889888 -3.912013 -v 0.587705 3.889887 -0.874513 -v -0.587705 3.889887 -2.162983 -v 0.587706 3.889888 -2.899513 -v -0.587705 3.889887 -0.137983 -v 0.587705 3.889887 1.150487 -v -0.587706 3.889887 0.874517 -v -0.587706 3.889887 1.887016 -v 0.587705 3.889887 0.137987 -v -0.587705 3.889887 -1.150483 -v -0.587706 3.889886 3.912016 -v -0.587705 3.889888 -3.175482 -v 1.027183 1.687541 3.250000 -v 1.445061 0.972984 3.250000 -v 1.027183 0.972984 3.250000 -v 1.445061 1.687541 3.250000 -v 1.445061 0.972984 3.750000 -v 1.445061 1.687541 3.750000 -v 1.027183 0.972984 3.750000 -v 1.027183 1.687542 0.250000 -v 1.445061 0.972985 0.250000 -v 1.027183 0.972985 0.250000 -v 1.445061 1.687542 0.250000 -v 1.445061 0.972985 0.750001 -v 1.445061 1.687542 0.750001 -v 1.027183 0.972985 0.750001 -v 1.027183 1.687542 -0.750000 -v 1.445061 0.972985 -0.750000 -v 1.027183 0.972985 -0.750000 -v 1.445061 1.687542 -0.750000 -v 1.445061 0.972985 -0.250000 -v 1.445061 1.687542 -0.250000 -v 1.027183 0.972985 -0.250000 -v 1.027183 1.687542 -1.750000 -v 1.445061 0.972985 -1.750000 -v 1.027183 0.972985 -1.750000 -v 1.445061 1.687542 -1.750000 -v 1.445061 0.972985 -1.250000 -v 1.445061 1.687542 -1.250000 -v 1.027183 0.972985 -1.250000 -v 1.027183 1.687542 2.250000 -v 1.445061 0.972985 2.250000 -v 1.027183 0.972985 2.250000 -v 1.445061 1.687542 2.250000 -v 1.445061 0.972985 2.750000 -v 1.445061 1.687541 2.750000 -v 1.027183 0.972985 2.750000 -v 1.027183 1.687542 1.250000 -v 1.445061 0.972985 1.250000 -v 1.027183 0.972985 1.250000 -v 1.445061 1.687542 1.250000 -v 1.445061 0.972985 1.750000 -v 1.445061 1.687542 1.750000 -v 1.027183 0.972985 1.750000 -v 1.027183 1.687542 -2.750000 -v 1.445061 0.972986 -2.750000 -v 1.027183 0.972986 -2.750000 -v 1.445061 1.687542 -2.750000 -v 1.445061 0.972985 -2.250000 -v 1.445061 1.687542 -2.250000 -v 1.027183 0.972985 -2.250000 -v 1.027183 1.687543 -3.750000 -v 1.445061 0.972986 -3.750000 -v 1.027183 0.972986 -3.750000 -v 1.445061 1.687543 -3.750000 -v 1.445061 0.972986 -3.250000 -v 1.445061 1.687542 -3.250000 -v 1.027183 0.972986 -3.250000 -v -1.445061 0.972984 3.250000 -v -1.027183 1.687541 3.250000 -v -1.027183 0.972984 3.250000 -v -1.445061 0.972984 3.750001 -v -1.445061 1.687541 3.250000 -v -1.027183 0.972984 3.750001 -v -1.445061 1.687541 3.750001 -v -1.445061 0.972985 0.250001 -v -1.027183 1.687542 0.250001 -v -1.027183 0.972985 0.250001 -v -1.445061 0.972985 0.750001 -v -1.445061 1.687542 0.250001 -v -1.027183 0.972985 0.750001 -v -1.445061 1.687542 0.750001 -v -1.445061 0.972985 -0.750000 -v -1.027183 1.687542 -0.750000 -v -1.027183 0.972985 -0.750000 -v -1.445061 0.972985 -0.249999 -v -1.445061 1.687542 -0.750000 -v -1.027183 0.972985 -0.249999 -v -1.445061 1.687542 -0.249999 -v -1.445061 0.972985 -1.750000 -v -1.027183 1.687542 -1.750000 -v -1.027183 0.972985 -1.750000 -v -1.445061 0.972985 -1.250000 -v -1.445061 1.687542 -1.750000 -v -1.027183 0.972985 -1.250000 -v -1.445061 1.687542 -1.250000 -v -1.445061 0.972985 2.250001 -v -1.027183 1.687542 2.250001 -v -1.027183 0.972985 2.250001 -v -1.445061 0.972985 2.750001 -v -1.445061 1.687542 2.250001 -v -1.027183 0.972985 2.750001 -v -1.445061 1.687541 2.750001 -v -1.445061 0.972985 1.250000 -v -1.027183 1.687542 1.250000 -v -1.027183 0.972985 1.250000 -v -1.445061 0.972985 1.750000 -v -1.445061 1.687542 1.250000 -v -1.027183 0.972985 1.750000 -v -1.445061 1.687542 1.750000 -v -1.445061 0.972986 -2.750000 -v -1.027183 1.687542 -2.750000 -v -1.027183 0.972986 -2.750000 -v -1.445061 0.972985 -2.250000 -v -1.445061 1.687542 -2.750000 -v -1.027183 0.972985 -2.250000 -v -1.445061 1.687542 -2.250000 -v -1.445061 0.972986 -3.750000 -v -1.027183 1.687543 -3.750000 -v -1.027183 0.972986 -3.750000 -v -1.445061 0.972986 -3.250000 -v -1.445061 1.687543 -3.750000 -v -1.027183 0.972986 -3.250000 -v -1.445061 1.687542 -3.250000 -v 0.548897 3.751829 -2.749999 -v 0.548897 3.751829 -0.749999 -v 0.548897 3.751829 1.250001 -v 0.548897 3.751828 3.250001 -v 1.027183 1.687541 3.750000 -v 1.027183 1.687542 0.750001 -v 1.027183 1.687542 -0.250000 -v 1.027183 1.687542 -1.250000 -v 1.027183 1.687541 2.750000 -v 1.027183 1.687542 1.750000 -v 1.027183 1.687542 -2.250000 -v 1.027183 1.687542 -3.250000 -v -1.027183 1.687541 3.750001 -v -1.027183 1.687542 0.750001 -v -1.027183 1.687542 -0.249999 -v -1.027183 1.687542 -1.250000 -v -1.027183 1.687541 2.750001 -v -1.027183 1.687542 1.750000 -v -1.027183 1.687542 -2.250000 -v -1.027183 1.687542 -3.250000 -vt 0.589324 0.739609 -vt 0.625030 0.599581 -vt 0.589324 0.599581 -vt 0.660717 0.599581 -vt 0.696427 0.739609 -vt 0.696427 0.599581 -vt 0.696520 0.869665 -vt 0.660646 0.885395 -vt 0.660646 0.854212 -vt 0.624979 0.885395 -vt 0.589350 0.869665 -vt 0.624979 0.854212 -vt 0.696513 0.869525 -vt 0.660638 0.885394 -vt 0.660639 0.854191 -vt 0.660717 0.739609 -vt 0.696427 0.802086 -vt 0.625030 0.739609 -vt 0.589324 0.802086 -vt 0.625030 0.802086 -vt 0.624971 0.885394 -vt 0.589342 0.869525 -vt 0.624971 0.854191 -vt 0.660717 0.802086 -vt 0.696427 0.853949 -vt 0.625030 0.802086 -vt 0.589324 0.853949 -vt 0.625030 0.853949 -vt 0.589324 0.739609 -vt 0.625030 0.599581 -vt 0.589324 0.599581 -vt 0.660717 0.599581 -vt 0.696427 0.739609 -vt 0.696427 0.599581 -vt 0.696514 0.869665 -vt 0.660640 0.885395 -vt 0.660640 0.854212 -vt 0.624972 0.885395 -vt 0.589343 0.869665 -vt 0.624972 0.854212 -vt 0.696516 0.869531 -vt 0.660642 0.885400 -vt 0.660642 0.854198 -vt 0.660717 0.739609 -vt 0.696427 0.802086 -vt 0.625030 0.739609 -vt 0.589324 0.802086 -vt 0.625030 0.802086 -vt 0.624974 0.885400 -vt 0.589345 0.869531 -vt 0.624974 0.854198 -vt 0.660717 0.802086 -vt 0.696427 0.853949 -vt 0.625030 0.802086 -vt 0.589324 0.853949 -vt 0.625030 0.853949 -vt 0.589324 0.739609 -vt 0.625030 0.599581 -vt 0.589324 0.599581 -vt 0.660717 0.599581 -vt 0.696427 0.739609 -vt 0.696427 0.599581 -vt 0.696513 0.869651 -vt 0.660639 0.885381 -vt 0.660639 0.854198 -vt 0.624971 0.885381 -vt 0.589342 0.869651 -vt 0.624971 0.854198 -vt 0.696516 0.869533 -vt 0.660642 0.885402 -vt 0.660642 0.854199 -vt 0.660717 0.739609 -vt 0.696427 0.802086 -vt 0.625030 0.739609 -vt 0.589324 0.802086 -vt 0.625030 0.802086 -vt 0.624974 0.885402 -vt 0.589345 0.869533 -vt 0.624974 0.854199 -vt 0.660717 0.802086 -vt 0.696427 0.853949 -vt 0.625030 0.802086 -vt 0.589324 0.853949 -vt 0.625030 0.853949 -vt 0.589324 0.739609 -vt 0.625030 0.599581 -vt 0.589324 0.599581 -vt 0.660717 0.599581 -vt 0.696427 0.739609 -vt 0.696427 0.599581 -vt 0.696523 0.869665 -vt 0.660649 0.885395 -vt 0.660649 0.854212 -vt 0.624982 0.885395 -vt 0.589353 0.869665 -vt 0.624982 0.854212 -vt 0.696516 0.869524 -vt 0.660642 0.885393 -vt 0.660642 0.854190 -vt 0.660717 0.739609 -vt 0.696427 0.802086 -vt 0.625030 0.739609 -vt 0.589324 0.802086 -vt 0.625030 0.802086 -vt 0.624974 0.885393 -vt 0.589345 0.869524 -vt 0.624974 0.854190 -vt 0.660717 0.802086 -vt 0.696427 0.853949 -vt 0.625030 0.802086 -vt 0.589324 0.853949 -vt 0.625030 0.853949 -vt 0.071429 1.000000 -vt 0.000000 0.250000 -vt 0.071429 0.250000 -vt 0.596910 0.004769 -vt 0.000595 0.081787 -vt 0.000595 0.004769 -vt 0.357143 0.250000 -vt 1.000000 0.166667 -vt 0.357143 0.166667 -vt 0.285714 0.250000 -vt 0.357143 0.166667 -vt 0.285714 0.166667 -vt 0.357143 0.250000 -vt 1.000000 0.166667 -vt 0.071429 0.250000 -vt 0.000000 0.166667 -vt 0.000000 0.250000 -vt 0.285714 0.250000 -vt 0.285714 0.166667 -vt 0.000000 0.250000 -vt 0.071429 0.166667 -vt 0.000000 0.166667 -vt 0.071429 0.250000 -vt 0.596978 0.004860 -vt 0.000595 0.081775 -vt 0.000595 0.004859 -vt 0.568726 0.729189 -vt 0.413642 0.854246 -vt 0.360755 0.729189 -vt 0.357143 1.000000 -vt 0.285714 0.250000 -vt 0.357143 0.250000 -vt 0.285714 1.000000 -vt 0.491249 0.547007 -vt 0.504420 0.713515 -vt 0.491249 0.713515 -vt 0.568721 0.729189 -vt 0.413637 0.854246 -vt 0.360750 0.729189 -vt 1.000000 0.250000 -vt 0.678507 0.374792 -vt 0.357143 0.250000 -vt 1.000000 0.250000 -vt 0.678506 0.374779 -vt 0.357143 0.250000 -vt 0.370550 0.531218 -vt 0.941964 0.515625 -vt 0.941955 0.531219 -vt 0.491245 0.547007 -vt 0.504415 0.713516 -vt 0.491244 0.713516 -vt 0.504420 0.531305 -vt 0.575836 0.547007 -vt 0.504420 0.547007 -vt 0.583990 0.054533 -vt 0.598170 0.166639 -vt 0.583990 0.149517 -vt 0.014203 0.054533 -vt 0.000000 0.166667 -vt 0.000023 0.037410 -vt 0.299097 0.037410 -vt 0.299097 0.166640 -vt 0.014204 0.149517 -vt 0.370536 0.432292 -vt 0.941955 0.432318 -vt 0.357185 0.432317 -vt 0.370550 0.515608 -vt 0.357185 0.515608 -vt 0.941955 0.416695 -vt 0.370550 0.416695 -vt 0.955193 0.515608 -vt 0.955193 0.432318 -vt 0.504416 0.729062 -vt 0.575832 0.713515 -vt 0.575832 0.729062 -vt 0.575831 0.531306 -vt 0.504415 0.547007 -vt 0.504415 0.531306 -vt 0.589268 0.713515 -vt 0.575832 0.547007 -vt 0.589268 0.547007 -vt 0.504418 0.729061 -vt 0.575835 0.713515 -vt 0.575835 0.729062 -vt 0.491245 0.547007 -vt 0.504416 0.713515 -vt 0.491245 0.713515 -vt 0.514960 0.854246 -vt 0.413642 0.999965 -vt 0.589271 0.713515 -vt 0.575835 0.547007 -vt 0.589271 0.547007 -vt 0.575832 0.531305 -vt 0.504416 0.547007 -vt 0.504416 0.531305 -vt 0.491248 0.547007 -vt 0.504418 0.713515 -vt 0.491248 0.713515 -vt 0.504424 0.729056 -vt 0.575840 0.713509 -vt 0.575840 0.729056 -vt 0.575835 0.531305 -vt 0.504419 0.547007 -vt 0.504419 0.531305 -vt 0.589277 0.713509 -vt 0.575840 0.547000 -vt 0.589276 0.547000 -vt 0.598169 0.015723 -vt 0.533590 0.025210 -vt 0.523401 0.015724 -vt 0.598170 0.166491 -vt 0.587980 0.025210 -vt 0.523401 0.166492 -vt 0.587980 0.157005 -vt 0.533591 0.157005 -vt 0.074790 0.166502 -vt 0.010211 0.157016 -vt 0.064601 0.157016 -vt 0.000022 0.015734 -vt 0.000000 0.166667 -vt 0.074790 0.015734 -vt 0.010211 0.025221 -vt 0.064601 0.025221 -vt 0.299096 0.166502 -vt 0.363675 0.157016 -vt 0.373864 0.166502 -vt 0.299096 0.015734 -vt 0.309285 0.157016 -vt 0.373864 0.015734 -vt 0.309285 0.025221 -vt 0.363675 0.025221 -vt 0.299095 0.015725 -vt 0.234516 0.025212 -vt 0.224327 0.015725 -vt 0.299096 0.166493 -vt 0.288906 0.025211 -vt 0.234517 0.157006 -vt 0.288906 0.157006 -vt 0.224327 0.166493 -vt 0.149558 0.015725 -vt 0.084979 0.025212 -vt 0.074790 0.015726 -vt 0.139369 0.157007 -vt 0.139369 0.025212 -vt 0.149559 0.166493 -vt 0.084980 0.157007 -vt 0.074790 0.166493 -vt 0.523401 0.166502 -vt 0.458822 0.157016 -vt 0.513212 0.157016 -vt 0.448633 0.015734 -vt 0.448633 0.166502 -vt 0.523401 0.015734 -vt 0.458822 0.025221 -vt 0.513212 0.025221 -vt 0.224327 0.166502 -vt 0.159748 0.157016 -vt 0.214138 0.157016 -vt 0.149559 0.015734 -vt 0.149559 0.166502 -vt 0.224327 0.015734 -vt 0.159748 0.025221 -vt 0.214138 0.025221 -vt 0.373864 0.015725 -vt 0.438443 0.025211 -vt 0.384053 0.025211 -vt 0.448633 0.166492 -vt 0.448633 0.015724 -vt 0.373864 0.166493 -vt 0.438443 0.157006 -vt 0.384054 0.157006 -vt 0.309285 0.025211 -vt 0.363674 0.025211 -vt 0.309285 0.157006 -vt 0.363675 0.157006 -vt 0.234517 0.157016 -vt 0.288906 0.157016 -vt 0.234517 0.025221 -vt 0.288906 0.025221 -vt 0.587980 0.157016 -vt 0.598170 0.166502 -vt 0.533591 0.157016 -vt 0.598170 0.015734 -vt 0.533591 0.025221 -vt 0.587980 0.025221 -vt 0.010211 0.025212 -vt 0.000022 0.015726 -vt 0.064601 0.157007 -vt 0.064600 0.025212 -vt 0.010211 0.157007 -vt 0.000000 0.166667 -vt 0.159748 0.025212 -vt 0.214137 0.025212 -vt 0.159748 0.157007 -vt 0.214138 0.157007 -vt 0.438443 0.157016 -vt 0.384054 0.157016 -vt 0.384054 0.025221 -vt 0.438443 0.025221 -vt 0.084980 0.157016 -vt 0.139369 0.157016 -vt 0.084980 0.025221 -vt 0.139369 0.025221 -vt 0.458822 0.025211 -vt 0.513211 0.025210 -vt 0.458822 0.157005 -vt 0.513212 0.157005 -vt 0.514955 0.999965 -vt 0.514955 0.854246 -vt 0.575831 0.547007 -vt 0.504414 0.713515 -vt 0.504414 0.547007 -vt 0.575836 0.547004 -vt 0.504420 0.713513 -vt 0.504420 0.547004 -vt 0.575846 0.547007 -vt 0.504430 0.713516 -vt 0.504430 0.547007 -vt 0.575823 0.547007 -vt 0.504407 0.713516 -vt 0.504407 0.547007 -vt 0.575832 0.547005 -vt 0.504415 0.713513 -vt 0.504416 0.547005 -vt 0.504424 0.713509 -vt 0.504424 0.547000 -vt 0.575835 0.547007 -vt 0.504419 0.713515 -vt 0.504419 0.547007 -vt 0.575836 0.547005 -vt 0.504420 0.713514 -vt 0.504420 0.547005 -vt 0.575833 0.547007 -vt 0.504416 0.713515 -vt 0.504416 0.547007 -vt 0.575831 0.547007 -vt 0.575840 0.547005 -vt 0.504424 0.713513 -vt 0.504424 0.547005 -vt 0.575832 0.547000 -vt 0.504416 0.713509 -vt 0.504416 0.547000 -vt 0.575830 0.547007 -vt 0.504414 0.713515 -vt 0.504414 0.547007 -vt 0.589268 0.713516 -vt 0.589268 0.547007 -vt 0.575835 0.531305 -vt 0.504419 0.531305 -vt 0.589273 0.713515 -vt 0.589273 0.547007 -vt 0.504415 0.729062 -vt 0.575831 0.713516 -vt 0.575831 0.729062 -vt 0.491248 0.547007 -vt 0.491248 0.713515 -vt 0.504420 0.729062 -vt 0.575836 0.713515 -vt 0.575836 0.729062 -vt 0.589272 0.713515 -vt 0.589272 0.547007 -vt 0.575823 0.531305 -vt 0.504407 0.531306 -vt 0.504419 0.729062 -vt 0.575835 0.713515 -vt 0.575835 0.729062 -vt 0.491237 0.547007 -vt 0.491237 0.713516 -vt 0.575830 0.531305 -vt 0.504414 0.531305 -vt 0.589260 0.713516 -vt 0.589260 0.547007 -vt 0.575836 0.531303 -vt 0.504420 0.531303 -vt 0.620737 0.000018 -vt 0.633908 0.166527 -vt 0.620737 0.166527 -vt 0.504407 0.729062 -vt 0.575823 0.713516 -vt 0.575823 0.729062 -vt 0.620743 0.000015 -vt 0.633914 0.166524 -vt 0.620743 0.166524 -vt 0.589267 0.713515 -vt 0.589267 0.547007 -vt 0.575840 0.531303 -vt 0.504424 0.531303 -vt 0.589273 0.713513 -vt 0.589273 0.547004 -vt 0.504414 0.729062 -vt 0.575830 0.713515 -vt 0.575830 0.729062 -vt 0.620747 0.000016 -vt 0.633918 0.166524 -vt 0.620747 0.166524 -vt 0.504420 0.729059 -vt 0.575836 0.713513 -vt 0.575836 0.729059 -vt 0.589276 0.713513 -vt 0.589277 0.547005 -vt 0.575836 0.531304 -vt 0.504420 0.531304 -vt 0.504424 0.729059 -vt 0.575840 0.713513 -vt 0.575840 0.729060 -vt 0.491249 0.547005 -vt 0.491250 0.713514 -vt 0.589273 0.713514 -vt 0.589273 0.547005 -vt 0.575832 0.531303 -vt 0.504416 0.531303 -vt 0.504420 0.729060 -vt 0.575836 0.713514 -vt 0.575836 0.729060 -vt 0.620739 0.000016 -vt 0.633909 0.166524 -vt 0.620739 0.166524 -vt 0.589268 0.713513 -vt 0.589268 0.547005 -vt 0.575846 0.531306 -vt 0.504430 0.531306 -vt 0.504415 0.729060 -vt 0.575832 0.713513 -vt 0.575832 0.729060 -vt 0.491259 0.547007 -vt 0.491259 0.713516 -vt 0.575832 0.531299 -vt 0.504416 0.531299 -vt 0.589282 0.713516 -vt 0.589282 0.547007 -vt 0.575831 0.531305 -vt 0.504414 0.531305 -vt 0.491245 0.547000 -vt 0.491245 0.713509 -vt 0.504430 0.729062 -vt 0.575846 0.713516 -vt 0.575846 0.729062 -vt 0.491244 0.547007 -vt 0.491244 0.713515 -vt 0.589268 0.713509 -vt 0.589268 0.547000 -vt 0.575833 0.531305 -vt 0.504416 0.531305 -vt 0.589268 0.713515 -vt 0.589268 0.547007 -vt 0.504416 0.729056 -vt 0.575832 0.713509 -vt 0.575832 0.729056 -vt 0.620745 0.000012 -vt 0.633916 0.166521 -vt 0.620745 0.166521 -vt 0.504414 0.729062 -vt 0.575831 0.713515 -vt 0.575831 0.729062 -vt 0.589269 0.713515 -vt 0.589269 0.547007 -vt 0.504424 0.531299 -vt 0.504416 0.729062 -vt 0.575832 0.713515 -vt 0.575832 0.729062 -vt 0.620747 0.000012 -vt 0.633918 0.166520 -vt 0.620747 0.166520 -vt 0.491071 0.677083 -vt 0.446398 0.593784 -vt 0.491071 0.593750 -vt 0.446429 0.677083 -vt 0.401808 0.593784 -vt 0.401808 0.677069 -vt 0.357156 0.593784 -vt 0.446398 0.729156 -vt 0.491071 0.677083 -vt 0.446401 0.593787 -vt 0.491071 0.593750 -vt 0.446429 0.677083 -vt 0.401811 0.593787 -vt 0.401811 0.677072 -vt 0.357160 0.593787 -vt 0.446401 0.729159 -vt 0.491071 0.677083 -vt 0.446398 0.593785 -vt 0.491071 0.593750 -vt 0.446429 0.677083 -vt 0.401808 0.593785 -vt 0.401808 0.677070 -vt 0.357156 0.593785 -vt 0.446398 0.729157 -vt 0.491071 0.677083 -vt 0.446406 0.593786 -vt 0.491071 0.593750 -vt 0.446429 0.677083 -vt 0.401816 0.593786 -vt 0.401816 0.677071 -vt 0.357166 0.593786 -vt 0.446406 0.729158 -vt 0.491071 0.677083 -vt 0.446405 0.593786 -vt 0.491071 0.593750 -vt 0.446429 0.677083 -vt 0.401815 0.593786 -vt 0.401815 0.677071 -vt 0.357164 0.593786 -vt 0.446405 0.729158 -vt 0.491071 0.677083 -vt 0.446403 0.593786 -vt 0.491071 0.593750 -vt 0.446429 0.677083 -vt 0.401813 0.593786 -vt 0.401813 0.677071 -vt 0.357162 0.593786 -vt 0.446403 0.729158 -vt 0.491071 0.677083 -vt 0.446406 0.593785 -vt 0.491071 0.593750 -vt 0.446429 0.677083 -vt 0.401815 0.593785 -vt 0.401815 0.677070 -vt 0.357165 0.593785 -vt 0.446406 0.729157 -vt 0.491071 0.677083 -vt 0.446398 0.593787 -vt 0.491071 0.593750 -vt 0.446429 0.677083 -vt 0.401808 0.593787 -vt 0.401808 0.677072 -vt 0.357156 0.593787 -vt 0.446398 0.729159 -vt 0.401811 0.593785 -vt 0.357160 0.677070 -vt 0.357160 0.593785 -vt 0.446401 0.593785 -vt 0.401811 0.677070 -vt 0.491071 0.593750 -vt 0.446429 0.677083 -vt 0.401811 0.729157 -vt 0.401811 0.593784 -vt 0.357160 0.677069 -vt 0.357160 0.593784 -vt 0.446401 0.593784 -vt 0.401811 0.677069 -vt 0.491071 0.593750 -vt 0.446429 0.677083 -vt 0.401811 0.729156 -vt 0.401812 0.593786 -vt 0.357161 0.677070 -vt 0.357161 0.593786 -vt 0.446402 0.593786 -vt 0.401812 0.677070 -vt 0.491071 0.593750 -vt 0.446429 0.677083 -vt 0.401812 0.729157 -vt 0.401812 0.593784 -vt 0.357161 0.677068 -vt 0.357161 0.593784 -vt 0.446402 0.593784 -vt 0.401812 0.677068 -vt 0.491071 0.593750 -vt 0.446429 0.677083 -vt 0.401812 0.729155 -vt 0.401815 0.593784 -vt 0.357165 0.677069 -vt 0.357165 0.593784 -vt 0.446406 0.593784 -vt 0.401815 0.677069 -vt 0.491071 0.593750 -vt 0.446429 0.677083 -vt 0.401815 0.729156 -vt 0.401812 0.593787 -vt 0.357161 0.677072 -vt 0.357161 0.593787 -vt 0.446402 0.593787 -vt 0.401812 0.677072 -vt 0.491071 0.593750 -vt 0.446429 0.677083 -vt 0.401812 0.729159 -vt 0.401815 0.593787 -vt 0.357165 0.677072 -vt 0.357165 0.593787 -vt 0.446406 0.593787 -vt 0.401815 0.677072 -vt 0.491071 0.593750 -vt 0.446429 0.677083 -vt 0.401815 0.729159 -vt 0.401812 0.593784 -vt 0.357161 0.677069 -vt 0.357161 0.593784 -vt 0.446402 0.593784 -vt 0.401812 0.677069 -vt 0.491071 0.593750 -vt 0.446429 0.677083 -vt 0.401812 0.729156 -vt 0.625030 0.739609 -vt 0.660717 0.739609 -vt 0.660717 0.802086 -vt 0.660717 0.853949 -vt 0.625030 0.739609 -vt 0.660717 0.739609 -vt 0.660717 0.802086 -vt 0.660717 0.853949 -vt 0.625030 0.739609 -vt 0.660717 0.739609 -vt 0.660717 0.802086 -vt 0.660717 0.853949 -vt 0.625030 0.739609 -vt 0.660717 0.739609 -vt 0.660717 0.802086 -vt 0.660717 0.853949 -vt -0.000000 1.000000 -vt 0.596910 0.081786 -vt 1.000000 0.250000 -vt 1.000000 0.250000 -vt 0.071429 0.166667 -vt 0.596978 0.081776 -vt 0.389380 0.374791 -vt 0.461662 0.374792 -vt 0.967634 0.374792 -vt 0.895352 0.374792 -vt 0.823070 0.374792 -vt 0.750788 0.374792 -vt 0.533944 0.374792 -vt 0.606225 0.374792 -vt 0.389380 0.374779 -vt 0.461662 0.374779 -vt 0.967634 0.374779 -vt 0.895354 0.374779 -vt 0.823071 0.374779 -vt 0.750787 0.374779 -vt 0.533944 0.374779 -vt 0.606225 0.374779 -vt 0.575836 0.531305 -vt 0.598170 0.037410 -vt 0.523402 0.037410 -vt 0.074792 0.037410 -vt 0.149560 0.037410 -vt 0.448634 0.037410 -vt 0.373865 0.037410 -vt 0.224328 0.037410 -vt 0.074792 0.166640 -vt 0.523402 0.166639 -vt 0.448634 0.166639 -vt 0.373865 0.166640 -vt 0.149560 0.166640 -vt 0.224328 0.166640 -vt 0.514960 0.999965 -vt 0.413637 0.999965 -vt 0.633908 0.000018 -vt 0.633914 0.000015 -vt 0.633918 0.000016 -vt 0.633910 0.000016 -vt 0.633916 0.000012 -vt 0.575840 0.531299 -vt 0.633918 0.000012 -vt 0.357156 0.677069 -vt 0.401808 0.729156 -vt 0.357160 0.677072 -vt 0.401811 0.729159 -vt 0.357156 0.677070 -vt 0.401808 0.729157 -vt 0.357166 0.677071 -vt 0.401816 0.729158 -vt 0.357164 0.677071 -vt 0.401815 0.729158 -vt 0.357162 0.677071 -vt 0.401813 0.729158 -vt 0.357165 0.677070 -vt 0.401815 0.729157 -vt 0.357156 0.677072 -vt 0.401807 0.729159 -vt 0.491071 0.677083 -vt 0.446401 0.729157 -vt 0.491071 0.677083 -vt 0.446401 0.729156 -vt 0.491071 0.677083 -vt 0.446402 0.729157 -vt 0.491071 0.677083 -vt 0.446402 0.729155 -vt 0.491071 0.677083 -vt 0.446406 0.729156 -vt 0.491071 0.677083 -vt 0.446402 0.729159 -vt 0.491071 0.677083 -vt 0.446406 0.729159 -vt 0.491071 0.677083 -vt 0.446402 0.729156 -vt 0.732143 0.598958 -vt 0.732143 0.802083 -vt 0.732143 0.739583 -vt 0.732143 0.854167 -vt 0.732143 0.598958 -vt 0.732143 0.802083 -vt 0.732143 0.739583 -vt 0.732143 0.854167 -vt 0.732143 0.598958 -vt 0.732143 0.802083 -vt 0.732143 0.739583 -vt 0.732143 0.854167 -vt 0.732143 0.598958 -vt 0.732143 0.802083 -vt 0.732143 0.739583 -vt 0.732143 0.854167 +mtllib lyser2.mtl +o Cube_Cube.001 +v 0.500000 1.000000 -5.500000 +v -0.500000 1.000000 -5.500000 +v -1.500000 0.000000 -4.500000 +v -1.500000 0.000000 -3.500000 +v -1.500000 0.000000 5.500000 +v -1.500000 1.000000 -1.500000 +v -1.500000 1.000000 -2.500000 +v -1.500000 1.000000 -3.500000 +v -1.500000 1.000000 -4.500000 +v -1.500000 1.000000 -5.500000 +v 3.500000 0.000000 5.500000 +v 3.500000 0.000000 2.500000 +v 3.500000 0.000000 1.500000 +v 3.500000 0.000000 0.500000 +v 3.500000 0.000000 -0.500000 +v 3.500000 0.000000 -1.500000 +v 3.500000 0.000000 -2.500000 +v 3.500000 0.000000 -3.500000 +v 3.500000 0.000000 -4.500000 +v 3.500000 0.000000 -5.500000 +v 3.500000 1.000000 -5.500000 +v 3.500000 1.000000 -4.500000 +v 3.500000 1.000000 -3.500000 +v 3.500000 1.000000 -2.500000 +v 3.500000 1.000000 -1.500000 +v 3.500000 1.000000 -0.500000 +v 3.500000 1.000000 0.500000 +v 3.500000 1.000000 1.500000 +v 3.500000 1.000000 2.500000 +v 3.500000 1.000000 5.500000 +v 1.500000 1.000000 -5.500000 +v 1.500000 1.000000 -4.500000 +v 1.500000 1.000000 -3.500000 +v 1.500000 1.000000 -2.500000 +v 1.500000 1.000000 -1.500000 +v 1.500000 1.000000 -0.500000 +v 1.500000 1.000000 0.500000 +v 1.500000 1.000000 1.500000 +v 1.500000 1.000000 2.500000 +v 1.250000 0.750000 5.500000 +v -1.500000 1.000000 -0.500000 +v -1.500000 1.000000 0.500000 +v -1.500000 1.000000 1.500000 +v -1.500000 1.000000 2.500000 +v -1.500000 0.000000 -5.500000 +v -1.500000 0.000000 -2.500000 +v -1.500000 0.000000 -1.500000 +v -1.500000 0.000000 -0.500000 +v -1.500000 0.000000 0.500000 +v -1.500000 0.000000 1.500000 +v -1.500000 0.000000 2.500000 +v -1.250000 0.250000 5.500000 +v 1.500000 0.000000 -5.500000 +v 1.500000 0.000000 -4.500000 +v 1.500000 0.000000 -3.500000 +v 1.500000 0.000000 -2.500000 +v 1.500000 0.000000 -1.500000 +v 1.500000 0.000000 -0.500000 +v 1.500000 0.000000 0.500000 +v 1.500000 0.000000 1.500000 +v 1.500000 0.000000 2.500000 +v 1.250000 0.250000 5.500000 +v -0.500000 0.000000 -5.500000 +v -0.500000 0.000000 -4.500000 +v -0.500000 0.000000 -3.500000 +v -0.500000 0.000000 -2.500000 +v -0.500000 0.000000 -1.500000 +v -0.500000 0.000000 -0.500000 +v -0.500000 0.000000 0.500000 +v -0.500000 0.000000 1.500000 +v -0.500000 0.000000 2.500000 +v -0.250000 0.250000 5.500000 +v 0.500000 0.000000 -5.500000 +v 0.500000 0.000000 -4.500000 +v 0.500000 0.000000 -3.500000 +v 0.500000 0.000000 -2.500000 +v 0.500000 0.000000 -1.500000 +v 0.500000 0.000000 -0.500000 +v 0.500000 0.000000 0.500000 +v 0.500000 0.000000 1.500000 +v 0.500000 0.000000 2.500000 +v 0.250000 0.250000 5.500000 +v 0.250000 3.000000 -5.250000 +v 0.375000 3.000000 -4.500000 +v 0.375000 3.000000 -3.500000 +v 0.375000 3.000000 -2.500000 +v 0.375000 3.000000 -1.500000 +v 0.375000 3.000000 -0.500000 +v 0.375000 3.000000 0.500000 +v 0.375000 3.000000 1.500000 +v 0.375000 3.000000 2.500000 +v -0.250000 3.000000 -5.250000 +v -0.375000 3.000000 -4.500000 +v -0.375000 3.000000 -3.500000 +v -0.375000 3.000000 -2.500000 +v -0.375000 3.000000 -1.500000 +v -0.375000 3.000000 -0.500000 +v -0.375000 3.000000 0.500000 +v -0.375000 3.000000 1.500000 +v -0.375000 3.000000 2.500000 +v -1.250000 0.750000 5.500000 +v -0.750000 0.750000 5.500000 +v 0.750000 0.750000 5.500000 +v -0.250000 3.000000 5.250000 +v 0.250000 3.000000 5.250000 +v 0.750000 0.250000 5.500000 +v -0.750000 0.250000 5.500000 +v 0.187500 0.687500 5.437500 +v -0.250000 0.750000 5.500000 +v 0.250000 0.750000 5.500000 +v -0.187500 0.687500 5.437500 +v 0.187500 0.312500 5.437500 +v -0.187500 0.312500 5.437500 +v 0.250000 0.750000 5.437500 +v -0.250000 0.750000 5.437500 +v 0.250000 0.250000 5.437500 +v -0.250000 0.250000 5.437500 +v 0.187500 0.687500 5.500000 +v -0.187500 0.687500 5.500000 +v 0.187500 0.312500 5.500000 +v -0.187500 0.312500 5.500000 +v -0.500000 0.000000 5.500000 +v 1.500000 0.000000 5.500000 +v 0.500000 0.000000 5.500000 +v 1.500000 1.000000 5.500000 +v -1.500000 1.000000 5.500000 +v -0.500000 1.000000 5.500000 +v 0.500000 1.000000 5.500000 +v -0.812500 0.312500 5.437500 +v -1.187500 0.312500 5.437500 +v 1.187500 0.312500 5.437500 +v 0.812500 0.312500 5.437500 +v 1.187500 0.687500 5.437500 +v -1.187500 0.687500 5.437500 +v -0.812500 0.687500 5.437500 +v 0.812500 0.687500 5.437500 +v -0.750000 0.250000 5.437500 +v -1.250000 0.250000 5.437500 +v 1.250000 0.250000 5.437500 +v 0.750000 0.250000 5.437500 +v 1.250000 0.750000 5.437500 +v -1.250000 0.750000 5.437500 +v -0.750000 0.750000 5.437500 +v 0.750000 0.750000 5.437500 +v -0.812500 0.312500 5.500000 +v -1.187500 0.312500 5.500000 +v 1.187500 0.312500 5.500000 +v 0.812500 0.312500 5.500000 +v 1.187500 0.687500 5.500000 +v -1.187500 0.687500 5.500000 +v -0.812500 0.687500 5.500000 +v 0.812500 0.687500 5.500000 +v -1.250000 0.750000 -5.500000 +v -0.750000 0.750000 -5.500000 +v -0.750000 0.250000 -5.500000 +v -1.250000 0.250000 -5.500000 +v 0.250000 0.250000 -5.500000 +v -0.250000 0.250000 -5.500000 +v -0.250000 0.750000 -5.500000 +v 0.250000 0.750000 -5.500000 +v 0.750000 0.750000 -5.500000 +v 1.250000 0.750000 -5.500000 +v 1.250000 0.250000 -5.500000 +v 0.750000 0.250000 -5.500000 +v -0.812500 0.687500 -5.437500 +v -1.187500 0.687500 -5.437500 +v -1.187500 0.312500 -5.437500 +v -0.812500 0.312500 -5.437500 +v 0.187500 0.312500 -5.437500 +v -0.187500 0.312500 -5.437500 +v 0.187500 0.687500 -5.437500 +v -0.187500 0.687500 -5.437500 +v 0.812500 0.687500 -5.437500 +v 1.187500 0.687500 -5.437500 +v 0.812500 0.312500 -5.437500 +v 1.187500 0.312500 -5.437500 +v -0.750000 0.750000 -5.437500 +v -1.250000 0.750000 -5.437500 +v -1.250000 0.250000 -5.437500 +v -0.750000 0.250000 -5.437500 +v 0.250000 0.250000 -5.437500 +v -0.250000 0.250000 -5.437500 +v 0.250000 0.750000 -5.437500 +v -0.250000 0.750000 -5.437500 +v 0.750000 0.750000 -5.437500 +v 1.250000 0.750000 -5.437500 +v 0.750000 0.250000 -5.437500 +v 1.250000 0.250000 -5.437500 +v -0.812500 0.687500 -5.500000 +v -1.187500 0.687500 -5.500000 +v -1.187500 0.312500 -5.500000 +v -0.812500 0.312500 -5.500000 +v 0.187500 0.312500 -5.500000 +v -0.187500 0.312500 -5.500000 +v 0.187500 0.687500 -5.500000 +v -0.187500 0.687500 -5.500000 +v 0.812500 0.687500 -5.500000 +v 1.187500 0.687500 -5.500000 +v 0.812500 0.312500 -5.500000 +v 1.187500 0.312500 -5.500000 +v -1.500000 0.000000 3.500000 +v -1.500000 1.000000 4.500000 +v 3.500000 0.000000 4.500000 +v 3.500000 0.000000 3.500000 +v 3.500000 1.000000 3.500000 +v 3.500000 1.000000 4.500000 +v 1.500000 1.000000 3.500000 +v 1.500000 1.000000 4.500000 +v -1.500000 0.000000 4.500000 +v 1.500000 0.000000 3.500000 +v 1.500000 0.000000 4.500000 +v -0.500000 0.000000 3.500000 +v -0.500000 0.000000 4.500000 +v 0.500000 0.000000 3.500000 +v 0.500000 0.000000 4.500000 +v -1.500000 1.000000 3.500000 +v 0.375000 3.000000 3.500000 +v 0.375000 3.000000 4.500000 +v -0.375000 3.000000 3.500000 +v -0.375000 3.000000 4.500000 +v -0.500000 3.000000 -5.500000 +v -0.500000 3.000000 -4.500000 +v 0.500000 3.000000 -4.500000 +v 0.500000 3.000000 -5.500000 +v 0.500000 3.000000 -3.500000 +v 0.500000 3.000000 -2.500000 +v 0.500000 3.000000 -1.500000 +v 0.500000 3.000000 -0.500000 +v 0.500000 3.000000 0.500000 +v 0.500000 3.000000 1.500000 +v 0.500000 3.000000 2.500000 +v -0.500000 3.000000 -3.500000 +v -0.500000 3.000000 -2.500000 +v -0.500000 3.000000 -1.500000 +v -0.500000 3.000000 -0.500000 +v -0.500000 3.000000 0.500000 +v -0.500000 3.000000 1.500000 +v -0.500000 3.000000 2.500000 +v 0.500000 3.000000 5.500000 +v -0.500000 3.000000 5.500000 +v 0.500000 3.000000 4.500000 +v -0.500000 3.000000 4.500000 +v 0.500000 3.000000 3.500000 +v -0.500000 3.000000 3.500000 +v -0.375000 3.875000 -3.500000 +v 0.375000 3.875000 -3.500000 +v -0.375000 3.875000 -2.500000 +v 0.375000 3.875000 -2.500000 +v -0.250000 3.875000 -1.500000 +v 0.250000 3.875000 -1.500000 +v -0.250000 3.875000 -0.500000 +v 0.250000 3.875000 -0.500000 +v -0.250000 3.875000 0.500000 +v 0.250000 3.875000 0.500000 +v -0.375000 3.875000 1.500000 +v 0.375000 3.875000 1.500000 +v -0.375000 3.875000 2.500000 +v 0.250000 3.875000 2.500000 +v -0.375000 3.875000 3.500000 +v 0.250000 3.875000 3.500000 +v -0.250000 3.875000 -4.250000 +v 0.250000 3.875000 -4.250000 +v -0.250000 3.625000 4.500000 +v -0.250000 3.875000 4.250000 +v 0.250000 3.875000 4.250000 +v 0.250000 3.625000 4.500000 +v 0.250000 3.875000 -3.500000 +v 0.250000 3.875000 -2.500000 +v 0.375000 3.875000 -1.500000 +v 0.375000 3.875000 -0.500000 +v 0.375000 3.875000 0.500000 +v 0.250000 3.875000 1.500000 +v 0.375000 3.875000 2.500000 +v -0.250000 3.875000 -3.500000 +v -0.250000 3.875000 -2.500000 +v -0.375000 3.875000 -1.500000 +v -0.375000 3.875000 -0.500000 +v -0.375000 3.875000 0.500000 +v -0.250000 3.875000 1.500000 +v -0.250000 3.875000 2.500000 +v 0.375000 3.875000 3.500000 +v -0.250000 3.875000 3.500000 +v -0.375000 3.875000 -4.375000 +v 0.375000 3.875000 -4.375000 +v 0.375000 3.875000 4.375000 +v -0.375000 3.875000 4.375000 +v -0.250000 4.000000 -3.500000 +v 0.187500 4.000000 -3.500000 +v -0.187500 4.000000 -2.500000 +v 0.187500 4.000000 -2.500000 +v -0.187500 4.000000 -1.500000 +v 0.250000 4.000000 -1.500000 +v -0.250000 4.000000 -0.500000 +v 0.250000 4.000000 -0.500000 +v -0.250000 4.000000 0.500000 +v 0.250000 4.000000 0.500000 +v -0.250000 4.000000 1.500000 +v 0.250000 4.000000 1.500000 +v -0.250000 4.000000 2.500000 +v 0.250000 4.000000 2.500000 +v -0.250000 4.000000 3.500000 +v 0.250000 4.000000 3.500000 +v -0.187500 4.000000 -4.187500 +v 0.187500 4.000000 -4.187500 +v 0.187500 4.000000 4.187500 +v -0.187500 4.000000 4.187500 +v -0.375000 3.000000 -5.375000 +v -0.250000 3.000000 -4.500000 +v 0.250000 3.000000 -4.500000 +v 0.375000 3.000000 -5.375000 +v 0.375000 3.000000 5.375000 +v -0.375000 3.000000 5.375000 +v 0.250000 3.000000 4.500000 +v -0.250000 3.000000 4.500000 +v 0.375000 3.750000 -4.500000 +v -0.375000 3.750000 -4.500000 +v -0.375000 3.750000 4.500000 +v 0.375000 3.750000 4.500000 +v -0.250000 3.625000 -4.500000 +v 0.250000 3.625000 -4.500000 +v -0.250000 3.625000 -5.250000 +v 0.250000 3.625000 -5.250000 +v 0.250000 3.625000 5.250000 +v -0.250000 3.625000 5.250000 +v 0.250000 4.000000 -3.500000 +v 0.250000 4.000000 -2.500000 +v 0.187500 4.000000 -1.500000 +v 0.187500 4.000000 -0.500000 +v 0.187500 4.000000 0.500000 +v 0.187500 4.000000 1.500000 +v 0.187500 4.000000 2.500000 +v -0.187500 4.000000 -3.500000 +v -0.250000 4.000000 -2.500000 +v -0.250000 4.000000 -1.500000 +v -0.187500 4.000000 -0.500000 +v -0.187500 4.000000 0.500000 +v -0.187500 4.000000 1.500000 +v -0.187500 4.000000 2.500000 +v 0.187500 4.000000 3.500000 +v -0.187500 4.000000 3.500000 +v -0.250000 4.000000 -4.250000 +v 0.250000 4.000000 -4.250000 +v 0.250000 4.000000 4.250000 +v -0.250000 4.000000 4.250000 +v -0.187500 3.875000 -3.500000 +v 0.187500 3.875000 -3.500000 +v -0.187500 3.875000 -2.500000 +v 0.187500 3.875000 -2.500000 +v -0.187500 3.875000 -1.500000 +v 0.187500 3.875000 -1.500000 +v -0.187500 3.875000 -0.500000 +v 0.187500 3.875000 -0.500000 +v -0.187500 3.875000 0.500000 +v 0.187500 3.875000 0.500000 +v -0.187500 3.875000 1.500000 +v 0.187500 3.875000 1.500000 +v -0.187500 3.875000 2.500000 +v 0.187500 3.875000 2.500000 +v -0.187500 3.875000 3.500000 +v 0.187500 3.875000 3.500000 +v -0.187500 3.875000 -4.187500 +v 0.187500 3.875000 -4.187500 +v 0.187500 3.875000 4.187500 +v -0.187500 3.875000 4.187500 +v -1.437500 1.875000 -4.750000 +v -1.437500 2.000000 -4.750000 +v -1.437500 1.875000 -5.250000 +v -1.437500 2.000000 -5.250000 +v -0.937500 1.875000 -4.750000 +v -0.937500 2.000000 -4.750000 +v -0.937500 1.875000 -5.250000 +v -0.937500 2.000000 -5.250000 +v -1.437500 1.875000 -5.125000 +v -1.437500 1.875000 -4.875000 +v -1.437500 2.000000 -4.875000 +v -1.437500 2.000000 -5.125000 +v -0.937500 1.875000 -4.875000 +v -0.937500 1.875000 -5.125000 +v -0.937500 2.000000 -5.125000 +v -0.937500 2.000000 -4.875000 +v -1.062500 1.875000 -5.250000 +v -1.312500 1.875000 -5.250000 +v -1.312500 2.000000 -5.250000 +v -1.062500 2.000000 -5.250000 +v -1.312500 1.875000 -4.750000 +v -1.062500 1.875000 -4.750000 +v -1.062500 2.000000 -4.750000 +v -1.312500 2.000000 -4.750000 +v -1.312500 2.000000 -5.125000 +v -1.062500 2.000000 -5.125000 +v -1.312500 2.000000 -4.875000 +v -1.062500 2.000000 -4.875000 +v -1.062500 1.875000 -5.125000 +v -1.312500 1.875000 -5.125000 +v -1.062500 1.875000 -4.875000 +v -1.312500 1.875000 -4.875000 +v -1.437500 1.125000 -4.875000 +v -1.437500 1.125000 -4.750000 +v -1.312500 1.125000 -5.250000 +v -1.437500 1.125000 -5.250000 +v -1.437500 1.125000 -5.125000 +v -1.312500 1.125000 -5.125000 +v -1.312500 1.125000 -4.875000 +v -1.312500 1.125000 -4.750000 +v -1.437500 1.875000 -3.750000 +v -1.437500 2.000000 -3.750000 +v -1.437500 1.875000 -4.250000 +v -1.437500 2.000000 -4.250000 +v -0.937500 1.875000 -3.750000 +v -0.937500 2.000000 -3.750000 +v -0.937500 1.875000 -4.250000 +v -0.937500 2.000000 -4.250000 +v -1.437500 1.875000 -4.125000 +v -1.437500 1.875000 -3.875000 +v -1.437500 2.000000 -3.875000 +v -1.437500 2.000000 -4.125000 +v -0.937500 1.875000 -3.875000 +v -0.937500 1.875000 -4.125000 +v -0.937500 2.000000 -4.125000 +v -0.937500 2.000000 -3.875000 +v -1.062500 1.875000 -4.250000 +v -1.312500 1.875000 -4.250000 +v -1.312500 2.000000 -4.250000 +v -1.062500 2.000000 -4.250000 +v -1.312500 1.875000 -3.750000 +v -1.062500 1.875000 -3.750000 +v -1.062500 2.000000 -3.750000 +v -1.312500 2.000000 -3.750000 +v -1.312500 2.000000 -4.125000 +v -1.062500 2.000000 -4.125000 +v -1.312500 2.000000 -3.875000 +v -1.062500 2.000000 -3.875000 +v -1.062500 1.875000 -4.125000 +v -1.312500 1.875000 -4.125000 +v -1.062500 1.875000 -3.875000 +v -1.312500 1.875000 -3.875000 +v -1.437500 1.125000 -3.875000 +v -1.437500 1.125000 -3.750000 +v -1.312500 1.125000 -4.250000 +v -1.437500 1.125000 -4.250000 +v -1.437500 1.125000 -4.125000 +v -1.312500 1.125000 -4.125000 +v -1.312500 1.125000 -3.875000 +v -1.312500 1.125000 -3.750000 +v -1.437500 1.875000 -2.750000 +v -1.437500 2.000000 -2.750000 +v -1.437500 1.875000 -3.250000 +v -1.437500 2.000000 -3.250000 +v -0.937500 1.875000 -2.750000 +v -0.937500 2.000000 -2.750000 +v -0.937500 1.875000 -3.250000 +v -0.937500 2.000000 -3.250000 +v -1.437500 1.875000 -3.125000 +v -1.437500 1.875000 -2.875000 +v -1.437500 2.000000 -2.875000 +v -1.437500 2.000000 -3.125000 +v -0.937500 1.875000 -2.875000 +v -0.937500 1.875000 -3.125000 +v -0.937500 2.000000 -3.125000 +v -0.937500 2.000000 -2.875000 +v -1.062500 1.875000 -3.250000 +v -1.312500 1.875000 -3.250000 +v -1.312500 2.000000 -3.250000 +v -1.062500 2.000000 -3.250000 +v -1.312500 1.875000 -2.750000 +v -1.062500 1.875000 -2.750000 +v -1.062500 2.000000 -2.750000 +v -1.312500 2.000000 -2.750000 +v -1.312500 2.000000 -3.125000 +v -1.062500 2.000000 -3.125000 +v -1.312500 2.000000 -2.875000 +v -1.062500 2.000000 -2.875000 +v -1.062500 1.875000 -3.125000 +v -1.312500 1.875000 -3.125000 +v -1.062500 1.875000 -2.875000 +v -1.312500 1.875000 -2.875000 +v -1.437500 1.125000 -2.875000 +v -1.437500 1.125000 -2.750000 +v -1.312500 1.125000 -3.250000 +v -1.437500 1.125000 -3.250000 +v -1.437500 1.125000 -3.125000 +v -1.312500 1.125000 -3.125000 +v -1.312500 1.125000 -2.875000 +v -1.312500 1.125000 -2.750000 +v -1.437500 1.875000 -1.750000 +v -1.437500 2.000000 -1.750000 +v -1.437500 1.875000 -2.250000 +v -1.437500 2.000000 -2.250000 +v -0.937500 1.875000 -1.750000 +v -0.937500 2.000000 -1.750000 +v -0.937500 1.875000 -2.250000 +v -0.937500 2.000000 -2.250000 +v -1.437500 1.875000 -2.125000 +v -1.437500 1.875000 -1.875000 +v -1.437500 2.000000 -1.875000 +v -1.437500 2.000000 -2.125000 +v -0.937500 1.875000 -1.875000 +v -0.937500 1.875000 -2.125000 +v -0.937500 2.000000 -2.125000 +v -0.937500 2.000000 -1.875000 +v -1.062500 1.875000 -2.250000 +v -1.312500 1.875000 -2.250000 +v -1.312500 2.000000 -2.250000 +v -1.062500 2.000000 -2.250000 +v -1.312500 1.875000 -1.750000 +v -1.062500 1.875000 -1.750000 +v -1.062500 2.000000 -1.750000 +v -1.312500 2.000000 -1.750000 +v -1.312500 2.000000 -2.125000 +v -1.062500 2.000000 -2.125000 +v -1.312500 2.000000 -1.875000 +v -1.062500 2.000000 -1.875000 +v -1.062500 1.875000 -2.125000 +v -1.312500 1.875000 -2.125000 +v -1.062500 1.875000 -1.875000 +v -1.312500 1.875000 -1.875000 +v -1.437500 1.125000 -1.875000 +v -1.437500 1.125000 -1.750000 +v -1.312500 1.125000 -2.250000 +v -1.437500 1.125000 -2.250000 +v -1.437500 1.125000 -2.125000 +v -1.312500 1.125000 -2.125000 +v -1.312500 1.125000 -1.875000 +v -1.312500 1.125000 -1.750000 +v -1.437500 1.875000 -0.750000 +v -1.437500 2.000000 -0.750000 +v -1.437500 1.875000 -1.250000 +v -1.437500 2.000000 -1.250000 +v -0.937500 1.875000 -0.750000 +v -0.937500 2.000000 -0.750000 +v -0.937500 1.875000 -1.250000 +v -0.937500 2.000000 -1.250000 +v -1.437500 1.875000 -1.125000 +v -1.437500 1.875000 -0.875000 +v -1.437500 2.000000 -0.875000 +v -1.437500 2.000000 -1.125000 +v -0.937500 1.875000 -0.875000 +v -0.937500 1.875000 -1.125000 +v -0.937500 2.000000 -1.125000 +v -0.937500 2.000000 -0.875000 +v -1.062500 1.875000 -1.250000 +v -1.312500 1.875000 -1.250000 +v -1.312500 2.000000 -1.250000 +v -1.062500 2.000000 -1.250000 +v -1.312500 1.875000 -0.750000 +v -1.062500 1.875000 -0.750000 +v -1.062500 2.000000 -0.750000 +v -1.312500 2.000000 -0.750000 +v -1.312500 2.000000 -1.125000 +v -1.062500 2.000000 -1.125000 +v -1.312500 2.000000 -0.875000 +v -1.062500 2.000000 -0.875000 +v -1.062500 1.875000 -1.125000 +v -1.312500 1.875000 -1.125000 +v -1.062500 1.875000 -0.875000 +v -1.312500 1.875000 -0.875000 +v -1.437500 1.125000 -0.875000 +v -1.437500 1.125000 -0.750000 +v -1.312500 1.125000 -1.250000 +v -1.437500 1.125000 -1.250000 +v -1.437500 1.125000 -1.125000 +v -1.312500 1.125000 -1.125000 +v -1.312500 1.125000 -0.875000 +v -1.312500 1.125000 -0.750000 +v -1.437500 1.875000 0.250000 +v -1.437500 2.000000 0.250000 +v -1.437500 1.875000 -0.250000 +v -1.437500 2.000000 -0.250000 +v -0.937500 1.875000 0.250000 +v -0.937500 2.000000 0.250000 +v -0.937500 1.875000 -0.250000 +v -0.937500 2.000000 -0.250000 +v -1.437500 1.875000 -0.125000 +v -1.437500 1.875000 0.125000 +v -1.437500 2.000000 0.125000 +v -1.437500 2.000000 -0.125000 +v -0.937500 1.875000 0.125000 +v -0.937500 1.875000 -0.125000 +v -0.937500 2.000000 -0.125000 +v -0.937500 2.000000 0.125000 +v -1.062500 1.875000 -0.250000 +v -1.312500 1.875000 -0.250000 +v -1.312500 2.000000 -0.250000 +v -1.062500 2.000000 -0.250000 +v -1.312500 1.875000 0.250000 +v -1.062500 1.875000 0.250000 +v -1.062500 2.000000 0.250000 +v -1.312500 2.000000 0.250000 +v -1.312500 2.000000 -0.125000 +v -1.062500 2.000000 -0.125000 +v -1.312500 2.000000 0.125000 +v -1.062500 2.000000 0.125000 +v -1.062500 1.875000 -0.125000 +v -1.312500 1.875000 -0.125000 +v -1.062500 1.875000 0.125000 +v -1.312500 1.875000 0.125000 +v -1.437500 1.125000 0.125000 +v -1.437500 1.125000 0.250000 +v -1.312500 1.125000 -0.250000 +v -1.437500 1.125000 -0.250000 +v -1.437500 1.125000 -0.125000 +v -1.312500 1.125000 -0.125000 +v -1.312500 1.125000 0.125000 +v -1.312500 1.125000 0.250000 +v -1.437500 1.875000 1.250000 +v -1.437500 2.000000 1.250000 +v -1.437500 1.875000 0.750000 +v -1.437500 2.000000 0.750000 +v -0.937500 1.875000 1.250000 +v -0.937500 2.000000 1.250000 +v -0.937500 1.875000 0.750000 +v -0.937500 2.000000 0.750000 +v -1.437500 1.875000 0.875000 +v -1.437500 1.875000 1.125000 +v -1.437500 2.000000 1.125000 +v -1.437500 2.000000 0.875000 +v -0.937500 1.875000 1.125000 +v -0.937500 1.875000 0.875000 +v -0.937500 2.000000 0.875000 +v -0.937500 2.000000 1.125000 +v -1.062500 1.875000 0.750000 +v -1.312500 1.875000 0.750000 +v -1.312500 2.000000 0.750000 +v -1.062500 2.000000 0.750000 +v -1.312500 1.875000 1.250000 +v -1.062500 1.875000 1.250000 +v -1.062500 2.000000 1.250000 +v -1.312500 2.000000 1.250000 +v -1.312500 2.000000 0.875000 +v -1.062500 2.000000 0.875000 +v -1.312500 2.000000 1.125000 +v -1.062500 2.000000 1.125000 +v -1.062500 1.875000 0.875000 +v -1.312500 1.875000 0.875000 +v -1.062500 1.875000 1.125000 +v -1.312500 1.875000 1.125000 +v -1.437500 1.125000 1.125000 +v -1.437500 1.125000 1.250000 +v -1.312500 1.125000 0.750000 +v -1.437500 1.125000 0.750000 +v -1.437500 1.125000 0.875000 +v -1.312500 1.125000 0.875000 +v -1.312500 1.125000 1.125000 +v -1.312500 1.125000 1.250000 +v -1.437500 1.875000 2.250000 +v -1.437500 2.000000 2.250000 +v -1.437500 1.875000 1.750000 +v -1.437500 2.000000 1.750000 +v -0.937500 1.875000 2.250000 +v -0.937500 2.000000 2.250000 +v -0.937500 1.875000 1.750000 +v -0.937500 2.000000 1.750000 +v -1.437500 1.875000 1.875000 +v -1.437500 1.875000 2.125000 +v -1.437500 2.000000 2.125000 +v -1.437500 2.000000 1.875000 +v -0.937500 1.875000 2.125000 +v -0.937500 1.875000 1.875000 +v -0.937500 2.000000 1.875000 +v -0.937500 2.000000 2.125000 +v -1.062500 1.875000 1.750000 +v -1.312500 1.875000 1.750000 +v -1.312500 2.000000 1.750000 +v -1.062500 2.000000 1.750000 +v -1.312500 1.875000 2.250000 +v -1.062500 1.875000 2.250000 +v -1.062500 2.000000 2.250000 +v -1.312500 2.000000 2.250000 +v -1.312500 2.000000 1.875000 +v -1.062500 2.000000 1.875000 +v -1.312500 2.000000 2.125000 +v -1.062500 2.000000 2.125000 +v -1.062500 1.875000 1.875000 +v -1.312500 1.875000 1.875000 +v -1.062500 1.875000 2.125000 +v -1.312500 1.875000 2.125000 +v -1.437500 1.125000 2.125000 +v -1.437500 1.125000 2.250000 +v -1.312500 1.125000 1.750000 +v -1.437500 1.125000 1.750000 +v -1.437500 1.125000 1.875000 +v -1.312500 1.125000 1.875000 +v -1.312500 1.125000 2.125000 +v -1.312500 1.125000 2.250000 +v -1.437500 1.875000 3.250000 +v -1.437500 2.000000 3.250000 +v -1.437500 1.875000 2.750000 +v -1.437500 2.000000 2.750000 +v -0.937500 1.875000 3.250000 +v -0.937500 2.000000 3.250000 +v -0.937500 1.875000 2.750000 +v -0.937500 2.000000 2.750000 +v -1.437500 1.875000 2.875000 +v -1.437500 1.875000 3.125000 +v -1.437500 2.000000 3.125000 +v -1.437500 2.000000 2.875000 +v -0.937500 1.875000 3.125000 +v -0.937500 1.875000 2.875000 +v -0.937500 2.000000 2.875000 +v -0.937500 2.000000 3.125000 +v -1.062500 1.875000 2.750000 +v -1.312500 1.875000 2.750000 +v -1.312500 2.000000 2.750000 +v -1.062500 2.000000 2.750000 +v -1.312500 1.875000 3.250000 +v -1.062500 1.875000 3.250000 +v -1.062500 2.000000 3.250000 +v -1.312500 2.000000 3.250000 +v -1.312500 2.000000 2.875000 +v -1.062500 2.000000 2.875000 +v -1.312500 2.000000 3.125000 +v -1.062500 2.000000 3.125000 +v -1.062500 1.875000 2.875000 +v -1.312500 1.875000 2.875000 +v -1.062500 1.875000 3.125000 +v -1.312500 1.875000 3.125000 +v -1.437500 1.125000 3.125000 +v -1.437500 1.125000 3.250000 +v -1.312500 1.125000 2.750000 +v -1.437500 1.125000 2.750000 +v -1.437500 1.125000 2.875000 +v -1.312500 1.125000 2.875000 +v -1.312500 1.125000 3.125000 +v -1.312500 1.125000 3.250000 +v -1.437500 1.875000 4.250000 +v -1.437500 2.000000 4.250000 +v -1.437500 1.875000 3.750000 +v -1.437500 2.000000 3.750000 +v -0.937500 1.875000 4.250000 +v -0.937500 2.000000 4.250000 +v -0.937500 1.875000 3.750000 +v -0.937500 2.000000 3.750000 +v -1.437500 1.875000 3.875000 +v -1.437500 1.875000 4.125000 +v -1.437500 2.000000 4.125000 +v -1.437500 2.000000 3.875000 +v -0.937500 1.875000 4.125000 +v -0.937500 1.875000 3.875000 +v -0.937500 2.000000 3.875000 +v -0.937500 2.000000 4.125000 +v -1.062500 1.875000 3.750000 +v -1.312500 1.875000 3.750000 +v -1.312500 2.000000 3.750000 +v -1.062500 2.000000 3.750000 +v -1.312500 1.875000 4.250000 +v -1.062500 1.875000 4.250000 +v -1.062500 2.000000 4.250000 +v -1.312500 2.000000 4.250000 +v -1.312500 2.000000 3.875000 +v -1.062500 2.000000 3.875000 +v -1.312500 2.000000 4.125000 +v -1.062500 2.000000 4.125000 +v -1.062500 1.875000 3.875000 +v -1.312500 1.875000 3.875000 +v -1.062500 1.875000 4.125000 +v -1.312500 1.875000 4.125000 +v -1.437500 1.125000 4.125000 +v -1.437500 1.125000 4.250000 +v -1.312500 1.125000 3.750000 +v -1.437500 1.125000 3.750000 +v -1.437500 1.125000 3.875000 +v -1.312500 1.125000 3.875000 +v -1.312500 1.125000 4.125000 +v -1.312500 1.125000 4.250000 +v -1.437500 1.875000 5.250000 +v -1.437500 2.000000 5.250000 +v -1.437500 1.875000 4.750000 +v -1.437500 2.000000 4.750000 +v -0.937500 1.875000 5.250000 +v -0.937500 2.000000 5.250000 +v -0.937500 1.875000 4.750000 +v -0.937500 2.000000 4.750000 +v -1.437500 1.875000 4.875000 +v -1.437500 1.875000 5.125000 +v -1.437500 2.000000 5.125000 +v -1.437500 2.000000 4.875000 +v -0.937500 1.875000 5.125000 +v -0.937500 1.875000 4.875000 +v -0.937500 2.000000 4.875000 +v -0.937500 2.000000 5.125000 +v -1.062500 1.875000 4.750000 +v -1.312500 1.875000 4.750000 +v -1.312500 2.000000 4.750000 +v -1.062500 2.000000 4.750000 +v -1.312500 1.875000 5.250000 +v -1.062500 1.875000 5.250000 +v -1.062500 2.000000 5.250000 +v -1.312500 2.000000 5.250000 +v -1.312500 2.000000 4.875000 +v -1.062500 2.000000 4.875000 +v -1.312500 2.000000 5.125000 +v -1.062500 2.000000 5.125000 +v -1.062500 1.875000 4.875000 +v -1.312500 1.875000 4.875000 +v -1.062500 1.875000 5.125000 +v -1.312500 1.875000 5.125000 +v -1.437500 1.125000 5.125000 +v -1.437500 1.125000 5.250000 +v -1.312500 1.125000 4.750000 +v -1.437500 1.125000 4.750000 +v -1.437500 1.125000 4.875000 +v -1.312500 1.125000 4.875000 +v -1.312500 1.125000 5.125000 +v -1.312500 1.125000 5.250000 +v 1.437500 1.875000 -4.750000 +v 1.437500 2.000000 -4.750000 +v 1.437500 1.875000 -5.250000 +v 1.437500 2.000000 -5.250000 +v 0.937500 1.875000 -4.750000 +v 0.937500 2.000000 -4.750000 +v 0.937500 1.875000 -5.250000 +v 0.937500 2.000000 -5.250000 +v 1.437500 1.875000 -5.125000 +v 1.437500 1.875000 -4.875000 +v 1.437500 2.000000 -4.875000 +v 1.437500 2.000000 -5.125000 +v 0.937500 1.875000 -4.875000 +v 0.937500 1.875000 -5.125000 +v 0.937500 2.000000 -5.125000 +v 0.937500 2.000000 -4.875000 +v 1.062500 1.875000 -5.250000 +v 1.312500 1.875000 -5.250000 +v 1.312500 2.000000 -5.250000 +v 1.062500 2.000000 -5.250000 +v 1.312500 1.875000 -4.750000 +v 1.062500 1.875000 -4.750000 +v 1.062500 2.000000 -4.750000 +v 1.312500 2.000000 -4.750000 +v 1.312500 2.000000 -5.125000 +v 1.062500 2.000000 -5.125000 +v 1.312500 2.000000 -4.875000 +v 1.062500 2.000000 -4.875000 +v 1.062500 1.875000 -5.125000 +v 1.312500 1.875000 -5.125000 +v 1.062500 1.875000 -4.875000 +v 1.312500 1.875000 -4.875000 +v 1.437500 1.125000 -4.875000 +v 1.437500 1.125000 -4.750000 +v 1.312500 1.125000 -5.250000 +v 1.437500 1.125000 -5.250000 +v 1.437500 1.125000 -5.125000 +v 1.312500 1.125000 -5.125000 +v 1.312500 1.125000 -4.875000 +v 1.312500 1.125000 -4.750000 +v 1.437500 1.875000 -3.750000 +v 1.437500 2.000000 -3.750000 +v 1.437500 1.875000 -4.250000 +v 1.437500 2.000000 -4.250000 +v 0.937500 1.875000 -3.750000 +v 0.937500 2.000000 -3.750000 +v 0.937500 1.875000 -4.250000 +v 0.937500 2.000000 -4.250000 +v 1.437500 1.875000 -4.125000 +v 1.437500 1.875000 -3.875000 +v 1.437500 2.000000 -3.875000 +v 1.437500 2.000000 -4.125000 +v 0.937500 1.875000 -3.875000 +v 0.937500 1.875000 -4.125000 +v 0.937500 2.000000 -4.125000 +v 0.937500 2.000000 -3.875000 +v 1.062500 1.875000 -4.250000 +v 1.312500 1.875000 -4.250000 +v 1.312500 2.000000 -4.250000 +v 1.062500 2.000000 -4.250000 +v 1.312500 1.875000 -3.750000 +v 1.062500 1.875000 -3.750000 +v 1.062500 2.000000 -3.750000 +v 1.312500 2.000000 -3.750000 +v 1.312500 2.000000 -4.125000 +v 1.062500 2.000000 -4.125000 +v 1.312500 2.000000 -3.875000 +v 1.062500 2.000000 -3.875000 +v 1.062500 1.875000 -4.125000 +v 1.312500 1.875000 -4.125000 +v 1.062500 1.875000 -3.875000 +v 1.312500 1.875000 -3.875000 +v 1.437500 1.125000 -3.875000 +v 1.437500 1.125000 -3.750000 +v 1.312500 1.125000 -4.250000 +v 1.437500 1.125000 -4.250000 +v 1.437500 1.125000 -4.125000 +v 1.312500 1.125000 -4.125000 +v 1.312500 1.125000 -3.875000 +v 1.312500 1.125000 -3.750000 +v 1.437500 1.875000 -2.750000 +v 1.437500 2.000000 -2.750000 +v 1.437500 1.875000 -3.250000 +v 1.437500 2.000000 -3.250000 +v 0.937500 1.875000 -2.750000 +v 0.937500 2.000000 -2.750000 +v 0.937500 1.875000 -3.250000 +v 0.937500 2.000000 -3.250000 +v 1.437500 1.875000 -3.125000 +v 1.437500 1.875000 -2.875000 +v 1.437500 2.000000 -2.875000 +v 1.437500 2.000000 -3.125000 +v 0.937500 1.875000 -2.875000 +v 0.937500 1.875000 -3.125000 +v 0.937500 2.000000 -3.125000 +v 0.937500 2.000000 -2.875000 +v 1.062500 1.875000 -3.250000 +v 1.312500 1.875000 -3.250000 +v 1.312500 2.000000 -3.250000 +v 1.062500 2.000000 -3.250000 +v 1.312500 1.875000 -2.750000 +v 1.062500 1.875000 -2.750000 +v 1.062500 2.000000 -2.750000 +v 1.312500 2.000000 -2.750000 +v 1.312500 2.000000 -3.125000 +v 1.062500 2.000000 -3.125000 +v 1.312500 2.000000 -2.875000 +v 1.062500 2.000000 -2.875000 +v 1.062500 1.875000 -3.125000 +v 1.312500 1.875000 -3.125000 +v 1.062500 1.875000 -2.875000 +v 1.312500 1.875000 -2.875000 +v 1.437500 1.125000 -2.875000 +v 1.437500 1.125000 -2.750000 +v 1.312500 1.125000 -3.250000 +v 1.437500 1.125000 -3.250000 +v 1.437500 1.125000 -3.125000 +v 1.312500 1.125000 -3.125000 +v 1.312500 1.125000 -2.875000 +v 1.312500 1.125000 -2.750000 +v 1.437500 1.875000 -1.750000 +v 1.437500 2.000000 -1.750000 +v 1.437500 1.875000 -2.250000 +v 1.437500 2.000000 -2.250000 +v 0.937500 1.875000 -1.750000 +v 0.937500 2.000000 -1.750000 +v 0.937500 1.875000 -2.250000 +v 0.937500 2.000000 -2.250000 +v 1.437500 1.875000 -2.125000 +v 1.437500 1.875000 -1.875000 +v 1.437500 2.000000 -1.875000 +v 1.437500 2.000000 -2.125000 +v 0.937500 1.875000 -1.875000 +v 0.937500 1.875000 -2.125000 +v 0.937500 2.000000 -2.125000 +v 0.937500 2.000000 -1.875000 +v 1.062500 1.875000 -2.250000 +v 1.312500 1.875000 -2.250000 +v 1.312500 2.000000 -2.250000 +v 1.062500 2.000000 -2.250000 +v 1.312500 1.875000 -1.750000 +v 1.062500 1.875000 -1.750000 +v 1.062500 2.000000 -1.750000 +v 1.312500 2.000000 -1.750000 +v 1.312500 2.000000 -2.125000 +v 1.062500 2.000000 -2.125000 +v 1.312500 2.000000 -1.875000 +v 1.062500 2.000000 -1.875000 +v 1.062500 1.875000 -2.125000 +v 1.312500 1.875000 -2.125000 +v 1.062500 1.875000 -1.875000 +v 1.312500 1.875000 -1.875000 +v 1.437500 1.125000 -1.875000 +v 1.437500 1.125000 -1.750000 +v 1.312500 1.125000 -2.250000 +v 1.437500 1.125000 -2.250000 +v 1.437500 1.125000 -2.125000 +v 1.312500 1.125000 -2.125000 +v 1.312500 1.125000 -1.875000 +v 1.312500 1.125000 -1.750000 +v 1.437500 1.875000 -0.750000 +v 1.437500 2.000000 -0.750000 +v 1.437500 1.875000 -1.250000 +v 1.437500 2.000000 -1.250000 +v 0.937500 1.875000 -0.750000 +v 0.937500 2.000000 -0.750000 +v 0.937500 1.875000 -1.250000 +v 0.937500 2.000000 -1.250000 +v 1.437500 1.875000 -1.125000 +v 1.437500 1.875000 -0.875000 +v 1.437500 2.000000 -0.875000 +v 1.437500 2.000000 -1.125000 +v 0.937500 1.875000 -0.875000 +v 0.937500 1.875000 -1.125000 +v 0.937500 2.000000 -1.125000 +v 0.937500 2.000000 -0.875000 +v 1.062500 1.875000 -1.250000 +v 1.312500 1.875000 -1.250000 +v 1.312500 2.000000 -1.250000 +v 1.062500 2.000000 -1.250000 +v 1.312500 1.875000 -0.750000 +v 1.062500 1.875000 -0.750000 +v 1.062500 2.000000 -0.750000 +v 1.312500 2.000000 -0.750000 +v 1.312500 2.000000 -1.125000 +v 1.062500 2.000000 -1.125000 +v 1.312500 2.000000 -0.875000 +v 1.062500 2.000000 -0.875000 +v 1.062500 1.875000 -1.125000 +v 1.312500 1.875000 -1.125000 +v 1.062500 1.875000 -0.875000 +v 1.312500 1.875000 -0.875000 +v 1.437500 1.125000 -0.875000 +v 1.437500 1.125000 -0.750000 +v 1.312500 1.125000 -1.250000 +v 1.437500 1.125000 -1.250000 +v 1.437500 1.125000 -1.125000 +v 1.312500 1.125000 -1.125000 +v 1.312500 1.125000 -0.875000 +v 1.312500 1.125000 -0.750000 +v 1.437500 1.875000 0.250000 +v 1.437500 2.000000 0.250000 +v 1.437500 1.875000 -0.250000 +v 1.437500 2.000000 -0.250000 +v 0.937500 1.875000 0.250000 +v 0.937500 2.000000 0.250000 +v 0.937500 1.875000 -0.250000 +v 0.937500 2.000000 -0.250000 +v 1.437500 1.875000 -0.125000 +v 1.437500 1.875000 0.125000 +v 1.437500 2.000000 0.125000 +v 1.437500 2.000000 -0.125000 +v 0.937500 1.875000 0.125000 +v 0.937500 1.875000 -0.125000 +v 0.937500 2.000000 -0.125000 +v 0.937500 2.000000 0.125000 +v 1.062500 1.875000 -0.250000 +v 1.312500 1.875000 -0.250000 +v 1.312500 2.000000 -0.250000 +v 1.062500 2.000000 -0.250000 +v 1.312500 1.875000 0.250000 +v 1.062500 1.875000 0.250000 +v 1.062500 2.000000 0.250000 +v 1.312500 2.000000 0.250000 +v 1.312500 2.000000 -0.125000 +v 1.062500 2.000000 -0.125000 +v 1.312500 2.000000 0.125000 +v 1.062500 2.000000 0.125000 +v 1.062500 1.875000 -0.125000 +v 1.312500 1.875000 -0.125000 +v 1.062500 1.875000 0.125000 +v 1.312500 1.875000 0.125000 +v 1.437500 1.125000 0.125000 +v 1.437500 1.125000 0.250000 +v 1.312500 1.125000 -0.250000 +v 1.437500 1.125000 -0.250000 +v 1.437500 1.125000 -0.125000 +v 1.312500 1.125000 -0.125000 +v 1.312500 1.125000 0.125000 +v 1.312500 1.125000 0.250000 +v 1.437500 1.875000 1.250000 +v 1.437500 2.000000 1.250000 +v 1.437500 1.875000 0.750000 +v 1.437500 2.000000 0.750000 +v 0.937500 1.875000 1.250000 +v 0.937500 2.000000 1.250000 +v 0.937500 1.875000 0.750000 +v 0.937500 2.000000 0.750000 +v 1.437500 1.875000 0.875000 +v 1.437500 1.875000 1.125000 +v 1.437500 2.000000 1.125000 +v 1.437500 2.000000 0.875000 +v 0.937500 1.875000 1.125000 +v 0.937500 1.875000 0.875000 +v 0.937500 2.000000 0.875000 +v 0.937500 2.000000 1.125000 +v 1.062500 1.875000 0.750000 +v 1.312500 1.875000 0.750000 +v 1.312500 2.000000 0.750000 +v 1.062500 2.000000 0.750000 +v 1.312500 1.875000 1.250000 +v 1.062500 1.875000 1.250000 +v 1.062500 2.000000 1.250000 +v 1.312500 2.000000 1.250000 +v 1.312500 2.000000 0.875000 +v 1.062500 2.000000 0.875000 +v 1.312500 2.000000 1.125000 +v 1.062500 2.000000 1.125000 +v 1.062500 1.875000 0.875000 +v 1.312500 1.875000 0.875000 +v 1.062500 1.875000 1.125000 +v 1.312500 1.875000 1.125000 +v 1.437500 1.125000 1.125000 +v 1.437500 1.125000 1.250000 +v 1.312500 1.125000 0.750000 +v 1.437500 1.125000 0.750000 +v 1.437500 1.125000 0.875000 +v 1.312500 1.125000 0.875000 +v 1.312500 1.125000 1.125000 +v 1.312500 1.125000 1.250000 +v 1.437500 1.875000 2.250000 +v 1.437500 2.000000 2.250000 +v 1.437500 1.875000 1.750000 +v 1.437500 2.000000 1.750000 +v 0.937500 1.875000 2.250000 +v 0.937500 2.000000 2.250000 +v 0.937500 1.875000 1.750000 +v 0.937500 2.000000 1.750000 +v 1.437500 1.875000 1.875000 +v 1.437500 1.875000 2.125000 +v 1.437500 2.000000 2.125000 +v 1.437500 2.000000 1.875000 +v 0.937500 1.875000 2.125000 +v 0.937500 1.875000 1.875000 +v 0.937500 2.000000 1.875000 +v 0.937500 2.000000 2.125000 +v 1.062500 1.875000 1.750000 +v 1.312500 1.875000 1.750000 +v 1.312500 2.000000 1.750000 +v 1.062500 2.000000 1.750000 +v 1.312500 1.875000 2.250000 +v 1.062500 1.875000 2.250000 +v 1.062500 2.000000 2.250000 +v 1.312500 2.000000 2.250000 +v 1.312500 2.000000 1.875000 +v 1.062500 2.000000 1.875000 +v 1.312500 2.000000 2.125000 +v 1.062500 2.000000 2.125000 +v 1.062500 1.875000 1.875000 +v 1.312500 1.875000 1.875000 +v 1.062500 1.875000 2.125000 +v 1.312500 1.875000 2.125000 +v 1.437500 1.125000 2.125000 +v 1.437500 1.125000 2.250000 +v 1.312500 1.125000 1.750000 +v 1.437500 1.125000 1.750000 +v 1.437500 1.125000 1.875000 +v 1.312500 1.125000 1.875000 +v 1.312500 1.125000 2.125000 +v 1.312500 1.125000 2.250000 +v 1.437500 1.875000 3.250000 +v 1.437500 2.000000 3.250000 +v 1.437500 1.875000 2.750000 +v 1.437500 2.000000 2.750000 +v 0.937500 1.875000 3.250000 +v 0.937500 2.000000 3.250000 +v 0.937500 1.875000 2.750000 +v 0.937500 2.000000 2.750000 +v 1.437500 1.875000 2.875000 +v 1.437500 1.875000 3.125000 +v 1.437500 2.000000 3.125000 +v 1.437500 2.000000 2.875000 +v 0.937500 1.875000 3.125000 +v 0.937500 1.875000 2.875000 +v 0.937500 2.000000 2.875000 +v 0.937500 2.000000 3.125000 +v 1.062500 1.875000 2.750000 +v 1.312500 1.875000 2.750000 +v 1.312500 2.000000 2.750000 +v 1.062500 2.000000 2.750000 +v 1.312500 1.875000 3.250000 +v 1.062500 1.875000 3.250000 +v 1.062500 2.000000 3.250000 +v 1.312500 2.000000 3.250000 +v 1.312500 2.000000 2.875000 +v 1.062500 2.000000 2.875000 +v 1.312500 2.000000 3.125000 +v 1.062500 2.000000 3.125000 +v 1.062500 1.875000 2.875000 +v 1.312500 1.875000 2.875000 +v 1.062500 1.875000 3.125000 +v 1.312500 1.875000 3.125000 +v 1.437500 1.125000 3.125000 +v 1.437500 1.125000 3.250000 +v 1.312500 1.125000 2.750000 +v 1.437500 1.125000 2.750000 +v 1.437500 1.125000 2.875000 +v 1.312500 1.125000 2.875000 +v 1.312500 1.125000 3.125000 +v 1.312500 1.125000 3.250000 +v 1.437500 1.875000 4.250000 +v 1.437500 2.000000 4.250000 +v 1.437500 1.875000 3.750000 +v 1.437500 2.000000 3.750000 +v 0.937500 1.875000 4.250000 +v 0.937500 2.000000 4.250000 +v 0.937500 1.875000 3.750000 +v 0.937500 2.000000 3.750000 +v 1.437500 1.875000 3.875000 +v 1.437500 1.875000 4.125000 +v 1.437500 2.000000 4.125000 +v 1.437500 2.000000 3.875000 +v 0.937500 1.875000 4.125000 +v 0.937500 1.875000 3.875000 +v 0.937500 2.000000 3.875000 +v 0.937500 2.000000 4.125000 +v 1.062500 1.875000 3.750000 +v 1.312500 1.875000 3.750000 +v 1.312500 2.000000 3.750000 +v 1.062500 2.000000 3.750000 +v 1.312500 1.875000 4.250000 +v 1.062500 1.875000 4.250000 +v 1.062500 2.000000 4.250000 +v 1.312500 2.000000 4.250000 +v 1.312500 2.000000 3.875000 +v 1.062500 2.000000 3.875000 +v 1.312500 2.000000 4.125000 +v 1.062500 2.000000 4.125000 +v 1.062500 1.875000 3.875000 +v 1.312500 1.875000 3.875000 +v 1.062500 1.875000 4.125000 +v 1.312500 1.875000 4.125000 +v 1.437500 1.125000 4.125000 +v 1.437500 1.125000 4.250000 +v 1.312500 1.125000 3.750000 +v 1.437500 1.125000 3.750000 +v 1.437500 1.125000 3.875000 +v 1.312500 1.125000 3.875000 +v 1.312500 1.125000 4.125000 +v 1.312500 1.125000 4.250000 +v 1.437500 1.875000 5.250000 +v 1.437500 2.000000 5.250000 +v 1.437500 1.875000 4.750000 +v 1.437500 2.000000 4.750000 +v 0.937500 1.875000 5.250000 +v 0.937500 2.000000 5.250000 +v 0.937500 1.875000 4.750000 +v 0.937500 2.000000 4.750000 +v 1.437500 1.875000 4.875000 +v 1.437500 1.875000 5.125000 +v 1.437500 2.000000 5.125000 +v 1.437500 2.000000 4.875000 +v 0.937500 1.875000 5.125000 +v 0.937500 1.875000 4.875000 +v 0.937500 2.000000 4.875000 +v 0.937500 2.000000 5.125000 +v 1.062500 1.875000 4.750000 +v 1.312500 1.875000 4.750000 +v 1.312500 2.000000 4.750000 +v 1.062500 2.000000 4.750000 +v 1.312500 1.875000 5.250000 +v 1.062500 1.875000 5.250000 +v 1.062500 2.000000 5.250000 +v 1.312500 2.000000 5.250000 +v 1.312500 2.000000 4.875000 +v 1.062500 2.000000 4.875000 +v 1.312500 2.000000 5.125000 +v 1.062500 2.000000 5.125000 +v 1.062500 1.875000 4.875000 +v 1.312500 1.875000 4.875000 +v 1.062500 1.875000 5.125000 +v 1.312500 1.875000 5.125000 +v 1.437500 1.125000 5.125000 +v 1.437500 1.125000 5.250000 +v 1.312500 1.125000 4.750000 +v 1.437500 1.125000 4.750000 +v 1.437500 1.125000 4.875000 +v 1.312500 1.125000 4.875000 +v 1.312500 1.125000 5.125000 +v 1.312500 1.125000 5.250000 +v 0.122617 2.375000 -5.500900 +v 0.122617 2.625000 -5.500900 +v 0.122617 2.125000 -5.750900 +v 0.122617 2.375000 -5.750900 +v 0.185117 2.375000 -5.500900 +v 0.185117 2.625000 -5.500900 +v 0.185117 2.125000 -5.750900 +v 0.185117 2.375000 -5.750900 +v 0.122617 2.062500 -5.750900 +v 0.122617 2.312500 -5.500900 +v 0.185117 2.062500 -5.750900 +v 0.185117 2.312500 -5.500900 +v -0.127383 2.125000 -5.750900 +v -0.127383 2.375000 -5.500900 +v -0.127383 2.062500 -5.750900 +v -0.127383 2.312500 -5.500900 +v -0.189883 2.125000 -5.750900 +v -0.189883 2.375000 -5.500900 +v -0.189883 2.062500 -5.750900 +v -0.189883 2.312500 -5.500900 +v -0.127383 2.375000 -5.750900 +v -0.127383 2.625000 -5.500900 +v -0.189883 2.375000 -5.750900 +v -0.189883 2.625000 -5.500900 +v 0.122617 2.375000 5.500900 +v 0.122617 2.625000 5.500900 +v 0.122617 2.125000 5.750900 +v 0.122617 2.375000 5.750900 +v 0.185117 2.375000 5.500900 +v 0.185117 2.625000 5.500900 +v 0.185117 2.125000 5.750900 +v 0.185117 2.375000 5.750900 +v 0.122617 2.062500 5.750900 +v 0.122617 2.312500 5.500900 +v 0.185117 2.062500 5.750900 +v 0.185117 2.312500 5.500900 +v -0.127383 2.125000 5.750900 +v -0.127383 2.375000 5.500900 +v -0.127383 2.062500 5.750900 +v -0.127383 2.312500 5.500900 +v -0.189883 2.125000 5.750900 +v -0.189883 2.375000 5.500900 +v -0.189883 2.062500 5.750900 +v -0.189883 2.312500 5.500900 +v -0.127383 2.375000 5.750900 +v -0.127383 2.625000 5.500900 +v -0.189883 2.375000 5.750900 +v -0.189883 2.625000 5.500900 +v -1.555902 1.027951 -3.937500 +v -0.555902 3.027951 -3.937500 +v -1.555902 1.027951 -4.062500 +v -0.555902 3.027951 -4.062500 +v -1.444098 0.972049 -3.937500 +v -0.444098 2.972049 -3.937500 +v -1.444098 0.972049 -4.062500 +v -0.444098 2.972049 -4.062500 +v -1.555902 1.027951 -1.937500 +v -0.555902 3.027951 -1.937500 +v -1.555902 1.027951 -2.062500 +v -0.555902 3.027951 -2.062500 +v -1.444098 0.972049 -1.937500 +v -0.444098 2.972049 -1.937500 +v -1.444098 0.972049 -2.062500 +v -0.444098 2.972049 -2.062500 +v -1.555902 1.027951 0.062500 +v -0.555902 3.027951 0.062500 +v -1.555902 1.027951 -0.062500 +v -0.555902 3.027951 -0.062500 +v -1.444098 0.972049 0.062500 +v -0.444098 2.972049 0.062500 +v -1.444098 0.972049 -0.062500 +v -0.444098 2.972049 -0.062500 +v -1.555902 1.027951 2.062500 +v -0.555902 3.027951 2.062500 +v -1.555902 1.027951 1.937500 +v -0.555902 3.027951 1.937500 +v -1.444098 0.972049 2.062500 +v -0.444098 2.972049 2.062500 +v -1.444098 0.972049 1.937500 +v -0.444098 2.972049 1.937500 +v -1.555902 1.027951 4.062500 +v -0.555902 3.027951 4.062500 +v -1.555902 1.027951 3.937500 +v -0.555902 3.027951 3.937500 +v -1.444098 0.972049 4.062500 +v -0.444098 2.972049 4.062500 +v -1.444098 0.972049 3.937500 +v -0.444098 2.972049 3.937500 +v 1.555902 1.027951 -3.937500 +v 0.555902 3.027951 -3.937500 +v 1.555902 1.027951 -4.062500 +v 0.555902 3.027951 -4.062500 +v 1.444098 0.972049 -3.937500 +v 0.444098 2.972049 -3.937500 +v 1.444098 0.972049 -4.062500 +v 0.444098 2.972049 -4.062500 +v 1.555902 1.027951 -1.937500 +v 0.555902 3.027951 -1.937500 +v 1.555902 1.027951 -2.062500 +v 0.555902 3.027951 -2.062500 +v 1.444098 0.972049 -1.937500 +v 0.444098 2.972049 -1.937500 +v 1.444098 0.972049 -2.062500 +v 0.444098 2.972049 -2.062500 +v 1.555902 1.027951 0.062500 +v 0.555902 3.027951 0.062500 +v 1.555902 1.027951 -0.062500 +v 0.555902 3.027951 -0.062500 +v 1.444098 0.972049 0.062500 +v 0.444098 2.972049 0.062500 +v 1.444098 0.972049 -0.062500 +v 0.444098 2.972049 -0.062500 +v 1.555902 1.027951 2.062500 +v 0.555902 3.027951 2.062500 +v 1.555902 1.027951 1.937500 +v 0.555902 3.027951 1.937500 +v 1.444098 0.972049 2.062500 +v 0.444098 2.972049 2.062500 +v 1.444098 0.972049 1.937500 +v 0.444098 2.972049 1.937500 +v 1.555902 1.027951 4.062500 +v 0.555902 3.027951 4.062500 +v 1.555902 1.027951 3.937500 +v 0.555902 3.027951 3.937500 +v 1.444098 0.972049 4.062500 +v 0.444098 2.972049 4.062500 +v 1.444098 0.972049 3.937500 +v 0.444098 2.972049 3.937500 +v 2.750000 1.000000 4.250000 +v 2.750000 3.000000 4.250000 +v 2.750000 1.000000 3.750000 +v 2.750000 3.000000 3.750000 +v 3.250000 1.000000 4.250000 +v 3.250000 3.000000 4.250000 +v 3.250000 1.000000 3.750000 +v 3.250000 3.000000 3.750000 +v 3.103553 3.353553 3.750000 +v 3.103553 3.353553 4.250000 +v 2.042893 3.707107 3.750000 +v 2.396447 4.060660 3.750000 +v 2.396447 4.060660 4.250000 +v 2.042893 3.707107 4.250000 +v 2.042893 4.207107 3.750000 +v 2.042893 4.207107 4.250000 +v 1.689340 4.060660 4.250000 +v 1.689340 4.060660 3.750000 +v 0.363514 2.734836 3.750000 +v 0.363514 2.734836 4.250000 +v 0.717067 2.381282 4.250000 +v 0.717067 2.381282 3.750000 +v 2.750000 1.000000 2.250000 +v 2.750000 3.000000 2.250000 +v 2.750000 1.000000 1.750000 +v 2.750000 3.000000 1.750000 +v 3.250000 1.000000 2.250000 +v 3.250000 3.000000 2.250000 +v 3.250000 1.000000 1.750000 +v 3.250000 3.000000 1.750000 +v 3.103553 3.353553 1.750000 +v 3.103553 3.353553 2.250000 +v 2.042893 3.707107 1.750000 +v 2.396447 4.060660 1.750000 +v 2.396447 4.060660 2.250000 +v 2.042893 3.707107 2.250000 +v 2.042893 4.207107 1.750000 +v 2.042893 4.207107 2.250000 +v 1.689340 4.060660 2.250000 +v 1.689340 4.060660 1.750000 +v 0.363514 2.734836 1.750000 +v 0.363514 2.734836 2.250000 +v 0.717067 2.381282 2.250000 +v 0.717067 2.381282 1.750000 +v 2.750000 1.000000 0.250000 +v 2.750000 3.000000 0.250000 +v 2.750000 1.000000 -0.250000 +v 2.750000 3.000000 -0.250000 +v 3.250000 1.000000 0.250000 +v 3.250000 3.000000 0.250000 +v 3.250000 1.000000 -0.250000 +v 3.250000 3.000000 -0.250000 +v 3.103553 3.353553 -0.250000 +v 3.103553 3.353553 0.250000 +v 2.042893 3.707107 -0.250000 +v 2.396447 4.060660 -0.250000 +v 2.396447 4.060660 0.250000 +v 2.042893 3.707107 0.250000 +v 2.042893 4.207107 -0.250000 +v 2.042893 4.207107 0.250000 +v 1.689340 4.060660 0.250000 +v 1.689340 4.060660 -0.250000 +v 0.363514 2.734836 -0.250000 +v 0.363514 2.734836 0.250000 +v 0.717067 2.381282 0.250000 +v 0.717067 2.381282 -0.250000 +v 2.750000 1.000000 -1.750000 +v 2.750000 3.000000 -1.750000 +v 2.750000 1.000000 -2.250000 +v 2.750000 3.000000 -2.250000 +v 3.250000 1.000000 -1.750000 +v 3.250000 3.000000 -1.750000 +v 3.250000 1.000000 -2.250000 +v 3.250000 3.000000 -2.250000 +v 3.103553 3.353553 -2.250000 +v 3.103553 3.353553 -1.750000 +v 2.042893 3.707107 -2.250000 +v 2.396447 4.060660 -2.250000 +v 2.396447 4.060660 -1.750000 +v 2.042893 3.707107 -1.750000 +v 2.042893 4.207107 -2.250000 +v 2.042893 4.207107 -1.750000 +v 1.689340 4.060660 -1.750000 +v 1.689340 4.060660 -2.250000 +v 0.363514 2.734836 -2.250000 +v 0.363514 2.734836 -1.750000 +v 0.717067 2.381282 -1.750000 +v 0.717067 2.381282 -2.250000 +v 2.750000 1.000000 -3.750000 +v 2.750000 3.000000 -3.750000 +v 2.750000 1.000000 -4.250000 +v 2.750000 3.000000 -4.250000 +v 3.250000 1.000000 -3.750000 +v 3.250000 3.000000 -3.750000 +v 3.250000 1.000000 -4.250000 +v 3.250000 3.000000 -4.250000 +v 3.103553 3.353553 -4.250000 +v 3.103553 3.353553 -3.750000 +v 2.042893 3.707107 -4.250000 +v 2.396447 4.060660 -4.250000 +v 2.396447 4.060660 -3.750000 +v 2.042893 3.707107 -3.750000 +v 2.042893 4.207107 -4.250000 +v 2.042893 4.207107 -3.750000 +v 1.689340 4.060660 -3.750000 +v 1.689340 4.060660 -4.250000 +v 0.363514 2.734836 -4.250000 +v 0.363514 2.734836 -3.750000 +v 0.717067 2.381282 -3.750000 +v 0.717067 2.381282 -4.250000 +vt 0.280000 0.120130 +vt 0.325714 0.016234 +vt 0.325714 0.120130 +vt 0.860000 0.051948 +vt 0.882857 0.048701 +vt 0.882857 0.051948 +vt 0.371429 0.016234 +vt 0.925714 0.045455 +vt 0.922857 0.019481 +vt 0.925714 0.019481 +vt 0.234286 0.016234 +vt 0.280000 0.016234 +vt 0.737143 0.123377 +vt 0.691429 0.240260 +vt 0.691429 0.123377 +vt 0.685714 0.022727 +vt 0.662857 0.055195 +vt 0.662857 0.022727 +vt 0.645714 0.240260 +vt 0.600000 0.240260 +vt 0.645714 0.123377 +vt 0.554286 0.240260 +vt 0.600000 0.123377 +vt 0.508571 0.240260 +vt 0.554286 0.123377 +vt 0.462857 0.240260 +vt 0.508571 0.123377 +vt 0.417143 0.240260 +vt 0.462857 0.123377 +vt 0.371429 0.240260 +vt 0.417143 0.123377 +vt 0.234286 0.240260 +vt 0.280000 0.123377 +vt 0.280000 0.240260 +vt 0.325714 0.522727 +vt 0.234286 0.470779 +vt 0.325714 0.470779 +vt 0.231429 0.574675 +vt 0.185714 0.522727 +vt 0.231429 0.522727 +vt 0.997143 0.905844 +vt 0.957143 0.853896 +vt 0.997143 0.853896 +vt 0.882857 0.750000 +vt 0.922857 0.801948 +vt 0.882857 0.801948 +vt 0.997143 0.801948 +vt 0.957143 0.750000 +vt 0.997143 0.750000 +vt 0.882857 0.698052 +vt 0.922857 0.750000 +vt 0.957143 0.698052 +vt 0.997143 0.698052 +vt 0.882857 0.853896 +vt 0.922857 0.905844 +vt 0.882857 0.905844 +vt 0.634286 0.055195 +vt 0.662857 0.094156 +vt 0.634286 0.094156 +vt 0.748571 0.051948 +vt 0.771429 0.048701 +vt 0.771429 0.051948 +vt 0.140000 0.522727 +vt 0.094286 0.574675 +vt 0.094286 0.522727 +vt 0.140000 0.574675 +vt 0.185714 0.470779 +vt 0.140000 0.470779 +vt 0.185714 0.418831 +vt 0.140000 0.418831 +vt 0.185714 0.366883 +vt 0.140000 0.366883 +vt 0.185714 0.314935 +vt 0.140000 0.314935 +vt 0.185714 0.262987 +vt 0.140000 0.262987 +vt 0.185714 0.211039 +vt 0.140000 0.211039 +vt 0.185714 0.159091 +vt 0.140000 0.055195 +vt 0.185714 0.003247 +vt 0.185714 0.055195 +vt 0.691429 0.243506 +vt 0.737143 0.360390 +vt 0.691429 0.360390 +vt 0.737143 0.363636 +vt 0.691429 0.467532 +vt 0.691429 0.363636 +vt 0.231429 0.470779 +vt 0.231429 0.418831 +vt 0.231429 0.366883 +vt 0.231429 0.314935 +vt 0.231429 0.262987 +vt 0.231429 0.211039 +vt 0.231429 0.159091 +vt 0.231429 0.003247 +vt 0.231429 0.055195 +vt 0.691429 0.525974 +vt 0.737143 0.577922 +vt 0.691429 0.577922 +vt 0.002857 0.574675 +vt 0.002857 0.522727 +vt 0.094286 0.470779 +vt 0.094286 0.418831 +vt 0.094286 0.366883 +vt 0.094286 0.314935 +vt 0.094286 0.262987 +vt 0.094286 0.211039 +vt 0.140000 0.159091 +vt 0.094286 0.055195 +vt 0.140000 0.003247 +vt 0.371429 0.243506 +vt 0.325714 0.360390 +vt 0.325714 0.243506 +vt 0.417143 0.243506 +vt 0.371429 0.360390 +vt 0.462857 0.243506 +vt 0.417143 0.360390 +vt 0.508571 0.243506 +vt 0.462857 0.360390 +vt 0.554286 0.243506 +vt 0.508571 0.360390 +vt 0.600000 0.243506 +vt 0.554286 0.360390 +vt 0.645714 0.243506 +vt 0.600000 0.360390 +vt 0.645714 0.360390 +vt 0.234286 0.633117 +vt 0.280000 0.581169 +vt 0.280000 0.633117 +vt 0.645714 0.363636 +vt 0.645714 0.467532 +vt 0.600000 0.363636 +vt 0.600000 0.467532 +vt 0.554286 0.363636 +vt 0.554286 0.467532 +vt 0.508571 0.363636 +vt 0.508571 0.467532 +vt 0.462857 0.363636 +vt 0.462857 0.467532 +vt 0.417143 0.363636 +vt 0.417143 0.467532 +vt 0.371429 0.363636 +vt 0.280000 0.467532 +vt 0.234286 0.363636 +vt 0.280000 0.363636 +vt 0.002857 0.470779 +vt 0.002857 0.418831 +vt 0.002857 0.366883 +vt 0.002857 0.314935 +vt 0.002857 0.262987 +vt 0.002857 0.211039 +vt 0.094286 0.159091 +vt 0.002857 0.055195 +vt 0.094286 0.003247 +vt 0.645714 0.525974 +vt 0.645714 0.577922 +vt 0.600000 0.525974 +vt 0.600000 0.577922 +vt 0.554286 0.525974 +vt 0.554286 0.577922 +vt 0.508571 0.525974 +vt 0.508571 0.577922 +vt 0.462857 0.525974 +vt 0.462857 0.577922 +vt 0.417143 0.525974 +vt 0.417143 0.577922 +vt 0.371429 0.525974 +vt 0.280000 0.577922 +vt 0.234286 0.525974 +vt 0.280000 0.525974 +vt 0.645714 0.633117 +vt 0.600000 0.581169 +vt 0.645714 0.581169 +vt 0.600000 0.633117 +vt 0.554286 0.581169 +vt 0.554286 0.633117 +vt 0.508571 0.581169 +vt 0.508571 0.633117 +vt 0.462857 0.581169 +vt 0.462857 0.633117 +vt 0.417143 0.581169 +vt 0.417143 0.633117 +vt 0.371429 0.581169 +vt 0.371429 0.633117 +vt 0.325714 0.581169 +vt 0.325714 0.633117 +vt 0.605714 0.470779 +vt 0.697143 0.522727 +vt 0.605714 0.522727 +vt 0.817143 0.019481 +vt 0.820000 0.045455 +vt 0.817143 0.045455 +vt 0.780000 0.019481 +vt 0.782857 0.045455 +vt 0.780000 0.045455 +vt 0.934286 0.051948 +vt 0.957143 0.048701 +vt 0.957143 0.051948 +vt 0.465714 0.016234 +vt 0.420000 0.120130 +vt 0.420000 0.016234 +vt 0.511429 0.016234 +vt 0.465714 0.120130 +vt 0.374286 0.016234 +vt 0.525714 0.483766 +vt 0.560000 0.470779 +vt 0.548571 0.483766 +vt 0.525714 0.509740 +vt 0.514286 0.470779 +vt 0.560000 0.522727 +vt 0.548571 0.509740 +vt 0.514286 0.522727 +vt 0.808571 0.042208 +vt 0.805714 0.022727 +vt 0.808571 0.022727 +vt 0.814286 0.045455 +vt 0.811429 0.019481 +vt 0.814286 0.019481 +vt 0.808571 0.012987 +vt 0.785714 0.016234 +vt 0.785714 0.012987 +vt 0.785714 0.051948 +vt 0.808571 0.048701 +vt 0.808571 0.051948 +vt 0.805714 0.045455 +vt 0.785714 0.048701 +vt 0.788571 0.045455 +vt 0.805714 0.019481 +vt 0.808571 0.016234 +vt 0.785714 0.042208 +vt 0.782857 0.019481 +vt 0.785714 0.022727 +vt 0.811429 0.045455 +vt 0.788571 0.042208 +vt 0.788571 0.022727 +vt 0.788571 0.019481 +vt 0.805714 0.042208 +vt 0.480000 0.483766 +vt 0.502857 0.483766 +vt 0.571429 0.483766 +vt 0.594286 0.483766 +vt 0.594286 0.509740 +vt 0.480000 0.509740 +vt 0.468571 0.470779 +vt 0.502857 0.509740 +vt 0.468571 0.522727 +vt 0.571429 0.509740 +vt 0.825714 0.045455 +vt 0.842857 0.042208 +vt 0.842857 0.045455 +vt 0.845714 0.042208 +vt 0.842857 0.022727 +vt 0.845714 0.022727 +vt 0.957143 0.012987 +vt 0.934286 0.016234 +vt 0.934286 0.012987 +vt 0.851429 0.045455 +vt 0.848571 0.019481 +vt 0.851429 0.019481 +vt 0.822857 0.051948 +vt 0.845714 0.048701 +vt 0.845714 0.051948 +vt 0.962857 0.045455 +vt 0.960000 0.019481 +vt 0.962857 0.019481 +vt 0.845714 0.012987 +vt 0.822857 0.016234 +vt 0.822857 0.012987 +vt 0.928571 0.019481 +vt 0.931429 0.045455 +vt 0.928571 0.045455 +vt 0.842857 0.019481 +vt 0.845714 0.016234 +vt 0.954286 0.019481 +vt 0.957143 0.016234 +vt 0.957143 0.042208 +vt 0.960000 0.045455 +vt 0.822857 0.042208 +vt 0.820000 0.019481 +vt 0.822857 0.022727 +vt 0.822857 0.048701 +vt 0.954286 0.045455 +vt 0.934286 0.048701 +vt 0.937143 0.045455 +vt 0.848571 0.045455 +vt 0.934286 0.042208 +vt 0.931429 0.019481 +vt 0.934286 0.022727 +vt 0.825714 0.042208 +vt 0.825714 0.022727 +vt 0.954286 0.022727 +vt 0.937143 0.042208 +vt 0.937143 0.022727 +vt 0.957143 0.022727 +vt 0.825714 0.019481 +vt 0.954286 0.042208 +vt 0.937143 0.019481 +vt 0.417143 0.522727 +vt 0.451429 0.509740 +vt 0.462857 0.522727 +vt 0.417143 0.470779 +vt 0.428571 0.509740 +vt 0.462857 0.470779 +vt 0.428571 0.483766 +vt 0.451429 0.483766 +vt 0.382857 0.483766 +vt 0.371429 0.470779 +vt 0.405714 0.483766 +vt 0.371429 0.522727 +vt 0.405714 0.509740 +vt 0.382857 0.509740 +vt 0.360000 0.509740 +vt 0.337143 0.509740 +vt 0.337143 0.483766 +vt 0.360000 0.483766 +vt 0.862857 0.045455 +vt 0.880000 0.042208 +vt 0.880000 0.045455 +vt 0.900000 0.045455 +vt 0.917143 0.042208 +vt 0.917143 0.045455 +vt 0.768571 0.019481 +vt 0.751429 0.022727 +vt 0.751429 0.019481 +vt 0.771429 0.012987 +vt 0.748571 0.016234 +vt 0.748571 0.012987 +vt 0.897143 0.051948 +vt 0.920000 0.048701 +vt 0.920000 0.051948 +vt 0.882857 0.012987 +vt 0.860000 0.016234 +vt 0.860000 0.012987 +vt 0.742857 0.019481 +vt 0.745714 0.045455 +vt 0.742857 0.045455 +vt 0.920000 0.012987 +vt 0.897143 0.016234 +vt 0.897143 0.012987 +vt 0.888571 0.045455 +vt 0.885714 0.019481 +vt 0.888571 0.019481 +vt 0.777143 0.045455 +vt 0.774286 0.019481 +vt 0.777143 0.019481 +vt 0.891429 0.019481 +vt 0.894286 0.045455 +vt 0.891429 0.045455 +vt 0.854286 0.019481 +vt 0.857143 0.045455 +vt 0.854286 0.045455 +vt 0.860000 0.042208 +vt 0.857143 0.019481 +vt 0.860000 0.022727 +vt 0.860000 0.048701 +vt 0.862857 0.019481 +vt 0.882857 0.016234 +vt 0.880000 0.019481 +vt 0.882857 0.042208 +vt 0.885714 0.045455 +vt 0.771429 0.016234 +vt 0.748571 0.042208 +vt 0.745714 0.019481 +vt 0.748571 0.022727 +vt 0.771429 0.042208 +vt 0.774286 0.045455 +vt 0.768571 0.045455 +vt 0.748571 0.048701 +vt 0.751429 0.045455 +vt 0.900000 0.019481 +vt 0.920000 0.016234 +vt 0.917143 0.019481 +vt 0.897143 0.022727 +vt 0.894286 0.019481 +vt 0.920000 0.022727 +vt 0.922857 0.045455 +vt 0.920000 0.042208 +vt 0.897143 0.048701 +vt 0.862857 0.022727 +vt 0.862857 0.042208 +vt 0.768571 0.022727 +vt 0.751429 0.042208 +vt 0.917143 0.022727 +vt 0.900000 0.042208 +vt 0.900000 0.022727 +vt 0.897143 0.042208 +vt 0.771429 0.022727 +vt 0.880000 0.022727 +vt 0.882857 0.022727 +vt 0.768571 0.042208 +vt 0.737143 0.633117 +vt 0.691429 0.581169 +vt 0.737143 0.581169 +vt 0.691429 0.633117 +vt 0.371429 0.577922 +vt 0.325714 0.525974 +vt 0.325714 0.577922 +vt 0.002857 0.159091 +vt 0.094286 0.107143 +vt 0.002857 0.107143 +vt 0.371429 0.467532 +vt 0.325714 0.363636 +vt 0.325714 0.467532 +vt 0.280000 0.243506 +vt 0.234286 0.360390 +vt 0.234286 0.243506 +vt 0.280000 0.360390 +vt 0.140000 0.107143 +vt 0.231429 0.107143 +vt 0.185714 0.107143 +vt 0.882857 0.646104 +vt 0.922857 0.698052 +vt 0.957143 0.646104 +vt 0.997143 0.646104 +vt 0.325714 0.240260 +vt 0.371429 0.123377 +vt 0.325714 0.123377 +vt 0.780000 0.077922 +vt 0.785714 0.123377 +vt 0.780000 0.123377 +vt 0.745714 0.077922 +vt 0.740000 0.123377 +vt 0.740000 0.071429 +vt 0.745714 0.175325 +vt 0.745714 0.123377 +vt 0.745714 0.227273 +vt 0.740000 0.175325 +vt 0.745714 0.279221 +vt 0.740000 0.227273 +vt 0.745714 0.331169 +vt 0.740000 0.279221 +vt 0.745714 0.383117 +vt 0.740000 0.331169 +vt 0.745714 0.435065 +vt 0.740000 0.383117 +vt 0.745714 0.487013 +vt 0.740000 0.435065 +vt 0.785714 0.175325 +vt 0.780000 0.175325 +vt 0.785714 0.227273 +vt 0.780000 0.227273 +vt 0.785714 0.279221 +vt 0.780000 0.279221 +vt 0.785714 0.331169 +vt 0.780000 0.331169 +vt 0.785714 0.383117 +vt 0.780000 0.383117 +vt 0.785714 0.435065 +vt 0.780000 0.435065 +vt 0.785714 0.487013 +vt 0.780000 0.487013 +vt 0.785714 0.071429 +vt 0.780000 0.636364 +vt 0.740000 0.642857 +vt 0.745714 0.636364 +vt 0.740000 0.590909 +vt 0.745714 0.590909 +vt 0.785714 0.590909 +vt 0.785714 0.642857 +vt 0.745714 0.538961 +vt 0.740000 0.487013 +vt 0.740000 0.538961 +vt 0.785714 0.538961 +vt 0.780000 0.538961 +vt 0.780000 0.590909 +vt 0.997143 0.542208 +vt 0.957143 0.542208 +vt 0.957143 0.496753 +vt 0.788571 0.331169 +vt 0.794286 0.383117 +vt 0.788571 0.383117 +vt 0.834286 0.435065 +vt 0.828571 0.383117 +vt 0.834286 0.383117 +vt 0.788571 0.188312 +vt 0.794286 0.227273 +vt 0.788571 0.227273 +vt 0.788571 0.279221 +vt 0.794286 0.331169 +vt 0.828571 0.331169 +vt 0.834286 0.331169 +vt 0.800000 0.642857 +vt 0.822857 0.636364 +vt 0.822857 0.642857 +vt 0.794286 0.279221 +vt 0.997143 0.957792 +vt 0.962857 0.957792 +vt 0.957143 0.951299 +vt 0.957143 0.801948 +vt 0.922857 0.853896 +vt 0.922857 0.951299 +vt 0.882857 0.490260 +vt 0.917143 0.490260 +vt 0.922857 0.496753 +vt 0.997143 0.594156 +vt 0.882857 0.542208 +vt 0.922857 0.594156 +vt 0.882857 0.594156 +vt 0.957143 0.594156 +vt 0.828571 0.279221 +vt 0.834286 0.279221 +vt 0.822857 0.175325 +vt 0.800000 0.181818 +vt 0.800000 0.175325 +vt 0.922857 0.646104 +vt 0.957143 0.490260 +vt 0.922857 0.957792 +vt 0.957143 0.957792 +vt 0.928571 0.594156 +vt 0.922857 0.542208 +vt 0.928571 0.542208 +vt 0.928571 0.646104 +vt 0.928571 0.698052 +vt 0.928571 0.750000 +vt 0.928571 0.801948 +vt 0.928571 0.853896 +vt 0.951429 0.542208 +vt 0.951429 0.594156 +vt 0.951429 0.646104 +vt 0.951429 0.698052 +vt 0.951429 0.750000 +vt 0.951429 0.801948 +vt 0.951429 0.853896 +vt 0.928571 0.905844 +vt 0.957143 0.905844 +vt 0.951429 0.905844 +vt 0.928571 0.503247 +vt 0.951429 0.503247 +vt 0.951429 0.944805 +vt 0.928571 0.944805 +vt 0.825714 0.331169 +vt 0.820000 0.279221 +vt 0.825714 0.279221 +vt 0.820000 0.185065 +vt 0.802857 0.191558 +vt 0.802857 0.185065 +vt 0.820000 0.227273 +vt 0.825714 0.227273 +vt 0.825714 0.590909 +vt 0.820000 0.538961 +vt 0.825714 0.538961 +vt 0.797143 0.487013 +vt 0.802857 0.538961 +vt 0.797143 0.538961 +vt 0.802857 0.590909 +vt 0.797143 0.590909 +vt 0.825714 0.626623 +vt 0.820000 0.590909 +vt 0.797143 0.435065 +vt 0.802857 0.487013 +vt 0.820000 0.487013 +vt 0.825714 0.487013 +vt 0.834286 0.227273 +vt 0.828571 0.188312 +vt 0.834286 0.188312 +vt 0.834286 0.487013 +vt 0.828571 0.435065 +vt 0.794286 0.435065 +vt 0.788571 0.435065 +vt 0.788571 0.590909 +vt 0.794286 0.629870 +vt 0.788571 0.629870 +vt 0.834286 0.538961 +vt 0.828571 0.487013 +vt 0.794286 0.487013 +vt 0.788571 0.487013 +vt 0.834286 0.629870 +vt 0.828571 0.590909 +vt 0.834286 0.590909 +vt 0.788571 0.538961 +vt 0.794286 0.590909 +vt 0.794286 0.538961 +vt 0.828571 0.538961 +vt 0.828571 0.227273 +vt 0.774286 0.084416 +vt 0.774286 0.123377 +vt 0.751429 0.084416 +vt 0.774286 0.629870 +vt 0.751429 0.629870 +vt 0.751429 0.590909 +vt 0.951429 0.483766 +vt 0.922857 0.490260 +vt 0.928571 0.483766 +vt 0.928571 0.964286 +vt 0.951429 0.964286 +vt 0.922857 0.451299 +vt 0.928571 0.451299 +vt 0.957143 0.451299 +vt 0.957143 0.996753 +vt 0.951429 0.996753 +vt 0.922857 0.996753 +vt 0.602857 0.094156 +vt 0.580000 0.055195 +vt 0.602857 0.055195 +vt 0.685714 0.055195 +vt 0.685714 0.094156 +vt 0.551429 0.055195 +vt 0.580000 0.094156 +vt 0.551429 0.094156 +vt 0.714286 0.094156 +vt 0.714286 0.055195 +vt 0.602857 0.022727 +vt 0.580000 0.022727 +vt 0.631429 0.094156 +vt 0.631429 0.055195 +vt 0.797143 0.279221 +vt 0.797143 0.227273 +vt 0.797143 0.331169 +vt 0.797143 0.383117 +vt 0.825714 0.383117 +vt 0.825714 0.435065 +vt 0.822857 0.181818 +vt 0.820000 0.633117 +vt 0.800000 0.636364 +vt 0.802857 0.633117 +vt 0.797143 0.191558 +vt 0.794286 0.188312 +vt 0.825714 0.191558 +vt 0.797143 0.626623 +vt 0.828571 0.629870 +vt 0.802857 0.279221 +vt 0.802857 0.227273 +vt 0.802857 0.331169 +vt 0.820000 0.331169 +vt 0.802857 0.383117 +vt 0.820000 0.383117 +vt 0.802857 0.435065 +vt 0.820000 0.435065 +vt 0.820000 0.191558 +vt 0.802857 0.626623 +vt 0.820000 0.626623 +vt 0.831429 0.811688 +vt 0.837143 0.818182 +vt 0.837143 0.811688 +vt 0.837143 0.837662 +vt 0.842857 0.844156 +vt 0.842857 0.837662 +vt 0.820000 0.850649 +vt 0.814286 0.844156 +vt 0.814286 0.850649 +vt 0.814286 0.824675 +vt 0.808571 0.818182 +vt 0.808571 0.824675 +vt 0.820000 0.818182 +vt 0.820000 0.824675 +vt 0.831429 0.824675 +vt 0.837143 0.824675 +vt 0.831429 0.818182 +vt 0.837143 0.850649 +vt 0.831429 0.844156 +vt 0.831429 0.850649 +vt 0.820000 0.844156 +vt 0.814286 0.811688 +vt 0.820000 0.811688 +vt 0.831429 0.805195 +vt 0.831429 0.792208 +vt 0.820000 0.805195 +vt 0.820000 0.746753 +vt 0.814286 0.707792 +vt 0.814286 0.746753 +vt 0.837143 0.792208 +vt 0.837143 0.805195 +vt 0.831429 0.837662 +vt 0.820000 0.837662 +vt 0.837143 0.844156 +vt 0.814286 0.837662 +vt 0.808571 0.707792 +vt 0.808571 0.746753 +vt 0.820000 0.792208 +vt 0.814286 0.805195 +vt 0.808571 0.837662 +vt 0.808571 0.844156 +vt 0.842857 0.824675 +vt 0.842857 0.818182 +vt 0.837143 0.788961 +vt 0.831429 0.750000 +vt 0.831429 0.788961 +vt 0.842857 0.788961 +vt 0.837143 0.750000 +vt 0.825714 0.746753 +vt 0.820000 0.707792 +vt 0.825714 0.788961 +vt 0.820000 0.750000 +vt 0.820000 0.788961 +vt 0.831429 0.746753 +vt 0.825714 0.707792 +vt 0.825714 0.750000 +vt 0.794286 0.811688 +vt 0.800000 0.818182 +vt 0.800000 0.811688 +vt 0.800000 0.837662 +vt 0.805714 0.844156 +vt 0.805714 0.837662 +vt 0.782857 0.850649 +vt 0.777143 0.844156 +vt 0.777143 0.850649 +vt 0.777143 0.824675 +vt 0.771429 0.818182 +vt 0.771429 0.824675 +vt 0.782857 0.818182 +vt 0.782857 0.824675 +vt 0.794286 0.824675 +vt 0.800000 0.824675 +vt 0.794286 0.818182 +vt 0.800000 0.850649 +vt 0.794286 0.844156 +vt 0.794286 0.850649 +vt 0.782857 0.844156 +vt 0.777143 0.811688 +vt 0.782857 0.811688 +vt 0.794286 0.805195 +vt 0.794286 0.792208 +vt 0.782857 0.805195 +vt 0.782857 0.746753 +vt 0.777143 0.707792 +vt 0.777143 0.746753 +vt 0.800000 0.792208 +vt 0.800000 0.805195 +vt 0.794286 0.837662 +vt 0.782857 0.837662 +vt 0.800000 0.844156 +vt 0.777143 0.837662 +vt 0.771429 0.707792 +vt 0.771429 0.746753 +vt 0.782857 0.792208 +vt 0.777143 0.805195 +vt 0.771429 0.837662 +vt 0.771429 0.844156 +vt 0.805714 0.824675 +vt 0.805714 0.818182 +vt 0.800000 0.788961 +vt 0.794286 0.750000 +vt 0.794286 0.788961 +vt 0.805714 0.788961 +vt 0.800000 0.750000 +vt 0.788571 0.746753 +vt 0.782857 0.707792 +vt 0.788571 0.788961 +vt 0.782857 0.750000 +vt 0.782857 0.788961 +vt 0.794286 0.746753 +vt 0.788571 0.707792 +vt 0.788571 0.750000 +vt 0.757143 0.811688 +vt 0.762857 0.818182 +vt 0.762857 0.811688 +vt 0.762857 0.837662 +vt 0.768571 0.844156 +vt 0.768571 0.837662 +vt 0.745714 0.850649 +vt 0.740000 0.844156 +vt 0.740000 0.850649 +vt 0.740000 0.824675 +vt 0.734286 0.818182 +vt 0.734286 0.824675 +vt 0.745714 0.818182 +vt 0.745714 0.824675 +vt 0.757143 0.824675 +vt 0.762857 0.824675 +vt 0.757143 0.818182 +vt 0.762857 0.850649 +vt 0.757143 0.844156 +vt 0.757143 0.850649 +vt 0.745714 0.844156 +vt 0.740000 0.811688 +vt 0.745714 0.811688 +vt 0.757143 0.805195 +vt 0.757143 0.792208 +vt 0.745714 0.805195 +vt 0.745714 0.746753 +vt 0.740000 0.707792 +vt 0.740000 0.746753 +vt 0.762857 0.792208 +vt 0.762857 0.805195 +vt 0.757143 0.837662 +vt 0.745714 0.837662 +vt 0.762857 0.844156 +vt 0.740000 0.837662 +vt 0.734286 0.707792 +vt 0.734286 0.746753 +vt 0.745714 0.792208 +vt 0.740000 0.805195 +vt 0.734286 0.837662 +vt 0.734286 0.844156 +vt 0.768571 0.824675 +vt 0.768571 0.818182 +vt 0.762857 0.788961 +vt 0.757143 0.750000 +vt 0.757143 0.788961 +vt 0.768571 0.788961 +vt 0.762857 0.750000 +vt 0.751429 0.746753 +vt 0.745714 0.707792 +vt 0.751429 0.788961 +vt 0.745714 0.750000 +vt 0.745714 0.788961 +vt 0.757143 0.746753 +vt 0.751429 0.707792 +vt 0.751429 0.750000 +vt 0.720000 0.811688 +vt 0.725714 0.818182 +vt 0.725714 0.811688 +vt 0.725714 0.837662 +vt 0.731429 0.844156 +vt 0.731429 0.837662 +vt 0.708571 0.850649 +vt 0.702857 0.844156 +vt 0.702857 0.850649 +vt 0.702857 0.824675 +vt 0.697143 0.818182 +vt 0.697143 0.824675 +vt 0.708571 0.818182 +vt 0.708571 0.824675 +vt 0.720000 0.824675 +vt 0.725714 0.824675 +vt 0.720000 0.818182 +vt 0.725714 0.850649 +vt 0.720000 0.844156 +vt 0.720000 0.850649 +vt 0.708571 0.844156 +vt 0.702857 0.811688 +vt 0.708571 0.811688 +vt 0.720000 0.805195 +vt 0.720000 0.792208 +vt 0.708571 0.805195 +vt 0.708571 0.746753 +vt 0.702857 0.707792 +vt 0.702857 0.746753 +vt 0.725714 0.792208 +vt 0.725714 0.805195 +vt 0.720000 0.837662 +vt 0.708571 0.837662 +vt 0.725714 0.844156 +vt 0.702857 0.837662 +vt 0.697143 0.707792 +vt 0.697143 0.746753 +vt 0.708571 0.792208 +vt 0.702857 0.805195 +vt 0.697143 0.837662 +vt 0.697143 0.844156 +vt 0.731429 0.824675 +vt 0.731429 0.818182 +vt 0.725714 0.788961 +vt 0.720000 0.750000 +vt 0.720000 0.788961 +vt 0.731429 0.788961 +vt 0.725714 0.750000 +vt 0.714286 0.746753 +vt 0.708571 0.707792 +vt 0.714286 0.788961 +vt 0.708571 0.750000 +vt 0.708571 0.788961 +vt 0.720000 0.746753 +vt 0.714286 0.707792 +vt 0.714286 0.750000 +vt 0.682857 0.811688 +vt 0.688571 0.818182 +vt 0.688571 0.811688 +vt 0.688571 0.837662 +vt 0.694286 0.844156 +vt 0.694286 0.837662 +vt 0.671429 0.850649 +vt 0.665714 0.844156 +vt 0.665714 0.850649 +vt 0.665714 0.824675 +vt 0.660000 0.818182 +vt 0.660000 0.824675 +vt 0.671429 0.818182 +vt 0.671429 0.824675 +vt 0.682857 0.824675 +vt 0.688571 0.824675 +vt 0.682857 0.818182 +vt 0.688571 0.850649 +vt 0.682857 0.844156 +vt 0.682857 0.850649 +vt 0.671429 0.844156 +vt 0.665714 0.811688 +vt 0.671429 0.811688 +vt 0.682857 0.805195 +vt 0.682857 0.792208 +vt 0.671429 0.805195 +vt 0.671429 0.746753 +vt 0.665714 0.707792 +vt 0.665714 0.746753 +vt 0.688571 0.792208 +vt 0.688571 0.805195 +vt 0.682857 0.837662 +vt 0.671429 0.837662 +vt 0.688571 0.844156 +vt 0.665714 0.837662 +vt 0.660000 0.707792 +vt 0.660000 0.746753 +vt 0.671429 0.792208 +vt 0.665714 0.805195 +vt 0.660000 0.837662 +vt 0.660000 0.844156 +vt 0.694286 0.824675 +vt 0.694286 0.818182 +vt 0.688571 0.788961 +vt 0.682857 0.750000 +vt 0.682857 0.788961 +vt 0.694286 0.788961 +vt 0.688571 0.750000 +vt 0.677143 0.746753 +vt 0.671429 0.707792 +vt 0.677143 0.788961 +vt 0.671429 0.750000 +vt 0.671429 0.788961 +vt 0.682857 0.746753 +vt 0.677143 0.707792 +vt 0.677143 0.750000 +vt 0.645714 0.811688 +vt 0.651429 0.818182 +vt 0.651429 0.811688 +vt 0.651429 0.837662 +vt 0.657143 0.844156 +vt 0.657143 0.837662 +vt 0.634286 0.850649 +vt 0.628571 0.844156 +vt 0.628571 0.850649 +vt 0.628571 0.824675 +vt 0.622857 0.818182 +vt 0.622857 0.824675 +vt 0.634286 0.818182 +vt 0.634286 0.824675 +vt 0.645714 0.824675 +vt 0.651429 0.824675 +vt 0.645714 0.818182 +vt 0.651429 0.850649 +vt 0.645714 0.844156 +vt 0.645714 0.850649 +vt 0.634286 0.844156 +vt 0.628571 0.811688 +vt 0.634286 0.811688 +vt 0.645714 0.805195 +vt 0.645714 0.792208 +vt 0.634286 0.805195 +vt 0.634286 0.746753 +vt 0.628571 0.707792 +vt 0.628571 0.746753 +vt 0.651429 0.792208 +vt 0.651429 0.805195 +vt 0.645714 0.837662 +vt 0.634286 0.837662 +vt 0.651429 0.844156 +vt 0.628571 0.837662 +vt 0.622857 0.707792 +vt 0.622857 0.746753 +vt 0.634286 0.792208 +vt 0.628571 0.805195 +vt 0.622857 0.837662 +vt 0.622857 0.844156 +vt 0.657143 0.824675 +vt 0.657143 0.818182 +vt 0.651429 0.788961 +vt 0.645714 0.750000 +vt 0.645714 0.788961 +vt 0.657143 0.788961 +vt 0.651429 0.750000 +vt 0.640000 0.746753 +vt 0.634286 0.707792 +vt 0.640000 0.788961 +vt 0.634286 0.750000 +vt 0.634286 0.788961 +vt 0.645714 0.746753 +vt 0.640000 0.707792 +vt 0.640000 0.750000 +vt 0.608571 0.811688 +vt 0.614286 0.818182 +vt 0.614286 0.811688 +vt 0.614286 0.837662 +vt 0.620000 0.844156 +vt 0.620000 0.837662 +vt 0.597143 0.850649 +vt 0.591429 0.844156 +vt 0.591429 0.850649 +vt 0.591429 0.824675 +vt 0.585714 0.818182 +vt 0.585714 0.824675 +vt 0.597143 0.818182 +vt 0.597143 0.824675 +vt 0.608571 0.824675 +vt 0.614286 0.824675 +vt 0.608571 0.818182 +vt 0.614286 0.850649 +vt 0.608571 0.844156 +vt 0.608571 0.850649 +vt 0.597143 0.844156 +vt 0.591429 0.811688 +vt 0.597143 0.811688 +vt 0.608571 0.805195 +vt 0.608571 0.792208 +vt 0.597143 0.805195 +vt 0.597143 0.746753 +vt 0.591429 0.707792 +vt 0.591429 0.746753 +vt 0.614286 0.792208 +vt 0.614286 0.805195 +vt 0.608571 0.837662 +vt 0.597143 0.837662 +vt 0.614286 0.844156 +vt 0.591429 0.837662 +vt 0.585714 0.707792 +vt 0.585714 0.746753 +vt 0.597143 0.792208 +vt 0.591429 0.805195 +vt 0.585714 0.837662 +vt 0.585714 0.844156 +vt 0.620000 0.824675 +vt 0.620000 0.818182 +vt 0.614286 0.788961 +vt 0.608571 0.750000 +vt 0.608571 0.788961 +vt 0.620000 0.788961 +vt 0.614286 0.750000 +vt 0.602857 0.746753 +vt 0.597143 0.707792 +vt 0.602857 0.788961 +vt 0.597143 0.750000 +vt 0.597143 0.788961 +vt 0.608571 0.746753 +vt 0.602857 0.707792 +vt 0.602857 0.750000 +vt 0.571429 0.811688 +vt 0.577143 0.818182 +vt 0.577143 0.811688 +vt 0.577143 0.837662 +vt 0.582857 0.844156 +vt 0.582857 0.837662 +vt 0.560000 0.850649 +vt 0.554286 0.844156 +vt 0.554286 0.850649 +vt 0.554286 0.824675 +vt 0.548571 0.818182 +vt 0.548571 0.824675 +vt 0.560000 0.818182 +vt 0.560000 0.824675 +vt 0.571429 0.824675 +vt 0.577143 0.824675 +vt 0.571429 0.818182 +vt 0.577143 0.850649 +vt 0.571429 0.844156 +vt 0.571429 0.850649 +vt 0.560000 0.844156 +vt 0.554286 0.811688 +vt 0.560000 0.811688 +vt 0.571429 0.805195 +vt 0.571429 0.792208 +vt 0.560000 0.805195 +vt 0.560000 0.746753 +vt 0.554286 0.707792 +vt 0.554286 0.746753 +vt 0.577143 0.792208 +vt 0.577143 0.805195 +vt 0.571429 0.837662 +vt 0.560000 0.837662 +vt 0.577143 0.844156 +vt 0.554286 0.837662 +vt 0.548571 0.707792 +vt 0.548571 0.746753 +vt 0.560000 0.792208 +vt 0.554286 0.805195 +vt 0.548571 0.837662 +vt 0.548571 0.844156 +vt 0.582857 0.824675 +vt 0.582857 0.818182 +vt 0.577143 0.788961 +vt 0.571429 0.750000 +vt 0.571429 0.788961 +vt 0.582857 0.788961 +vt 0.577143 0.750000 +vt 0.565714 0.746753 +vt 0.560000 0.707792 +vt 0.565714 0.788961 +vt 0.560000 0.750000 +vt 0.560000 0.788961 +vt 0.571429 0.746753 +vt 0.565714 0.707792 +vt 0.565714 0.750000 +vt 0.534286 0.811688 +vt 0.540000 0.818182 +vt 0.540000 0.811688 +vt 0.540000 0.837662 +vt 0.545714 0.844156 +vt 0.545714 0.837662 +vt 0.522857 0.850649 +vt 0.517143 0.844156 +vt 0.517143 0.850649 +vt 0.517143 0.824675 +vt 0.511429 0.818182 +vt 0.511429 0.824675 +vt 0.522857 0.818182 +vt 0.522857 0.824675 +vt 0.534286 0.824675 +vt 0.540000 0.824675 +vt 0.534286 0.818182 +vt 0.540000 0.850649 +vt 0.534286 0.844156 +vt 0.534286 0.850649 +vt 0.522857 0.844156 +vt 0.517143 0.811688 +vt 0.522857 0.811688 +vt 0.534286 0.805195 +vt 0.534286 0.792208 +vt 0.522857 0.805195 +vt 0.522857 0.746753 +vt 0.517143 0.707792 +vt 0.517143 0.746753 +vt 0.540000 0.792208 +vt 0.540000 0.805195 +vt 0.534286 0.837662 +vt 0.522857 0.837662 +vt 0.540000 0.844156 +vt 0.517143 0.837662 +vt 0.511429 0.707792 +vt 0.511429 0.746753 +vt 0.522857 0.792208 +vt 0.517143 0.805195 +vt 0.511429 0.837662 +vt 0.511429 0.844156 +vt 0.545714 0.824675 +vt 0.545714 0.818182 +vt 0.540000 0.788961 +vt 0.534286 0.750000 +vt 0.534286 0.788961 +vt 0.545714 0.788961 +vt 0.540000 0.750000 +vt 0.528571 0.746753 +vt 0.522857 0.707792 +vt 0.528571 0.788961 +vt 0.522857 0.750000 +vt 0.522857 0.788961 +vt 0.534286 0.746753 +vt 0.528571 0.707792 +vt 0.528571 0.750000 +vt 0.497143 0.811688 +vt 0.502857 0.818182 +vt 0.502857 0.811688 +vt 0.502857 0.837662 +vt 0.508571 0.844156 +vt 0.508571 0.837662 +vt 0.485714 0.850649 +vt 0.480000 0.844156 +vt 0.480000 0.850649 +vt 0.480000 0.824675 +vt 0.474286 0.818182 +vt 0.474286 0.824675 +vt 0.485714 0.818182 +vt 0.485714 0.824675 +vt 0.497143 0.824675 +vt 0.502857 0.824675 +vt 0.497143 0.818182 +vt 0.502857 0.850649 +vt 0.497143 0.844156 +vt 0.497143 0.850649 +vt 0.485714 0.844156 +vt 0.480000 0.811688 +vt 0.485714 0.811688 +vt 0.497143 0.805195 +vt 0.497143 0.792208 +vt 0.485714 0.805195 +vt 0.485714 0.746753 +vt 0.480000 0.707792 +vt 0.480000 0.746753 +vt 0.502857 0.792208 +vt 0.502857 0.805195 +vt 0.497143 0.837662 +vt 0.485714 0.837662 +vt 0.502857 0.844156 +vt 0.480000 0.837662 +vt 0.474286 0.707792 +vt 0.474286 0.746753 +vt 0.485714 0.792208 +vt 0.480000 0.805195 +vt 0.474286 0.837662 +vt 0.474286 0.844156 +vt 0.508571 0.824675 +vt 0.508571 0.818182 +vt 0.502857 0.788961 +vt 0.497143 0.750000 +vt 0.497143 0.788961 +vt 0.508571 0.788961 +vt 0.502857 0.750000 +vt 0.491429 0.746753 +vt 0.485714 0.707792 +vt 0.491429 0.788961 +vt 0.485714 0.750000 +vt 0.485714 0.788961 +vt 0.497143 0.746753 +vt 0.491429 0.707792 +vt 0.491429 0.750000 +vt 0.868571 0.811688 +vt 0.874286 0.818182 +vt 0.874286 0.811688 +vt 0.874286 0.837662 +vt 0.880000 0.844156 +vt 0.880000 0.837662 +vt 0.857143 0.850649 +vt 0.851429 0.844156 +vt 0.851429 0.850649 +vt 0.851429 0.824675 +vt 0.845714 0.818182 +vt 0.845714 0.824675 +vt 0.857143 0.818182 +vt 0.857143 0.824675 +vt 0.868571 0.824675 +vt 0.874286 0.824675 +vt 0.868571 0.818182 +vt 0.874286 0.850649 +vt 0.868571 0.844156 +vt 0.868571 0.850649 +vt 0.857143 0.844156 +vt 0.851429 0.811688 +vt 0.857143 0.811688 +vt 0.868571 0.805195 +vt 0.868571 0.792208 +vt 0.857143 0.805195 +vt 0.857143 0.746753 +vt 0.851429 0.707792 +vt 0.851429 0.746753 +vt 0.874286 0.792208 +vt 0.874286 0.805195 +vt 0.868571 0.837662 +vt 0.857143 0.837662 +vt 0.874286 0.844156 +vt 0.851429 0.837662 +vt 0.845714 0.707792 +vt 0.845714 0.746753 +vt 0.857143 0.792208 +vt 0.851429 0.805195 +vt 0.845714 0.837662 +vt 0.845714 0.844156 +vt 0.880000 0.824675 +vt 0.880000 0.818182 +vt 0.874286 0.788961 +vt 0.868571 0.750000 +vt 0.868571 0.788961 +vt 0.880000 0.788961 +vt 0.874286 0.750000 +vt 0.862857 0.746753 +vt 0.857143 0.707792 +vt 0.862857 0.788961 +vt 0.857143 0.750000 +vt 0.857143 0.788961 +vt 0.868571 0.746753 +vt 0.862857 0.707792 +vt 0.862857 0.750000 +vt 0.522857 0.957792 +vt 0.517143 0.964286 +vt 0.522857 0.964286 +vt 0.511429 0.990260 +vt 0.517143 0.983766 +vt 0.511429 0.983766 +vt 0.534286 0.996753 +vt 0.540000 0.990260 +vt 0.534286 0.990260 +vt 0.545714 0.964286 +vt 0.540000 0.970779 +vt 0.545714 0.970779 +vt 0.534286 0.964286 +vt 0.534286 0.970779 +vt 0.522857 0.970779 +vt 0.517143 0.970779 +vt 0.517143 0.996753 +vt 0.522857 0.990260 +vt 0.517143 0.990260 +vt 0.522857 0.996753 +vt 0.540000 0.957792 +vt 0.540000 0.964286 +vt 0.534286 0.957792 +vt 0.522857 0.951299 +vt 0.534286 0.951299 +vt 0.522857 0.938312 +vt 0.540000 0.853896 +vt 0.534286 0.892857 +vt 0.540000 0.892857 +vt 0.517143 0.938312 +vt 0.517143 0.951299 +vt 0.522857 0.983766 +vt 0.534286 0.983766 +vt 0.540000 0.983766 +vt 0.545714 0.853896 +vt 0.545714 0.892857 +vt 0.540000 0.951299 +vt 0.534286 0.938312 +vt 0.545714 0.983766 +vt 0.545714 0.990260 +vt 0.511429 0.970779 +vt 0.511429 0.964286 +vt 0.522857 0.896104 +vt 0.517143 0.935065 +vt 0.522857 0.935065 +vt 0.517143 0.896104 +vt 0.511429 0.935065 +vt 0.534286 0.853896 +vt 0.528571 0.892857 +vt 0.534286 0.896104 +vt 0.528571 0.935065 +vt 0.534286 0.935065 +vt 0.528571 0.853896 +vt 0.522857 0.892857 +vt 0.528571 0.896104 +vt 0.560000 0.957792 +vt 0.554286 0.964286 +vt 0.560000 0.964286 +vt 0.548571 0.990260 +vt 0.554286 0.983766 +vt 0.548571 0.983766 +vt 0.571429 0.996753 +vt 0.577143 0.990260 +vt 0.571429 0.990260 +vt 0.582857 0.964286 +vt 0.577143 0.970779 +vt 0.582857 0.970779 +vt 0.571429 0.964286 +vt 0.571429 0.970779 +vt 0.560000 0.970779 +vt 0.554286 0.970779 +vt 0.554286 0.996753 +vt 0.560000 0.990260 +vt 0.554286 0.990260 +vt 0.560000 0.996753 +vt 0.577143 0.957792 +vt 0.577143 0.964286 +vt 0.571429 0.957792 +vt 0.560000 0.951299 +vt 0.571429 0.951299 +vt 0.560000 0.938312 +vt 0.577143 0.853896 +vt 0.571429 0.892857 +vt 0.577143 0.892857 +vt 0.554286 0.938312 +vt 0.554286 0.951299 +vt 0.560000 0.983766 +vt 0.571429 0.983766 +vt 0.577143 0.983766 +vt 0.582857 0.853896 +vt 0.582857 0.892857 +vt 0.577143 0.951299 +vt 0.571429 0.938312 +vt 0.582857 0.983766 +vt 0.582857 0.990260 +vt 0.548571 0.970779 +vt 0.548571 0.964286 +vt 0.560000 0.896104 +vt 0.554286 0.935065 +vt 0.560000 0.935065 +vt 0.554286 0.896104 +vt 0.548571 0.935065 +vt 0.571429 0.853896 +vt 0.565714 0.892857 +vt 0.571429 0.896104 +vt 0.565714 0.935065 +vt 0.571429 0.935065 +vt 0.565714 0.853896 +vt 0.560000 0.892857 +vt 0.565714 0.896104 +vt 0.597143 0.957792 +vt 0.591429 0.964286 +vt 0.597143 0.964286 +vt 0.585714 0.990260 +vt 0.591429 0.983766 +vt 0.585714 0.983766 +vt 0.608571 0.996753 +vt 0.614286 0.990260 +vt 0.608571 0.990260 +vt 0.620000 0.964286 +vt 0.614286 0.970779 +vt 0.620000 0.970779 +vt 0.608571 0.964286 +vt 0.608571 0.970779 +vt 0.597143 0.970779 +vt 0.591429 0.970779 +vt 0.591429 0.996753 +vt 0.597143 0.990260 +vt 0.591429 0.990260 +vt 0.597143 0.996753 +vt 0.614286 0.957792 +vt 0.614286 0.964286 +vt 0.608571 0.957792 +vt 0.597143 0.951299 +vt 0.608571 0.951299 +vt 0.597143 0.938312 +vt 0.614286 0.853896 +vt 0.608571 0.892857 +vt 0.614286 0.892857 +vt 0.591429 0.938312 +vt 0.591429 0.951299 +vt 0.597143 0.983766 +vt 0.608571 0.983766 +vt 0.614286 0.983766 +vt 0.620000 0.853896 +vt 0.620000 0.892857 +vt 0.614286 0.951299 +vt 0.608571 0.938312 +vt 0.620000 0.983766 +vt 0.620000 0.990260 +vt 0.585714 0.970779 +vt 0.585714 0.964286 +vt 0.597143 0.896104 +vt 0.591429 0.935065 +vt 0.597143 0.935065 +vt 0.591429 0.896104 +vt 0.585714 0.935065 +vt 0.608571 0.853896 +vt 0.602857 0.892857 +vt 0.608571 0.896104 +vt 0.602857 0.935065 +vt 0.608571 0.935065 +vt 0.602857 0.853896 +vt 0.597143 0.892857 +vt 0.602857 0.896104 +vt 0.634286 0.957792 +vt 0.628571 0.964286 +vt 0.634286 0.964286 +vt 0.622857 0.990260 +vt 0.628571 0.983766 +vt 0.622857 0.983766 +vt 0.645714 0.996753 +vt 0.651429 0.990260 +vt 0.645714 0.990260 +vt 0.657143 0.964286 +vt 0.651429 0.970779 +vt 0.657143 0.970779 +vt 0.645714 0.964286 +vt 0.645714 0.970779 +vt 0.634286 0.970779 +vt 0.628571 0.970779 +vt 0.628571 0.996753 +vt 0.634286 0.990260 +vt 0.628571 0.990260 +vt 0.634286 0.996753 +vt 0.651429 0.957792 +vt 0.651429 0.964286 +vt 0.645714 0.957792 +vt 0.634286 0.951299 +vt 0.645714 0.951299 +vt 0.634286 0.938312 +vt 0.651429 0.853896 +vt 0.645714 0.892857 +vt 0.651429 0.892857 +vt 0.628571 0.938312 +vt 0.628571 0.951299 +vt 0.634286 0.983766 +vt 0.645714 0.983766 +vt 0.651429 0.983766 +vt 0.657143 0.853896 +vt 0.657143 0.892857 +vt 0.651429 0.951299 +vt 0.645714 0.938312 +vt 0.657143 0.983766 +vt 0.657143 0.990260 +vt 0.622857 0.970779 +vt 0.622857 0.964286 +vt 0.634286 0.896104 +vt 0.628571 0.935065 +vt 0.634286 0.935065 +vt 0.628571 0.896104 +vt 0.622857 0.935065 +vt 0.645714 0.853896 +vt 0.640000 0.892857 +vt 0.645714 0.896104 +vt 0.640000 0.935065 +vt 0.645714 0.935065 +vt 0.640000 0.853896 +vt 0.634286 0.892857 +vt 0.640000 0.896104 +vt 0.671429 0.957792 +vt 0.665714 0.964286 +vt 0.671429 0.964286 +vt 0.660000 0.990260 +vt 0.665714 0.983766 +vt 0.660000 0.983766 +vt 0.682857 0.996753 +vt 0.688571 0.990260 +vt 0.682857 0.990260 +vt 0.694286 0.964286 +vt 0.688571 0.970779 +vt 0.694286 0.970779 +vt 0.682857 0.964286 +vt 0.682857 0.970779 +vt 0.671429 0.970779 +vt 0.665714 0.970779 +vt 0.665714 0.996753 +vt 0.671429 0.990260 +vt 0.665714 0.990260 +vt 0.671429 0.996753 +vt 0.688571 0.957792 +vt 0.688571 0.964286 +vt 0.682857 0.957792 +vt 0.671429 0.951299 +vt 0.682857 0.951299 +vt 0.671429 0.938312 +vt 0.688571 0.853896 +vt 0.682857 0.892857 +vt 0.688571 0.892857 +vt 0.665714 0.938312 +vt 0.665714 0.951299 +vt 0.671429 0.983766 +vt 0.682857 0.983766 +vt 0.688571 0.983766 +vt 0.694286 0.853896 +vt 0.694286 0.892857 +vt 0.688571 0.951299 +vt 0.682857 0.938312 +vt 0.694286 0.983766 +vt 0.694286 0.990260 +vt 0.660000 0.970779 +vt 0.660000 0.964286 +vt 0.671429 0.896104 +vt 0.665714 0.935065 +vt 0.671429 0.935065 +vt 0.665714 0.896104 +vt 0.660000 0.935065 +vt 0.682857 0.853896 +vt 0.677143 0.892857 +vt 0.682857 0.896104 +vt 0.677143 0.935065 +vt 0.682857 0.935065 +vt 0.677143 0.853896 +vt 0.671429 0.892857 +vt 0.677143 0.896104 +vt 0.708571 0.957792 +vt 0.702857 0.964286 +vt 0.708571 0.964286 +vt 0.697143 0.990260 +vt 0.702857 0.983766 +vt 0.697143 0.983766 +vt 0.720000 0.996753 +vt 0.725714 0.990260 +vt 0.720000 0.990260 +vt 0.731429 0.964286 +vt 0.725714 0.970779 +vt 0.731429 0.970779 +vt 0.720000 0.964286 +vt 0.720000 0.970779 +vt 0.708571 0.970779 +vt 0.702857 0.970779 +vt 0.702857 0.996753 +vt 0.708571 0.990260 +vt 0.702857 0.990260 +vt 0.708571 0.996753 +vt 0.725714 0.957792 +vt 0.725714 0.964286 +vt 0.720000 0.957792 +vt 0.708571 0.951299 +vt 0.720000 0.951299 +vt 0.708571 0.938312 +vt 0.725714 0.853896 +vt 0.720000 0.892857 +vt 0.725714 0.892857 +vt 0.702857 0.938312 +vt 0.702857 0.951299 +vt 0.708571 0.983766 +vt 0.720000 0.983766 +vt 0.725714 0.983766 +vt 0.731429 0.853896 +vt 0.731429 0.892857 +vt 0.725714 0.951299 +vt 0.720000 0.938312 +vt 0.731429 0.983766 +vt 0.731429 0.990260 +vt 0.697143 0.970779 +vt 0.697143 0.964286 +vt 0.708571 0.896104 +vt 0.702857 0.935065 +vt 0.708571 0.935065 +vt 0.702857 0.896104 +vt 0.697143 0.935065 +vt 0.720000 0.853896 +vt 0.714286 0.892857 +vt 0.720000 0.896104 +vt 0.714286 0.935065 +vt 0.720000 0.935065 +vt 0.714286 0.853896 +vt 0.708571 0.892857 +vt 0.714286 0.896104 +vt 0.745714 0.957792 +vt 0.740000 0.964286 +vt 0.745714 0.964286 +vt 0.734286 0.990260 +vt 0.740000 0.983766 +vt 0.734286 0.983766 +vt 0.757143 0.996753 +vt 0.762857 0.990260 +vt 0.757143 0.990260 +vt 0.768571 0.964286 +vt 0.762857 0.970779 +vt 0.768571 0.970779 +vt 0.757143 0.964286 +vt 0.757143 0.970779 +vt 0.745714 0.970779 +vt 0.740000 0.970779 +vt 0.740000 0.996753 +vt 0.745714 0.990260 +vt 0.740000 0.990260 +vt 0.745714 0.996753 +vt 0.762857 0.957792 +vt 0.762857 0.964286 +vt 0.757143 0.957792 +vt 0.745714 0.951299 +vt 0.757143 0.951299 +vt 0.745714 0.938312 +vt 0.762857 0.853896 +vt 0.757143 0.892857 +vt 0.762857 0.892857 +vt 0.740000 0.938312 +vt 0.740000 0.951299 +vt 0.745714 0.983766 +vt 0.757143 0.983766 +vt 0.762857 0.983766 +vt 0.768571 0.853896 +vt 0.768571 0.892857 +vt 0.762857 0.951299 +vt 0.757143 0.938312 +vt 0.768571 0.983766 +vt 0.768571 0.990260 +vt 0.734286 0.970779 +vt 0.734286 0.964286 +vt 0.745714 0.896104 +vt 0.740000 0.935065 +vt 0.745714 0.935065 +vt 0.740000 0.896104 +vt 0.734286 0.935065 +vt 0.757143 0.853896 +vt 0.751429 0.892857 +vt 0.757143 0.896104 +vt 0.751429 0.935065 +vt 0.757143 0.935065 +vt 0.751429 0.853896 +vt 0.745714 0.892857 +vt 0.751429 0.896104 +vt 0.782857 0.957792 +vt 0.777143 0.964286 +vt 0.782857 0.964286 +vt 0.771429 0.990260 +vt 0.777143 0.983766 +vt 0.771429 0.983766 +vt 0.794286 0.996753 +vt 0.800000 0.990260 +vt 0.794286 0.990260 +vt 0.805714 0.964286 +vt 0.800000 0.970779 +vt 0.805714 0.970779 +vt 0.794286 0.964286 +vt 0.794286 0.970779 +vt 0.782857 0.970779 +vt 0.777143 0.970779 +vt 0.777143 0.996753 +vt 0.782857 0.990260 +vt 0.777143 0.990260 +vt 0.782857 0.996753 +vt 0.800000 0.957792 +vt 0.800000 0.964286 +vt 0.794286 0.957792 +vt 0.782857 0.951299 +vt 0.794286 0.951299 +vt 0.782857 0.938312 +vt 0.800000 0.853896 +vt 0.794286 0.892857 +vt 0.800000 0.892857 +vt 0.777143 0.938312 +vt 0.777143 0.951299 +vt 0.782857 0.983766 +vt 0.794286 0.983766 +vt 0.800000 0.983766 +vt 0.805714 0.853896 +vt 0.805714 0.892857 +vt 0.800000 0.951299 +vt 0.794286 0.938312 +vt 0.805714 0.983766 +vt 0.805714 0.990260 +vt 0.771429 0.970779 +vt 0.771429 0.964286 +vt 0.782857 0.896104 +vt 0.777143 0.935065 +vt 0.782857 0.935065 +vt 0.777143 0.896104 +vt 0.771429 0.935065 +vt 0.794286 0.853896 +vt 0.788571 0.892857 +vt 0.794286 0.896104 +vt 0.788571 0.935065 +vt 0.794286 0.935065 +vt 0.788571 0.853896 +vt 0.782857 0.892857 +vt 0.788571 0.896104 +vt 0.820000 0.957792 +vt 0.814286 0.964286 +vt 0.820000 0.964286 +vt 0.808571 0.990260 +vt 0.814286 0.983766 +vt 0.808571 0.983766 +vt 0.831429 0.996753 +vt 0.837143 0.990260 +vt 0.831429 0.990260 +vt 0.842857 0.964286 +vt 0.837143 0.970779 +vt 0.842857 0.970779 +vt 0.831429 0.964286 +vt 0.831429 0.970779 +vt 0.820000 0.970779 +vt 0.814286 0.970779 +vt 0.814286 0.996753 +vt 0.820000 0.990260 +vt 0.814286 0.990260 +vt 0.820000 0.996753 +vt 0.837143 0.957792 +vt 0.837143 0.964286 +vt 0.831429 0.957792 +vt 0.820000 0.951299 +vt 0.831429 0.951299 +vt 0.820000 0.938312 +vt 0.837143 0.853896 +vt 0.831429 0.892857 +vt 0.837143 0.892857 +vt 0.814286 0.938312 +vt 0.814286 0.951299 +vt 0.820000 0.983766 +vt 0.831429 0.983766 +vt 0.837143 0.983766 +vt 0.842857 0.853896 +vt 0.842857 0.892857 +vt 0.837143 0.951299 +vt 0.831429 0.938312 +vt 0.842857 0.983766 +vt 0.842857 0.990260 +vt 0.808571 0.970779 +vt 0.808571 0.964286 +vt 0.820000 0.896104 +vt 0.814286 0.935065 +vt 0.820000 0.935065 +vt 0.814286 0.896104 +vt 0.808571 0.935065 +vt 0.831429 0.853896 +vt 0.825714 0.892857 +vt 0.831429 0.896104 +vt 0.825714 0.935065 +vt 0.831429 0.935065 +vt 0.825714 0.853896 +vt 0.820000 0.892857 +vt 0.825714 0.896104 +vt 0.857143 0.957792 +vt 0.851429 0.964286 +vt 0.857143 0.964286 +vt 0.845714 0.990260 +vt 0.851429 0.983766 +vt 0.845714 0.983766 +vt 0.868571 0.996753 +vt 0.874286 0.990260 +vt 0.868571 0.990260 +vt 0.880000 0.964286 +vt 0.874286 0.970779 +vt 0.880000 0.970779 +vt 0.868571 0.964286 +vt 0.868571 0.970779 +vt 0.857143 0.970779 +vt 0.851429 0.970779 +vt 0.851429 0.996753 +vt 0.857143 0.990260 +vt 0.851429 0.990260 +vt 0.857143 0.996753 +vt 0.874286 0.957792 +vt 0.874286 0.964286 +vt 0.868571 0.957792 +vt 0.857143 0.951299 +vt 0.868571 0.951299 +vt 0.857143 0.938312 +vt 0.874286 0.853896 +vt 0.868571 0.892857 +vt 0.874286 0.892857 +vt 0.851429 0.938312 +vt 0.851429 0.951299 +vt 0.857143 0.983766 +vt 0.868571 0.983766 +vt 0.874286 0.983766 +vt 0.880000 0.853896 +vt 0.880000 0.892857 +vt 0.874286 0.951299 +vt 0.868571 0.938312 +vt 0.880000 0.983766 +vt 0.880000 0.990260 +vt 0.845714 0.970779 +vt 0.845714 0.964286 +vt 0.857143 0.896104 +vt 0.851429 0.935065 +vt 0.857143 0.935065 +vt 0.851429 0.896104 +vt 0.845714 0.935065 +vt 0.868571 0.853896 +vt 0.862857 0.892857 +vt 0.868571 0.896104 +vt 0.862857 0.935065 +vt 0.868571 0.935065 +vt 0.862857 0.853896 +vt 0.857143 0.892857 +vt 0.862857 0.896104 +vt 0.485714 0.957792 +vt 0.480000 0.964286 +vt 0.485714 0.964286 +vt 0.474286 0.990260 +vt 0.480000 0.983766 +vt 0.474286 0.983766 +vt 0.497143 0.996753 +vt 0.502857 0.990260 +vt 0.497143 0.990260 +vt 0.508571 0.964286 +vt 0.502857 0.970779 +vt 0.508571 0.970779 +vt 0.497143 0.964286 +vt 0.497143 0.970779 +vt 0.485714 0.970779 +vt 0.480000 0.970779 +vt 0.480000 0.996753 +vt 0.485714 0.990260 +vt 0.480000 0.990260 +vt 0.485714 0.996753 +vt 0.502857 0.957792 +vt 0.502857 0.964286 +vt 0.497143 0.957792 +vt 0.485714 0.951299 +vt 0.497143 0.951299 +vt 0.485714 0.938312 +vt 0.502857 0.853896 +vt 0.497143 0.892857 +vt 0.502857 0.892857 +vt 0.480000 0.938312 +vt 0.480000 0.951299 +vt 0.485714 0.983766 +vt 0.497143 0.983766 +vt 0.502857 0.983766 +vt 0.508571 0.853896 +vt 0.508571 0.892857 +vt 0.502857 0.951299 +vt 0.497143 0.938312 +vt 0.508571 0.983766 +vt 0.508571 0.990260 +vt 0.474286 0.970779 +vt 0.474286 0.964286 +vt 0.485714 0.896104 +vt 0.480000 0.935065 +vt 0.485714 0.935065 +vt 0.480000 0.896104 +vt 0.474286 0.935065 +vt 0.497143 0.853896 +vt 0.491429 0.892857 +vt 0.497143 0.896104 +vt 0.491429 0.935065 +vt 0.497143 0.935065 +vt 0.491429 0.853896 +vt 0.485714 0.892857 +vt 0.491429 0.896104 +vt 0.822857 0.149351 +vt 0.814286 0.139610 +vt 0.822857 0.129870 +vt 0.822857 0.126623 +vt 0.820000 0.113636 +vt 0.822857 0.113636 +vt 0.811429 0.139610 +vt 0.802857 0.149351 +vt 0.802857 0.129870 +vt 0.822857 0.110390 +vt 0.811429 0.159091 +vt 0.820000 0.110390 +vt 0.822857 0.090909 +vt 0.834286 0.113636 +vt 0.817143 0.110390 +vt 0.820000 0.090909 +vt 0.834286 0.110390 +vt 0.837143 0.113636 +vt 0.834286 0.149351 +vt 0.840000 0.110390 +vt 0.837143 0.090909 +vt 0.840000 0.090909 +vt 0.854286 0.149351 +vt 0.845714 0.139610 +vt 0.854286 0.129870 +vt 0.834286 0.090909 +vt 0.837143 0.110390 +vt 0.842857 0.139610 +vt 0.845714 0.159091 +vt 0.842857 0.159091 +vt 0.834286 0.126623 +vt 0.888571 0.149351 +vt 0.880000 0.139610 +vt 0.880000 0.159091 +vt 0.885714 0.113636 +vt 0.888571 0.126623 +vt 0.888571 0.113636 +vt 0.868571 0.149351 +vt 0.877143 0.139610 +vt 0.868571 0.129870 +vt 0.888571 0.110390 +vt 0.877143 0.159091 +vt 0.888571 0.090909 +vt 0.885714 0.110390 +vt 0.900000 0.113636 +vt 0.882857 0.110390 +vt 0.885714 0.090909 +vt 0.882857 0.090909 +vt 0.902857 0.113636 +vt 0.900000 0.110390 +vt 0.900000 0.149351 +vt 0.888571 0.129870 +vt 0.902857 0.090909 +vt 0.905714 0.110390 +vt 0.905714 0.090909 +vt 0.911429 0.139610 +vt 0.920000 0.149351 +vt 0.920000 0.129870 +vt 0.902857 0.110390 +vt 0.900000 0.090909 +vt 0.911429 0.159091 +vt 0.908571 0.139610 +vt 0.908571 0.159091 +vt 0.900000 0.126623 +vt 0.900000 0.129870 +vt 0.868571 0.308442 +vt 0.862857 0.191558 +vt 0.868571 0.191558 +vt 0.862857 0.308442 +vt 0.857143 0.191558 +vt 0.874286 0.191558 +vt 0.862857 0.185065 +vt 0.868571 0.314935 +vt 0.862857 0.314935 +vt 0.888571 0.308442 +vt 0.882857 0.191558 +vt 0.888571 0.191558 +vt 0.882857 0.308442 +vt 0.877143 0.191558 +vt 0.894286 0.191558 +vt 0.882857 0.185065 +vt 0.888571 0.314935 +vt 0.882857 0.314935 +vt 0.908571 0.308442 +vt 0.902857 0.191558 +vt 0.908571 0.191558 +vt 0.902857 0.308442 +vt 0.897143 0.191558 +vt 0.914286 0.191558 +vt 0.902857 0.185065 +vt 0.908571 0.314935 +vt 0.902857 0.314935 +vt 0.928571 0.308442 +vt 0.922857 0.191558 +vt 0.928571 0.191558 +vt 0.922857 0.308442 +vt 0.917143 0.191558 +vt 0.934286 0.191558 +vt 0.922857 0.185065 +vt 0.928571 0.314935 +vt 0.922857 0.314935 +vt 0.848571 0.308442 +vt 0.842857 0.191558 +vt 0.848571 0.191558 +vt 0.842857 0.308442 +vt 0.837143 0.191558 +vt 0.854286 0.191558 +vt 0.842857 0.185065 +vt 0.848571 0.314935 +vt 0.842857 0.314935 +vt 0.862857 0.324675 +vt 0.868571 0.441558 +vt 0.868571 0.324675 +vt 0.857143 0.441558 +vt 0.862857 0.441558 +vt 0.874286 0.324675 +vt 0.874286 0.441558 +vt 0.862857 0.318182 +vt 0.868571 0.448052 +vt 0.862857 0.448052 +vt 0.882857 0.324675 +vt 0.888571 0.441558 +vt 0.888571 0.324675 +vt 0.877143 0.441558 +vt 0.882857 0.441558 +vt 0.894286 0.324675 +vt 0.894286 0.441558 +vt 0.882857 0.318182 +vt 0.888571 0.448052 +vt 0.882857 0.448052 +vt 0.902857 0.324675 +vt 0.908571 0.441558 +vt 0.908571 0.324675 +vt 0.897143 0.441558 +vt 0.902857 0.441558 +vt 0.914286 0.324675 +vt 0.914286 0.441558 +vt 0.902857 0.318182 +vt 0.908571 0.448052 +vt 0.902857 0.448052 +vt 0.922857 0.324675 +vt 0.928571 0.441558 +vt 0.928571 0.324675 +vt 0.917143 0.441558 +vt 0.922857 0.441558 +vt 0.934286 0.324675 +vt 0.934286 0.441558 +vt 0.922857 0.318182 +vt 0.928571 0.448052 +vt 0.922857 0.448052 +vt 0.842857 0.324675 +vt 0.848571 0.441558 +vt 0.848571 0.324675 +vt 0.837143 0.441558 +vt 0.842857 0.441558 +vt 0.854286 0.324675 +vt 0.854286 0.441558 +vt 0.842857 0.318182 +vt 0.848571 0.448052 +vt 0.842857 0.448052 +vt 0.471429 0.788961 +vt 0.448571 0.685065 +vt 0.471429 0.685065 +vt 0.425714 0.788961 +vt 0.402857 0.685065 +vt 0.425714 0.685065 +vt 0.425714 0.808442 +vt 0.402857 0.860390 +vt 0.402857 0.808442 +vt 0.402857 0.798701 +vt 0.448571 0.788961 +vt 0.471429 0.798701 +vt 0.448571 0.808442 +vt 0.471429 0.808442 +vt 0.448571 0.860390 +vt 0.448571 0.879870 +vt 0.471429 0.889610 +vt 0.448571 0.899351 +vt 0.402857 0.870130 +vt 0.425714 0.860390 +vt 0.425714 0.879870 +vt 0.471429 0.870130 +vt 0.402857 0.899351 +vt 0.425714 0.996753 +vt 0.402857 0.996753 +vt 0.402857 0.889610 +vt 0.425714 0.899351 +vt 0.471429 0.899351 +vt 0.448571 0.996753 +vt 0.377143 0.788961 +vt 0.354286 0.685065 +vt 0.377143 0.685065 +vt 0.331429 0.788961 +vt 0.308571 0.685065 +vt 0.331429 0.685065 +vt 0.331429 0.808442 +vt 0.308571 0.860390 +vt 0.308571 0.808442 +vt 0.308571 0.798701 +vt 0.354286 0.788961 +vt 0.377143 0.798701 +vt 0.354286 0.808442 +vt 0.377143 0.808442 +vt 0.354286 0.860390 +vt 0.354286 0.879870 +vt 0.377143 0.889610 +vt 0.354286 0.899351 +vt 0.308571 0.870130 +vt 0.331429 0.860390 +vt 0.331429 0.879870 +vt 0.377143 0.870130 +vt 0.308571 0.899351 +vt 0.331429 0.996753 +vt 0.308571 0.996753 +vt 0.308571 0.889610 +vt 0.331429 0.899351 +vt 0.377143 0.899351 +vt 0.354286 0.996753 +vt 0.282857 0.788961 +vt 0.260000 0.685065 +vt 0.282857 0.685065 +vt 0.237143 0.788961 +vt 0.214286 0.685065 +vt 0.237143 0.685065 +vt 0.237143 0.808442 +vt 0.214286 0.860390 +vt 0.214286 0.808442 +vt 0.214286 0.798701 +vt 0.260000 0.788961 +vt 0.282857 0.798701 +vt 0.260000 0.808442 +vt 0.282857 0.808442 +vt 0.260000 0.860390 +vt 0.260000 0.879870 +vt 0.282857 0.889610 +vt 0.260000 0.899351 +vt 0.214286 0.870130 +vt 0.237143 0.860390 +vt 0.237143 0.879870 +vt 0.282857 0.870130 +vt 0.214286 0.899351 +vt 0.237143 0.996753 +vt 0.214286 0.996753 +vt 0.214286 0.889610 +vt 0.237143 0.899351 +vt 0.282857 0.899351 +vt 0.260000 0.996753 +vt 0.188571 0.788961 +vt 0.165714 0.685065 +vt 0.188571 0.685065 +vt 0.142857 0.788961 +vt 0.120000 0.685065 +vt 0.142857 0.685065 +vt 0.142857 0.808442 +vt 0.120000 0.860390 +vt 0.120000 0.808442 +vt 0.120000 0.798701 +vt 0.165714 0.788961 +vt 0.188571 0.798701 +vt 0.165714 0.808442 +vt 0.188571 0.808442 +vt 0.165714 0.860390 +vt 0.165714 0.879870 +vt 0.188571 0.889610 +vt 0.165714 0.899351 +vt 0.120000 0.870130 +vt 0.142857 0.860390 +vt 0.142857 0.879870 +vt 0.188571 0.870130 +vt 0.120000 0.899351 +vt 0.142857 0.996753 +vt 0.120000 0.996753 +vt 0.120000 0.889610 +vt 0.142857 0.899351 +vt 0.188571 0.899351 +vt 0.165714 0.996753 +vt 0.094286 0.788961 +vt 0.071429 0.685065 +vt 0.094286 0.685065 +vt 0.048571 0.788961 +vt 0.025714 0.685065 +vt 0.048571 0.685065 +vt 0.048571 0.808442 +vt 0.025714 0.860390 +vt 0.025714 0.808442 +vt 0.025714 0.798701 +vt 0.071429 0.788961 +vt 0.094286 0.798701 +vt 0.071429 0.808442 +vt 0.094286 0.808442 +vt 0.071429 0.860390 +vt 0.071429 0.879870 +vt 0.094286 0.889610 +vt 0.071429 0.899351 +vt 0.025714 0.870130 +vt 0.048571 0.860390 +vt 0.048571 0.879870 +vt 0.094286 0.870130 +vt 0.025714 0.899351 +vt 0.048571 0.996753 +vt 0.025714 0.996753 +vt 0.025714 0.889610 +vt 0.048571 0.899351 +vt 0.094286 0.899351 +vt 0.071429 0.996753 +vt 0.737143 0.240260 +vt 0.234286 0.123377 +vt 0.234286 0.522727 +vt 0.185714 0.574675 +vt 0.737143 0.243506 +vt 0.737143 0.467532 +vt 0.737143 0.525974 +vt 0.234286 0.581169 +vt 0.234286 0.467532 +vt 0.002857 0.003247 +vt 0.234286 0.577922 +vt 0.697143 0.470779 +vt 0.962857 0.490260 +vt 0.997143 0.490260 +vt 0.917143 0.957792 +vt 0.882857 0.957792 +vt 0.751429 0.123377 +vt 0.774286 0.590909 +vt 0.951429 0.451299 +vt 0.928571 0.996753 +vt 0.814286 0.818182 +vt 0.814286 0.792208 +vt 0.842857 0.750000 +vt 0.831429 0.707792 +vt 0.777143 0.818182 +vt 0.777143 0.792208 +vt 0.805714 0.750000 +vt 0.794286 0.707792 +vt 0.740000 0.818182 +vt 0.740000 0.792208 +vt 0.768571 0.750000 +vt 0.757143 0.707792 +vt 0.702857 0.818182 +vt 0.702857 0.792208 +vt 0.731429 0.750000 +vt 0.720000 0.707792 +vt 0.665714 0.818182 +vt 0.665714 0.792208 +vt 0.694286 0.750000 +vt 0.682857 0.707792 +vt 0.628571 0.818182 +vt 0.628571 0.792208 +vt 0.657143 0.750000 +vt 0.645714 0.707792 +vt 0.591429 0.818182 +vt 0.591429 0.792208 +vt 0.620000 0.750000 +vt 0.608571 0.707792 +vt 0.554286 0.818182 +vt 0.554286 0.792208 +vt 0.582857 0.750000 +vt 0.571429 0.707792 +vt 0.517143 0.818182 +vt 0.517143 0.792208 +vt 0.545714 0.750000 +vt 0.534286 0.707792 +vt 0.480000 0.818182 +vt 0.480000 0.792208 +vt 0.508571 0.750000 +vt 0.497143 0.707792 +vt 0.851429 0.818182 +vt 0.851429 0.792208 +vt 0.880000 0.750000 +vt 0.868571 0.707792 +vt 0.517143 0.957792 +vt 0.540000 0.996753 +vt 0.540000 0.938312 +vt 0.511429 0.896104 +vt 0.522857 0.853896 +vt 0.554286 0.957792 +vt 0.577143 0.996753 +vt 0.577143 0.938312 +vt 0.548571 0.896104 +vt 0.560000 0.853896 +vt 0.591429 0.957792 +vt 0.614286 0.996753 +vt 0.614286 0.938312 +vt 0.585714 0.896104 +vt 0.597143 0.853896 +vt 0.628571 0.957792 +vt 0.651429 0.996753 +vt 0.651429 0.938312 +vt 0.622857 0.896104 +vt 0.634286 0.853896 +vt 0.665714 0.957792 +vt 0.688571 0.996753 +vt 0.688571 0.938312 +vt 0.660000 0.896104 +vt 0.671429 0.853896 +vt 0.702857 0.957792 +vt 0.725714 0.996753 +vt 0.725714 0.938312 +vt 0.697143 0.896104 +vt 0.708571 0.853896 +vt 0.740000 0.957792 +vt 0.762857 0.996753 +vt 0.762857 0.938312 +vt 0.734286 0.896104 +vt 0.745714 0.853896 +vt 0.777143 0.957792 +vt 0.800000 0.996753 +vt 0.800000 0.938312 +vt 0.771429 0.896104 +vt 0.782857 0.853896 +vt 0.814286 0.957792 +vt 0.837143 0.996753 +vt 0.837143 0.938312 +vt 0.808571 0.896104 +vt 0.820000 0.853896 +vt 0.851429 0.957792 +vt 0.874286 0.996753 +vt 0.874286 0.938312 +vt 0.845714 0.896104 +vt 0.857143 0.853896 +vt 0.480000 0.957792 +vt 0.502857 0.996753 +vt 0.502857 0.938312 +vt 0.474286 0.896104 +vt 0.485714 0.853896 +vt 0.814286 0.159091 +vt 0.820000 0.126623 +vt 0.817143 0.090909 +vt 0.834286 0.129870 +vt 0.837143 0.126623 +vt 0.885714 0.126623 +vt 0.902857 0.126623 +vt 0.857143 0.308442 +vt 0.874286 0.308442 +vt 0.868571 0.185065 +vt 0.877143 0.308442 +vt 0.894286 0.308442 +vt 0.888571 0.185065 +vt 0.897143 0.308442 +vt 0.914286 0.308442 +vt 0.908571 0.185065 +vt 0.917143 0.308442 +vt 0.934286 0.308442 +vt 0.928571 0.185065 +vt 0.837143 0.308442 +vt 0.854286 0.308442 +vt 0.848571 0.185065 +vt 0.857143 0.324675 +vt 0.868571 0.318182 +vt 0.877143 0.324675 +vt 0.888571 0.318182 +vt 0.897143 0.324675 +vt 0.908571 0.318182 +vt 0.917143 0.324675 +vt 0.928571 0.318182 +vt 0.837143 0.324675 +vt 0.848571 0.318182 +vt 0.402857 0.788961 +vt 0.471429 0.860390 +vt 0.471429 0.996753 +vt 0.308571 0.788961 +vt 0.377143 0.860390 +vt 0.377143 0.996753 +vt 0.214286 0.788961 +vt 0.282857 0.860390 +vt 0.282857 0.996753 +vt 0.120000 0.788961 +vt 0.188571 0.860390 +vt 0.188571 0.996753 +vt 0.025714 0.788961 +vt 0.094286 0.860390 +vt 0.094286 0.996753 +vt 0.380000 0.685065 +vt 0.380000 0.860390 +vt 0.380000 0.808442 +vt 0.380000 0.996753 +vt 0.380000 0.899351 +vt 0.285714 0.685065 +vt 0.285714 0.860390 +vt 0.285714 0.808442 +vt 0.285714 0.996753 +vt 0.285714 0.899351 +vt 0.191429 0.685065 +vt 0.191429 0.860390 +vt 0.191429 0.808442 +vt 0.191429 0.996753 +vt 0.191429 0.899351 +vt 0.097143 0.685065 +vt 0.097143 0.860390 +vt 0.097143 0.808442 +vt 0.097143 0.996753 +vt 0.097143 0.899351 +vt 0.002857 0.685065 +vt 0.002857 0.860390 +vt 0.002857 0.808442 +vt 0.002857 0.996753 +vt 0.002857 0.899351 +vt 0.380000 0.788961 +vt 0.285714 0.788961 +vt 0.191429 0.788961 +vt 0.097143 0.788961 +vt 0.002857 0.788961 vn 0.0000 0.0000 -1.0000 -vn 0.0000 -0.0000 1.0000 -vn 0.0000 -1.0000 -0.0000 -vn -0.0000 1.0000 0.0000 -vn 1.0000 -0.0000 -0.0000 -vn -1.0000 -0.0000 -0.0000 -vn 0.0000 0.3387 0.9409 -vn 0.0000 0.3387 -0.9409 -vn 0.8575 0.5145 0.0000 -vn -0.8575 0.5145 -0.0000 -vn -0.5485 -0.2213 0.8063 -vn -0.7109 0.0123 -0.7032 -vn -0.7109 0.0123 0.7032 -vn 0.7344 0.1383 -0.6644 -vn 0.7031 -0.0120 0.7109 -vn 0.7031 -0.0120 -0.7109 -vn 0.6216 0.4135 0.6653 -vn 0.7345 0.1380 0.6644 -vn 0.6216 0.4135 -0.6653 -vn 0.4148 0.6202 0.6658 -vn -0.2279 -0.5489 -0.8043 -vn -0.5485 -0.2213 -0.8063 -vn 0.1458 0.7319 -0.6656 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.8944 0.4472 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.8944 0.4472 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.7071 -0.7071 vn 0.0000 0.7071 0.7071 -vn 0.1458 0.7319 0.6656 -vn 0.4148 0.6202 -0.6658 -vn -0.2279 -0.5489 0.8043 -vn -0.0005 -0.7070 -0.7073 -vn 0.4147 0.6202 0.6658 -vn 0.4146 0.6203 -0.6658 -vn -0.2277 -0.5489 -0.8043 -vn 0.4147 0.6202 -0.6658 -vn -0.2278 -0.5489 0.8043 -vn 0.7345 0.1381 0.6644 -vn -0.0003 0.7071 -0.7071 -vn -0.0004 -0.7070 0.7073 -usemtl Material.001 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 -0.7071 -0.7071 +vn -0.4472 -0.8944 0.0000 +vn 0.4472 0.8944 0.0000 +vn 0.4472 -0.8944 0.0000 +vn -0.4472 0.8944 0.0000 +vn -0.5491 -0.2275 0.8042 +vn -0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.7319 0.1456 -0.6657 +vn 0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn 0.6204 0.4146 0.6657 +vn 0.7319 0.1456 0.6657 +vn 0.4146 0.6204 -0.6657 +vn 0.0000 0.7764 0.6302 +vn 0.4146 0.6204 0.6657 +vn 0.6204 0.4146 -0.6657 +vn 0.0000 -0.4264 -0.9045 +vn -0.5491 -0.2275 -0.8042 +vn 0.0000 0.7764 -0.6302 +vn -0.4146 0.6204 0.6657 +vn 0.0000 -0.4264 0.9045 +vn 0.5000 -0.5000 -0.7071 +vn -0.4146 0.6204 -0.6657 +vn -0.5000 0.5000 0.7071 +vn 0.5000 -0.5000 0.7071 +vn -0.5000 0.5000 -0.7071 +usemtl None s off -f 1/1/1 2/2/1 3/3/1 -f 4/4/2 5/5/2 6/6/2 -f 5/7/2 7/8/2 8/9/2 -f 9/10/1 1/11/1 10/12/1 -f 11/13/2 12/14/2 13/15/2 -f 8/16/2 11/17/2 5/5/2 -f 10/18/1 14/19/1 15/20/1 -f 15/21/1 14/22/1 16/23/1 -f 13/24/2 17/25/2 11/17/2 -f 16/26/1 18/27/1 19/28/1 -f 20/29/1 21/30/1 22/31/1 -f 23/32/2 24/33/2 25/34/2 -f 24/35/2 26/36/2 27/37/2 -f 28/38/1 20/39/1 29/40/1 -f 30/41/2 31/42/2 32/43/2 -f 27/44/2 30/45/2 24/33/2 -f 29/46/1 33/47/1 34/48/1 -f 34/49/1 33/50/1 35/51/1 -f 32/52/2 36/53/2 30/45/2 -f 35/54/1 37/55/1 38/56/1 -f 39/57/1 40/58/1 41/59/1 -f 42/60/2 43/61/2 44/62/2 -f 43/63/2 45/64/2 46/65/2 -f 47/66/1 39/67/1 48/68/1 -f 49/69/2 50/70/2 51/71/2 -f 46/72/2 49/73/2 43/61/2 -f 48/74/1 52/75/1 53/76/1 -f 53/77/1 52/78/1 54/79/1 -f 51/80/2 55/81/2 49/73/2 -f 54/82/1 56/83/1 57/84/1 -f 58/85/1 59/86/1 60/87/1 -f 61/88/2 62/89/2 63/90/2 -f 62/91/2 64/92/2 65/93/2 -f 66/94/1 58/95/1 67/96/1 -f 68/97/2 69/98/2 70/99/2 -f 65/100/2 68/101/2 62/89/2 -f 67/102/1 71/103/1 72/104/1 -f 72/105/1 71/106/1 73/107/1 -f 70/108/2 74/109/2 68/101/2 -f 73/110/1 75/111/1 76/112/1 -f 77/113/3 78/114/3 79/115/3 -f 80/116/4 81/117/4 82/118/4 -f 83/119/5 84/120/5 85/121/5 -f 82/122/2 86/123/2 77/124/2 -f 81/125/6 78/126/6 86/123/6 -f 80/127/1 78/128/1 87/129/1 -f 85/121/1 88/130/1 83/119/1 -f 89/131/1 80/127/1 88/130/1 -f 90/132/2 91/133/2 84/134/2 -f 92/135/2 77/124/2 91/133/2 -f 83/136/4 92/137/4 90/138/4 -f 92/139/7 93/140/7 82/141/7 -f 84/142/3 89/143/3 85/144/3 -f 91/145/3 79/115/3 89/143/3 -f 94/146/1 95/147/1 96/148/1 -f 80/149/8 97/150/8 88/151/8 -f 88/152/9 98/153/9 92/154/9 -f 82/155/10 99/156/10 80/157/10 -f 100/158/5 101/159/5 102/160/5 -f 103/161/1 104/162/1 105/163/1 -f 94/164/4 106/165/4 107/166/4 -f 108/167/4 109/168/4 102/169/4 -f 110/170/4 111/171/4 112/172/4 -f 110/170/4 113/173/4 108/167/4 -f 102/169/4 114/174/4 100/175/4 -f 101/159/4 115/176/4 116/177/4 -f 110/178/1 117/179/1 100/180/1 -f 108/181/6 115/176/6 110/182/6 -f 102/183/2 116/177/2 108/184/2 -f 118/185/3 119/186/3 120/187/3 -f 121/188/4 122/189/4 103/190/4 -f 120/191/1 123/192/1 124/193/1 -f 125/194/3 126/195/3 127/196/3 -f 128/197/2 129/198/2 118/199/2 -f 130/200/2 111/201/2 93/140/2 -f 127/202/2 131/203/2 132/204/2 -f 124/205/4 133/206/4 128/207/4 -f 134/208/1 135/209/1 125/210/1 -f 136/211/3 137/212/3 138/213/3 -f 132/214/4 139/215/4 134/216/4 -f 138/217/2 140/218/2 141/219/2 -f 97/220/5 94/221/5 142/222/5 -f 143/223/5 144/224/5 97/220/5 -f 145/225/5 146/226/5 143/223/5 -f 142/222/5 96/227/5 145/225/5 -f 147/228/6 148/229/6 149/230/6 -f 111/231/6 148/229/6 93/232/6 -f 150/233/6 151/234/6 111/231/6 -f 147/228/6 152/235/6 150/233/6 -f 99/236/6 153/237/6 154/238/6 -f 114/239/6 155/240/6 99/236/6 -f 156/241/6 157/242/6 114/239/6 -f 154/238/6 158/243/6 156/241/6 -f 98/244/5 159/245/5 160/246/5 -f 113/247/5 161/248/5 98/244/5 -f 113/247/5 162/249/5 163/250/5 -f 160/246/5 162/249/5 164/251/5 -f 165/252/5 134/253/5 166/254/5 -f 165/252/5 127/255/5 132/256/5 -f 167/257/5 125/258/5 127/255/5 -f 166/254/5 125/258/5 168/259/5 -f 169/260/6 170/261/6 171/262/6 -f 172/263/6 170/261/6 173/264/6 -f 174/265/6 175/266/6 172/263/6 -f 169/260/6 176/267/6 174/265/6 -f 177/268/6 178/269/6 179/270/6 -f 180/271/6 178/269/6 181/272/6 -f 182/273/6 183/274/6 180/271/6 -f 177/268/6 184/275/6 182/273/6 -f 185/276/5 141/277/5 186/278/5 -f 187/279/5 141/277/5 188/280/5 -f 189/281/5 138/282/5 187/279/5 -f 185/276/5 136/283/5 189/281/5 -f 185/276/5 190/284/5 98/244/5 -f 189/281/5 191/285/5 185/276/5 -f 189/281/5 192/286/5 193/287/5 -f 98/244/5 192/286/5 113/247/5 -f 99/236/6 194/288/6 195/289/6 -f 182/273/6 194/288/6 177/268/6 -f 114/239/6 196/290/6 182/273/6 -f 99/236/6 197/291/6 114/239/6 -f 169/260/6 198/292/6 199/293/6 -f 174/265/6 200/294/6 169/260/6 -f 109/295/6 201/296/6 174/265/6 -f 199/293/6 202/297/6 109/295/6 -f 166/254/5 103/298/5 130/299/5 -f 166/254/5 203/300/5 121/301/5 -f 168/259/5 105/302/5 203/300/5 -f 130/299/5 105/302/5 112/303/5 -f 160/246/5 204/304/5 165/252/5 -f 164/251/5 205/305/5 160/246/5 -f 164/251/5 206/306/5 207/307/5 -f 165/252/5 206/306/5 167/257/5 -f 154/238/6 208/308/6 173/264/6 -f 156/241/6 209/309/6 154/238/6 -f 172/263/6 210/310/6 156/241/6 -f 173/264/6 211/311/6 172/263/6 -f 181/272/6 124/312/6 128/313/6 -f 150/233/6 124/312/6 147/228/6 -f 180/271/6 120/314/6 150/233/6 -f 181/272/6 118/315/6 180/271/6 -f 142/222/5 212/316/5 188/280/5 -f 145/225/5 213/317/5 142/222/5 -f 145/225/5 214/318/5 215/319/5 -f 188/280/5 214/318/5 187/279/5 -f 106/165/5 95/147/5 107/166/5 -f 109/320/1 97/150/1 199/321/1 -f 216/322/6 217/323/6 218/324/6 -f 219/325/6 220/326/6 221/327/6 -f 222/328/5 223/329/5 224/330/5 -f 131/203/5 135/209/5 139/215/5 -f 225/331/6 226/332/6 227/333/6 -f 228/334/6 229/335/6 230/336/6 -f 140/218/5 231/337/5 232/338/5 -f 233/339/5 234/340/5 235/341/5 -f 236/342/6 237/343/6 238/344/6 -f 239/345/6 240/346/6 241/347/6 -f 242/348/5 104/162/5 122/189/5 -f 243/349/5 244/350/5 245/351/5 -f 246/352/6 247/353/6 248/354/6 -f 123/192/6 129/198/6 133/206/6 -f 249/355/5 250/356/5 251/357/5 -f 203/358/2 242/348/2 121/359/2 -f 191/360/4 235/341/4 190/361/4 -f 146/362/2 106/165/2 144/363/2 -f 105/364/3 252/365/3 203/366/3 -f 190/367/1 234/340/1 192/368/1 -f 96/369/3 253/370/3 146/371/3 -f 193/372/2 233/339/2 191/373/2 -f 170/374/4 227/333/4 171/375/4 -f 192/376/3 254/377/3 193/378/3 -f 171/379/2 226/332/2 176/380/2 -f 213/381/4 251/357/4 212/382/4 -f 175/383/1 225/331/1 170/384/1 -f 155/385/4 221/327/4 153/386/4 -f 212/387/1 250/388/1 214/389/1 -f 176/390/3 255/391/3 175/392/3 -f 153/393/2 220/394/2 158/395/2 -f 215/396/2 249/355/2 213/397/2 -f 205/398/4 245/351/4 204/399/4 -f 157/400/1 219/325/1 155/401/1 -f 214/402/3 256/403/3 215/404/3 -f 204/405/1 244/406/1 206/407/1 -f 158/408/3 257/409/3 157/410/3 -f 207/411/2 243/349/2 205/412/2 -f 194/413/4 238/344/4 195/414/4 -f 206/415/3 258/416/3 207/417/3 -f 195/418/2 237/343/2 197/419/2 -f 196/420/1 236/342/1 194/421/1 -f 178/422/4 230/336/4 179/423/4 -f 197/424/3 259/425/3 196/426/3 -f 179/427/2 229/428/2 184/429/2 -f 183/430/1 228/334/1 178/431/1 -f 161/432/4 224/330/4 159/433/4 -f 184/434/3 260/435/3 183/436/3 -f 159/437/1 223/329/1 162/438/1 -f 209/439/4 248/354/4 208/440/4 -f 163/441/2 222/328/2 161/442/2 -f 148/443/4 218/324/4 149/444/4 -f 208/445/2 247/353/2 211/446/2 -f 162/447/3 261/448/3 163/449/3 -f 149/450/2 217/323/2 152/451/2 -f 210/452/1 246/352/1 209/453/1 -f 200/454/4 241/347/4 198/455/4 -f 151/456/1 216/322/1 148/457/1 -f 211/458/3 262/459/3 210/460/3 -f 198/461/2 240/462/2 202/463/2 -f 152/464/3 263/465/3 151/466/3 -f 201/467/1 239/345/1 200/468/1 -f 186/469/4 140/218/4 232/338/4 -f 202/470/3 264/471/3 201/472/3 -f 186/473/1 231/474/1 136/475/1 -f 265/476/1 266/477/1 267/478/1 -f 268/479/5 269/480/5 266/477/5 -f 270/481/2 271/482/2 269/480/2 -f 265/483/4 270/481/4 268/479/4 -f 272/484/1 273/485/1 274/486/1 -f 275/487/5 276/488/5 273/485/5 -f 277/489/2 278/490/2 276/488/2 -f 272/491/4 277/489/4 275/487/4 -f 279/492/1 280/493/1 281/494/1 -f 282/495/5 283/496/5 280/493/5 -f 284/497/2 285/498/2 283/496/2 -f 279/499/4 284/497/4 282/495/4 -f 286/500/1 287/501/1 288/502/1 -f 289/503/5 290/504/5 287/501/5 -f 291/505/2 292/506/2 290/504/2 -f 286/507/4 291/505/4 289/503/4 -f 293/508/1 294/509/1 295/510/1 -f 296/511/5 297/512/5 294/509/5 -f 298/513/2 299/514/2 297/512/2 -f 293/515/4 298/513/4 296/511/4 -f 300/516/1 301/517/1 302/518/1 -f 303/519/5 304/520/5 301/517/5 -f 305/521/2 306/522/2 304/520/2 -f 300/523/4 305/521/4 303/519/4 -f 307/524/1 308/525/1 309/526/1 -f 310/527/5 311/528/5 308/525/5 -f 312/529/2 313/530/2 311/528/2 -f 307/531/4 312/529/4 310/527/4 -f 314/532/1 315/533/1 316/534/1 -f 317/535/5 318/536/5 315/533/5 -f 319/537/2 320/538/2 318/536/2 -f 314/539/4 319/537/4 317/535/4 -f 321/540/1 322/541/1 323/542/1 -f 324/543/6 325/544/6 321/540/6 -f 326/545/2 327/546/2 324/543/2 -f 327/546/4 322/547/4 325/544/4 -f 328/548/1 329/549/1 330/550/1 -f 331/551/6 332/552/6 328/548/6 -f 333/553/2 334/554/2 331/551/2 -f 334/554/4 329/555/4 332/552/4 -f 335/556/1 336/557/1 337/558/1 -f 338/559/6 339/560/6 335/556/6 -f 340/561/2 341/562/2 338/559/2 -f 341/562/4 336/563/4 339/560/4 -f 342/564/1 343/565/1 344/566/1 -f 345/567/6 346/568/6 342/564/6 -f 347/569/2 348/570/2 345/567/2 -f 348/570/4 343/571/4 346/568/4 -f 349/572/1 350/573/1 351/574/1 -f 352/575/6 353/576/6 349/572/6 -f 354/577/2 355/578/2 352/575/2 -f 355/578/4 350/579/4 353/576/4 -f 356/580/1 357/581/1 358/582/1 -f 359/583/6 360/584/6 356/580/6 -f 361/585/2 362/586/2 359/583/2 -f 362/586/4 357/587/4 360/584/4 -f 363/588/1 364/589/1 365/590/1 -f 366/591/6 367/592/6 363/588/6 -f 368/593/2 369/594/2 366/591/2 -f 369/594/4 364/595/4 367/592/4 -f 370/596/1 371/597/1 372/598/1 -f 373/599/6 374/600/6 370/596/6 -f 375/601/2 376/602/2 373/599/2 -f 376/602/4 371/603/4 374/600/4 -f 1/1/1 9/604/1 2/2/1 -f 4/4/2 7/605/2 5/5/2 -f 8/16/2 12/606/2 11/17/2 -f 10/18/1 1/1/1 14/19/1 -f 13/24/2 377/607/2 17/25/2 -f 16/26/1 14/19/1 18/27/1 -f 20/29/1 28/608/1 21/30/1 -f 23/32/2 26/609/2 24/33/2 -f 27/44/2 31/610/2 30/45/2 -f 29/46/1 20/29/1 33/47/1 -f 32/52/2 378/611/2 36/53/2 -f 35/54/1 33/47/1 37/55/1 -f 39/57/1 47/612/1 40/58/1 -f 42/60/2 45/613/2 43/61/2 -f 46/72/2 50/614/2 49/73/2 -f 48/74/1 39/57/1 52/75/1 -f 51/80/2 379/615/2 55/81/2 -f 54/82/1 52/75/1 56/83/1 -f 58/85/1 66/616/1 59/86/1 -f 61/88/2 64/617/2 62/89/2 -f 65/100/2 69/618/2 68/101/2 -f 67/102/1 58/85/1 71/103/1 -f 70/108/2 380/619/2 74/109/2 -f 73/110/1 71/103/1 75/111/1 -f 77/113/3 86/620/3 78/114/3 -f 80/116/4 87/621/4 81/117/4 -f 83/119/5 90/622/5 84/120/5 -f 82/122/2 81/125/2 86/123/2 -f 81/125/6 87/623/6 78/126/6 -f 80/127/1 79/624/1 78/128/1 -f 85/121/1 89/131/1 88/130/1 -f 89/131/1 79/624/1 80/127/1 -f 90/132/2 92/135/2 91/133/2 -f 92/135/2 82/122/2 77/124/2 -f 83/136/4 88/625/4 92/137/4 -f 92/139/7 130/200/7 93/140/7 -f 84/142/3 91/145/3 89/143/3 -f 91/145/3 77/113/3 79/115/3 -f 94/146/1 107/166/1 95/147/1 -f 80/149/8 199/321/8 97/150/8 -f 130/626/9 92/154/9 166/627/9 -f 88/152/9 97/628/9 142/629/9 -f 188/630/9 185/631/9 88/152/9 -f 88/152/9 142/629/9 188/630/9 -f 166/627/9 92/154/9 165/632/9 -f 98/153/9 160/633/9 92/154/9 -f 165/632/9 92/154/9 160/633/9 -f 88/152/9 185/631/9 98/153/9 -f 199/634/10 80/157/10 169/635/10 -f 82/155/10 93/636/10 147/637/10 -f 181/638/10 177/639/10 82/155/10 -f 82/155/10 147/637/10 181/638/10 -f 169/635/10 80/157/10 173/640/10 -f 154/641/10 173/640/10 80/157/10 -f 82/155/10 177/639/10 99/156/10 -f 99/156/10 154/641/10 80/157/10 -f 100/158/5 117/179/5 101/159/5 -f 103/161/1 122/189/1 104/162/1 -f 94/164/4 144/642/4 106/165/4 -f 108/167/4 143/643/4 109/168/4 -f 110/170/4 100/175/4 111/171/4 -f 143/643/4 108/167/4 145/644/4 -f 110/170/4 112/172/4 168/645/4 -f 110/170/4 168/645/4 167/646/4 -f 145/644/4 108/167/4 187/647/4 -f 113/173/4 189/648/4 108/167/4 -f 187/647/4 108/167/4 189/648/4 -f 110/170/4 167/646/4 164/649/4 -f 164/649/4 113/173/4 110/170/4 -f 111/171/4 100/175/4 150/650/4 -f 102/169/4 109/168/4 174/651/4 -f 172/652/4 156/653/4 102/169/4 -f 102/169/4 174/651/4 172/652/4 -f 150/650/4 100/175/4 180/654/4 -f 182/655/4 180/654/4 100/175/4 -f 102/169/4 156/653/4 114/174/4 -f 114/174/4 182/655/4 100/175/4 -f 101/159/4 117/179/4 115/176/4 -f 110/178/1 115/176/1 117/179/1 -f 108/181/6 116/177/6 115/176/6 -f 102/183/2 101/159/2 116/177/2 -f 118/185/3 129/198/3 119/186/3 -f 121/188/4 242/348/4 122/189/4 -f 120/191/1 119/186/1 123/192/1 -f 125/194/3 135/209/3 126/195/3 -f 128/197/2 133/206/2 129/198/2 -f 130/200/2 112/656/2 111/201/2 -f 127/202/2 126/195/2 131/203/2 -f 124/205/4 123/192/4 133/206/4 -f 134/208/1 139/215/1 135/209/1 -f 136/211/3 231/337/3 137/212/3 -f 132/214/4 131/203/4 139/215/4 -f 138/217/2 137/212/2 140/218/2 -f 97/220/5 144/224/5 94/221/5 -f 143/223/5 146/226/5 144/224/5 -f 145/225/5 96/227/5 146/226/5 -f 142/222/5 94/221/5 96/227/5 -f 147/228/6 93/232/6 148/229/6 -f 111/231/6 151/234/6 148/229/6 -f 150/233/6 152/235/6 151/234/6 -f 147/228/6 149/230/6 152/235/6 -f 99/236/6 155/240/6 153/237/6 -f 114/239/6 157/242/6 155/240/6 -f 156/241/6 158/243/6 157/242/6 -f 154/238/6 153/237/6 158/243/6 -f 98/244/5 161/248/5 159/245/5 -f 113/247/5 163/250/5 161/248/5 -f 113/247/5 164/251/5 162/249/5 -f 160/246/5 159/245/5 162/249/5 -f 165/252/5 132/256/5 134/253/5 -f 165/252/5 167/257/5 127/255/5 -f 167/257/5 168/259/5 125/258/5 -f 166/254/5 134/253/5 125/258/5 -f 169/260/6 173/264/6 170/261/6 -f 172/263/6 175/266/6 170/261/6 -f 174/265/6 176/267/6 175/266/6 -f 169/260/6 171/262/6 176/267/6 -f 177/268/6 181/272/6 178/269/6 -f 180/271/6 183/274/6 178/269/6 -f 182/273/6 184/275/6 183/274/6 -f 177/268/6 179/270/6 184/275/6 -f 185/276/5 188/280/5 141/277/5 -f 187/279/5 138/282/5 141/277/5 -f 189/281/5 136/283/5 138/282/5 -f 185/276/5 186/278/5 136/283/5 -f 185/276/5 191/285/5 190/284/5 -f 189/281/5 193/287/5 191/285/5 -f 189/281/5 113/247/5 192/286/5 -f 98/244/5 190/284/5 192/286/5 -f 99/236/6 177/268/6 194/288/6 -f 182/273/6 196/290/6 194/288/6 -f 114/239/6 197/291/6 196/290/6 -f 99/236/6 195/289/6 197/291/6 -f 169/260/6 200/294/6 198/292/6 -f 174/265/6 201/296/6 200/294/6 -f 109/295/6 202/297/6 201/296/6 -f 199/293/6 198/292/6 202/297/6 -f 166/254/5 121/301/5 103/298/5 -f 166/254/5 168/259/5 203/300/5 -f 168/259/5 112/303/5 105/302/5 -f 130/299/5 103/298/5 105/302/5 -f 160/246/5 205/305/5 204/304/5 -f 164/251/5 207/307/5 205/305/5 -f 164/251/5 167/257/5 206/306/5 -f 165/252/5 204/304/5 206/306/5 -f 154/238/6 209/309/6 208/308/6 -f 156/241/6 210/310/6 209/309/6 -f 172/263/6 211/311/6 210/310/6 -f 173/264/6 208/308/6 211/311/6 -f 181/272/6 147/228/6 124/312/6 -f 150/233/6 120/314/6 124/312/6 -f 180/271/6 118/315/6 120/314/6 -f 181/272/6 128/313/6 118/315/6 -f 142/222/5 213/317/5 212/316/5 -f 145/225/5 215/319/5 213/317/5 -f 145/225/5 187/279/5 214/318/5 -f 188/280/5 212/316/5 214/318/5 -f 106/165/5 253/370/5 95/147/5 -f 109/320/1 143/657/1 97/150/1 -f 216/322/6 263/465/6 217/323/6 -f 219/325/6 257/409/6 220/326/6 -f 222/328/5 261/448/5 223/329/5 -f 131/203/5 126/195/5 135/209/5 -f 225/331/6 255/391/6 226/332/6 -f 228/334/6 260/435/6 229/335/6 -f 140/218/5 137/212/5 231/337/5 -f 233/339/5 254/377/5 234/340/5 -f 236/342/6 259/425/6 237/343/6 -f 239/345/6 264/471/6 240/346/6 -f 242/348/5 252/365/5 104/162/5 -f 243/349/5 258/416/5 244/350/5 -f 246/352/6 262/459/6 247/353/6 -f 123/192/6 119/186/6 129/198/6 -f 249/355/5 256/403/5 250/356/5 -f 203/358/2 252/365/2 242/348/2 -f 191/360/4 233/339/4 235/341/4 -f 146/362/2 253/370/2 106/165/2 -f 105/364/3 104/162/3 252/365/3 -f 190/367/1 235/341/1 234/340/1 -f 96/369/3 95/147/3 253/370/3 -f 193/372/2 254/377/2 233/339/2 -f 170/374/4 225/331/4 227/333/4 -f 192/376/3 234/340/3 254/377/3 -f 171/379/2 227/333/2 226/332/2 -f 213/381/4 249/355/4 251/357/4 -f 175/383/1 255/391/1 225/331/1 -f 155/385/4 219/325/4 221/327/4 -f 212/387/1 251/658/1 250/388/1 -f 176/390/3 226/332/3 255/391/3 -f 153/393/2 221/659/2 220/394/2 -f 215/396/2 256/403/2 249/355/2 -f 205/398/4 243/349/4 245/351/4 -f 157/400/1 257/409/1 219/325/1 -f 214/402/3 250/356/3 256/403/3 -f 204/405/1 245/660/1 244/406/1 -f 158/408/3 220/326/3 257/409/3 -f 207/411/2 258/416/2 243/349/2 -f 194/413/4 236/342/4 238/344/4 -f 206/415/3 244/350/3 258/416/3 -f 195/418/2 238/344/2 237/343/2 -f 196/420/1 259/425/1 236/342/1 -f 178/422/4 228/334/4 230/336/4 -f 197/424/3 237/343/3 259/425/3 -f 179/427/2 230/661/2 229/428/2 -f 183/430/1 260/435/1 228/334/1 -f 161/432/4 222/328/4 224/330/4 -f 184/434/3 229/335/3 260/435/3 -f 159/437/1 224/330/1 223/329/1 -f 209/439/4 246/352/4 248/354/4 -f 163/441/2 261/448/2 222/328/2 -f 148/443/4 216/322/4 218/324/4 -f 208/445/2 248/354/2 247/353/2 -f 162/447/3 223/329/3 261/448/3 -f 149/450/2 218/324/2 217/323/2 -f 210/452/1 262/459/1 246/352/1 -f 200/454/4 239/345/4 241/347/4 -f 151/456/1 263/465/1 216/322/1 -f 211/458/3 247/353/3 262/459/3 -f 198/461/2 241/662/2 240/462/2 -f 152/464/3 217/323/3 263/465/3 -f 201/467/1 264/471/1 239/345/1 -f 186/469/4 141/663/4 140/218/4 -f 202/470/3 240/346/3 264/471/3 -f 186/473/1 232/664/1 231/474/1 -f 265/476/1 268/479/1 266/477/1 -f 268/479/5 270/481/5 269/480/5 -f 270/481/2 381/665/2 271/482/2 -f 265/483/4 381/666/4 270/481/4 -f 272/484/1 275/487/1 273/485/1 -f 275/487/5 277/489/5 276/488/5 -f 277/489/2 382/667/2 278/490/2 -f 272/491/4 382/668/4 277/489/4 -f 279/492/1 282/495/1 280/493/1 -f 282/495/5 284/497/5 283/496/5 -f 284/497/2 383/669/2 285/498/2 -f 279/499/4 383/670/4 284/497/4 -f 286/500/1 289/503/1 287/501/1 -f 289/503/5 291/505/5 290/504/5 -f 291/505/2 384/671/2 292/506/2 -f 286/507/4 384/672/4 291/505/4 -f 293/508/1 296/511/1 294/509/1 -f 296/511/5 298/513/5 297/512/5 -f 298/513/2 385/673/2 299/514/2 -f 293/515/4 385/674/4 298/513/4 -f 300/516/1 303/519/1 301/517/1 -f 303/519/5 305/521/5 304/520/5 -f 305/521/2 386/675/2 306/522/2 -f 300/523/4 386/676/4 305/521/4 -f 307/524/1 310/527/1 308/525/1 -f 310/527/5 312/529/5 311/528/5 -f 312/529/2 387/677/2 313/530/2 -f 307/531/4 387/678/4 312/529/4 -f 314/532/1 317/535/1 315/533/1 -f 317/535/5 319/537/5 318/536/5 -f 319/537/2 388/679/2 320/538/2 -f 314/539/4 388/680/4 319/537/4 -f 321/540/1 325/544/1 322/541/1 -f 324/543/6 327/546/6 325/544/6 -f 326/545/2 389/681/2 327/546/2 -f 327/546/4 389/682/4 322/547/4 -f 328/548/1 332/552/1 329/549/1 -f 331/551/6 334/554/6 332/552/6 -f 333/553/2 390/683/2 334/554/2 -f 334/554/4 390/684/4 329/555/4 -f 335/556/1 339/560/1 336/557/1 -f 338/559/6 341/562/6 339/560/6 -f 340/561/2 391/685/2 341/562/2 -f 341/562/4 391/686/4 336/563/4 -f 342/564/1 346/568/1 343/565/1 -f 345/567/6 348/570/6 346/568/6 -f 347/569/2 392/687/2 348/570/2 -f 348/570/4 392/688/4 343/571/4 -f 349/572/1 353/576/1 350/573/1 -f 352/575/6 355/578/6 353/576/6 -f 354/577/2 393/689/2 355/578/2 -f 355/578/4 393/690/4 350/579/4 -f 356/580/1 360/584/1 357/581/1 -f 359/583/6 362/586/6 360/584/6 -f 361/585/2 394/691/2 362/586/2 -f 362/586/4 394/692/4 357/587/4 -f 363/588/1 367/592/1 364/589/1 -f 366/591/6 369/594/6 367/592/6 -f 368/593/2 395/693/2 369/594/2 -f 369/594/4 395/694/4 364/595/4 -f 370/596/1 374/600/1 371/597/1 -f 373/599/6 376/602/6 374/600/6 -f 375/601/2 396/695/2 376/602/2 -f 376/602/4 396/696/4 371/603/4 +f 224/1/1 2/2/1 221/3/1 +f 153/4/2 179/5/2 156/6/2 +f 221/3/1 2/2/1 10/7/1 +f 163/8/3 186/9/3 162/10/3 +f 31/11/1 1/12/1 224/1/1 +f 221/13/4 9/14/4 222/15/4 +f 105/16/5 324/17/5 104/18/5 +f 8/19/4 222/15/4 9/14/4 +f 7/20/4 232/21/4 8/19/4 +f 6/22/4 233/23/4 7/20/4 +f 41/24/4 234/25/4 6/22/4 +f 42/26/4 235/27/4 41/24/4 +f 43/28/4 236/29/4 42/26/4 +f 44/30/4 237/31/4 43/28/4 +f 126/32/4 242/33/4 202/34/4 +f 31/35/1 20/36/1 53/37/1 +f 45/38/6 64/39/6 3/40/6 +f 219/41/3 257/42/3 100/43/3 +f 89/44/2 256/45/2 90/46/2 +f 99/47/3 278/48/3 98/49/3 +f 88/50/2 271/51/2 89/44/2 +f 98/49/3 277/52/3 97/53/3 +f 91/54/2 281/55/2 217/56/2 +f 104/57/3 263/58/3 314/59/3 +f 160/60/6 184/61/6 159/62/6 +f 74/63/6 53/64/6 54/65/6 +f 64/39/6 73/66/6 74/63/6 +f 74/63/6 65/67/6 64/39/6 +f 75/68/6 66/69/6 65/67/6 +f 76/70/6 67/71/6 66/69/6 +f 77/72/6 68/73/6 67/71/6 +f 78/74/6 69/75/6 68/73/6 +f 79/76/6 70/77/6 69/75/6 +f 80/78/6 71/79/6 70/77/6 +f 215/80/6 122/81/6 213/82/6 +f 32/83/7 224/84/7 223/85/7 +f 21/86/8 32/87/8 22/88/8 +f 64/39/6 4/89/6 3/40/6 +f 65/67/6 46/90/6 4/89/6 +f 66/69/6 47/91/6 46/90/6 +f 67/71/6 48/92/6 47/91/6 +f 68/73/6 49/93/6 48/92/6 +f 69/75/6 50/94/6 49/93/6 +f 70/77/6 51/95/6 50/94/6 +f 213/82/6 5/96/6 209/97/6 +f 19/98/2 21/99/2 22/100/2 +f 54/65/6 20/101/6 19/102/6 +f 54/65/6 75/68/6 74/63/6 +f 55/103/6 76/70/6 75/68/6 +f 56/104/6 77/72/6 76/70/6 +f 57/105/6 78/74/6 77/72/6 +f 58/106/6 79/76/6 78/74/6 +f 59/107/6 80/78/6 79/76/6 +f 60/108/6 81/109/6 80/78/6 +f 211/110/6 124/111/6 215/80/6 +f 39/112/7 243/113/7 207/114/7 +f 38/115/7 231/116/7 39/112/7 +f 37/117/7 230/118/7 38/115/7 +f 36/119/7 229/120/7 37/117/7 +f 35/121/7 228/122/7 36/119/7 +f 34/123/7 227/124/7 35/121/7 +f 33/125/7 226/126/7 34/123/7 +f 32/83/7 225/127/7 33/125/7 +f 10/128/3 3/129/3 9/130/3 +f 32/87/8 23/131/8 22/88/8 +f 33/132/8 24/133/8 23/131/8 +f 34/134/8 25/135/8 24/133/8 +f 35/136/8 26/137/8 25/135/8 +f 36/138/8 27/139/8 26/137/8 +f 37/140/8 28/141/8 27/139/8 +f 38/142/8 29/143/8 28/141/8 +f 208/144/8 30/145/8 206/146/8 +f 19/102/6 55/103/6 54/65/6 +f 18/147/6 56/104/6 55/103/6 +f 17/148/6 57/105/6 56/104/6 +f 16/149/6 58/106/6 57/105/6 +f 15/150/6 59/107/6 58/106/6 +f 14/151/6 60/108/6 59/107/6 +f 13/152/6 61/153/6 60/108/6 +f 203/154/6 123/155/6 211/110/6 +f 22/100/2 18/156/2 19/98/2 +f 23/157/2 17/158/2 18/156/2 +f 24/159/2 16/160/2 17/158/2 +f 25/161/2 15/162/2 16/160/2 +f 26/163/2 14/164/2 15/162/2 +f 27/165/2 13/166/2 14/164/2 +f 28/167/2 12/168/2 13/166/2 +f 206/169/2 11/170/2 203/171/2 +f 216/172/3 51/173/3 201/174/3 +f 44/175/3 50/176/3 51/173/3 +f 43/177/3 49/178/3 50/176/3 +f 42/179/3 48/180/3 49/178/3 +f 41/181/3 47/182/3 48/180/3 +f 6/183/3 46/184/3 47/182/3 +f 7/185/3 4/186/3 46/184/3 +f 8/187/3 3/129/3 4/186/3 +f 123/188/5 30/189/5 125/190/5 +f 52/191/2 142/192/2 101/193/2 +f 72/194/2 115/195/2 109/196/2 +f 103/197/6 141/198/6 40/199/6 +f 128/200/5 240/201/5 127/202/5 +f 125/203/5 239/204/5 128/200/5 +f 240/201/5 126/205/5 127/202/5 +f 72/206/5 124/207/5 82/208/5 +f 109/209/5 122/210/5 72/206/5 +f 82/208/5 128/211/5 110/212/5 +f 110/212/5 127/213/5 109/209/5 +f 108/214/2 120/215/2 112/216/2 +f 110/217/3 116/218/3 82/219/3 +f 82/220/8 117/221/8 72/222/8 +f 109/223/6 114/224/6 110/225/6 +f 108/226/5 115/227/5 111/228/5 +f 112/229/5 117/221/5 116/230/5 +f 111/231/5 117/232/5 113/233/5 +f 108/214/5 116/218/5 114/234/5 +f 120/215/5 119/235/5 121/236/5 +f 112/229/6 121/236/6 113/237/6 +f 113/233/3 119/235/3 111/231/3 +f 111/228/8 118/238/8 108/226/8 +f 52/239/5 122/210/5 107/240/5 +f 106/241/5 123/188/5 62/242/5 +f 62/242/5 125/190/5 40/243/5 +f 101/244/5 5/245/5 52/239/5 +f 102/246/5 126/247/5 101/244/5 +f 40/243/5 128/211/5 103/248/5 +f 107/240/5 127/213/5 102/246/5 +f 103/248/5 124/207/5 106/241/5 +f 134/249/8 151/250/8 135/251/8 +f 135/252/2 145/253/2 129/254/2 +f 62/255/8 140/256/8 106/257/8 +f 102/258/3 137/259/3 107/260/3 +f 101/261/6 143/262/6 102/263/6 +f 40/264/3 139/265/3 62/266/3 +f 107/267/8 138/268/8 52/269/8 +f 106/270/2 144/271/2 103/272/2 +f 129/273/5 138/268/5 137/274/5 +f 131/275/5 140/256/5 139/276/5 +f 133/277/5 139/265/5 141/278/5 +f 134/279/5 138/280/5 130/281/5 +f 135/251/5 142/282/5 134/249/5 +f 133/283/5 144/284/5 136/285/5 +f 135/252/5 137/259/5 143/286/5 +f 136/287/5 140/288/5 132/289/5 +f 145/253/5 150/290/5 146/291/5 +f 147/292/5 152/293/5 148/294/5 +f 133/277/2 147/292/2 131/295/2 +f 129/273/6 146/291/6 130/296/6 +f 132/289/3 152/293/3 136/287/3 +f 136/285/8 149/297/8 133/283/8 +f 130/281/3 150/290/3 134/279/3 +f 131/275/6 148/294/6 132/298/6 +f 2/299/1 153/300/1 10/301/1 +f 63/302/1 154/303/1 2/299/1 +f 45/304/1 155/305/1 63/302/1 +f 10/301/1 156/306/1 45/304/1 +f 63/302/1 157/307/1 73/308/1 +f 2/299/1 158/309/1 63/302/1 +f 1/310/1 159/311/1 2/299/1 +f 73/308/1 160/312/1 1/310/1 +f 31/35/1 161/313/1 1/310/1 +f 53/37/1 162/314/1 31/35/1 +f 73/308/1 163/315/1 53/37/1 +f 1/310/1 164/316/1 73/308/1 +f 166/317/3 191/318/3 167/319/3 +f 175/320/6 200/321/6 176/322/6 +f 170/323/6 193/324/6 169/325/6 +f 158/326/8 181/327/8 157/328/8 +f 164/329/8 188/330/8 163/331/8 +f 155/332/3 177/333/3 154/334/3 +f 157/335/3 183/336/3 160/337/3 +f 162/338/6 185/339/6 161/340/6 +f 156/341/8 180/342/8 155/343/8 +f 159/344/2 182/345/2 158/346/2 +f 161/347/2 187/348/2 164/349/2 +f 154/350/6 178/351/6 153/352/6 +f 166/353/1 177/354/1 165/355/1 +f 166/317/1 179/5/1 178/356/1 +f 165/357/1 180/358/1 168/359/1 +f 167/360/1 180/342/1 179/361/1 +f 170/323/1 181/327/1 182/362/1 +f 171/363/1 181/364/1 169/365/1 +f 172/366/1 182/345/1 184/367/1 +f 172/368/1 183/369/1 171/370/1 +f 173/371/1 186/372/1 174/373/1 +f 173/374/1 187/348/1 185/375/1 +f 174/376/1 188/377/1 176/378/1 +f 175/320/1 188/330/1 187/379/1 +f 189/380/1 191/318/1 190/381/1 +f 194/382/1 195/383/1 193/324/1 +f 198/384/1 199/385/1 197/386/1 +f 174/373/8 197/386/8 173/371/8 +f 169/365/2 195/383/2 171/363/2 +f 168/359/2 189/380/2 165/357/2 +f 173/374/3 199/385/3 175/387/3 +f 172/366/3 194/382/3 170/388/3 +f 167/360/6 192/389/6 168/390/6 +f 176/378/2 198/384/2 174/376/2 +f 165/355/8 190/381/8 166/353/8 +f 171/370/8 196/391/8 172/368/8 +f 126/392/3 209/393/3 5/394/3 +f 202/395/3 201/174/3 209/393/3 +f 29/396/2 204/397/2 12/168/2 +f 205/398/2 203/171/2 204/397/2 +f 12/399/6 210/400/6 61/153/6 +f 204/401/6 211/110/6 210/400/6 +f 39/402/8 205/403/8 29/143/8 +f 207/404/8 206/146/8 205/403/8 +f 208/405/7 239/406/7 125/407/7 +f 207/114/7 241/408/7 208/405/7 +f 61/153/6 214/409/6 81/109/6 +f 210/400/6 215/80/6 214/409/6 +f 71/79/6 201/410/6 51/95/6 +f 212/411/6 209/97/6 201/410/6 +f 81/109/6 212/411/6 71/79/6 +f 214/409/6 213/82/6 212/411/6 +f 87/412/2 270/413/2 88/50/2 +f 97/53/3 276/414/3 96/415/3 +f 216/416/4 238/417/4 44/30/4 +f 202/34/4 244/418/4 216/416/4 +f 307/419/8 222/420/8 93/421/8 +f 310/422/8 223/423/8 224/424/8 +f 85/425/8 223/423/8 84/426/8 +f 86/427/8 225/428/8 85/425/8 +f 87/429/8 226/430/8 86/427/8 +f 88/431/8 227/432/8 87/429/8 +f 89/433/8 228/434/8 88/431/8 +f 90/435/8 229/436/8 89/433/8 +f 91/437/8 230/438/8 90/435/8 +f 93/421/8 232/439/8 94/440/8 +f 94/440/8 233/441/8 95/442/8 +f 95/442/8 234/443/8 96/444/8 +f 96/444/8 235/445/8 97/446/8 +f 97/446/8 236/447/8 98/448/8 +f 98/448/8 237/449/8 99/450/8 +f 99/450/8 238/451/8 100/452/8 +f 310/422/8 221/453/8 307/419/8 +f 312/454/8 239/455/8 311/456/8 +f 311/456/8 241/457/8 218/458/8 +f 312/454/8 242/459/8 240/460/8 +f 217/461/8 231/462/8 91/437/8 +f 218/458/8 243/463/8 217/461/8 +f 100/452/8 244/464/8 219/465/8 +f 219/465/8 242/459/8 220/466/8 +f 94/467/3 245/468/3 283/469/3 +f 250/470/2 294/471/2 252/472/2 +f 253/473/3 293/474/3 251/475/3 +f 262/476/2 325/477/2 267/478/2 +f 268/479/2 292/480/2 250/470/2 +f 251/475/3 334/481/3 249/482/3 +f 265/483/5 344/484/5 264/485/5 +f 267/478/2 326/486/2 268/479/2 +f 220/487/3 317/488/3 286/489/3 +f 100/43/3 255/490/3 99/47/3 +f 90/46/2 273/491/2 91/54/2 +f 217/56/2 281/55/2 285/492/2 +f 84/493/2 315/494/2 284/495/2 +f 95/496/3 245/468/3 94/467/3 +f 85/497/2 248/498/2 86/499/2 +f 96/415/3 247/500/3 95/496/3 +f 249/482/3 333/501/3 275/502/3 +f 261/503/1 342/504/1 262/505/1 +f 86/499/2 269/506/2 87/412/2 +f 284/495/9 316/507/9 283/469/9 +f 318/508/10 286/489/10 317/509/10 +f 268/510/8 246/511/8 267/512/8 +f 250/513/8 248/498/8 268/510/8 +f 252/514/8 269/506/8 250/513/8 +f 254/515/8 270/413/8 252/514/8 +f 272/516/8 271/51/8 254/515/8 +f 258/517/8 256/45/8 272/516/8 +f 274/518/8 247/500/8 275/519/8 +f 275/519/8 276/414/8 249/520/8 +f 249/520/8 277/52/8 251/521/8 +f 251/521/8 278/48/8 253/522/8 +f 253/522/8 255/490/8 279/523/8 +f 279/523/8 257/42/8 280/524/8 +f 260/525/8 273/491/8 258/517/8 +f 280/524/8 259/526/8 282/527/8 +f 262/528/8 283/469/8 261/529/8 +f 264/530/8 285/492/8 265/531/8 +f 262/528/8 246/511/8 284/495/8 +f 261/529/8 245/468/8 274/518/8 +f 265/531/8 281/55/8 260/525/8 +f 264/530/8 259/526/8 286/489/8 +f 291/532/2 347/533/2 289/534/2 +f 303/535/5 362/536/5 304/537/5 +f 289/534/2 345/538/2 332/539/2 +f 340/540/2 357/541/2 338/542/2 +f 330/543/3 358/544/3 331/545/3 +f 331/545/3 360/546/3 339/547/3 +f 306/548/2 359/549/2 340/540/2 +f 329/550/3 356/551/3 330/543/3 +f 338/542/2 355/552/2 337/553/2 +f 274/554/3 341/555/3 261/556/3 +f 279/557/3 295/558/3 253/473/3 +f 252/472/2 296/559/2 254/560/2 +f 260/561/2 343/562/2 265/563/2 +f 280/564/3 297/565/3 279/557/3 +f 254/560/2 298/566/2 272/567/2 +f 264/568/3 301/569/3 282/570/3 +f 258/571/2 302/572/2 260/561/2 +f 272/567/2 300/573/2 258/571/2 +f 282/570/3 299/574/3 280/564/3 +f 275/502/3 287/575/3 274/554/3 +f 92/576/8 93/421/8 308/577/8 +f 83/578/8 84/426/8 310/422/8 +f 83/578/8 307/419/8 92/576/8 +f 104/579/8 311/456/8 105/580/8 +f 105/580/8 218/458/8 313/581/8 +f 104/579/8 220/466/8 312/454/8 +f 319/582/1 315/583/1 320/584/1 +f 266/585/5 317/509/5 263/586/5 +f 320/584/1 84/587/1 309/588/1 +f 319/582/1 93/589/1 316/507/1 +f 263/586/5 220/590/5 314/591/5 +f 266/585/5 218/592/5 318/508/5 +f 319/593/8 322/594/8 321/595/8 +f 263/58/8 323/596/8 266/597/8 +f 83/598/2 320/599/2 309/600/2 +f 313/601/2 323/596/2 105/602/2 +f 92/603/1 322/594/1 83/604/1 +f 308/605/3 321/595/3 92/606/3 +f 290/607/8 325/477/8 288/608/8 +f 327/609/8 326/486/8 290/607/8 +f 328/610/8 292/480/8 327/609/8 +f 329/550/8 294/471/8 328/610/8 +f 330/543/8 296/559/8 329/550/8 +f 331/545/8 298/566/8 330/543/8 +f 332/539/8 333/501/8 289/534/8 +f 289/534/8 334/481/8 291/532/8 +f 291/532/8 293/474/8 335/611/8 +f 335/611/8 295/558/8 336/612/8 +f 336/612/8 297/565/8 337/553/8 +f 337/553/8 299/574/8 338/542/8 +f 339/547/8 300/573/8 331/545/8 +f 338/542/8 301/569/8 340/540/8 +f 304/537/8 341/613/8 303/535/8 +f 306/614/8 343/615/8 305/616/8 +f 304/617/8 325/477/8 342/618/8 +f 303/619/8 287/575/8 332/539/8 +f 305/620/8 302/572/8 339/547/8 +f 306/548/8 301/569/8 344/621/8 +f 345/538/8 348/622/8 346/623/8 +f 347/533/8 350/624/8 348/622/8 +f 349/625/8 352/626/8 350/624/8 +f 351/627/8 354/628/8 352/626/8 +f 353/629/8 356/551/8 354/628/8 +f 355/552/8 358/544/8 356/551/8 +f 357/541/8 360/546/8 358/544/8 +f 361/630/8 346/623/8 362/536/8 +f 359/549/8 363/631/8 360/546/8 +f 288/608/3 348/622/3 290/607/3 +f 305/616/1 364/632/1 306/614/1 +f 335/611/2 349/625/2 291/532/2 +f 290/607/3 350/624/3 327/609/3 +f 304/617/3 346/623/3 288/608/3 +f 336/612/2 351/627/2 335/611/2 +f 327/609/3 352/626/3 328/610/3 +f 332/539/2 361/630/2 303/619/2 +f 337/553/2 353/629/2 336/612/2 +f 328/610/3 354/628/3 329/550/3 +f 339/547/3 363/631/3 305/620/3 +f 373/633/3 368/634/3 367/635/3 +f 384/636/1 371/637/1 381/638/1 +f 377/639/2 370/640/2 369/641/2 +f 388/642/5 365/643/5 385/644/5 +f 375/645/8 388/642/8 391/646/8 +f 368/634/8 389/647/8 383/648/8 +f 376/649/8 391/646/8 389/647/8 +f 371/650/2 379/651/2 378/652/2 +f 378/652/2 380/653/2 377/639/2 +f 365/654/3 375/645/3 374/655/3 +f 374/655/3 376/649/3 373/633/3 +f 394/656/6 374/655/6 373/633/6 +f 393/657/6 396/658/6 394/656/6 +f 365/659/5 404/660/5 385/661/5 +f 381/662/6 394/656/6 382/663/6 +f 390/664/8 380/653/8 379/651/8 +f 389/647/8 392/665/8 390/664/8 +f 384/636/8 379/651/8 372/666/8 +f 383/648/8 390/664/8 384/636/8 +f 392/665/8 370/640/8 380/653/8 +f 391/646/8 387/667/8 392/665/8 +f 385/661/2 403/668/2 396/669/2 +f 395/670/6 385/671/6 396/658/6 +f 370/640/5 386/672/5 369/673/5 +f 387/667/5 385/644/5 386/672/5 +f 368/634/1 382/674/1 367/675/1 +f 383/648/1 381/638/1 382/674/1 +f 382/676/1 400/677/1 367/678/1 +f 394/679/2 399/680/2 382/676/2 +f 374/681/3 398/682/3 365/659/3 +f 373/683/5 402/684/5 394/685/5 +f 396/686/1 397/687/1 374/681/1 +f 367/678/3 401/688/3 373/683/3 +f 413/689/3 408/690/3 407/691/3 +f 424/692/1 411/693/1 421/694/1 +f 417/695/2 410/696/2 409/697/2 +f 428/698/5 405/699/5 425/700/5 +f 415/701/8 428/698/8 431/702/8 +f 408/690/8 429/703/8 423/704/8 +f 416/705/8 431/702/8 429/703/8 +f 411/706/2 419/707/2 418/708/2 +f 418/708/2 420/709/2 417/695/2 +f 405/710/3 415/701/3 414/711/3 +f 414/711/3 416/705/3 413/689/3 +f 434/712/6 414/711/6 413/689/6 +f 433/713/6 436/714/6 434/712/6 +f 405/715/5 444/716/5 425/717/5 +f 421/718/6 434/712/6 422/719/6 +f 430/720/8 420/709/8 419/707/8 +f 429/703/8 432/721/8 430/720/8 +f 424/692/8 419/707/8 412/722/8 +f 423/704/8 430/720/8 424/692/8 +f 432/721/8 410/696/8 420/709/8 +f 431/702/8 427/723/8 432/721/8 +f 425/717/2 443/724/2 436/725/2 +f 435/726/6 425/727/6 436/714/6 +f 410/696/5 426/728/5 409/729/5 +f 427/723/5 425/700/5 426/728/5 +f 408/690/1 422/730/1 407/731/1 +f 423/704/1 421/694/1 422/730/1 +f 422/732/1 440/733/1 407/734/1 +f 434/735/2 439/736/2 422/732/2 +f 414/737/3 438/738/3 405/715/3 +f 413/739/5 442/740/5 434/741/5 +f 436/742/1 437/743/1 414/737/1 +f 407/734/3 441/744/3 413/739/3 +f 453/745/3 448/746/3 447/747/3 +f 464/748/1 451/749/1 461/750/1 +f 457/751/2 450/752/2 449/753/2 +f 468/754/5 445/755/5 465/756/5 +f 455/757/8 468/754/8 471/758/8 +f 448/746/8 469/759/8 463/760/8 +f 456/761/8 471/758/8 469/759/8 +f 451/762/2 459/763/2 458/764/2 +f 458/764/2 460/765/2 457/751/2 +f 445/766/3 455/757/3 454/767/3 +f 454/767/3 456/761/3 453/745/3 +f 474/768/6 454/767/6 453/745/6 +f 473/769/6 476/770/6 474/768/6 +f 445/771/5 484/772/5 465/773/5 +f 461/774/6 474/768/6 462/775/6 +f 470/776/8 460/765/8 459/763/8 +f 469/759/8 472/777/8 470/776/8 +f 464/748/8 459/763/8 452/778/8 +f 463/760/8 470/776/8 464/748/8 +f 472/777/8 450/752/8 460/765/8 +f 471/758/8 467/779/8 472/777/8 +f 465/773/2 483/780/2 476/781/2 +f 475/782/6 465/783/6 476/770/6 +f 450/752/5 466/784/5 449/785/5 +f 467/779/5 465/756/5 466/784/5 +f 448/746/1 462/786/1 447/787/1 +f 463/760/1 461/750/1 462/786/1 +f 462/788/1 480/789/1 447/790/1 +f 474/791/2 479/792/2 462/788/2 +f 454/793/3 478/794/3 445/771/3 +f 453/795/5 482/796/5 474/797/5 +f 476/798/1 477/799/1 454/793/1 +f 447/790/3 481/800/3 453/795/3 +f 493/801/3 488/802/3 487/803/3 +f 504/804/1 491/805/1 501/806/1 +f 497/807/2 490/808/2 489/809/2 +f 508/810/5 485/811/5 505/812/5 +f 495/813/8 508/810/8 511/814/8 +f 488/802/8 509/815/8 503/816/8 +f 496/817/8 511/814/8 509/815/8 +f 491/818/2 499/819/2 498/820/2 +f 498/820/2 500/821/2 497/807/2 +f 485/822/3 495/813/3 494/823/3 +f 494/823/3 496/817/3 493/801/3 +f 514/824/6 494/823/6 493/801/6 +f 513/825/6 516/826/6 514/824/6 +f 485/827/5 524/828/5 505/829/5 +f 501/830/6 514/824/6 502/831/6 +f 510/832/8 500/821/8 499/819/8 +f 509/815/8 512/833/8 510/832/8 +f 504/804/8 499/819/8 492/834/8 +f 503/816/8 510/832/8 504/804/8 +f 512/833/8 490/808/8 500/821/8 +f 511/814/8 507/835/8 512/833/8 +f 505/829/2 523/836/2 516/837/2 +f 515/838/6 505/839/6 516/826/6 +f 490/808/5 506/840/5 489/841/5 +f 507/835/5 505/812/5 506/840/5 +f 488/802/1 502/842/1 487/843/1 +f 503/816/1 501/806/1 502/842/1 +f 502/844/1 520/845/1 487/846/1 +f 514/847/2 519/848/2 502/844/2 +f 494/849/3 518/850/3 485/827/3 +f 493/851/5 522/852/5 514/853/5 +f 516/854/1 517/855/1 494/849/1 +f 487/846/3 521/856/3 493/851/3 +f 533/857/3 528/858/3 527/859/3 +f 544/860/1 531/861/1 541/862/1 +f 537/863/2 530/864/2 529/865/2 +f 548/866/5 525/867/5 545/868/5 +f 535/869/8 548/866/8 551/870/8 +f 528/858/8 549/871/8 543/872/8 +f 536/873/8 551/870/8 549/871/8 +f 531/874/2 539/875/2 538/876/2 +f 538/876/2 540/877/2 537/863/2 +f 525/878/3 535/869/3 534/879/3 +f 534/879/3 536/873/3 533/857/3 +f 554/880/6 534/879/6 533/857/6 +f 553/881/6 556/882/6 554/880/6 +f 525/883/5 564/884/5 545/885/5 +f 541/886/6 554/880/6 542/887/6 +f 550/888/8 540/877/8 539/875/8 +f 549/871/8 552/889/8 550/888/8 +f 544/860/8 539/875/8 532/890/8 +f 543/872/8 550/888/8 544/860/8 +f 552/889/8 530/864/8 540/877/8 +f 551/870/8 547/891/8 552/889/8 +f 545/885/2 563/892/2 556/893/2 +f 555/894/6 545/895/6 556/882/6 +f 530/864/5 546/896/5 529/897/5 +f 547/891/5 545/868/5 546/896/5 +f 528/858/1 542/898/1 527/899/1 +f 543/872/1 541/862/1 542/898/1 +f 542/900/1 560/901/1 527/902/1 +f 554/903/2 559/904/2 542/900/2 +f 534/905/3 558/906/3 525/883/3 +f 533/907/5 562/908/5 554/909/5 +f 556/910/1 557/911/1 534/905/1 +f 527/902/3 561/912/3 533/907/3 +f 573/913/3 568/914/3 567/915/3 +f 584/916/1 571/917/1 581/918/1 +f 577/919/2 570/920/2 569/921/2 +f 588/922/5 565/923/5 585/924/5 +f 575/925/8 588/922/8 591/926/8 +f 568/914/8 589/927/8 583/928/8 +f 576/929/8 591/926/8 589/927/8 +f 571/930/2 579/931/2 578/932/2 +f 578/932/2 580/933/2 577/919/2 +f 565/934/3 575/925/3 574/935/3 +f 574/935/3 576/929/3 573/913/3 +f 594/936/6 574/935/6 573/913/6 +f 593/937/6 596/938/6 594/936/6 +f 565/939/5 604/940/5 585/941/5 +f 581/942/6 594/936/6 582/943/6 +f 590/944/8 580/933/8 579/931/8 +f 589/927/8 592/945/8 590/944/8 +f 584/916/8 579/931/8 572/946/8 +f 583/928/8 590/944/8 584/916/8 +f 592/945/8 570/920/8 580/933/8 +f 591/926/8 587/947/8 592/945/8 +f 585/941/2 603/948/2 596/949/2 +f 595/950/6 585/951/6 596/938/6 +f 570/920/5 586/952/5 569/953/5 +f 587/947/5 585/924/5 586/952/5 +f 568/914/1 582/954/1 567/955/1 +f 583/928/1 581/918/1 582/954/1 +f 582/956/1 600/957/1 567/958/1 +f 594/959/2 599/960/2 582/956/2 +f 574/961/3 598/962/3 565/939/3 +f 573/963/5 602/964/5 594/965/5 +f 596/966/1 597/967/1 574/961/1 +f 567/958/3 601/968/3 573/963/3 +f 613/969/3 608/970/3 607/971/3 +f 624/972/1 611/973/1 621/974/1 +f 617/975/2 610/976/2 609/977/2 +f 628/978/5 605/979/5 625/980/5 +f 615/981/8 628/978/8 631/982/8 +f 608/970/8 629/983/8 623/984/8 +f 616/985/8 631/982/8 629/983/8 +f 611/986/2 619/987/2 618/988/2 +f 618/988/2 620/989/2 617/975/2 +f 605/990/3 615/981/3 614/991/3 +f 614/991/3 616/985/3 613/969/3 +f 634/992/6 614/991/6 613/969/6 +f 633/993/6 636/994/6 634/992/6 +f 605/995/5 644/996/5 625/997/5 +f 621/998/6 634/992/6 622/999/6 +f 630/1000/8 620/989/8 619/987/8 +f 629/983/8 632/1001/8 630/1000/8 +f 624/972/8 619/987/8 612/1002/8 +f 623/984/8 630/1000/8 624/972/8 +f 632/1001/8 610/976/8 620/989/8 +f 631/982/8 627/1003/8 632/1001/8 +f 625/997/2 643/1004/2 636/1005/2 +f 635/1006/6 625/1007/6 636/994/6 +f 610/976/5 626/1008/5 609/1009/5 +f 627/1003/5 625/980/5 626/1008/5 +f 608/970/1 622/1010/1 607/1011/1 +f 623/984/1 621/974/1 622/1010/1 +f 622/1012/1 640/1013/1 607/1014/1 +f 634/1015/2 639/1016/2 622/1012/2 +f 614/1017/3 638/1018/3 605/995/3 +f 613/1019/5 642/1020/5 634/1021/5 +f 636/1022/1 637/1023/1 614/1017/1 +f 607/1014/3 641/1024/3 613/1019/3 +f 653/1025/3 648/1026/3 647/1027/3 +f 664/1028/1 651/1029/1 661/1030/1 +f 657/1031/2 650/1032/2 649/1033/2 +f 668/1034/5 645/1035/5 665/1036/5 +f 655/1037/8 668/1034/8 671/1038/8 +f 648/1026/8 669/1039/8 663/1040/8 +f 656/1041/8 671/1038/8 669/1039/8 +f 651/1042/2 659/1043/2 658/1044/2 +f 658/1044/2 660/1045/2 657/1031/2 +f 645/1046/3 655/1037/3 654/1047/3 +f 654/1047/3 656/1041/3 653/1025/3 +f 674/1048/6 654/1047/6 653/1025/6 +f 673/1049/6 676/1050/6 674/1048/6 +f 645/1051/5 684/1052/5 665/1053/5 +f 661/1054/6 674/1048/6 662/1055/6 +f 670/1056/8 660/1045/8 659/1043/8 +f 669/1039/8 672/1057/8 670/1056/8 +f 664/1028/8 659/1043/8 652/1058/8 +f 663/1040/8 670/1056/8 664/1028/8 +f 672/1057/8 650/1032/8 660/1045/8 +f 671/1038/8 667/1059/8 672/1057/8 +f 665/1053/2 683/1060/2 676/1061/2 +f 675/1062/6 665/1063/6 676/1050/6 +f 650/1032/5 666/1064/5 649/1065/5 +f 667/1059/5 665/1036/5 666/1064/5 +f 648/1026/1 662/1066/1 647/1067/1 +f 663/1040/1 661/1030/1 662/1066/1 +f 662/1068/1 680/1069/1 647/1070/1 +f 674/1071/2 679/1072/2 662/1068/2 +f 654/1073/3 678/1074/3 645/1051/3 +f 653/1075/5 682/1076/5 674/1077/5 +f 676/1078/1 677/1079/1 654/1073/1 +f 647/1070/3 681/1080/3 653/1075/3 +f 693/1081/3 688/1082/3 687/1083/3 +f 704/1084/1 691/1085/1 701/1086/1 +f 697/1087/2 690/1088/2 689/1089/2 +f 708/1090/5 685/1091/5 705/1092/5 +f 695/1093/8 708/1090/8 711/1094/8 +f 688/1082/8 709/1095/8 703/1096/8 +f 696/1097/8 711/1094/8 709/1095/8 +f 691/1098/2 699/1099/2 698/1100/2 +f 698/1100/2 700/1101/2 697/1087/2 +f 685/1102/3 695/1093/3 694/1103/3 +f 694/1103/3 696/1097/3 693/1081/3 +f 714/1104/6 694/1103/6 693/1081/6 +f 713/1105/6 716/1106/6 714/1104/6 +f 685/1107/5 724/1108/5 705/1109/5 +f 701/1110/6 714/1104/6 702/1111/6 +f 710/1112/8 700/1101/8 699/1099/8 +f 709/1095/8 712/1113/8 710/1112/8 +f 704/1084/8 699/1099/8 692/1114/8 +f 703/1096/8 710/1112/8 704/1084/8 +f 712/1113/8 690/1088/8 700/1101/8 +f 711/1094/8 707/1115/8 712/1113/8 +f 705/1109/2 723/1116/2 716/1117/2 +f 715/1118/6 705/1119/6 716/1106/6 +f 690/1088/5 706/1120/5 689/1121/5 +f 707/1115/5 705/1092/5 706/1120/5 +f 688/1082/1 702/1122/1 687/1123/1 +f 703/1096/1 701/1086/1 702/1122/1 +f 702/1124/1 720/1125/1 687/1126/1 +f 714/1127/2 719/1128/2 702/1124/2 +f 694/1129/3 718/1130/3 685/1107/3 +f 693/1131/5 722/1132/5 714/1133/5 +f 716/1134/1 717/1135/1 694/1129/1 +f 687/1126/3 721/1136/3 693/1131/3 +f 733/1137/3 728/1138/3 727/1139/3 +f 744/1140/1 731/1141/1 741/1142/1 +f 737/1143/2 730/1144/2 729/1145/2 +f 748/1146/5 725/1147/5 745/1148/5 +f 735/1149/8 748/1146/8 751/1150/8 +f 728/1138/8 749/1151/8 743/1152/8 +f 736/1153/8 751/1150/8 749/1151/8 +f 731/1154/2 739/1155/2 738/1156/2 +f 738/1156/2 740/1157/2 737/1143/2 +f 725/1158/3 735/1149/3 734/1159/3 +f 734/1159/3 736/1153/3 733/1137/3 +f 754/1160/6 734/1159/6 733/1137/6 +f 753/1161/6 756/1162/6 754/1160/6 +f 725/1163/5 764/1164/5 745/1165/5 +f 741/1166/6 754/1160/6 742/1167/6 +f 750/1168/8 740/1157/8 739/1155/8 +f 749/1151/8 752/1169/8 750/1168/8 +f 744/1140/8 739/1155/8 732/1170/8 +f 743/1152/8 750/1168/8 744/1140/8 +f 752/1169/8 730/1144/8 740/1157/8 +f 751/1150/8 747/1171/8 752/1169/8 +f 745/1165/2 763/1172/2 756/1173/2 +f 755/1174/6 745/1175/6 756/1162/6 +f 730/1144/5 746/1176/5 729/1177/5 +f 747/1171/5 745/1148/5 746/1176/5 +f 728/1138/1 742/1178/1 727/1179/1 +f 743/1152/1 741/1142/1 742/1178/1 +f 742/1180/1 760/1181/1 727/1182/1 +f 754/1183/2 759/1184/2 742/1180/2 +f 734/1185/3 758/1186/3 725/1163/3 +f 733/1187/5 762/1188/5 754/1189/5 +f 756/1190/1 757/1191/1 734/1185/1 +f 727/1182/3 761/1192/3 733/1187/3 +f 773/1193/3 768/1194/3 767/1195/3 +f 784/1196/1 771/1197/1 781/1198/1 +f 777/1199/2 770/1200/2 769/1201/2 +f 788/1202/5 765/1203/5 785/1204/5 +f 775/1205/8 788/1202/8 791/1206/8 +f 768/1194/8 789/1207/8 783/1208/8 +f 776/1209/8 791/1206/8 789/1207/8 +f 771/1210/2 779/1211/2 778/1212/2 +f 778/1212/2 780/1213/2 777/1199/2 +f 765/1214/3 775/1205/3 774/1215/3 +f 774/1215/3 776/1209/3 773/1193/3 +f 794/1216/6 774/1215/6 773/1193/6 +f 793/1217/6 796/1218/6 794/1216/6 +f 765/1219/5 804/1220/5 785/1221/5 +f 781/1222/6 794/1216/6 782/1223/6 +f 790/1224/8 780/1213/8 779/1211/8 +f 789/1207/8 792/1225/8 790/1224/8 +f 784/1196/8 779/1211/8 772/1226/8 +f 783/1208/8 790/1224/8 784/1196/8 +f 792/1225/8 770/1200/8 780/1213/8 +f 791/1206/8 787/1227/8 792/1225/8 +f 785/1221/2 803/1228/2 796/1229/2 +f 795/1230/6 785/1231/6 796/1218/6 +f 770/1200/5 786/1232/5 769/1233/5 +f 787/1227/5 785/1204/5 786/1232/5 +f 768/1194/1 782/1234/1 767/1235/1 +f 783/1208/1 781/1198/1 782/1234/1 +f 782/1236/1 800/1237/1 767/1238/1 +f 794/1239/2 799/1240/2 782/1236/2 +f 774/1241/3 798/1242/3 765/1219/3 +f 773/1243/5 802/1244/5 794/1245/5 +f 796/1246/1 797/1247/1 774/1241/1 +f 767/1238/3 801/1248/3 773/1243/3 +f 813/1249/2 808/1250/2 816/1251/2 +f 811/1252/1 824/1253/1 821/1254/1 +f 817/1255/3 810/1256/3 820/1257/3 +f 805/1258/5 828/1259/5 825/1260/5 +f 828/1259/8 815/1261/8 831/1262/8 +f 829/1263/8 808/1250/8 823/1264/8 +f 831/1262/8 816/1251/8 829/1263/8 +f 811/1265/3 819/1266/3 812/1267/3 +f 818/1268/3 820/1257/3 819/1266/3 +f 805/1269/2 815/1261/2 806/1270/2 +f 814/1271/2 816/1251/2 815/1261/2 +f 814/1271/6 834/1272/6 813/1249/6 +f 836/1273/6 833/1274/6 834/1272/6 +f 844/1275/5 805/1276/5 825/1277/5 +f 834/1272/6 821/1278/6 822/1279/6 +f 820/1257/8 830/1280/8 819/1266/8 +f 832/1281/8 829/1263/8 830/1280/8 +f 819/1266/8 824/1253/8 812/1267/8 +f 830/1280/8 823/1264/8 824/1253/8 +f 810/1256/8 832/1281/8 820/1257/8 +f 827/1282/8 831/1262/8 832/1281/8 +f 843/1283/3 825/1277/3 836/1284/3 +f 825/1285/6 835/1286/6 836/1273/6 +f 826/1287/5 810/1256/5 809/1288/5 +f 825/1260/5 827/1282/5 826/1287/5 +f 822/1289/1 808/1250/1 807/1290/1 +f 821/1254/1 823/1264/1 822/1289/1 +f 840/1291/1 822/1292/1 807/1293/1 +f 839/1294/3 834/1295/3 822/1292/3 +f 838/1296/2 814/1297/2 805/1276/2 +f 842/1298/5 813/1299/5 834/1300/5 +f 837/1301/1 836/1302/1 814/1297/1 +f 841/1303/2 807/1293/2 813/1299/2 +f 853/1304/2 848/1305/2 856/1306/2 +f 851/1307/1 864/1308/1 861/1309/1 +f 857/1310/3 850/1311/3 860/1312/3 +f 845/1313/5 868/1314/5 865/1315/5 +f 868/1314/8 855/1316/8 871/1317/8 +f 869/1318/8 848/1305/8 863/1319/8 +f 871/1317/8 856/1306/8 869/1318/8 +f 851/1320/3 859/1321/3 852/1322/3 +f 858/1323/3 860/1312/3 859/1321/3 +f 845/1324/2 855/1316/2 846/1325/2 +f 854/1326/2 856/1306/2 855/1316/2 +f 854/1326/6 874/1327/6 853/1304/6 +f 876/1328/6 873/1329/6 874/1327/6 +f 884/1330/5 845/1331/5 865/1332/5 +f 874/1327/6 861/1333/6 862/1334/6 +f 860/1312/8 870/1335/8 859/1321/8 +f 872/1336/8 869/1318/8 870/1335/8 +f 859/1321/8 864/1308/8 852/1322/8 +f 870/1335/8 863/1319/8 864/1308/8 +f 850/1311/8 872/1336/8 860/1312/8 +f 867/1337/8 871/1317/8 872/1336/8 +f 883/1338/3 865/1332/3 876/1339/3 +f 865/1340/6 875/1341/6 876/1328/6 +f 866/1342/5 850/1311/5 849/1343/5 +f 865/1315/5 867/1337/5 866/1342/5 +f 862/1344/1 848/1305/1 847/1345/1 +f 861/1309/1 863/1319/1 862/1344/1 +f 880/1346/1 862/1347/1 847/1348/1 +f 879/1349/3 874/1350/3 862/1347/3 +f 878/1351/2 854/1352/2 845/1331/2 +f 882/1353/5 853/1354/5 874/1355/5 +f 877/1356/1 876/1357/1 854/1352/1 +f 881/1358/2 847/1348/2 853/1354/2 +f 893/1359/2 888/1360/2 896/1361/2 +f 891/1362/1 904/1363/1 901/1364/1 +f 897/1365/3 890/1366/3 900/1367/3 +f 885/1368/5 908/1369/5 905/1370/5 +f 908/1369/8 895/1371/8 911/1372/8 +f 909/1373/8 888/1360/8 903/1374/8 +f 911/1372/8 896/1361/8 909/1373/8 +f 891/1375/3 899/1376/3 892/1377/3 +f 898/1378/3 900/1367/3 899/1376/3 +f 885/1379/2 895/1371/2 886/1380/2 +f 894/1381/2 896/1361/2 895/1371/2 +f 894/1381/6 914/1382/6 893/1359/6 +f 916/1383/6 913/1384/6 914/1382/6 +f 924/1385/5 885/1386/5 905/1387/5 +f 914/1382/6 901/1388/6 902/1389/6 +f 900/1367/8 910/1390/8 899/1376/8 +f 912/1391/8 909/1373/8 910/1390/8 +f 899/1376/8 904/1363/8 892/1377/8 +f 910/1390/8 903/1374/8 904/1363/8 +f 890/1366/8 912/1391/8 900/1367/8 +f 907/1392/8 911/1372/8 912/1391/8 +f 923/1393/3 905/1387/3 916/1394/3 +f 905/1395/6 915/1396/6 916/1383/6 +f 906/1397/5 890/1366/5 889/1398/5 +f 905/1370/5 907/1392/5 906/1397/5 +f 902/1399/1 888/1360/1 887/1400/1 +f 901/1364/1 903/1374/1 902/1399/1 +f 920/1401/1 902/1402/1 887/1403/1 +f 919/1404/3 914/1405/3 902/1402/3 +f 918/1406/2 894/1407/2 885/1386/2 +f 922/1408/5 893/1409/5 914/1410/5 +f 917/1411/1 916/1412/1 894/1407/1 +f 921/1413/2 887/1403/2 893/1409/2 +f 933/1414/2 928/1415/2 936/1416/2 +f 931/1417/1 944/1418/1 941/1419/1 +f 937/1420/3 930/1421/3 940/1422/3 +f 925/1423/5 948/1424/5 945/1425/5 +f 948/1424/8 935/1426/8 951/1427/8 +f 949/1428/8 928/1415/8 943/1429/8 +f 951/1427/8 936/1416/8 949/1428/8 +f 931/1430/3 939/1431/3 932/1432/3 +f 938/1433/3 940/1422/3 939/1431/3 +f 925/1434/2 935/1426/2 926/1435/2 +f 934/1436/2 936/1416/2 935/1426/2 +f 934/1436/6 954/1437/6 933/1414/6 +f 956/1438/6 953/1439/6 954/1437/6 +f 964/1440/5 925/1441/5 945/1442/5 +f 954/1437/6 941/1443/6 942/1444/6 +f 940/1422/8 950/1445/8 939/1431/8 +f 952/1446/8 949/1428/8 950/1445/8 +f 939/1431/8 944/1418/8 932/1432/8 +f 950/1445/8 943/1429/8 944/1418/8 +f 930/1421/8 952/1446/8 940/1422/8 +f 947/1447/8 951/1427/8 952/1446/8 +f 963/1448/3 945/1442/3 956/1449/3 +f 945/1450/6 955/1451/6 956/1438/6 +f 946/1452/5 930/1421/5 929/1453/5 +f 945/1425/5 947/1447/5 946/1452/5 +f 942/1454/1 928/1415/1 927/1455/1 +f 941/1419/1 943/1429/1 942/1454/1 +f 960/1456/1 942/1457/1 927/1458/1 +f 959/1459/3 954/1460/3 942/1457/3 +f 958/1461/2 934/1462/2 925/1441/2 +f 962/1463/5 933/1464/5 954/1465/5 +f 957/1466/1 956/1467/1 934/1462/1 +f 961/1468/2 927/1458/2 933/1464/2 +f 973/1469/2 968/1470/2 976/1471/2 +f 971/1472/1 984/1473/1 981/1474/1 +f 977/1475/3 970/1476/3 980/1477/3 +f 965/1478/5 988/1479/5 985/1480/5 +f 988/1479/8 975/1481/8 991/1482/8 +f 989/1483/8 968/1470/8 983/1484/8 +f 991/1482/8 976/1471/8 989/1483/8 +f 971/1485/3 979/1486/3 972/1487/3 +f 978/1488/3 980/1477/3 979/1486/3 +f 965/1489/2 975/1481/2 966/1490/2 +f 974/1491/2 976/1471/2 975/1481/2 +f 974/1491/6 994/1492/6 973/1469/6 +f 996/1493/6 993/1494/6 994/1492/6 +f 1004/1495/5 965/1496/5 985/1497/5 +f 994/1492/6 981/1498/6 982/1499/6 +f 980/1477/8 990/1500/8 979/1486/8 +f 992/1501/8 989/1483/8 990/1500/8 +f 979/1486/8 984/1473/8 972/1487/8 +f 990/1500/8 983/1484/8 984/1473/8 +f 970/1476/8 992/1501/8 980/1477/8 +f 987/1502/8 991/1482/8 992/1501/8 +f 1003/1503/3 985/1497/3 996/1504/3 +f 985/1505/6 995/1506/6 996/1493/6 +f 986/1507/5 970/1476/5 969/1508/5 +f 985/1480/5 987/1502/5 986/1507/5 +f 982/1509/1 968/1470/1 967/1510/1 +f 981/1474/1 983/1484/1 982/1509/1 +f 1000/1511/1 982/1512/1 967/1513/1 +f 999/1514/3 994/1515/3 982/1512/3 +f 998/1516/2 974/1517/2 965/1496/2 +f 1002/1518/5 973/1519/5 994/1520/5 +f 997/1521/1 996/1522/1 974/1517/1 +f 1001/1523/2 967/1513/2 973/1519/2 +f 1013/1524/2 1008/1525/2 1016/1526/2 +f 1011/1527/1 1024/1528/1 1021/1529/1 +f 1017/1530/3 1010/1531/3 1020/1532/3 +f 1005/1533/5 1028/1534/5 1025/1535/5 +f 1028/1534/8 1015/1536/8 1031/1537/8 +f 1029/1538/8 1008/1525/8 1023/1539/8 +f 1031/1537/8 1016/1526/8 1029/1538/8 +f 1011/1540/3 1019/1541/3 1012/1542/3 +f 1018/1543/3 1020/1532/3 1019/1541/3 +f 1005/1544/2 1015/1536/2 1006/1545/2 +f 1014/1546/2 1016/1526/2 1015/1536/2 +f 1014/1546/6 1034/1547/6 1013/1524/6 +f 1036/1548/6 1033/1549/6 1034/1547/6 +f 1044/1550/5 1005/1551/5 1025/1552/5 +f 1034/1547/6 1021/1553/6 1022/1554/6 +f 1020/1532/8 1030/1555/8 1019/1541/8 +f 1032/1556/8 1029/1538/8 1030/1555/8 +f 1019/1541/8 1024/1528/8 1012/1542/8 +f 1030/1555/8 1023/1539/8 1024/1528/8 +f 1010/1531/8 1032/1556/8 1020/1532/8 +f 1027/1557/8 1031/1537/8 1032/1556/8 +f 1043/1558/3 1025/1552/3 1036/1559/3 +f 1025/1560/6 1035/1561/6 1036/1548/6 +f 1026/1562/5 1010/1531/5 1009/1563/5 +f 1025/1535/5 1027/1557/5 1026/1562/5 +f 1022/1564/1 1008/1525/1 1007/1565/1 +f 1021/1529/1 1023/1539/1 1022/1564/1 +f 1040/1566/1 1022/1567/1 1007/1568/1 +f 1039/1569/3 1034/1570/3 1022/1567/3 +f 1038/1571/2 1014/1572/2 1005/1551/2 +f 1042/1573/5 1013/1574/5 1034/1575/5 +f 1037/1576/1 1036/1577/1 1014/1572/1 +f 1041/1578/2 1007/1568/2 1013/1574/2 +f 1053/1579/2 1048/1580/2 1056/1581/2 +f 1051/1582/1 1064/1583/1 1061/1584/1 +f 1057/1585/3 1050/1586/3 1060/1587/3 +f 1045/1588/5 1068/1589/5 1065/1590/5 +f 1068/1589/8 1055/1591/8 1071/1592/8 +f 1069/1593/8 1048/1580/8 1063/1594/8 +f 1071/1592/8 1056/1581/8 1069/1593/8 +f 1051/1595/3 1059/1596/3 1052/1597/3 +f 1058/1598/3 1060/1587/3 1059/1596/3 +f 1045/1599/2 1055/1591/2 1046/1600/2 +f 1054/1601/2 1056/1581/2 1055/1591/2 +f 1054/1601/6 1074/1602/6 1053/1579/6 +f 1076/1603/6 1073/1604/6 1074/1602/6 +f 1084/1605/5 1045/1606/5 1065/1607/5 +f 1074/1602/6 1061/1608/6 1062/1609/6 +f 1060/1587/8 1070/1610/8 1059/1596/8 +f 1072/1611/8 1069/1593/8 1070/1610/8 +f 1059/1596/8 1064/1583/8 1052/1597/8 +f 1070/1610/8 1063/1594/8 1064/1583/8 +f 1050/1586/8 1072/1611/8 1060/1587/8 +f 1067/1612/8 1071/1592/8 1072/1611/8 +f 1083/1613/3 1065/1607/3 1076/1614/3 +f 1065/1615/6 1075/1616/6 1076/1603/6 +f 1066/1617/5 1050/1586/5 1049/1618/5 +f 1065/1590/5 1067/1612/5 1066/1617/5 +f 1062/1619/1 1048/1580/1 1047/1620/1 +f 1061/1584/1 1063/1594/1 1062/1619/1 +f 1080/1621/1 1062/1622/1 1047/1623/1 +f 1079/1624/3 1074/1625/3 1062/1622/3 +f 1078/1626/2 1054/1627/2 1045/1606/2 +f 1082/1628/5 1053/1629/5 1074/1630/5 +f 1077/1631/1 1076/1632/1 1054/1627/1 +f 1081/1633/2 1047/1623/2 1053/1629/2 +f 1093/1634/2 1088/1635/2 1096/1636/2 +f 1091/1637/1 1104/1638/1 1101/1639/1 +f 1097/1640/3 1090/1641/3 1100/1642/3 +f 1085/1643/5 1108/1644/5 1105/1645/5 +f 1108/1644/8 1095/1646/8 1111/1647/8 +f 1109/1648/8 1088/1635/8 1103/1649/8 +f 1111/1647/8 1096/1636/8 1109/1648/8 +f 1091/1650/3 1099/1651/3 1092/1652/3 +f 1098/1653/3 1100/1642/3 1099/1651/3 +f 1085/1654/2 1095/1646/2 1086/1655/2 +f 1094/1656/2 1096/1636/2 1095/1646/2 +f 1094/1656/6 1114/1657/6 1093/1634/6 +f 1116/1658/6 1113/1659/6 1114/1657/6 +f 1124/1660/5 1085/1661/5 1105/1662/5 +f 1114/1657/6 1101/1663/6 1102/1664/6 +f 1100/1642/8 1110/1665/8 1099/1651/8 +f 1112/1666/8 1109/1648/8 1110/1665/8 +f 1099/1651/8 1104/1638/8 1092/1652/8 +f 1110/1665/8 1103/1649/8 1104/1638/8 +f 1090/1641/8 1112/1666/8 1100/1642/8 +f 1107/1667/8 1111/1647/8 1112/1666/8 +f 1123/1668/3 1105/1662/3 1116/1669/3 +f 1105/1670/6 1115/1671/6 1116/1658/6 +f 1106/1672/5 1090/1641/5 1089/1673/5 +f 1105/1645/5 1107/1667/5 1106/1672/5 +f 1102/1674/1 1088/1635/1 1087/1675/1 +f 1101/1639/1 1103/1649/1 1102/1674/1 +f 1120/1676/1 1102/1677/1 1087/1678/1 +f 1119/1679/3 1114/1680/3 1102/1677/3 +f 1118/1681/2 1094/1682/2 1085/1661/2 +f 1122/1683/5 1093/1684/5 1114/1685/5 +f 1117/1686/1 1116/1687/1 1094/1682/1 +f 1121/1688/2 1087/1678/2 1093/1684/2 +f 1133/1689/2 1128/1690/2 1136/1691/2 +f 1131/1692/1 1144/1693/1 1141/1694/1 +f 1137/1695/3 1130/1696/3 1140/1697/3 +f 1125/1698/5 1148/1699/5 1145/1700/5 +f 1148/1699/8 1135/1701/8 1151/1702/8 +f 1149/1703/8 1128/1690/8 1143/1704/8 +f 1151/1702/8 1136/1691/8 1149/1703/8 +f 1131/1705/3 1139/1706/3 1132/1707/3 +f 1138/1708/3 1140/1697/3 1139/1706/3 +f 1125/1709/2 1135/1701/2 1126/1710/2 +f 1134/1711/2 1136/1691/2 1135/1701/2 +f 1134/1711/6 1154/1712/6 1133/1689/6 +f 1156/1713/6 1153/1714/6 1154/1712/6 +f 1164/1715/5 1125/1716/5 1145/1717/5 +f 1154/1712/6 1141/1718/6 1142/1719/6 +f 1140/1697/8 1150/1720/8 1139/1706/8 +f 1152/1721/8 1149/1703/8 1150/1720/8 +f 1139/1706/8 1144/1693/8 1132/1707/8 +f 1150/1720/8 1143/1704/8 1144/1693/8 +f 1130/1696/8 1152/1721/8 1140/1697/8 +f 1147/1722/8 1151/1702/8 1152/1721/8 +f 1163/1723/3 1145/1717/3 1156/1724/3 +f 1145/1725/6 1155/1726/6 1156/1713/6 +f 1146/1727/5 1130/1696/5 1129/1728/5 +f 1145/1700/5 1147/1722/5 1146/1727/5 +f 1142/1729/1 1128/1690/1 1127/1730/1 +f 1141/1694/1 1143/1704/1 1142/1729/1 +f 1160/1731/1 1142/1732/1 1127/1733/1 +f 1159/1734/3 1154/1735/3 1142/1732/3 +f 1158/1736/2 1134/1737/2 1125/1716/2 +f 1162/1738/5 1133/1739/5 1154/1740/5 +f 1157/1741/1 1156/1742/1 1134/1737/1 +f 1161/1743/2 1127/1733/2 1133/1739/2 +f 1173/1744/2 1168/1745/2 1176/1746/2 +f 1171/1747/1 1184/1748/1 1181/1749/1 +f 1177/1750/3 1170/1751/3 1180/1752/3 +f 1165/1753/5 1188/1754/5 1185/1755/5 +f 1188/1754/8 1175/1756/8 1191/1757/8 +f 1189/1758/8 1168/1745/8 1183/1759/8 +f 1191/1757/8 1176/1746/8 1189/1758/8 +f 1171/1760/3 1179/1761/3 1172/1762/3 +f 1178/1763/3 1180/1752/3 1179/1761/3 +f 1165/1764/2 1175/1756/2 1166/1765/2 +f 1174/1766/2 1176/1746/2 1175/1756/2 +f 1174/1766/6 1194/1767/6 1173/1744/6 +f 1196/1768/6 1193/1769/6 1194/1767/6 +f 1204/1770/5 1165/1771/5 1185/1772/5 +f 1194/1767/6 1181/1773/6 1182/1774/6 +f 1180/1752/8 1190/1775/8 1179/1761/8 +f 1192/1776/8 1189/1758/8 1190/1775/8 +f 1179/1761/8 1184/1748/8 1172/1762/8 +f 1190/1775/8 1183/1759/8 1184/1748/8 +f 1170/1751/8 1192/1776/8 1180/1752/8 +f 1187/1777/8 1191/1757/8 1192/1776/8 +f 1203/1778/3 1185/1772/3 1196/1779/3 +f 1185/1780/6 1195/1781/6 1196/1768/6 +f 1186/1782/5 1170/1751/5 1169/1783/5 +f 1185/1755/5 1187/1777/5 1186/1782/5 +f 1182/1784/1 1168/1745/1 1167/1785/1 +f 1181/1749/1 1183/1759/1 1182/1784/1 +f 1200/1786/1 1182/1787/1 1167/1788/1 +f 1199/1789/3 1194/1790/3 1182/1787/3 +f 1198/1791/2 1174/1792/2 1165/1771/2 +f 1202/1793/5 1173/1794/5 1194/1795/5 +f 1197/1796/1 1196/1797/1 1174/1792/1 +f 1201/1798/2 1167/1788/2 1173/1794/2 +f 1213/1799/2 1208/1800/2 1216/1801/2 +f 1211/1802/1 1224/1803/1 1221/1804/1 +f 1217/1805/3 1210/1806/3 1220/1807/3 +f 1205/1808/5 1228/1809/5 1225/1810/5 +f 1228/1809/8 1215/1811/8 1231/1812/8 +f 1229/1813/8 1208/1800/8 1223/1814/8 +f 1231/1812/8 1216/1801/8 1229/1813/8 +f 1211/1815/3 1219/1816/3 1212/1817/3 +f 1218/1818/3 1220/1807/3 1219/1816/3 +f 1205/1819/2 1215/1811/2 1206/1820/2 +f 1214/1821/2 1216/1801/2 1215/1811/2 +f 1214/1821/6 1234/1822/6 1213/1799/6 +f 1236/1823/6 1233/1824/6 1234/1822/6 +f 1244/1825/5 1205/1826/5 1225/1827/5 +f 1234/1822/6 1221/1828/6 1222/1829/6 +f 1220/1807/8 1230/1830/8 1219/1816/8 +f 1232/1831/8 1229/1813/8 1230/1830/8 +f 1219/1816/8 1224/1803/8 1212/1817/8 +f 1230/1830/8 1223/1814/8 1224/1803/8 +f 1210/1806/8 1232/1831/8 1220/1807/8 +f 1227/1832/8 1231/1812/8 1232/1831/8 +f 1243/1833/3 1225/1827/3 1236/1834/3 +f 1225/1835/6 1235/1836/6 1236/1823/6 +f 1226/1837/5 1210/1806/5 1209/1838/5 +f 1225/1810/5 1227/1832/5 1226/1837/5 +f 1222/1839/1 1208/1800/1 1207/1840/1 +f 1221/1804/1 1223/1814/1 1222/1839/1 +f 1240/1841/1 1222/1842/1 1207/1843/1 +f 1239/1844/3 1234/1845/3 1222/1842/3 +f 1238/1846/2 1214/1847/2 1205/1826/2 +f 1242/1848/5 1213/1849/5 1234/1850/5 +f 1237/1851/1 1236/1852/1 1214/1847/1 +f 1241/1853/2 1207/1843/2 1213/1849/2 +f 1245/1854/3 1248/1855/3 1247/1856/3 +f 1248/1857/1 1251/1858/1 1247/1859/1 +f 1252/1860/2 1249/1861/2 1251/1862/2 +f 1251/1858/1 1253/1863/1 1247/1859/1 +f 1248/1855/9 1250/1864/9 1252/1860/9 +f 1255/1865/11 1254/1866/11 1253/1863/11 +f 1253/1863/1 1257/1867/1 1247/1859/1 +f 1251/1868/2 1256/1869/2 1255/1865/2 +f 1259/1870/1 1261/1871/1 1257/1867/1 +f 1247/1856/9 1258/1872/9 1245/1854/9 +f 1254/1866/11 1259/1870/11 1253/1863/11 +f 1261/1873/3 1264/1874/3 1262/1875/3 +f 1262/1876/3 1267/1877/3 1261/1878/3 +f 1260/1879/11 1263/1880/11 1259/1870/11 +f 1265/1881/9 1268/1882/9 1266/1883/9 +f 1261/1871/1 1265/1884/1 1257/1867/1 +f 1258/1872/2 1265/1881/2 1266/1883/2 +f 1269/1885/3 1272/1886/3 1270/1887/3 +f 1275/1888/5 1272/1889/5 1271/1890/5 +f 1273/1891/2 1276/1892/2 1275/1893/2 +f 1277/1894/5 1275/1888/5 1271/1890/5 +f 1274/1895/10 1272/1886/10 1276/1892/10 +f 1278/1896/12 1279/1897/12 1277/1894/12 +f 1281/1898/5 1277/1894/5 1271/1890/5 +f 1275/1899/2 1280/1900/2 1273/1901/2 +f 1285/1902/5 1283/1903/5 1281/1898/5 +f 1282/1904/10 1271/1905/10 1269/1885/10 +f 1283/1903/12 1278/1896/12 1277/1894/12 +f 1288/1906/3 1285/1907/3 1286/1908/3 +f 1291/1909/3 1286/1910/3 1285/1911/3 +f 1287/1912/12 1284/1913/12 1283/1903/12 +f 1292/1914/10 1289/1915/10 1290/1916/10 +f 1289/1917/5 1285/1902/5 1281/1898/5 +f 1282/1904/2 1289/1915/2 1281/1918/2 +f 1294/1919/4 1295/1920/4 1293/1921/4 +f 1296/1922/1 1299/1923/1 1295/1920/1 +f 1297/1924/5 1294/1919/5 1293/1921/5 +f 1299/1925/13 1293/1921/13 1295/1920/13 +f 1296/1922/14 1298/1926/14 1300/1927/14 +f 1302/1928/4 1303/1929/4 1301/1930/4 +f 1304/1931/1 1307/1932/1 1303/1929/1 +f 1305/1933/5 1302/1928/5 1301/1930/5 +f 1307/1934/13 1301/1930/13 1303/1929/13 +f 1304/1931/14 1306/1935/14 1308/1936/14 +f 1310/1937/4 1311/1938/4 1309/1939/4 +f 1312/1940/1 1315/1941/1 1311/1938/1 +f 1313/1942/5 1310/1937/5 1309/1939/5 +f 1315/1943/13 1309/1939/13 1311/1938/13 +f 1312/1940/14 1314/1944/14 1316/1945/14 +f 1318/1946/4 1319/1947/4 1317/1948/4 +f 1320/1949/1 1323/1950/1 1319/1947/1 +f 1321/1951/5 1318/1946/5 1317/1948/5 +f 1323/1952/13 1317/1948/13 1319/1947/13 +f 1320/1949/14 1322/1953/14 1324/1954/14 +f 1326/1955/4 1327/1956/4 1325/1957/4 +f 1328/1958/1 1331/1959/1 1327/1956/1 +f 1329/1960/5 1326/1955/5 1325/1957/5 +f 1331/1961/13 1325/1957/13 1327/1956/13 +f 1328/1958/14 1330/1962/14 1332/1963/14 +f 1335/1964/7 1334/1965/7 1333/1966/7 +f 1335/1964/1 1340/1967/1 1336/1968/1 +f 1337/1969/5 1334/1965/5 1338/1970/5 +f 1333/1966/15 1339/1971/15 1335/1964/15 +f 1338/1972/16 1336/1968/16 1340/1973/16 +f 1343/1974/7 1342/1975/7 1341/1976/7 +f 1343/1974/1 1348/1977/1 1344/1978/1 +f 1345/1979/5 1342/1975/5 1346/1980/5 +f 1341/1976/15 1347/1981/15 1343/1974/15 +f 1346/1982/16 1344/1978/16 1348/1983/16 +f 1351/1984/7 1350/1985/7 1349/1986/7 +f 1351/1984/1 1356/1987/1 1352/1988/1 +f 1353/1989/5 1350/1985/5 1354/1990/5 +f 1349/1986/15 1355/1991/15 1351/1984/15 +f 1354/1992/16 1352/1988/16 1356/1993/16 +f 1359/1994/7 1358/1995/7 1357/1996/7 +f 1359/1994/1 1364/1997/1 1360/1998/1 +f 1361/1999/5 1358/1995/5 1362/2000/5 +f 1357/1996/15 1363/2001/15 1359/1994/15 +f 1362/2002/16 1360/1998/16 1364/2003/16 +f 1367/2004/7 1366/2005/7 1365/2006/7 +f 1367/2004/1 1372/2007/1 1368/2008/1 +f 1369/2009/5 1366/2005/5 1370/2010/5 +f 1365/2006/15 1371/2011/15 1367/2004/15 +f 1370/2012/16 1368/2008/16 1372/2013/16 +f 1376/2014/1 1379/2015/1 1375/2016/1 +f 1378/2017/5 1373/2018/5 1377/2019/5 +f 1382/2020/5 1386/2021/5 1374/2022/5 +f 1374/2023/5 1378/2017/5 1382/2020/5 +f 1380/2024/1 1376/2025/1 1381/2026/1 +f 1376/2027/1 1384/2028/1 1381/2026/1 +f 1387/2029/1 1383/2030/1 1390/2031/1 +f 1386/2032/5 1385/2033/5 1388/2034/5 +f 1384/2028/1 1383/2035/1 1387/2029/1 +f 1386/2036/5 1392/2037/5 1393/2038/5 +f 1386/2039/5 1388/2034/5 1389/2040/5 +f 1383/2041/1 1391/2042/1 1390/2031/1 +f 1398/2043/1 1401/2044/1 1397/2045/1 +f 1400/2046/5 1395/2047/5 1399/2048/5 +f 1404/2049/5 1408/2050/5 1396/2051/5 +f 1396/2052/5 1400/2046/5 1404/2049/5 +f 1402/2053/1 1398/2054/1 1403/2055/1 +f 1398/2056/1 1406/2057/1 1403/2055/1 +f 1409/2058/1 1405/2059/1 1412/2060/1 +f 1408/2061/5 1407/2062/5 1410/2063/5 +f 1406/2057/1 1405/2064/1 1409/2058/1 +f 1408/2065/5 1414/2066/5 1415/2067/5 +f 1408/2068/5 1410/2063/5 1411/2069/5 +f 1405/2070/1 1413/2071/1 1412/2060/1 +f 1420/2072/1 1423/2073/1 1419/2074/1 +f 1422/2075/5 1417/2076/5 1421/2077/5 +f 1426/2078/5 1430/2079/5 1418/2080/5 +f 1418/2081/5 1422/2075/5 1426/2078/5 +f 1424/2082/1 1420/2083/1 1425/2084/1 +f 1420/2085/1 1428/2086/1 1425/2084/1 +f 1431/2087/1 1427/2088/1 1434/2089/1 +f 1430/2090/5 1429/2091/5 1432/2092/5 +f 1428/2086/1 1427/2093/1 1431/2087/1 +f 1430/2094/5 1436/2095/5 1437/2096/5 +f 1430/2097/5 1432/2092/5 1433/2098/5 +f 1427/2099/1 1435/2100/1 1434/2089/1 +f 1442/2101/1 1445/2102/1 1441/2103/1 +f 1444/2104/5 1439/2105/5 1443/2106/5 +f 1448/2107/5 1452/2108/5 1440/2109/5 +f 1440/2110/5 1444/2104/5 1448/2107/5 +f 1446/2111/1 1442/2112/1 1447/2113/1 +f 1442/2114/1 1450/2115/1 1447/2113/1 +f 1453/2116/1 1449/2117/1 1456/2118/1 +f 1452/2119/5 1451/2120/5 1454/2121/5 +f 1450/2115/1 1449/2122/1 1453/2116/1 +f 1452/2123/5 1458/2124/5 1459/2125/5 +f 1452/2126/5 1454/2121/5 1455/2127/5 +f 1449/2128/1 1457/2129/1 1456/2118/1 +f 1464/2130/1 1467/2131/1 1463/2132/1 +f 1466/2133/5 1461/2134/5 1465/2135/5 +f 1470/2136/5 1474/2137/5 1462/2138/5 +f 1462/2139/5 1466/2133/5 1470/2136/5 +f 1468/2140/1 1464/2141/1 1469/2142/1 +f 1464/2143/1 1472/2144/1 1469/2142/1 +f 1475/2145/1 1471/2146/1 1478/2147/1 +f 1474/2148/5 1473/2149/5 1476/2150/5 +f 1472/2144/1 1471/2151/1 1475/2145/1 +f 1474/2152/5 1480/2153/5 1481/2154/5 +f 1474/2155/5 1476/2150/5 1477/2156/5 +f 1471/2157/1 1479/2158/1 1478/2147/1 +f 224/1/1 1/12/1 2/2/1 +f 153/4/2 178/356/2 179/5/2 +f 163/8/3 188/377/3 186/9/3 +f 221/13/4 10/2159/4 9/14/4 +f 105/16/5 323/596/5 324/17/5 +f 8/19/4 232/21/4 222/15/4 +f 7/20/4 233/23/4 232/21/4 +f 6/22/4 234/25/4 233/23/4 +f 41/24/4 235/27/4 234/25/4 +f 42/26/4 236/29/4 235/27/4 +f 43/28/4 237/31/4 236/29/4 +f 44/30/4 238/417/4 237/31/4 +f 126/32/4 240/2160/4 242/33/4 +f 31/35/1 21/2161/1 20/36/1 +f 45/38/6 63/2162/6 64/39/6 +f 219/41/3 259/526/3 257/42/3 +f 89/44/2 271/51/2 256/45/2 +f 99/47/3 255/490/3 278/48/3 +f 88/50/2 270/413/2 271/51/2 +f 98/49/3 278/48/3 277/52/3 +f 91/54/2 273/491/2 281/55/2 +f 104/57/3 324/17/3 263/58/3 +f 160/60/6 183/369/6 184/61/6 +f 74/63/6 73/66/6 53/64/6 +f 64/39/6 63/2162/6 73/66/6 +f 74/63/6 75/68/6 65/67/6 +f 75/68/6 76/70/6 66/69/6 +f 76/70/6 77/72/6 67/71/6 +f 77/72/6 78/74/6 68/73/6 +f 78/74/6 79/76/6 69/75/6 +f 79/76/6 80/78/6 70/77/6 +f 80/78/6 81/109/6 71/79/6 +f 215/80/6 124/111/6 122/81/6 +f 32/83/7 31/2163/7 224/84/7 +f 21/86/8 31/2164/8 32/87/8 +f 64/39/6 65/67/6 4/89/6 +f 65/67/6 66/69/6 46/90/6 +f 66/69/6 67/71/6 47/91/6 +f 67/71/6 68/73/6 48/92/6 +f 68/73/6 69/75/6 49/93/6 +f 69/75/6 70/77/6 50/94/6 +f 70/77/6 71/79/6 51/95/6 +f 213/82/6 122/81/6 5/96/6 +f 19/98/2 20/2165/2 21/99/2 +f 54/65/6 53/64/6 20/101/6 +f 54/65/6 55/103/6 75/68/6 +f 55/103/6 56/104/6 76/70/6 +f 56/104/6 57/105/6 77/72/6 +f 57/105/6 58/106/6 78/74/6 +f 58/106/6 59/107/6 79/76/6 +f 59/107/6 60/108/6 80/78/6 +f 60/108/6 61/153/6 81/109/6 +f 211/110/6 123/155/6 124/111/6 +f 39/112/7 231/116/7 243/113/7 +f 38/115/7 230/118/7 231/116/7 +f 37/117/7 229/120/7 230/118/7 +f 36/119/7 228/122/7 229/120/7 +f 35/121/7 227/124/7 228/122/7 +f 34/123/7 226/126/7 227/124/7 +f 33/125/7 225/127/7 226/126/7 +f 32/83/7 223/85/7 225/127/7 +f 10/128/3 45/2166/3 3/129/3 +f 32/87/8 33/132/8 23/131/8 +f 33/132/8 34/134/8 24/133/8 +f 34/134/8 35/136/8 25/135/8 +f 35/136/8 36/138/8 26/137/8 +f 36/138/8 37/140/8 27/139/8 +f 37/140/8 38/142/8 28/141/8 +f 38/142/8 39/402/8 29/143/8 +f 208/144/8 125/2167/8 30/145/8 +f 19/102/6 18/147/6 55/103/6 +f 18/147/6 17/148/6 56/104/6 +f 17/148/6 16/149/6 57/105/6 +f 16/149/6 15/150/6 58/106/6 +f 15/150/6 14/151/6 59/107/6 +f 14/151/6 13/152/6 60/108/6 +f 13/152/6 12/399/6 61/153/6 +f 203/154/6 11/2168/6 123/155/6 +f 22/100/2 23/157/2 18/156/2 +f 23/157/2 24/159/2 17/158/2 +f 24/159/2 25/161/2 16/160/2 +f 25/161/2 26/163/2 15/162/2 +f 26/163/2 27/165/2 14/164/2 +f 27/165/2 28/167/2 13/166/2 +f 28/167/2 29/396/2 12/168/2 +f 206/169/2 30/2169/2 11/170/2 +f 216/172/3 44/175/3 51/173/3 +f 44/175/3 43/177/3 50/176/3 +f 43/177/3 42/179/3 49/178/3 +f 42/179/3 41/181/3 48/180/3 +f 41/181/3 6/183/3 47/182/3 +f 6/183/3 7/185/3 46/184/3 +f 7/185/3 8/187/3 4/186/3 +f 8/187/3 9/130/3 3/129/3 +f 123/188/5 11/2170/5 30/189/5 +f 52/191/2 138/280/2 142/192/2 +f 72/194/2 117/232/2 115/195/2 +f 103/197/6 144/284/6 141/198/6 +f 128/200/5 239/204/5 240/201/5 +f 72/206/5 122/210/5 124/207/5 +f 109/209/5 127/213/5 122/210/5 +f 82/208/5 124/207/5 128/211/5 +f 110/212/5 128/211/5 127/213/5 +f 108/214/2 118/238/2 120/215/2 +f 110/217/3 114/234/3 116/218/3 +f 82/220/8 116/230/8 117/221/8 +f 109/223/6 115/227/6 114/224/6 +f 108/226/5 114/224/5 115/227/5 +f 112/229/5 113/237/5 117/221/5 +f 111/231/5 115/195/5 117/232/5 +f 108/214/5 112/216/5 116/218/5 +f 120/215/5 118/238/5 119/235/5 +f 112/229/6 120/215/6 121/236/6 +f 113/233/3 121/236/3 119/235/3 +f 111/228/8 119/235/8 118/238/8 +f 52/239/5 5/245/5 122/210/5 +f 106/241/5 124/207/5 123/188/5 +f 62/242/5 123/188/5 125/190/5 +f 101/244/5 126/247/5 5/245/5 +f 102/246/5 127/213/5 126/247/5 +f 40/243/5 125/190/5 128/211/5 +f 107/240/5 122/210/5 127/213/5 +f 103/248/5 128/211/5 124/207/5 +f 134/249/8 150/290/8 151/250/8 +f 135/252/2 151/250/2 145/253/2 +f 62/255/8 139/276/8 140/256/8 +f 102/258/3 143/286/3 137/259/3 +f 101/261/6 142/282/6 143/262/6 +f 40/264/3 141/278/3 139/265/3 +f 107/267/8 137/274/8 138/268/8 +f 106/270/2 140/288/2 144/271/2 +f 129/273/5 130/296/5 138/268/5 +f 131/275/5 132/298/5 140/256/5 +f 133/277/5 131/295/5 139/265/5 +f 134/279/5 142/192/5 138/280/5 +f 135/251/5 143/262/5 142/282/5 +f 133/283/5 141/198/5 144/284/5 +f 135/252/5 129/254/5 137/259/5 +f 136/287/5 144/271/5 140/288/5 +f 145/253/5 151/250/5 150/290/5 +f 147/292/5 149/297/5 152/293/5 +f 133/277/2 149/297/2 147/292/2 +f 129/273/6 145/253/6 146/291/6 +f 132/289/3 148/294/3 152/293/3 +f 136/285/8 152/293/8 149/297/8 +f 130/281/3 146/291/3 150/290/3 +f 131/275/6 147/292/6 148/294/6 +f 2/299/1 154/303/1 153/300/1 +f 63/302/1 155/305/1 154/303/1 +f 45/304/1 156/306/1 155/305/1 +f 10/301/1 153/300/1 156/306/1 +f 63/302/1 158/309/1 157/307/1 +f 2/299/1 159/311/1 158/309/1 +f 1/310/1 160/312/1 159/311/1 +f 73/308/1 157/307/1 160/312/1 +f 31/35/1 162/314/1 161/313/1 +f 53/37/1 163/315/1 162/314/1 +f 73/308/1 164/316/1 163/315/1 +f 1/310/1 161/313/1 164/316/1 +f 166/317/3 190/381/3 191/318/3 +f 175/320/6 199/385/6 200/321/6 +f 170/323/6 194/382/6 193/324/6 +f 158/326/8 182/362/8 181/327/8 +f 164/329/8 187/379/8 188/330/8 +f 155/332/3 180/358/3 177/333/3 +f 157/335/3 181/364/3 183/336/3 +f 162/338/6 186/372/6 185/339/6 +f 156/341/8 179/361/8 180/342/8 +f 159/344/2 184/367/2 182/345/2 +f 161/347/2 185/375/2 187/348/2 +f 154/350/6 177/354/6 178/351/6 +f 166/353/1 178/351/1 177/354/1 +f 166/317/1 167/319/1 179/5/1 +f 165/357/1 177/333/1 180/358/1 +f 167/360/1 168/390/1 180/342/1 +f 170/323/1 169/325/1 181/327/1 +f 171/363/1 183/336/1 181/364/1 +f 172/366/1 170/388/1 182/345/1 +f 172/368/1 184/61/1 183/369/1 +f 173/371/1 185/339/1 186/372/1 +f 173/374/1 175/387/1 187/348/1 +f 174/376/1 186/9/1 188/377/1 +f 175/320/1 176/322/1 188/330/1 +f 189/380/1 192/389/1 191/318/1 +f 194/382/1 196/391/1 195/383/1 +f 198/384/1 200/321/1 199/385/1 +f 174/373/8 198/384/8 197/386/8 +f 169/365/2 193/324/2 195/383/2 +f 168/359/2 192/389/2 189/380/2 +f 173/374/3 197/386/3 199/385/3 +f 172/366/3 196/391/3 194/382/3 +f 167/360/6 191/318/6 192/389/6 +f 176/378/2 200/321/2 198/384/2 +f 165/355/8 189/380/8 190/381/8 +f 171/370/8 195/383/8 196/391/8 +f 126/392/3 202/395/3 209/393/3 +f 202/395/3 216/172/3 201/174/3 +f 29/396/2 205/398/2 204/397/2 +f 205/398/2 206/169/2 203/171/2 +f 12/399/6 204/401/6 210/400/6 +f 204/401/6 203/154/6 211/110/6 +f 39/402/8 207/404/8 205/403/8 +f 207/404/8 208/144/8 206/146/8 +f 208/405/7 241/408/7 239/406/7 +f 207/114/7 243/113/7 241/408/7 +f 61/153/6 210/400/6 214/409/6 +f 210/400/6 211/110/6 215/80/6 +f 71/79/6 212/411/6 201/410/6 +f 212/411/6 213/82/6 209/97/6 +f 81/109/6 214/409/6 212/411/6 +f 214/409/6 215/80/6 213/82/6 +f 87/412/2 269/506/2 270/413/2 +f 97/53/3 277/52/3 276/414/3 +f 216/416/4 244/418/4 238/417/4 +f 202/34/4 242/33/4 244/418/4 +f 307/419/8 221/453/8 222/420/8 +f 310/422/8 84/426/8 223/423/8 +f 85/425/8 225/428/8 223/423/8 +f 86/427/8 226/430/8 225/428/8 +f 87/429/8 227/432/8 226/430/8 +f 88/431/8 228/434/8 227/432/8 +f 89/433/8 229/436/8 228/434/8 +f 90/435/8 230/438/8 229/436/8 +f 91/437/8 231/462/8 230/438/8 +f 93/421/8 222/420/8 232/439/8 +f 94/440/8 232/439/8 233/441/8 +f 95/442/8 233/441/8 234/443/8 +f 96/444/8 234/443/8 235/445/8 +f 97/446/8 235/445/8 236/447/8 +f 98/448/8 236/447/8 237/449/8 +f 99/450/8 237/449/8 238/451/8 +f 310/422/8 224/424/8 221/453/8 +f 312/454/8 240/460/8 239/455/8 +f 311/456/8 239/455/8 241/457/8 +f 312/454/8 220/466/8 242/459/8 +f 217/461/8 243/463/8 231/462/8 +f 218/458/8 241/457/8 243/463/8 +f 100/452/8 238/451/8 244/464/8 +f 219/465/8 244/464/8 242/459/8 +f 316/2171/3 93/2172/3 283/469/3 +f 93/2172/3 94/467/3 283/469/3 +f 250/470/2 292/480/2 294/471/2 +f 253/473/3 295/558/3 293/474/3 +f 262/476/2 342/618/2 325/477/2 +f 268/479/2 326/486/2 292/480/2 +f 251/475/3 293/474/3 334/481/3 +f 265/483/5 343/615/5 344/484/5 +f 267/478/2 325/477/2 326/486/2 +f 259/526/3 219/41/3 286/489/3 +f 219/41/3 220/487/3 286/489/3 +f 100/43/3 257/42/3 255/490/3 +f 90/46/2 256/45/2 273/491/2 +f 318/2173/2 218/2174/2 285/492/2 +f 218/2174/2 217/56/2 285/492/2 +f 246/511/2 85/497/2 284/495/2 +f 85/497/2 84/493/2 284/495/2 +f 95/496/3 247/500/3 245/468/3 +f 85/497/2 246/511/2 248/498/2 +f 96/415/3 276/414/3 247/500/3 +f 249/482/3 334/481/3 333/501/3 +f 261/503/1 341/613/1 342/504/1 +f 86/499/2 248/498/2 269/506/2 +f 284/495/9 315/583/9 316/507/9 +f 318/508/10 285/492/10 286/489/10 +f 268/510/8 248/498/8 246/511/8 +f 250/513/8 269/506/8 248/498/8 +f 252/514/8 270/413/8 269/506/8 +f 254/515/8 271/51/8 270/413/8 +f 272/516/8 256/45/8 271/51/8 +f 258/517/8 273/491/8 256/45/8 +f 274/518/8 245/468/8 247/500/8 +f 275/519/8 247/500/8 276/414/8 +f 249/520/8 276/414/8 277/52/8 +f 251/521/8 277/52/8 278/48/8 +f 253/522/8 278/48/8 255/490/8 +f 279/523/8 255/490/8 257/42/8 +f 260/525/8 281/55/8 273/491/8 +f 280/524/8 257/42/8 259/526/8 +f 262/528/8 284/495/8 283/469/8 +f 264/530/8 286/489/8 285/492/8 +f 262/528/8 267/512/8 246/511/8 +f 261/529/8 283/469/8 245/468/8 +f 265/531/8 285/492/8 281/55/8 +f 264/530/8 282/527/8 259/526/8 +f 291/532/2 349/625/2 347/533/2 +f 303/535/5 361/630/5 362/536/5 +f 289/534/2 347/533/2 345/538/2 +f 340/540/2 359/549/2 357/541/2 +f 330/543/3 356/551/3 358/544/3 +f 331/545/3 358/544/3 360/546/3 +f 306/548/2 364/632/2 359/549/2 +f 329/550/3 354/628/3 356/551/3 +f 338/542/2 357/541/2 355/552/2 +f 274/554/3 287/575/3 341/555/3 +f 279/557/3 297/565/3 295/558/3 +f 252/472/2 294/471/2 296/559/2 +f 260/561/2 302/572/2 343/562/2 +f 280/564/3 299/574/3 297/565/3 +f 254/560/2 296/559/2 298/566/2 +f 264/568/3 344/621/3 301/569/3 +f 258/571/2 300/573/2 302/572/2 +f 272/567/2 298/566/2 300/573/2 +f 282/570/3 301/569/3 299/574/3 +f 275/502/3 333/501/3 287/575/3 +f 92/576/8 307/419/8 93/421/8 +f 83/578/8 309/2175/8 84/426/8 +f 83/578/8 310/422/8 307/419/8 +f 104/579/8 312/454/8 311/456/8 +f 105/580/8 311/456/8 218/458/8 +f 104/579/8 314/2176/8 220/466/8 +f 319/582/1 316/507/1 315/583/1 +f 266/585/5 318/508/5 317/509/5 +f 320/584/1 315/583/1 84/587/1 +f 319/582/1 308/2177/1 93/589/1 +f 263/586/5 317/509/5 220/590/5 +f 266/585/5 313/2178/5 218/592/5 +f 319/593/8 320/599/8 322/594/8 +f 263/58/8 324/17/8 323/596/8 +f 83/598/2 322/594/2 320/599/2 +f 313/601/2 266/597/2 323/596/2 +f 92/603/1 321/595/1 322/594/1 +f 308/605/3 319/593/3 321/595/3 +f 290/607/8 326/486/8 325/477/8 +f 327/609/8 292/480/8 326/486/8 +f 328/610/8 294/471/8 292/480/8 +f 329/550/8 296/559/8 294/471/8 +f 330/543/8 298/566/8 296/559/8 +f 331/545/8 300/573/8 298/566/8 +f 332/539/8 287/575/8 333/501/8 +f 289/534/8 333/501/8 334/481/8 +f 291/532/8 334/481/8 293/474/8 +f 335/611/8 293/474/8 295/558/8 +f 336/612/8 295/558/8 297/565/8 +f 337/553/8 297/565/8 299/574/8 +f 339/547/8 302/572/8 300/573/8 +f 338/542/8 299/574/8 301/569/8 +f 304/537/8 342/504/8 341/613/8 +f 306/614/8 344/484/8 343/615/8 +f 304/617/8 288/608/8 325/477/8 +f 303/619/8 341/555/8 287/575/8 +f 305/620/8 343/562/8 302/572/8 +f 306/548/8 340/540/8 301/569/8 +f 345/538/8 347/533/8 348/622/8 +f 347/533/8 349/625/8 350/624/8 +f 349/625/8 351/627/8 352/626/8 +f 351/627/8 353/629/8 354/628/8 +f 353/629/8 355/552/8 356/551/8 +f 355/552/8 357/541/8 358/544/8 +f 357/541/8 359/549/8 360/546/8 +f 361/630/8 345/538/8 346/623/8 +f 359/549/8 364/632/8 363/631/8 +f 288/608/3 346/623/3 348/622/3 +f 305/616/1 363/631/1 364/632/1 +f 335/611/2 351/627/2 349/625/2 +f 290/607/3 348/622/3 350/624/3 +f 304/617/3 362/536/3 346/623/3 +f 336/612/2 353/629/2 351/627/2 +f 327/609/3 350/624/3 352/626/3 +f 332/539/2 345/538/2 361/630/2 +f 337/553/2 355/552/2 353/629/2 +f 328/610/3 352/626/3 354/628/3 +f 339/547/3 360/546/3 363/631/3 +f 373/633/3 376/649/3 368/634/3 +f 384/636/1 372/666/1 371/637/1 +f 377/639/2 380/653/2 370/640/2 +f 388/642/5 366/2179/5 365/643/5 +f 375/645/8 366/2179/8 388/642/8 +f 368/634/8 376/649/8 389/647/8 +f 376/649/8 375/645/8 391/646/8 +f 371/650/2 372/666/2 379/651/2 +f 378/652/2 379/651/2 380/653/2 +f 365/654/3 366/2179/3 375/645/3 +f 374/655/3 375/645/3 376/649/3 +f 394/656/6 396/658/6 374/655/6 +f 393/657/6 395/670/6 396/658/6 +f 365/659/5 398/682/5 404/660/5 +f 381/662/6 393/657/6 394/656/6 +f 390/664/8 392/665/8 380/653/8 +f 389/647/8 391/646/8 392/665/8 +f 384/636/8 390/664/8 379/651/8 +f 383/648/8 389/647/8 390/664/8 +f 392/665/8 387/667/8 370/640/8 +f 391/646/8 388/642/8 387/667/8 +f 385/661/2 404/660/2 403/668/2 +f 395/670/6 386/2180/6 385/671/6 +f 370/640/5 387/667/5 386/672/5 +f 387/667/5 388/642/5 385/644/5 +f 368/634/1 383/648/1 382/674/1 +f 383/648/1 384/636/1 381/638/1 +f 382/676/1 399/680/1 400/677/1 +f 394/679/2 402/2181/2 399/680/2 +f 374/681/3 397/687/3 398/682/3 +f 373/683/5 401/688/5 402/684/5 +f 396/686/1 403/2182/1 397/687/1 +f 367/678/3 400/677/3 401/688/3 +f 413/689/3 416/705/3 408/690/3 +f 424/692/1 412/722/1 411/693/1 +f 417/695/2 420/709/2 410/696/2 +f 428/698/5 406/2183/5 405/699/5 +f 415/701/8 406/2183/8 428/698/8 +f 408/690/8 416/705/8 429/703/8 +f 416/705/8 415/701/8 431/702/8 +f 411/706/2 412/722/2 419/707/2 +f 418/708/2 419/707/2 420/709/2 +f 405/710/3 406/2183/3 415/701/3 +f 414/711/3 415/701/3 416/705/3 +f 434/712/6 436/714/6 414/711/6 +f 433/713/6 435/726/6 436/714/6 +f 405/715/5 438/738/5 444/716/5 +f 421/718/6 433/713/6 434/712/6 +f 430/720/8 432/721/8 420/709/8 +f 429/703/8 431/702/8 432/721/8 +f 424/692/8 430/720/8 419/707/8 +f 423/704/8 429/703/8 430/720/8 +f 432/721/8 427/723/8 410/696/8 +f 431/702/8 428/698/8 427/723/8 +f 425/717/2 444/716/2 443/724/2 +f 435/726/6 426/2184/6 425/727/6 +f 410/696/5 427/723/5 426/728/5 +f 427/723/5 428/698/5 425/700/5 +f 408/690/1 423/704/1 422/730/1 +f 423/704/1 424/692/1 421/694/1 +f 422/732/1 439/736/1 440/733/1 +f 434/735/2 442/2185/2 439/736/2 +f 414/737/3 437/743/3 438/738/3 +f 413/739/5 441/744/5 442/740/5 +f 436/742/1 443/2186/1 437/743/1 +f 407/734/3 440/733/3 441/744/3 +f 453/745/3 456/761/3 448/746/3 +f 464/748/1 452/778/1 451/749/1 +f 457/751/2 460/765/2 450/752/2 +f 468/754/5 446/2187/5 445/755/5 +f 455/757/8 446/2187/8 468/754/8 +f 448/746/8 456/761/8 469/759/8 +f 456/761/8 455/757/8 471/758/8 +f 451/762/2 452/778/2 459/763/2 +f 458/764/2 459/763/2 460/765/2 +f 445/766/3 446/2187/3 455/757/3 +f 454/767/3 455/757/3 456/761/3 +f 474/768/6 476/770/6 454/767/6 +f 473/769/6 475/782/6 476/770/6 +f 445/771/5 478/794/5 484/772/5 +f 461/774/6 473/769/6 474/768/6 +f 470/776/8 472/777/8 460/765/8 +f 469/759/8 471/758/8 472/777/8 +f 464/748/8 470/776/8 459/763/8 +f 463/760/8 469/759/8 470/776/8 +f 472/777/8 467/779/8 450/752/8 +f 471/758/8 468/754/8 467/779/8 +f 465/773/2 484/772/2 483/780/2 +f 475/782/6 466/2188/6 465/783/6 +f 450/752/5 467/779/5 466/784/5 +f 467/779/5 468/754/5 465/756/5 +f 448/746/1 463/760/1 462/786/1 +f 463/760/1 464/748/1 461/750/1 +f 462/788/1 479/792/1 480/789/1 +f 474/791/2 482/2189/2 479/792/2 +f 454/793/3 477/799/3 478/794/3 +f 453/795/5 481/800/5 482/796/5 +f 476/798/1 483/2190/1 477/799/1 +f 447/790/3 480/789/3 481/800/3 +f 493/801/3 496/817/3 488/802/3 +f 504/804/1 492/834/1 491/805/1 +f 497/807/2 500/821/2 490/808/2 +f 508/810/5 486/2191/5 485/811/5 +f 495/813/8 486/2191/8 508/810/8 +f 488/802/8 496/817/8 509/815/8 +f 496/817/8 495/813/8 511/814/8 +f 491/818/2 492/834/2 499/819/2 +f 498/820/2 499/819/2 500/821/2 +f 485/822/3 486/2191/3 495/813/3 +f 494/823/3 495/813/3 496/817/3 +f 514/824/6 516/826/6 494/823/6 +f 513/825/6 515/838/6 516/826/6 +f 485/827/5 518/850/5 524/828/5 +f 501/830/6 513/825/6 514/824/6 +f 510/832/8 512/833/8 500/821/8 +f 509/815/8 511/814/8 512/833/8 +f 504/804/8 510/832/8 499/819/8 +f 503/816/8 509/815/8 510/832/8 +f 512/833/8 507/835/8 490/808/8 +f 511/814/8 508/810/8 507/835/8 +f 505/829/2 524/828/2 523/836/2 +f 515/838/6 506/2192/6 505/839/6 +f 490/808/5 507/835/5 506/840/5 +f 507/835/5 508/810/5 505/812/5 +f 488/802/1 503/816/1 502/842/1 +f 503/816/1 504/804/1 501/806/1 +f 502/844/1 519/848/1 520/845/1 +f 514/847/2 522/2193/2 519/848/2 +f 494/849/3 517/855/3 518/850/3 +f 493/851/5 521/856/5 522/852/5 +f 516/854/1 523/2194/1 517/855/1 +f 487/846/3 520/845/3 521/856/3 +f 533/857/3 536/873/3 528/858/3 +f 544/860/1 532/890/1 531/861/1 +f 537/863/2 540/877/2 530/864/2 +f 548/866/5 526/2195/5 525/867/5 +f 535/869/8 526/2195/8 548/866/8 +f 528/858/8 536/873/8 549/871/8 +f 536/873/8 535/869/8 551/870/8 +f 531/874/2 532/890/2 539/875/2 +f 538/876/2 539/875/2 540/877/2 +f 525/878/3 526/2195/3 535/869/3 +f 534/879/3 535/869/3 536/873/3 +f 554/880/6 556/882/6 534/879/6 +f 553/881/6 555/894/6 556/882/6 +f 525/883/5 558/906/5 564/884/5 +f 541/886/6 553/881/6 554/880/6 +f 550/888/8 552/889/8 540/877/8 +f 549/871/8 551/870/8 552/889/8 +f 544/860/8 550/888/8 539/875/8 +f 543/872/8 549/871/8 550/888/8 +f 552/889/8 547/891/8 530/864/8 +f 551/870/8 548/866/8 547/891/8 +f 545/885/2 564/884/2 563/892/2 +f 555/894/6 546/2196/6 545/895/6 +f 530/864/5 547/891/5 546/896/5 +f 547/891/5 548/866/5 545/868/5 +f 528/858/1 543/872/1 542/898/1 +f 543/872/1 544/860/1 541/862/1 +f 542/900/1 559/904/1 560/901/1 +f 554/903/2 562/2197/2 559/904/2 +f 534/905/3 557/911/3 558/906/3 +f 533/907/5 561/912/5 562/908/5 +f 556/910/1 563/2198/1 557/911/1 +f 527/902/3 560/901/3 561/912/3 +f 573/913/3 576/929/3 568/914/3 +f 584/916/1 572/946/1 571/917/1 +f 577/919/2 580/933/2 570/920/2 +f 588/922/5 566/2199/5 565/923/5 +f 575/925/8 566/2199/8 588/922/8 +f 568/914/8 576/929/8 589/927/8 +f 576/929/8 575/925/8 591/926/8 +f 571/930/2 572/946/2 579/931/2 +f 578/932/2 579/931/2 580/933/2 +f 565/934/3 566/2199/3 575/925/3 +f 574/935/3 575/925/3 576/929/3 +f 594/936/6 596/938/6 574/935/6 +f 593/937/6 595/950/6 596/938/6 +f 565/939/5 598/962/5 604/940/5 +f 581/942/6 593/937/6 594/936/6 +f 590/944/8 592/945/8 580/933/8 +f 589/927/8 591/926/8 592/945/8 +f 584/916/8 590/944/8 579/931/8 +f 583/928/8 589/927/8 590/944/8 +f 592/945/8 587/947/8 570/920/8 +f 591/926/8 588/922/8 587/947/8 +f 585/941/2 604/940/2 603/948/2 +f 595/950/6 586/2200/6 585/951/6 +f 570/920/5 587/947/5 586/952/5 +f 587/947/5 588/922/5 585/924/5 +f 568/914/1 583/928/1 582/954/1 +f 583/928/1 584/916/1 581/918/1 +f 582/956/1 599/960/1 600/957/1 +f 594/959/2 602/2201/2 599/960/2 +f 574/961/3 597/967/3 598/962/3 +f 573/963/5 601/968/5 602/964/5 +f 596/966/1 603/2202/1 597/967/1 +f 567/958/3 600/957/3 601/968/3 +f 613/969/3 616/985/3 608/970/3 +f 624/972/1 612/1002/1 611/973/1 +f 617/975/2 620/989/2 610/976/2 +f 628/978/5 606/2203/5 605/979/5 +f 615/981/8 606/2203/8 628/978/8 +f 608/970/8 616/985/8 629/983/8 +f 616/985/8 615/981/8 631/982/8 +f 611/986/2 612/1002/2 619/987/2 +f 618/988/2 619/987/2 620/989/2 +f 605/990/3 606/2203/3 615/981/3 +f 614/991/3 615/981/3 616/985/3 +f 634/992/6 636/994/6 614/991/6 +f 633/993/6 635/1006/6 636/994/6 +f 605/995/5 638/1018/5 644/996/5 +f 621/998/6 633/993/6 634/992/6 +f 630/1000/8 632/1001/8 620/989/8 +f 629/983/8 631/982/8 632/1001/8 +f 624/972/8 630/1000/8 619/987/8 +f 623/984/8 629/983/8 630/1000/8 +f 632/1001/8 627/1003/8 610/976/8 +f 631/982/8 628/978/8 627/1003/8 +f 625/997/2 644/996/2 643/1004/2 +f 635/1006/6 626/2204/6 625/1007/6 +f 610/976/5 627/1003/5 626/1008/5 +f 627/1003/5 628/978/5 625/980/5 +f 608/970/1 623/984/1 622/1010/1 +f 623/984/1 624/972/1 621/974/1 +f 622/1012/1 639/1016/1 640/1013/1 +f 634/1015/2 642/2205/2 639/1016/2 +f 614/1017/3 637/1023/3 638/1018/3 +f 613/1019/5 641/1024/5 642/1020/5 +f 636/1022/1 643/2206/1 637/1023/1 +f 607/1014/3 640/1013/3 641/1024/3 +f 653/1025/3 656/1041/3 648/1026/3 +f 664/1028/1 652/1058/1 651/1029/1 +f 657/1031/2 660/1045/2 650/1032/2 +f 668/1034/5 646/2207/5 645/1035/5 +f 655/1037/8 646/2207/8 668/1034/8 +f 648/1026/8 656/1041/8 669/1039/8 +f 656/1041/8 655/1037/8 671/1038/8 +f 651/1042/2 652/1058/2 659/1043/2 +f 658/1044/2 659/1043/2 660/1045/2 +f 645/1046/3 646/2207/3 655/1037/3 +f 654/1047/3 655/1037/3 656/1041/3 +f 674/1048/6 676/1050/6 654/1047/6 +f 673/1049/6 675/1062/6 676/1050/6 +f 645/1051/5 678/1074/5 684/1052/5 +f 661/1054/6 673/1049/6 674/1048/6 +f 670/1056/8 672/1057/8 660/1045/8 +f 669/1039/8 671/1038/8 672/1057/8 +f 664/1028/8 670/1056/8 659/1043/8 +f 663/1040/8 669/1039/8 670/1056/8 +f 672/1057/8 667/1059/8 650/1032/8 +f 671/1038/8 668/1034/8 667/1059/8 +f 665/1053/2 684/1052/2 683/1060/2 +f 675/1062/6 666/2208/6 665/1063/6 +f 650/1032/5 667/1059/5 666/1064/5 +f 667/1059/5 668/1034/5 665/1036/5 +f 648/1026/1 663/1040/1 662/1066/1 +f 663/1040/1 664/1028/1 661/1030/1 +f 662/1068/1 679/1072/1 680/1069/1 +f 674/1071/2 682/2209/2 679/1072/2 +f 654/1073/3 677/1079/3 678/1074/3 +f 653/1075/5 681/1080/5 682/1076/5 +f 676/1078/1 683/2210/1 677/1079/1 +f 647/1070/3 680/1069/3 681/1080/3 +f 693/1081/3 696/1097/3 688/1082/3 +f 704/1084/1 692/1114/1 691/1085/1 +f 697/1087/2 700/1101/2 690/1088/2 +f 708/1090/5 686/2211/5 685/1091/5 +f 695/1093/8 686/2211/8 708/1090/8 +f 688/1082/8 696/1097/8 709/1095/8 +f 696/1097/8 695/1093/8 711/1094/8 +f 691/1098/2 692/1114/2 699/1099/2 +f 698/1100/2 699/1099/2 700/1101/2 +f 685/1102/3 686/2211/3 695/1093/3 +f 694/1103/3 695/1093/3 696/1097/3 +f 714/1104/6 716/1106/6 694/1103/6 +f 713/1105/6 715/1118/6 716/1106/6 +f 685/1107/5 718/1130/5 724/1108/5 +f 701/1110/6 713/1105/6 714/1104/6 +f 710/1112/8 712/1113/8 700/1101/8 +f 709/1095/8 711/1094/8 712/1113/8 +f 704/1084/8 710/1112/8 699/1099/8 +f 703/1096/8 709/1095/8 710/1112/8 +f 712/1113/8 707/1115/8 690/1088/8 +f 711/1094/8 708/1090/8 707/1115/8 +f 705/1109/2 724/1108/2 723/1116/2 +f 715/1118/6 706/2212/6 705/1119/6 +f 690/1088/5 707/1115/5 706/1120/5 +f 707/1115/5 708/1090/5 705/1092/5 +f 688/1082/1 703/1096/1 702/1122/1 +f 703/1096/1 704/1084/1 701/1086/1 +f 702/1124/1 719/1128/1 720/1125/1 +f 714/1127/2 722/2213/2 719/1128/2 +f 694/1129/3 717/1135/3 718/1130/3 +f 693/1131/5 721/1136/5 722/1132/5 +f 716/1134/1 723/2214/1 717/1135/1 +f 687/1126/3 720/1125/3 721/1136/3 +f 733/1137/3 736/1153/3 728/1138/3 +f 744/1140/1 732/1170/1 731/1141/1 +f 737/1143/2 740/1157/2 730/1144/2 +f 748/1146/5 726/2215/5 725/1147/5 +f 735/1149/8 726/2215/8 748/1146/8 +f 728/1138/8 736/1153/8 749/1151/8 +f 736/1153/8 735/1149/8 751/1150/8 +f 731/1154/2 732/1170/2 739/1155/2 +f 738/1156/2 739/1155/2 740/1157/2 +f 725/1158/3 726/2215/3 735/1149/3 +f 734/1159/3 735/1149/3 736/1153/3 +f 754/1160/6 756/1162/6 734/1159/6 +f 753/1161/6 755/1174/6 756/1162/6 +f 725/1163/5 758/1186/5 764/1164/5 +f 741/1166/6 753/1161/6 754/1160/6 +f 750/1168/8 752/1169/8 740/1157/8 +f 749/1151/8 751/1150/8 752/1169/8 +f 744/1140/8 750/1168/8 739/1155/8 +f 743/1152/8 749/1151/8 750/1168/8 +f 752/1169/8 747/1171/8 730/1144/8 +f 751/1150/8 748/1146/8 747/1171/8 +f 745/1165/2 764/1164/2 763/1172/2 +f 755/1174/6 746/2216/6 745/1175/6 +f 730/1144/5 747/1171/5 746/1176/5 +f 747/1171/5 748/1146/5 745/1148/5 +f 728/1138/1 743/1152/1 742/1178/1 +f 743/1152/1 744/1140/1 741/1142/1 +f 742/1180/1 759/1184/1 760/1181/1 +f 754/1183/2 762/2217/2 759/1184/2 +f 734/1185/3 757/1191/3 758/1186/3 +f 733/1187/5 761/1192/5 762/1188/5 +f 756/1190/1 763/2218/1 757/1191/1 +f 727/1182/3 760/1181/3 761/1192/3 +f 773/1193/3 776/1209/3 768/1194/3 +f 784/1196/1 772/1226/1 771/1197/1 +f 777/1199/2 780/1213/2 770/1200/2 +f 788/1202/5 766/2219/5 765/1203/5 +f 775/1205/8 766/2219/8 788/1202/8 +f 768/1194/8 776/1209/8 789/1207/8 +f 776/1209/8 775/1205/8 791/1206/8 +f 771/1210/2 772/1226/2 779/1211/2 +f 778/1212/2 779/1211/2 780/1213/2 +f 765/1214/3 766/2219/3 775/1205/3 +f 774/1215/3 775/1205/3 776/1209/3 +f 794/1216/6 796/1218/6 774/1215/6 +f 793/1217/6 795/1230/6 796/1218/6 +f 765/1219/5 798/1242/5 804/1220/5 +f 781/1222/6 793/1217/6 794/1216/6 +f 790/1224/8 792/1225/8 780/1213/8 +f 789/1207/8 791/1206/8 792/1225/8 +f 784/1196/8 790/1224/8 779/1211/8 +f 783/1208/8 789/1207/8 790/1224/8 +f 792/1225/8 787/1227/8 770/1200/8 +f 791/1206/8 788/1202/8 787/1227/8 +f 785/1221/2 804/1220/2 803/1228/2 +f 795/1230/6 786/2220/6 785/1231/6 +f 770/1200/5 787/1227/5 786/1232/5 +f 787/1227/5 788/1202/5 785/1204/5 +f 768/1194/1 783/1208/1 782/1234/1 +f 783/1208/1 784/1196/1 781/1198/1 +f 782/1236/1 799/1240/1 800/1237/1 +f 794/1239/2 802/2221/2 799/1240/2 +f 774/1241/3 797/1247/3 798/1242/3 +f 773/1243/5 801/1248/5 802/1244/5 +f 796/1246/1 803/2222/1 797/1247/1 +f 767/1238/3 800/1237/3 801/1248/3 +f 813/1249/2 807/2223/2 808/1250/2 +f 811/1252/1 812/1267/1 824/1253/1 +f 817/1255/3 809/2224/3 810/1256/3 +f 805/1258/5 806/1270/5 828/1259/5 +f 828/1259/8 806/1270/8 815/1261/8 +f 829/1263/8 816/1251/8 808/1250/8 +f 831/1262/8 815/1261/8 816/1251/8 +f 811/1265/3 818/1268/3 819/1266/3 +f 818/1268/3 817/1255/3 820/1257/3 +f 805/1269/2 814/1271/2 815/1261/2 +f 814/1271/2 813/1249/2 816/1251/2 +f 814/1271/6 836/1273/6 834/1272/6 +f 836/1273/6 835/1286/6 833/1274/6 +f 844/1275/5 838/1296/5 805/1276/5 +f 834/1272/6 833/1274/6 821/1278/6 +f 820/1257/8 832/1281/8 830/1280/8 +f 832/1281/8 831/1262/8 829/1263/8 +f 819/1266/8 830/1280/8 824/1253/8 +f 830/1280/8 829/1263/8 823/1264/8 +f 810/1256/8 827/1282/8 832/1281/8 +f 827/1282/8 828/1259/8 831/1262/8 +f 843/1283/3 844/1275/3 825/1277/3 +f 825/1285/6 826/2225/6 835/1286/6 +f 826/1287/5 827/1282/5 810/1256/5 +f 825/1260/5 828/1259/5 827/1282/5 +f 822/1289/1 823/1264/1 808/1250/1 +f 821/1254/1 824/1253/1 823/1264/1 +f 840/1291/1 839/1294/1 822/1292/1 +f 839/1294/3 842/2226/3 834/1295/3 +f 838/1296/2 837/1301/2 814/1297/2 +f 842/1298/5 841/1303/5 813/1299/5 +f 837/1301/1 843/2227/1 836/1302/1 +f 841/1303/2 840/1291/2 807/1293/2 +f 853/1304/2 847/2228/2 848/1305/2 +f 851/1307/1 852/1322/1 864/1308/1 +f 857/1310/3 849/2229/3 850/1311/3 +f 845/1313/5 846/1325/5 868/1314/5 +f 868/1314/8 846/1325/8 855/1316/8 +f 869/1318/8 856/1306/8 848/1305/8 +f 871/1317/8 855/1316/8 856/1306/8 +f 851/1320/3 858/1323/3 859/1321/3 +f 858/1323/3 857/1310/3 860/1312/3 +f 845/1324/2 854/1326/2 855/1316/2 +f 854/1326/2 853/1304/2 856/1306/2 +f 854/1326/6 876/1328/6 874/1327/6 +f 876/1328/6 875/1341/6 873/1329/6 +f 884/1330/5 878/1351/5 845/1331/5 +f 874/1327/6 873/1329/6 861/1333/6 +f 860/1312/8 872/1336/8 870/1335/8 +f 872/1336/8 871/1317/8 869/1318/8 +f 859/1321/8 870/1335/8 864/1308/8 +f 870/1335/8 869/1318/8 863/1319/8 +f 850/1311/8 867/1337/8 872/1336/8 +f 867/1337/8 868/1314/8 871/1317/8 +f 883/1338/3 884/1330/3 865/1332/3 +f 865/1340/6 866/2230/6 875/1341/6 +f 866/1342/5 867/1337/5 850/1311/5 +f 865/1315/5 868/1314/5 867/1337/5 +f 862/1344/1 863/1319/1 848/1305/1 +f 861/1309/1 864/1308/1 863/1319/1 +f 880/1346/1 879/1349/1 862/1347/1 +f 879/1349/3 882/2231/3 874/1350/3 +f 878/1351/2 877/1356/2 854/1352/2 +f 882/1353/5 881/1358/5 853/1354/5 +f 877/1356/1 883/2232/1 876/1357/1 +f 881/1358/2 880/1346/2 847/1348/2 +f 893/1359/2 887/2233/2 888/1360/2 +f 891/1362/1 892/1377/1 904/1363/1 +f 897/1365/3 889/2234/3 890/1366/3 +f 885/1368/5 886/1380/5 908/1369/5 +f 908/1369/8 886/1380/8 895/1371/8 +f 909/1373/8 896/1361/8 888/1360/8 +f 911/1372/8 895/1371/8 896/1361/8 +f 891/1375/3 898/1378/3 899/1376/3 +f 898/1378/3 897/1365/3 900/1367/3 +f 885/1379/2 894/1381/2 895/1371/2 +f 894/1381/2 893/1359/2 896/1361/2 +f 894/1381/6 916/1383/6 914/1382/6 +f 916/1383/6 915/1396/6 913/1384/6 +f 924/1385/5 918/1406/5 885/1386/5 +f 914/1382/6 913/1384/6 901/1388/6 +f 900/1367/8 912/1391/8 910/1390/8 +f 912/1391/8 911/1372/8 909/1373/8 +f 899/1376/8 910/1390/8 904/1363/8 +f 910/1390/8 909/1373/8 903/1374/8 +f 890/1366/8 907/1392/8 912/1391/8 +f 907/1392/8 908/1369/8 911/1372/8 +f 923/1393/3 924/1385/3 905/1387/3 +f 905/1395/6 906/2235/6 915/1396/6 +f 906/1397/5 907/1392/5 890/1366/5 +f 905/1370/5 908/1369/5 907/1392/5 +f 902/1399/1 903/1374/1 888/1360/1 +f 901/1364/1 904/1363/1 903/1374/1 +f 920/1401/1 919/1404/1 902/1402/1 +f 919/1404/3 922/2236/3 914/1405/3 +f 918/1406/2 917/1411/2 894/1407/2 +f 922/1408/5 921/1413/5 893/1409/5 +f 917/1411/1 923/2237/1 916/1412/1 +f 921/1413/2 920/1401/2 887/1403/2 +f 933/1414/2 927/2238/2 928/1415/2 +f 931/1417/1 932/1432/1 944/1418/1 +f 937/1420/3 929/2239/3 930/1421/3 +f 925/1423/5 926/1435/5 948/1424/5 +f 948/1424/8 926/1435/8 935/1426/8 +f 949/1428/8 936/1416/8 928/1415/8 +f 951/1427/8 935/1426/8 936/1416/8 +f 931/1430/3 938/1433/3 939/1431/3 +f 938/1433/3 937/1420/3 940/1422/3 +f 925/1434/2 934/1436/2 935/1426/2 +f 934/1436/2 933/1414/2 936/1416/2 +f 934/1436/6 956/1438/6 954/1437/6 +f 956/1438/6 955/1451/6 953/1439/6 +f 964/1440/5 958/1461/5 925/1441/5 +f 954/1437/6 953/1439/6 941/1443/6 +f 940/1422/8 952/1446/8 950/1445/8 +f 952/1446/8 951/1427/8 949/1428/8 +f 939/1431/8 950/1445/8 944/1418/8 +f 950/1445/8 949/1428/8 943/1429/8 +f 930/1421/8 947/1447/8 952/1446/8 +f 947/1447/8 948/1424/8 951/1427/8 +f 963/1448/3 964/1440/3 945/1442/3 +f 945/1450/6 946/2240/6 955/1451/6 +f 946/1452/5 947/1447/5 930/1421/5 +f 945/1425/5 948/1424/5 947/1447/5 +f 942/1454/1 943/1429/1 928/1415/1 +f 941/1419/1 944/1418/1 943/1429/1 +f 960/1456/1 959/1459/1 942/1457/1 +f 959/1459/3 962/2241/3 954/1460/3 +f 958/1461/2 957/1466/2 934/1462/2 +f 962/1463/5 961/1468/5 933/1464/5 +f 957/1466/1 963/2242/1 956/1467/1 +f 961/1468/2 960/1456/2 927/1458/2 +f 973/1469/2 967/2243/2 968/1470/2 +f 971/1472/1 972/1487/1 984/1473/1 +f 977/1475/3 969/2244/3 970/1476/3 +f 965/1478/5 966/1490/5 988/1479/5 +f 988/1479/8 966/1490/8 975/1481/8 +f 989/1483/8 976/1471/8 968/1470/8 +f 991/1482/8 975/1481/8 976/1471/8 +f 971/1485/3 978/1488/3 979/1486/3 +f 978/1488/3 977/1475/3 980/1477/3 +f 965/1489/2 974/1491/2 975/1481/2 +f 974/1491/2 973/1469/2 976/1471/2 +f 974/1491/6 996/1493/6 994/1492/6 +f 996/1493/6 995/1506/6 993/1494/6 +f 1004/1495/5 998/1516/5 965/1496/5 +f 994/1492/6 993/1494/6 981/1498/6 +f 980/1477/8 992/1501/8 990/1500/8 +f 992/1501/8 991/1482/8 989/1483/8 +f 979/1486/8 990/1500/8 984/1473/8 +f 990/1500/8 989/1483/8 983/1484/8 +f 970/1476/8 987/1502/8 992/1501/8 +f 987/1502/8 988/1479/8 991/1482/8 +f 1003/1503/3 1004/1495/3 985/1497/3 +f 985/1505/6 986/2245/6 995/1506/6 +f 986/1507/5 987/1502/5 970/1476/5 +f 985/1480/5 988/1479/5 987/1502/5 +f 982/1509/1 983/1484/1 968/1470/1 +f 981/1474/1 984/1473/1 983/1484/1 +f 1000/1511/1 999/1514/1 982/1512/1 +f 999/1514/3 1002/2246/3 994/1515/3 +f 998/1516/2 997/1521/2 974/1517/2 +f 1002/1518/5 1001/1523/5 973/1519/5 +f 997/1521/1 1003/2247/1 996/1522/1 +f 1001/1523/2 1000/1511/2 967/1513/2 +f 1013/1524/2 1007/2248/2 1008/1525/2 +f 1011/1527/1 1012/1542/1 1024/1528/1 +f 1017/1530/3 1009/2249/3 1010/1531/3 +f 1005/1533/5 1006/1545/5 1028/1534/5 +f 1028/1534/8 1006/1545/8 1015/1536/8 +f 1029/1538/8 1016/1526/8 1008/1525/8 +f 1031/1537/8 1015/1536/8 1016/1526/8 +f 1011/1540/3 1018/1543/3 1019/1541/3 +f 1018/1543/3 1017/1530/3 1020/1532/3 +f 1005/1544/2 1014/1546/2 1015/1536/2 +f 1014/1546/2 1013/1524/2 1016/1526/2 +f 1014/1546/6 1036/1548/6 1034/1547/6 +f 1036/1548/6 1035/1561/6 1033/1549/6 +f 1044/1550/5 1038/1571/5 1005/1551/5 +f 1034/1547/6 1033/1549/6 1021/1553/6 +f 1020/1532/8 1032/1556/8 1030/1555/8 +f 1032/1556/8 1031/1537/8 1029/1538/8 +f 1019/1541/8 1030/1555/8 1024/1528/8 +f 1030/1555/8 1029/1538/8 1023/1539/8 +f 1010/1531/8 1027/1557/8 1032/1556/8 +f 1027/1557/8 1028/1534/8 1031/1537/8 +f 1043/1558/3 1044/1550/3 1025/1552/3 +f 1025/1560/6 1026/2250/6 1035/1561/6 +f 1026/1562/5 1027/1557/5 1010/1531/5 +f 1025/1535/5 1028/1534/5 1027/1557/5 +f 1022/1564/1 1023/1539/1 1008/1525/1 +f 1021/1529/1 1024/1528/1 1023/1539/1 +f 1040/1566/1 1039/1569/1 1022/1567/1 +f 1039/1569/3 1042/2251/3 1034/1570/3 +f 1038/1571/2 1037/1576/2 1014/1572/2 +f 1042/1573/5 1041/1578/5 1013/1574/5 +f 1037/1576/1 1043/2252/1 1036/1577/1 +f 1041/1578/2 1040/1566/2 1007/1568/2 +f 1053/1579/2 1047/2253/2 1048/1580/2 +f 1051/1582/1 1052/1597/1 1064/1583/1 +f 1057/1585/3 1049/2254/3 1050/1586/3 +f 1045/1588/5 1046/1600/5 1068/1589/5 +f 1068/1589/8 1046/1600/8 1055/1591/8 +f 1069/1593/8 1056/1581/8 1048/1580/8 +f 1071/1592/8 1055/1591/8 1056/1581/8 +f 1051/1595/3 1058/1598/3 1059/1596/3 +f 1058/1598/3 1057/1585/3 1060/1587/3 +f 1045/1599/2 1054/1601/2 1055/1591/2 +f 1054/1601/2 1053/1579/2 1056/1581/2 +f 1054/1601/6 1076/1603/6 1074/1602/6 +f 1076/1603/6 1075/1616/6 1073/1604/6 +f 1084/1605/5 1078/1626/5 1045/1606/5 +f 1074/1602/6 1073/1604/6 1061/1608/6 +f 1060/1587/8 1072/1611/8 1070/1610/8 +f 1072/1611/8 1071/1592/8 1069/1593/8 +f 1059/1596/8 1070/1610/8 1064/1583/8 +f 1070/1610/8 1069/1593/8 1063/1594/8 +f 1050/1586/8 1067/1612/8 1072/1611/8 +f 1067/1612/8 1068/1589/8 1071/1592/8 +f 1083/1613/3 1084/1605/3 1065/1607/3 +f 1065/1615/6 1066/2255/6 1075/1616/6 +f 1066/1617/5 1067/1612/5 1050/1586/5 +f 1065/1590/5 1068/1589/5 1067/1612/5 +f 1062/1619/1 1063/1594/1 1048/1580/1 +f 1061/1584/1 1064/1583/1 1063/1594/1 +f 1080/1621/1 1079/1624/1 1062/1622/1 +f 1079/1624/3 1082/2256/3 1074/1625/3 +f 1078/1626/2 1077/1631/2 1054/1627/2 +f 1082/1628/5 1081/1633/5 1053/1629/5 +f 1077/1631/1 1083/2257/1 1076/1632/1 +f 1081/1633/2 1080/1621/2 1047/1623/2 +f 1093/1634/2 1087/2258/2 1088/1635/2 +f 1091/1637/1 1092/1652/1 1104/1638/1 +f 1097/1640/3 1089/2259/3 1090/1641/3 +f 1085/1643/5 1086/1655/5 1108/1644/5 +f 1108/1644/8 1086/1655/8 1095/1646/8 +f 1109/1648/8 1096/1636/8 1088/1635/8 +f 1111/1647/8 1095/1646/8 1096/1636/8 +f 1091/1650/3 1098/1653/3 1099/1651/3 +f 1098/1653/3 1097/1640/3 1100/1642/3 +f 1085/1654/2 1094/1656/2 1095/1646/2 +f 1094/1656/2 1093/1634/2 1096/1636/2 +f 1094/1656/6 1116/1658/6 1114/1657/6 +f 1116/1658/6 1115/1671/6 1113/1659/6 +f 1124/1660/5 1118/1681/5 1085/1661/5 +f 1114/1657/6 1113/1659/6 1101/1663/6 +f 1100/1642/8 1112/1666/8 1110/1665/8 +f 1112/1666/8 1111/1647/8 1109/1648/8 +f 1099/1651/8 1110/1665/8 1104/1638/8 +f 1110/1665/8 1109/1648/8 1103/1649/8 +f 1090/1641/8 1107/1667/8 1112/1666/8 +f 1107/1667/8 1108/1644/8 1111/1647/8 +f 1123/1668/3 1124/1660/3 1105/1662/3 +f 1105/1670/6 1106/2260/6 1115/1671/6 +f 1106/1672/5 1107/1667/5 1090/1641/5 +f 1105/1645/5 1108/1644/5 1107/1667/5 +f 1102/1674/1 1103/1649/1 1088/1635/1 +f 1101/1639/1 1104/1638/1 1103/1649/1 +f 1120/1676/1 1119/1679/1 1102/1677/1 +f 1119/1679/3 1122/2261/3 1114/1680/3 +f 1118/1681/2 1117/1686/2 1094/1682/2 +f 1122/1683/5 1121/1688/5 1093/1684/5 +f 1117/1686/1 1123/2262/1 1116/1687/1 +f 1121/1688/2 1120/1676/2 1087/1678/2 +f 1133/1689/2 1127/2263/2 1128/1690/2 +f 1131/1692/1 1132/1707/1 1144/1693/1 +f 1137/1695/3 1129/2264/3 1130/1696/3 +f 1125/1698/5 1126/1710/5 1148/1699/5 +f 1148/1699/8 1126/1710/8 1135/1701/8 +f 1149/1703/8 1136/1691/8 1128/1690/8 +f 1151/1702/8 1135/1701/8 1136/1691/8 +f 1131/1705/3 1138/1708/3 1139/1706/3 +f 1138/1708/3 1137/1695/3 1140/1697/3 +f 1125/1709/2 1134/1711/2 1135/1701/2 +f 1134/1711/2 1133/1689/2 1136/1691/2 +f 1134/1711/6 1156/1713/6 1154/1712/6 +f 1156/1713/6 1155/1726/6 1153/1714/6 +f 1164/1715/5 1158/1736/5 1125/1716/5 +f 1154/1712/6 1153/1714/6 1141/1718/6 +f 1140/1697/8 1152/1721/8 1150/1720/8 +f 1152/1721/8 1151/1702/8 1149/1703/8 +f 1139/1706/8 1150/1720/8 1144/1693/8 +f 1150/1720/8 1149/1703/8 1143/1704/8 +f 1130/1696/8 1147/1722/8 1152/1721/8 +f 1147/1722/8 1148/1699/8 1151/1702/8 +f 1163/1723/3 1164/1715/3 1145/1717/3 +f 1145/1725/6 1146/2265/6 1155/1726/6 +f 1146/1727/5 1147/1722/5 1130/1696/5 +f 1145/1700/5 1148/1699/5 1147/1722/5 +f 1142/1729/1 1143/1704/1 1128/1690/1 +f 1141/1694/1 1144/1693/1 1143/1704/1 +f 1160/1731/1 1159/1734/1 1142/1732/1 +f 1159/1734/3 1162/2266/3 1154/1735/3 +f 1158/1736/2 1157/1741/2 1134/1737/2 +f 1162/1738/5 1161/1743/5 1133/1739/5 +f 1157/1741/1 1163/2267/1 1156/1742/1 +f 1161/1743/2 1160/1731/2 1127/1733/2 +f 1173/1744/2 1167/2268/2 1168/1745/2 +f 1171/1747/1 1172/1762/1 1184/1748/1 +f 1177/1750/3 1169/2269/3 1170/1751/3 +f 1165/1753/5 1166/1765/5 1188/1754/5 +f 1188/1754/8 1166/1765/8 1175/1756/8 +f 1189/1758/8 1176/1746/8 1168/1745/8 +f 1191/1757/8 1175/1756/8 1176/1746/8 +f 1171/1760/3 1178/1763/3 1179/1761/3 +f 1178/1763/3 1177/1750/3 1180/1752/3 +f 1165/1764/2 1174/1766/2 1175/1756/2 +f 1174/1766/2 1173/1744/2 1176/1746/2 +f 1174/1766/6 1196/1768/6 1194/1767/6 +f 1196/1768/6 1195/1781/6 1193/1769/6 +f 1204/1770/5 1198/1791/5 1165/1771/5 +f 1194/1767/6 1193/1769/6 1181/1773/6 +f 1180/1752/8 1192/1776/8 1190/1775/8 +f 1192/1776/8 1191/1757/8 1189/1758/8 +f 1179/1761/8 1190/1775/8 1184/1748/8 +f 1190/1775/8 1189/1758/8 1183/1759/8 +f 1170/1751/8 1187/1777/8 1192/1776/8 +f 1187/1777/8 1188/1754/8 1191/1757/8 +f 1203/1778/3 1204/1770/3 1185/1772/3 +f 1185/1780/6 1186/2270/6 1195/1781/6 +f 1186/1782/5 1187/1777/5 1170/1751/5 +f 1185/1755/5 1188/1754/5 1187/1777/5 +f 1182/1784/1 1183/1759/1 1168/1745/1 +f 1181/1749/1 1184/1748/1 1183/1759/1 +f 1200/1786/1 1199/1789/1 1182/1787/1 +f 1199/1789/3 1202/2271/3 1194/1790/3 +f 1198/1791/2 1197/1796/2 1174/1792/2 +f 1202/1793/5 1201/1798/5 1173/1794/5 +f 1197/1796/1 1203/2272/1 1196/1797/1 +f 1201/1798/2 1200/1786/2 1167/1788/2 +f 1213/1799/2 1207/2273/2 1208/1800/2 +f 1211/1802/1 1212/1817/1 1224/1803/1 +f 1217/1805/3 1209/2274/3 1210/1806/3 +f 1205/1808/5 1206/1820/5 1228/1809/5 +f 1228/1809/8 1206/1820/8 1215/1811/8 +f 1229/1813/8 1216/1801/8 1208/1800/8 +f 1231/1812/8 1215/1811/8 1216/1801/8 +f 1211/1815/3 1218/1818/3 1219/1816/3 +f 1218/1818/3 1217/1805/3 1220/1807/3 +f 1205/1819/2 1214/1821/2 1215/1811/2 +f 1214/1821/2 1213/1799/2 1216/1801/2 +f 1214/1821/6 1236/1823/6 1234/1822/6 +f 1236/1823/6 1235/1836/6 1233/1824/6 +f 1244/1825/5 1238/1846/5 1205/1826/5 +f 1234/1822/6 1233/1824/6 1221/1828/6 +f 1220/1807/8 1232/1831/8 1230/1830/8 +f 1232/1831/8 1231/1812/8 1229/1813/8 +f 1219/1816/8 1230/1830/8 1224/1803/8 +f 1230/1830/8 1229/1813/8 1223/1814/8 +f 1210/1806/8 1227/1832/8 1232/1831/8 +f 1227/1832/8 1228/1809/8 1231/1812/8 +f 1243/1833/3 1244/1825/3 1225/1827/3 +f 1225/1835/6 1226/2275/6 1235/1836/6 +f 1226/1837/5 1227/1832/5 1210/1806/5 +f 1225/1810/5 1228/1809/5 1227/1832/5 +f 1222/1839/1 1223/1814/1 1208/1800/1 +f 1221/1804/1 1224/1803/1 1223/1814/1 +f 1240/1841/1 1239/1844/1 1222/1842/1 +f 1239/1844/3 1242/2276/3 1234/1845/3 +f 1238/1846/2 1237/1851/2 1214/1847/2 +f 1242/1848/5 1241/1853/5 1213/1849/5 +f 1237/1851/1 1243/2277/1 1236/1852/1 +f 1241/1853/2 1240/1841/2 1207/1843/2 +f 1245/1854/3 1246/2278/3 1248/1855/3 +f 1248/1857/1 1252/2279/1 1251/1858/1 +f 1252/1860/2 1250/1864/2 1249/1861/2 +f 1251/1858/1 1255/1865/1 1253/1863/1 +f 1248/1855/9 1246/2278/9 1250/1864/9 +f 1255/1865/11 1256/1869/11 1254/1866/11 +f 1253/1863/1 1259/1870/1 1257/1867/1 +f 1251/1868/2 1249/2280/2 1256/1869/2 +f 1259/1870/1 1263/1880/1 1261/1871/1 +f 1247/1856/9 1257/2281/9 1258/1872/9 +f 1254/1866/11 1260/1879/11 1259/1870/11 +f 1261/1873/3 1263/1880/3 1264/1874/3 +f 1262/1876/3 1268/1882/3 1267/1877/3 +f 1260/1879/11 1264/1874/11 1263/1880/11 +f 1265/1881/9 1267/1877/9 1268/1882/9 +f 1261/1871/1 1267/2282/1 1265/1884/1 +f 1258/1872/2 1257/2281/2 1265/1881/2 +f 1269/1885/3 1271/1905/3 1272/1886/3 +f 1275/1888/5 1276/2283/5 1272/1889/5 +f 1273/1891/2 1274/1895/2 1276/1892/2 +f 1277/1894/5 1279/1897/5 1275/1888/5 +f 1274/1895/10 1270/1887/10 1272/1886/10 +f 1278/1896/12 1280/1900/12 1279/1897/12 +f 1281/1898/5 1283/1903/5 1277/1894/5 +f 1275/1899/2 1279/1897/2 1280/1900/2 +f 1285/1902/5 1287/1912/5 1283/1903/5 +f 1282/1904/10 1281/1918/10 1271/1905/10 +f 1283/1903/12 1284/1913/12 1278/1896/12 +f 1288/1906/3 1287/1912/3 1285/1907/3 +f 1291/1909/3 1292/1914/3 1286/1910/3 +f 1287/1912/12 1288/1906/12 1284/1913/12 +f 1292/1914/10 1291/1909/10 1289/1915/10 +f 1289/1917/5 1291/2284/5 1285/1902/5 +f 1282/1904/2 1290/1916/2 1289/1915/2 +f 1294/1919/4 1296/1922/4 1295/1920/4 +f 1296/1922/1 1300/2285/1 1299/1923/1 +f 1297/1924/5 1298/2286/5 1294/1919/5 +f 1299/1925/13 1297/2287/13 1293/1921/13 +f 1296/1922/14 1294/1919/14 1298/1926/14 +f 1302/1928/4 1304/1931/4 1303/1929/4 +f 1304/1931/1 1308/2288/1 1307/1932/1 +f 1305/1933/5 1306/2289/5 1302/1928/5 +f 1307/1934/13 1305/2290/13 1301/1930/13 +f 1304/1931/14 1302/1928/14 1306/1935/14 +f 1310/1937/4 1312/1940/4 1311/1938/4 +f 1312/1940/1 1316/2291/1 1315/1941/1 +f 1313/1942/5 1314/2292/5 1310/1937/5 +f 1315/1943/13 1313/2293/13 1309/1939/13 +f 1312/1940/14 1310/1937/14 1314/1944/14 +f 1318/1946/4 1320/1949/4 1319/1947/4 +f 1320/1949/1 1324/2294/1 1323/1950/1 +f 1321/1951/5 1322/2295/5 1318/1946/5 +f 1323/1952/13 1321/2296/13 1317/1948/13 +f 1320/1949/14 1318/1946/14 1322/1953/14 +f 1326/1955/4 1328/1958/4 1327/1956/4 +f 1328/1958/1 1332/2297/1 1331/1959/1 +f 1329/1960/5 1330/2298/5 1326/1955/5 +f 1331/1961/13 1329/2299/13 1325/1957/13 +f 1328/1958/14 1326/1955/14 1330/1962/14 +f 1335/1964/7 1336/1968/7 1334/1965/7 +f 1335/1964/1 1339/2300/1 1340/1967/1 +f 1337/1969/5 1333/1966/5 1334/1965/5 +f 1333/1966/15 1337/2301/15 1339/1971/15 +f 1338/1972/16 1334/1965/16 1336/1968/16 +f 1343/1974/7 1344/1978/7 1342/1975/7 +f 1343/1974/1 1347/2302/1 1348/1977/1 +f 1345/1979/5 1341/1976/5 1342/1975/5 +f 1341/1976/15 1345/2303/15 1347/1981/15 +f 1346/1982/16 1342/1975/16 1344/1978/16 +f 1351/1984/7 1352/1988/7 1350/1985/7 +f 1351/1984/1 1355/2304/1 1356/1987/1 +f 1353/1989/5 1349/1986/5 1350/1985/5 +f 1349/1986/15 1353/2305/15 1355/1991/15 +f 1354/1992/16 1350/1985/16 1352/1988/16 +f 1359/1994/7 1360/1998/7 1358/1995/7 +f 1359/1994/1 1363/2306/1 1364/1997/1 +f 1361/1999/5 1357/1996/5 1358/1995/5 +f 1357/1996/15 1361/2307/15 1363/2001/15 +f 1362/2002/16 1358/1995/16 1360/1998/16 +f 1367/2004/7 1368/2008/7 1366/2005/7 +f 1367/2004/1 1371/2308/1 1372/2007/1 +f 1369/2009/5 1365/2006/5 1366/2005/5 +f 1365/2006/15 1369/2309/15 1371/2011/15 +f 1370/2012/16 1366/2005/16 1368/2008/16 +f 1376/2014/1 1380/2024/1 1379/2015/1 +f 1378/2017/5 1374/2310/5 1373/2018/5 +f 1382/2020/5 1385/2033/5 1386/2021/5 +f 1376/2027/1 1383/2311/1 1384/2028/1 +f 1386/2036/5 1389/2040/5 1392/2037/5 +f 1383/2041/1 1394/2312/1 1391/2042/1 +f 1398/2043/1 1402/2053/1 1401/2044/1 +f 1400/2046/5 1396/2313/5 1395/2047/5 +f 1404/2049/5 1407/2062/5 1408/2050/5 +f 1398/2056/1 1405/2314/1 1406/2057/1 +f 1408/2065/5 1411/2069/5 1414/2066/5 +f 1405/2070/1 1416/2315/1 1413/2071/1 +f 1420/2072/1 1424/2082/1 1423/2073/1 +f 1422/2075/5 1418/2316/5 1417/2076/5 +f 1426/2078/5 1429/2091/5 1430/2079/5 +f 1420/2085/1 1427/2317/1 1428/2086/1 +f 1430/2094/5 1433/2098/5 1436/2095/5 +f 1427/2099/1 1438/2318/1 1435/2100/1 +f 1442/2101/1 1446/2111/1 1445/2102/1 +f 1444/2104/5 1440/2319/5 1439/2105/5 +f 1448/2107/5 1451/2120/5 1452/2108/5 +f 1442/2114/1 1449/2320/1 1450/2115/1 +f 1452/2123/5 1455/2127/5 1458/2124/5 +f 1449/2128/1 1460/2321/1 1457/2129/1 +f 1464/2130/1 1468/2140/1 1467/2131/1 +f 1466/2133/5 1462/2322/5 1461/2134/5 +f 1470/2136/5 1473/2149/5 1474/2137/5 +f 1464/2143/1 1471/2323/1 1472/2144/1 +f 1474/2152/5 1477/2156/5 1480/2153/5 +f 1471/2157/1 1482/2324/1 1479/2158/1 s 1 -f 5/5/11 3/697/12 6/6/13 -f 9/604/14 4/4/15 2/2/16 -f 9/10/14 8/9/17 7/8/18 -f 10/18/19 12/606/20 8/16/17 -f 5/5/11 14/698/21 1/699/22 -f 16/26/23 377/607/24 13/24/25 -f 15/21/26 13/15/25 12/14/20 -f 11/17/27 18/700/28 14/698/21 -f 24/33/11 22/701/12 25/34/13 -f 28/608/14 23/32/15 21/30/16 -f 28/38/14 27/37/17 26/36/18 -f 29/46/19 31/610/29 27/44/17 -f 24/33/11 33/702/21 20/703/22 -f 35/54/23 378/611/24 32/52/25 -f 34/49/30 32/43/25 31/42/29 -f 30/45/27 37/704/28 33/702/21 -f 43/61/11 41/705/12 44/62/13 -f 47/612/14 42/60/15 40/58/16 -f 47/66/14 46/65/17 45/64/18 -f 48/74/19 50/614/29 46/72/17 -f 43/61/11 52/706/31 39/707/22 -f 54/82/23 379/615/24 51/80/25 -f 53/77/32 51/71/25 50/70/29 -f 49/73/33 56/708/28 52/706/31 -f 62/89/11 60/709/12 63/90/13 -f 66/616/14 61/88/15 59/86/16 -f 66/94/14 65/93/17 64/92/34 -f 67/102/19 69/618/20 65/100/17 -f 62/89/11 71/710/21 58/711/22 -f 73/110/23 380/619/24 70/108/25 -f 72/105/26 70/99/25 69/98/20 -f 68/101/27 75/712/28 71/710/21 -f 5/5/11 1/699/22 3/697/12 -f 9/604/14 7/605/18 4/4/15 -f 9/10/14 10/12/19 8/9/17 -f 10/18/19 15/20/26 12/606/20 -f 5/5/11 11/17/27 14/698/21 -f 16/26/23 19/28/35 377/607/24 -f 15/21/26 16/23/23 13/15/25 -f 11/17/27 17/25/36 18/700/28 -f 24/33/11 20/703/22 22/701/12 -f 28/608/14 26/609/18 23/32/15 -f 28/38/14 29/40/19 27/37/17 -f 29/46/19 34/48/30 31/610/29 -f 24/33/11 30/45/27 33/702/21 -f 35/54/23 38/56/35 378/611/24 -f 34/49/30 35/51/23 32/43/25 -f 30/45/27 36/53/36 37/704/28 -f 43/61/11 39/707/22 41/705/12 -f 47/612/14 45/613/18 42/60/15 -f 47/66/14 48/68/19 46/65/17 -f 48/74/19 53/76/32 50/614/29 -f 43/61/11 49/73/33 52/706/31 -f 54/82/23 57/84/35 379/615/24 -f 53/77/32 54/79/23 51/71/25 -f 49/73/33 55/81/36 56/708/28 -f 62/89/11 58/711/22 60/709/12 -f 66/616/14 64/617/34 61/88/15 -f 66/94/14 67/96/19 65/93/17 -f 67/102/19 72/104/26 69/618/20 -f 62/89/11 68/101/27 71/710/21 -f 73/110/23 76/112/35 380/619/24 -f 72/105/26 73/107/23 70/99/25 -f 68/101/27 74/109/36 75/712/28 +f 1374/2310/17 1375/2325/18 1373/2018/19 +f 1380/2024/20 1377/2019/21 1379/2015/22 +f 1380/2024/20 1382/2020/23 1378/2017/24 +f 1384/2028/25 1388/2034/26 1385/2033/27 +f 1381/2026/28 1385/2033/27 1382/2020/23 +f 1374/2022/17 1383/2326/29 1376/2327/30 +f 1387/2029/31 1389/2040/32 1388/2034/26 +f 1386/2036/33 1394/2328/34 1383/2329/29 +f 1390/2031/35 1392/2037/36 1389/2040/32 +f 1396/2313/17 1397/2330/18 1395/2047/19 +f 1402/2053/20 1399/2048/21 1401/2044/22 +f 1402/2053/20 1404/2049/23 1400/2046/24 +f 1406/2057/25 1410/2063/26 1407/2062/27 +f 1403/2055/28 1407/2062/27 1404/2049/23 +f 1396/2051/17 1405/2331/29 1398/2332/30 +f 1409/2058/31 1411/2069/32 1410/2063/26 +f 1408/2065/33 1416/2333/34 1405/2334/29 +f 1412/2060/35 1414/2066/36 1411/2069/32 +f 1418/2316/17 1419/2335/18 1417/2076/19 +f 1424/2082/20 1421/2077/21 1423/2073/22 +f 1424/2082/20 1426/2078/23 1422/2075/24 +f 1428/2086/25 1432/2092/26 1429/2091/27 +f 1425/2084/28 1429/2091/27 1426/2078/23 +f 1418/2080/17 1427/2336/29 1420/2337/30 +f 1431/2087/31 1433/2098/32 1432/2092/26 +f 1430/2094/33 1438/2338/34 1427/2339/29 +f 1434/2089/35 1436/2095/36 1433/2098/32 +f 1440/2319/17 1441/2340/18 1439/2105/19 +f 1446/2111/20 1443/2106/21 1445/2102/22 +f 1446/2111/20 1448/2107/23 1444/2104/24 +f 1450/2115/25 1454/2121/26 1451/2120/27 +f 1447/2113/28 1451/2120/27 1448/2107/23 +f 1440/2109/17 1449/2341/29 1442/2342/30 +f 1453/2116/31 1455/2127/32 1454/2121/26 +f 1452/2123/33 1460/2343/34 1449/2344/29 +f 1456/2118/35 1458/2124/36 1455/2127/32 +f 1462/2322/17 1463/2345/18 1461/2134/19 +f 1468/2140/20 1465/2135/21 1467/2131/22 +f 1468/2140/20 1470/2136/23 1466/2133/24 +f 1472/2144/25 1476/2150/26 1473/2149/27 +f 1469/2142/28 1473/2149/27 1470/2136/23 +f 1462/2138/17 1471/2346/29 1464/2347/30 +f 1475/2145/31 1477/2156/32 1476/2150/26 +f 1474/2152/33 1482/2348/34 1471/2349/29 +f 1478/2147/35 1480/2153/36 1477/2156/32 +f 1374/2310/17 1376/2350/30 1375/2325/18 +f 1380/2024/20 1378/2017/24 1377/2019/21 +f 1380/2024/20 1381/2026/28 1382/2020/23 +f 1384/2028/25 1387/2029/31 1388/2034/26 +f 1381/2026/28 1384/2028/25 1385/2033/27 +f 1374/2022/17 1386/2021/33 1383/2326/29 +f 1387/2029/31 1390/2031/35 1389/2040/32 +f 1386/2036/33 1393/2038/37 1394/2328/34 +f 1390/2031/35 1391/2042/38 1392/2037/36 +f 1396/2313/17 1398/2351/30 1397/2330/18 +f 1402/2053/20 1400/2046/24 1399/2048/21 +f 1402/2053/20 1403/2055/28 1404/2049/23 +f 1406/2057/25 1409/2058/31 1410/2063/26 +f 1403/2055/28 1406/2057/25 1407/2062/27 +f 1396/2051/17 1408/2050/33 1405/2331/29 +f 1409/2058/31 1412/2060/35 1411/2069/32 +f 1408/2065/33 1415/2067/37 1416/2333/34 +f 1412/2060/35 1413/2071/38 1414/2066/36 +f 1418/2316/17 1420/2352/30 1419/2335/18 +f 1424/2082/20 1422/2075/24 1421/2077/21 +f 1424/2082/20 1425/2084/28 1426/2078/23 +f 1428/2086/25 1431/2087/31 1432/2092/26 +f 1425/2084/28 1428/2086/25 1429/2091/27 +f 1418/2080/17 1430/2079/33 1427/2336/29 +f 1431/2087/31 1434/2089/35 1433/2098/32 +f 1430/2094/33 1437/2096/37 1438/2338/34 +f 1434/2089/35 1435/2100/38 1436/2095/36 +f 1440/2319/17 1442/2353/30 1441/2340/18 +f 1446/2111/20 1444/2104/24 1443/2106/21 +f 1446/2111/20 1447/2113/28 1448/2107/23 +f 1450/2115/25 1453/2116/31 1454/2121/26 +f 1447/2113/28 1450/2115/25 1451/2120/27 +f 1440/2109/17 1452/2108/33 1449/2341/29 +f 1453/2116/31 1456/2118/35 1455/2127/32 +f 1452/2123/33 1459/2125/37 1460/2343/34 +f 1456/2118/35 1457/2129/38 1458/2124/36 +f 1462/2322/17 1464/2354/30 1463/2345/18 +f 1468/2140/20 1466/2133/24 1465/2135/21 +f 1468/2140/20 1469/2142/28 1470/2136/23 +f 1472/2144/25 1475/2145/31 1476/2150/26 +f 1469/2142/28 1472/2144/25 1473/2149/27 +f 1462/2138/17 1474/2137/33 1471/2346/29 +f 1475/2145/31 1478/2147/35 1477/2156/32 +f 1474/2152/33 1481/2154/37 1482/2348/34 +f 1478/2147/35 1479/2158/38 1480/2153/36 diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_compressor.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_compressor.png new file mode 100644 index 0000000000000000000000000000000000000000..e5b80132b0bfac3f4073c92b22d4609e1b36a4a7 GIT binary patch literal 3119 zcmb_ec|6o>7k_4qB{eaVU9uITWwM7d2}4;UQHipXD2!y8(Q--RhDb)^jULn&%LA?#Ni)OdXQk*$)cH}h zU8vz~Qms8B^M3dcac7aI_^u-f6CuRjAT+GX4~I&EX|%G$AsqFev15-_(BiOi!e^uW@>7xyLn^I zO$1|dvTcQLr?JW7#EDEuCi4T=?PMa&JlC#xG}=Td=;_ddubK;7sZX><&7L#@b7T{J@Jol;J^qL*eQWre zH+_ld7sC~i^`6f!OdOgr9BEu@n|xc$=puyFnD6Uu&G+)fFO%cqJl+>fem!OoEe;s- zp;>{)g{r#dE&azcqI^3_*MFqM#70j#X{?jER@8>a=TM%z0TB4WH{c3DdfCNOElZX z7FREe^{tzH8dw_U=3KRLE07vHvjt0E1(v*0*w$@KK69U!(Kupm(a2{!e_+6PcYaMk z>QGR%cr>ZkRH{oKPSNc*i zry=^MO^FMs_Zoj5AJ5T!_JVy@F{@5HDZ41h2c!ix#J zdRc)8w@=ek2YMfXg55#VBiNmPiOjuXkrQZfW(@h1{VjAuYvBK(AIL=UxExhYxboN+ zaRZ=N8Um(hWHzIn=_TMsRM{4=jq97msHuYr*y@N@B~yBP&*(#Co%;9MnaL98@$cP` zD)+vY-TbD2Wq!#GYPG}Dmgl)k#ie%e{lC(s71hDxd@su&q&L0OoMq77YHu1Is-CEk z1~!BMMMb7xcvNGT5s$I1Sj3wpMvBUE+@F1W^H_gT2wX#M-N0!R_`vE=lbcJ}qUSXz zgR>q?M@oxEzb*Blas6vEpf?=??2A=tCxtPE)gnJO=}wp`;w8*zk0(sLHuY?e9o}A+q{FhEi--96_-uA#ZkfS(gD|3uDlBNa{7U{;vlcC9p;O zKgfEcfIV{QrQkmEAj5^^`7aS~>v*J!%mtiRbF1-C3&iGa1SY!3)`Ocgz=&{>P3D+E z;e%Iv3v_2sEb4tU3Fts94IVv;Vs>KSm`$!oZ=dlvHV5jco{pF6XP)eG5~AwqvXzTY*kb;b&gaI__7Q3}@%7^SJ z6{D|UN7!=H`th6S9g>hkCz?q~SPn}N_%yDf(9lt9(k~kfh$1~`CUhjXP#{ZCW>8=* zkgE#K{VLRDcgJ|Mf_JhATp`Iw3x_OtrQf{L(+o`yhU40j*DtdPB?)8;i$C<~vdl6* zMKHWdpa`59eaD1Qr^TvlFb2eBy^n6F!4S`o3rLliM)N-Vo8ndOke)`@(-}2Uge*N6 zw9P6zX?Zf;3__l2?DIP=0~*v}HLDXopA1)`TRt5!xJ0Pz z&nzrdKOB2SA9`ELnl$Ol?&Y7u1G)UtwFwa`S?ZP=wRzB-|&B%oR0LJ5@Q)u5;?Ei2ER0ZuS?%?zo? zDZdHo3|F5k-J?k?x2`mTNS?p^#-yp-oOj_H+$UJDtN6n@Uykdu(sPN6;rBqd(mm}9 z11D)h*u`=UV!4&hf$Q=*Kt2Bwp*C|-ynXLf32Mr43)&Zwf1kkdE11WVFNVx^TuQuR+ z%sZBv4nVJQP($L(Oz2)?;{v6@?ZdPOhjUVg4%9s$Z)|9646RKZ9`^iU+Zg@mMbq}b z75lHQe$IlO4GVkAW>?Hx2PWY^J|5tbX1$rMVmBIO!O3#{7u(jjyrsZOcjsIlW%z8D+PwH-n z>Li!{Fu&ueSX(KzcKo2})X~J#5@qln2!<00|KC1;GyNaMbCG8K&nw}q>p1W@f#StV16EF;R$Yl&lHCYW3OPc5_S!$N c>GT$emih-j-?Tm6^?Nv5D+kL83-8PS1{QpNxc~qF literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_electrolyser_fluid.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_electrolyser_fluid.png new file mode 100644 index 0000000000000000000000000000000000000000..32b6d976e04ce0678c30d159a2cfdae5e8eb0701 GIT binary patch literal 3941 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_electrolyser_metal.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_electrolyser_metal.png new file mode 100644 index 0000000000000000000000000000000000000000..9c16575363dd0795125335cfb4397c9bb4ace475 GIT binary patch literal 4062 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/machines/compressor.png b/src/main/resources/assets/hbm/textures/models/machines/compressor.png index 64e95a024e129fbba8570aa321ae20db24c0a209..af84d82fd7c4a0ac20022cb0fedf303b0dfd56a2 100644 GIT binary patch literal 3463 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 literal 2131 zcmZ`*dpuNm8=sLFR!p`KVJKG8#@Z5Im%+#-mvu>$K`NFAVPuT)+RD9Y+u5X%S#Pe% z492A}Gc0mnTkbP-@VbR@$#rOE_H@ttc{_icbDr~gF2C>Z`+c6@NpiG5xl3GL90Gyt zvbM5tf6c05SX~N1=1xdlQUcztkAkobaBwM z!e<0s*E9;xQ61Ysk)UFfh1i1YHnc-7wk>Y7$91D=NanC6CBjT+Rc#Cv%=S(R(q z05&}#n8;Ru`U5J=&mu#>JE3cMSvplCpJc(Cfm&aA~+p_rdOaSKWAoZ#z%dMlJnk`iU1KCW%E_!Jvyzqi8x6 zp6AZ(p`*=b5tIfMDY~gp4rS2(YS@O2>`ywz$~tkk;~-{2LNGBH;vnLkk*B}U)oo*W zEn2gD<%9!|TS{$kM1HRKMe#=rNmUlPp3>(?7XLB>n9h~l)Z$nFELXruzQsl>S6#yn zx&0R@wpSSb2#pL^4qS&M79iprdE#T~p#%UgzrGRD0sD`EN*(jK@&1TgY2RBV9IB-+Sac10~wYN~OpT%r>*!Z7!@`I%4>o3z!ebn&K|t_bw{ zBR4pkCLJW7)w>ZoyVlHK>%!3K!)UV0o}noJ2Mu|uijFI92qsd1Ah9T0l#QR}YJS@7 z-eyE)Go;#vw{c5H>`7kyM>1S+66fdpW+R@LaoXG4aS^%6F94GV=)J}~y4 zz6**L7iDE-U8$>QiceQg9mx6rZrftMZn)qa+Kh8KM*E89e|<7cj+o$^+HG5P-|T8} z*M@RH#5jv}uK|raLtWr;sfJ2^kDJM4vfiQG9?^BO5?3G!axT4HvTr4nJu{2AH5^c3 zFmo+((r)JmF@GU0Fs5MBAhC0GBOw6GOv%+>VM;apkM=>ybq#h3zN;pOL**X|^%Ing*7VCoh*;f6e=ZwiLLuL5;= zTRh&!IkR;k@ZmEp5zN~Uao)z8jKXS}dV@qmFm{n=cIZ;W+n9~Z3`I%1?o$kPi#roNHUp z?vF~WOm&SJv2%w-!B*(so)@#Ku9h14*BK3dB`}N`~GuS3!Hisg3y?d2C*?H5E zB&U}Qfyt{*Ms=AL7#)6x<%cS2Mn`ywF5m&9!}@QgEf)j{W%>Pmr_r7R3bF+@Ac9n6 z$lv$*3GBUAc-P%1-`#A2iCr@ecT+sxeXG!pn}2))^R#mzj09?3-#%E-LV~ud1Vuk! zuWS~Wk76}pk}PLnj-<`?+w@^7ddNZRkqY7G@j zVTuoKuH;#_%3Y5e(YX9_(KA34Sj31NBV@*n{1K#?&>UMnkTr2)O$SDk+pdxpEs=-Q zKhL*$D~BR&AD50*`Xii!Ecu!Ux8@qfQq7$)~3Cj8yjPfjc381aWs|*IC<{ z!>6o4by|ugs%8C}KHw)u0uKp}5#nx)IywySk$9``vV|Qocw5)e^>89(783lfp+64R z&m)h6Q?%d)H2%qxtu9+j=?|@g{sf|=i#FcrsQBcLxZtUk?rbB|xlE_7)T~@A!WJO31#_ diff --git a/src/main/resources/assets/hbm/textures/models/machines/electrolyser.png b/src/main/resources/assets/hbm/textures/models/machines/electrolyser.png index 09c84e5ee8dbd9b7f714fb5e8e8c7d3328fd0787..cc54a462239c739f94463b8ea1584e590f8cfed5 100644 GIT binary patch literal 95595 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

    tuHo3e>dcS7tk;2YZKK+;C=6V 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 literal 17310 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 diff --git a/src/main/resources/assets/hbm/textures/models/projectiles/himars_single_lava.png b/src/main/resources/assets/hbm/textures/models/projectiles/himars_single_lava.png new file mode 100644 index 0000000000000000000000000000000000000000..f0b6691690e58720c25ce1cdff28356002008ff4 GIT binary patch literal 1547 zcmeAS@N?(olHy`uVBq!ia0vp^0YJQmgAGW&pRO4Kq*#ibJVQ8upoSx*gMoqdkf)1d zNX4ADbN1%l4wGn$my??`X(@}>vIEYy6_a;u<=A9yeo^`bYl&C;ffpC*X#uk-HmmYtw`NQXXvGV_?Of$Kto_0Ak zXa4pDm-{cgb${_K`On?T{`K>IR^NQL`?Kc0-!BhoZa(+(`}xhg-@U*2+PrV?>r=5Ri(3Y?NYrfKPn!&diAPqB}3Zzv&%OvDCM*%;SFJ0uX$;EXQ*aQEYnS?2r<YCf)uq!63p)NV`#Gt+zrjbGHc7_TL8%Ce+H`uxiw4UE=iQPx0yu zpbNe>&R%kMv6RQ9T`beqHolLy+k2J0?&s(COa0oX`aO7YGP-Bpp4ccmk@x48SKqx? zaUwNCpHs%Rvisir`1i@d*_GvXcV8aKzA5$NdjJ2k({}&e@#XogXx=qioxlC=C{142 zZdj;Rmv6e^70Wv><>!Y=CzkVgsTahB$sT=KlW=%Nt$f6{_<5<>3f^ypBfbXCSo)1q z$NQ$#i~GN~UOAII@s|3AcU$xtS2gl3HsrkXHDis`4TG%t2acNLdQZ;+X=ggU2q+Xa z-Qntiwu`%1R)Ac`+-n3qS4NL<*ZE|}0pK9mY{o4`x$gJ|Rit7xOj>|le z(+(EOL_Ag~i2afGRWxg@=CfT7LrZ>}@85hEq-?RqF^w+4W17n{t%P4lHy==YQ7LA- z{+3_v<7?kbrKkAS|6Km*w#qxD_m@o$6-YfUo}=Iutdhxg-Qq*fLC;4@XFt6PS$br# z*`?Pi?~HQX1A88t99y2*lPIF-lgGlg&T-PS*OKbuQCAD>e)*&XCLLVH>^4J%Z{LAZ?caRv)*U(7p=Mt@_hn!B{ASJh;@-`7*rUX2?emwc zo-ZMAZtz`{&f^q)cxSFVdQ&MBb@0H9P*i)oJdk zCz?#8S6#B&Bz&E>`;=PY=j7*SZ%qDRH%T>m+wsNj_s`TAPm6t39u<6ExBL05N4uB3 zIQHU4NY>u8njFi<8-5Dgik0uL-6u0Q#Ay1@FHcuj{J(vB_0sEeYyN~pg@;*wzFeFZ zHqYx;v%c(A%?E>EY+Oy4O zhP7XJP-Ecd)n8{7|F)XsdP`@gdxDYf&2L{LJtwbPqx9V_U^~Z~@~F#o%T4cosawjF zy*EuKr_4TEQtRWL-EKQp9{FD<@-3#=FDY!|E$)!H?7!AYdf!oz+UlSDNns~jg0=a| z_gC$hK1-FD#d=(fTktMJKj8b$4|`RFPIg}U@aAr~M&Z@o*5(sOFNA&C(B5yW`c$m* zn{Pz9nA-z8w=S(ytA6jPU9R(K{rPSs{Zl8l`%Ysi4Ufn=b^DXF)osuJ^Ae{=NM_xx zI-B`+rHx?UAp;Q(r$&XH`srV-*S>tPX5)uBPgy=aI{bX@tXEI<3JR`GIQ%?((v%F# z#vki6n>BrrenUurhj5>Yo69F9wTElx?4I}M$Kz8wU!PRjqq}It4S4x zTi!4A-oJO_pCa3x^H_q`-V& z?ukr`(`M(KQ&O6i=&?8HRN!K@uU(qc5=BBze_fMvXjPiPNjrVZ4K|xrD=9r{7v0FC zYqq20*^v% SU^6hgFnGH9xvX Date: Sun, 18 Jun 2023 14:30:51 -0700 Subject: [PATCH 086/109] Moved book lores to NBT, so much better --- .../com/hbm/inventory/gui/GUIBookLore.java | 35 ++++++++++---- .../com/hbm/items/special/ItemBookLore.java | 43 ++++++++++++++---- .../java/com/hbm/items/tool/ItemWandD.java | 23 +++++++++- .../assets/hbm/textures/items/book_cover.png | Bin 244 -> 244 bytes 4 files changed, 83 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/hbm/inventory/gui/GUIBookLore.java b/src/main/java/com/hbm/inventory/gui/GUIBookLore.java index 223f49130..ed9779e8c 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIBookLore.java +++ b/src/main/java/com/hbm/inventory/gui/GUIBookLore.java @@ -27,7 +27,7 @@ public class GUIBookLore extends GuiScreen { protected static int sizeX = 272; protected static int sizeY = 182; - protected BookLoreType type; + protected String key; protected NBTTagCompound tag; //judgement @@ -39,19 +39,19 @@ public class GUIBookLore extends GuiScreen { public GUIBookLore(EntityPlayer player) { ItemStack stack = player.getHeldItem(); if(!stack.hasTagCompound()) return; - this.type = BookLoreType.getTypeFromStack(stack); - - if(type == null) return; this.tag = stack.getTagCompound(); + this.key = tag.getString("k"); + if(key.isEmpty()) return; + this.color = tag.getInteger("cov_col"); if(color <= 0) color = 0x303030; - this.maxPage = (int)Math.ceil(type.pages / 2D) - 1; + this.maxPage = (int)Math.ceil(tag.getInteger("p") / 2D) - 1; } @Override public void initGui() { - if(type == null) this.mc.thePlayer.closeScreen(); + if(key == null || key.isEmpty()) this.mc.thePlayer.closeScreen(); this.guiLeft = (this.width - this.sizeX) / 2; this.guiTop = (this.height - this.sizeY) / 2; } @@ -93,13 +93,30 @@ public class GUIBookLore extends GuiScreen { } protected void drawGuiContainerForegroundLayer(int x, int y) { - String key = "book_lore." + type.keyI18n + ".page."; + String k = "book_lore." + key + ".page."; for(int i = 0; i < 2; i++) { int defacto = this.page * 2 + i; //TODO: force i18n to index from 0 instead of 1 - if(defacto < this.type.pages) { - String text = I18nUtil.resolveKey(key + defacto); //TODO tag-based argument formatting + if(defacto < tag.getInteger("p")) { + String text; + NBTTagCompound argTag = tag.getCompoundTag("p" + defacto); + + if(argTag.hasNoTags()) + text = I18nUtil.resolveKey(k + defacto); + else { + List args = new ArrayList(); + int index = 1; + String arg = argTag.getString("a1"); + + while(!arg.isEmpty()) { + args.add(arg); + index++; + arg = argTag.getString("a" + index); + } + + text = I18nUtil.resolveKey(k + defacto, args.toArray()); + } float scale = 1; int width = 100; diff --git a/src/main/java/com/hbm/items/special/ItemBookLore.java b/src/main/java/com/hbm/items/special/ItemBookLore.java index 805b5c7c1..dfdf39c70 100644 --- a/src/main/java/com/hbm/items/special/ItemBookLore.java +++ b/src/main/java/com/hbm/items/special/ItemBookLore.java @@ -2,7 +2,10 @@ package com.hbm.items.special; import java.util.List; +import org.apache.commons.lang3.math.NumberUtils; + import com.hbm.inventory.gui.GUIBookLore; +import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IGUIProvider; @@ -41,20 +44,22 @@ public class ItemBookLore extends Item implements IGUIProvider { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - BookLoreType type = BookLoreType.getTypeFromStack(stack); + if(!stack.hasTagCompound()) return; + String key = stack.stackTagCompound.getString("k"); + if(key.isEmpty()) return; - if(type.hasAuthor) { - String unloc = I18nUtil.resolveKey("book_lore.author", I18nUtil.resolveKey("book_lore." + type.keyI18n + ".author")); - - list.add(unloc); - } + key = "book_lore." + key + ".author"; + String loc = I18nUtil.resolveKey(key); + + list.add(I18nUtil.resolveKey("book_lore.author", loc)); } @Override public String getUnlocalizedName(ItemStack stack) { - BookLoreType type = BookLoreType.getTypeFromStack(stack); + if(!stack.hasTagCompound()) return "book_lore.test"; + String key = stack.stackTagCompound.getString("k"); - return "book_lore." + type.keyI18n; + return "book_lore." + (key.isEmpty() ? "test" : key); } //Textures @@ -116,6 +121,28 @@ public class ItemBookLore extends Item implements IGUIProvider { return new GUIBookLore(player); } + public static ItemStack createBook(String key, int pages, int colorCov, int colorTit) { + ItemStack book = new ItemStack(ModItems.book_lore); + NBTTagCompound tag = new NBTTagCompound(); + tag.setString("k", key); + tag.setShort("p", (short)pages); + tag.setInteger("cov_col", colorCov); + tag.setInteger("tit_col", colorTit); + + book.stackTagCompound = tag; + return book; + } + + public static void addArgs(ItemStack book, int page, String... args) { + if(!book.hasTagCompound()) return; + NBTTagCompound data = new NBTTagCompound(); + for(int i = 0; i < args.length; i++) { + data.setString("a" + (i + 1), args[i]); + } + + book.stackTagCompound.setTag("p" + page, data); + } + //TODO remove this and fix any references public enum BookLoreType { TEST(true, "test", 5), BOOK_IODINE(true, "book_iodine", 3) { diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index 4c80ccab4..7c5d8b9bd 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -2,8 +2,11 @@ package com.hbm.items.tool; import java.util.List; +import com.hbm.crafting.handlers.MKUCraftingHandler; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; +import com.hbm.items.ModItems; +import com.hbm.items.special.ItemBookLore; import com.hbm.lib.Library; import net.minecraft.entity.player.EntityPlayer; @@ -32,7 +35,25 @@ public class ItemWandD extends Item { vnt.setSFX(new ExplosionEffectStandard()); vnt.explode();*/ - PollutionHandler.incrementPollution(world, pos.blockX, pos.blockY, pos.blockZ, PollutionType.SOOT, 15); + MKUCraftingHandler.generateRecipe(world); + ItemStack[] recipe = MKUCraftingHandler.MKURecipe; + + if(recipe == null) //take no chances + return stack; + + int r = 0; + for(int i = 0; i < 9; i++) { + if(recipe[i] != null && recipe[i].getItem() == ModItems.powder_iodine) { + r = i + 1; + } + } + + ItemStack book = ItemBookLore.createBook("book_iodine", 3, 0x4C407A, 0xFFF7C1); + ItemBookLore.addArgs(book, 2, String.valueOf(r)); + player.inventory.addItemStackToInventory(book); + player.inventoryContainer.detectAndSendChanges(); + + //PollutionHandler.incrementPollution(world, pos.blockX, pos.blockY, pos.blockZ, PollutionType.SOOT, 15); /*TimeAnalyzer.startCount("setBlock"); world.setBlock(pos.blockX, pos.blockY, pos.blockZ, Blocks.dirt); diff --git a/src/main/resources/assets/hbm/textures/items/book_cover.png b/src/main/resources/assets/hbm/textures/items/book_cover.png index c073dfceda017919d8407bdab6cc2cfb8d2ceb6b..81dfcd45d21ee5b3d2185e0baa06b572c110a9e4 100644 GIT binary patch delta 32 ocmeyu_=RzTn^;dz&;S4bZ``=Cbm`L4(ozNnh7g&g#ECI803U1+1^@s6 delta 32 qcmV+*0N?-g0rUZoMi#%nzyJUL?d|Q+(b2H5umAu6n47vBkzANZv=Zq6 From 9183ea7d32abc528249b27344e4ccd18338aed6c Mon Sep 17 00:00:00 2001 From: Vaern Date: Sun, 18 Jun 2023 21:58:17 -0700 Subject: [PATCH 087/109] Transfer of item book lores to updated system --- .../com/hbm/items/special/ItemBookLore.java | 12 ++-- .../java/com/hbm/items/tool/ItemWandD.java | 23 ------- .../java/com/hbm/lib/HbmChestContents.java | 40 +++++++---- .../world/gen/component/CivilianFeatures.java | 3 +- .../hbm/world/gen/component/Component.java | 19 +++--- .../world/gen/component/OfficeFeatures.java | 16 +++-- .../generator/room/TestDungeonRoom8.java | 66 +++++++++---------- src/main/resources/assets/hbm/lang/en_US.lang | 4 +- 8 files changed, 84 insertions(+), 99 deletions(-) diff --git a/src/main/java/com/hbm/items/special/ItemBookLore.java b/src/main/java/com/hbm/items/special/ItemBookLore.java index dfdf39c70..ce2564fa3 100644 --- a/src/main/java/com/hbm/items/special/ItemBookLore.java +++ b/src/main/java/com/hbm/items/special/ItemBookLore.java @@ -45,13 +45,13 @@ public class ItemBookLore extends Item implements IGUIProvider { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { if(!stack.hasTagCompound()) return; - String key = stack.stackTagCompound.getString("k"); + String key = stack.stackTagCompound.getString("k"); if(key.isEmpty()) return; key = "book_lore." + key + ".author"; String loc = I18nUtil.resolveKey(key); - - list.add(I18nUtil.resolveKey("book_lore.author", loc)); + if(!loc.equals(key)) + list.add(I18nUtil.resolveKey("book_lore.author", loc)); } @Override @@ -143,7 +143,7 @@ public class ItemBookLore extends Item implements IGUIProvider { book.stackTagCompound.setTag("p" + page, data); } //TODO remove this and fix any references - public enum BookLoreType { + /*public enum BookLoreType { TEST(true, "test", 5), BOOK_IODINE(true, "book_iodine", 3) { public String resolveKey(String key, NBTTagCompound tag) { @@ -192,7 +192,7 @@ public class ItemBookLore extends Item implements IGUIProvider { } /** Function to resolve I18n keys using potential save-dependent information, a la format specifiers. */ - public String resolveKey(String key, NBTTagCompound tag) { + /*public String resolveKey(String key, NBTTagCompound tag) { return I18nUtil.resolveKey(key, tag); } @@ -220,5 +220,5 @@ public class ItemBookLore extends Item implements IGUIProvider { return stack; } - } + }*/ } diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index 7c5d8b9bd..3864a35de 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -2,11 +2,6 @@ package com.hbm.items.tool; import java.util.List; -import com.hbm.crafting.handlers.MKUCraftingHandler; -import com.hbm.handler.pollution.PollutionHandler; -import com.hbm.handler.pollution.PollutionHandler.PollutionType; -import com.hbm.items.ModItems; -import com.hbm.items.special.ItemBookLore; import com.hbm.lib.Library; import net.minecraft.entity.player.EntityPlayer; @@ -35,24 +30,6 @@ public class ItemWandD extends Item { vnt.setSFX(new ExplosionEffectStandard()); vnt.explode();*/ - MKUCraftingHandler.generateRecipe(world); - ItemStack[] recipe = MKUCraftingHandler.MKURecipe; - - if(recipe == null) //take no chances - return stack; - - int r = 0; - for(int i = 0; i < 9; i++) { - if(recipe[i] != null && recipe[i].getItem() == ModItems.powder_iodine) { - r = i + 1; - } - } - - ItemStack book = ItemBookLore.createBook("book_iodine", 3, 0x4C407A, 0xFFF7C1); - ItemBookLore.addArgs(book, 2, String.valueOf(r)); - player.inventory.addItemStackToInventory(book); - player.inventoryContainer.detectAndSendChanges(); - //PollutionHandler.incrementPollution(world, pos.blockX, pos.blockY, pos.blockZ, PollutionType.SOOT, 15); /*TimeAnalyzer.startCount("setBlock"); diff --git a/src/main/java/com/hbm/lib/HbmChestContents.java b/src/main/java/com/hbm/lib/HbmChestContents.java index 3cdf8a771..7dc26a319 100644 --- a/src/main/java/com/hbm/lib/HbmChestContents.java +++ b/src/main/java/com/hbm/lib/HbmChestContents.java @@ -1,17 +1,20 @@ package com.hbm.lib; +import java.util.Random; + import com.hbm.blocks.ModBlocks; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ItemAmmoEnums.Ammo357Magnum; import com.hbm.items.ItemAmmoEnums.AmmoFatman; import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemBreedingRod.*; +import com.hbm.items.machine.ItemBreedingRod.BreedingRodType; import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType; -import com.hbm.items.special.ItemBookLore.BookLoreType; +import com.hbm.items.special.ItemBookLore; import com.hbm.items.tool.ItemBlowtorch; import net.minecraft.init.Items; import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.util.WeightedRandomChestContent; public class HbmChestContents { @@ -407,15 +410,26 @@ public class HbmChestContents { new WeightedRandomChestContent(Items.experience_bottle, 0, 1, 3, 1), }; - /** ITEMBOOKLORE ARRAYS */ - //might make a wrapper class for this, if game-state knowledge using the nbt system becomes that relevant - public final static BookLoreType[] books_office_sch = new BookLoreType[] { - BookLoreType.RESIGNATION_NOTE, - BookLoreType.MEMO_STOCKS, - BookLoreType.MEMO_SCHRAB_GSA, - BookLoreType.MEMO_SCHRAB_RD, - BookLoreType.MEMO_SCHRAB_NUKE, - }; - - + /** ITEMBOOKLORE SHIT */ + //one downside of all this huge flexibility, make a wrapper if it's too annoying + public static ItemStack generateOfficeBook(Random rand) { //TODO rework this lore in general + String key; + int pages; + switch(rand.nextInt(5)) { + case 0: + key = "resignation_note"; pages = 3; break; + case 1: + key = "memo_stocks"; pages = 1; break; + case 2: + key = "memo_schrab_gsa"; pages = 2; break; + case 3: + key = "memo_schrab_rd"; pages = 4; break; + case 4: + key = "memo_schrab_nuke"; pages = 3; break; + default: + return null; + } + + return ItemBookLore.createBook(key, pages, 0x6BC8FF, 0x0A0A0A); + } } diff --git a/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java b/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java index 60190d1c0..26d7faaba 100644 --- a/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java +++ b/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java @@ -568,7 +568,8 @@ public class CivilianFeatures { this.fillWithBlocks(world, box, sizeX - 4, 3, sizeZ - 2, sizeX - 2, 3, sizeZ - 2, ModBlocks.steel_roof, Blocks.air, false); if(!hasPlacedLoot[1]) { this.hasPlacedLoot[1] = this.generateInvContents(world, box, rand, ModBlocks.crate_iron, sizeX - 2, 1, 3, HbmChestContents.nukeTrash, 9); - generateLoreBook(world, box, rand, sizeX - 2, 1, 3, 1, HbmChestContents.books_office_sch); + if(rand.nextInt(2) == 0) + generateLoreBook(world, box, sizeX - 2, 1, 3, 1, HbmChestContents.generateOfficeBook(rand)); } return true; diff --git a/src/main/java/com/hbm/world/gen/component/Component.java b/src/main/java/com/hbm/world/gen/component/Component.java index 9757ab534..8ffa1292e 100644 --- a/src/main/java/com/hbm/world/gen/component/Component.java +++ b/src/main/java/com/hbm/world/gen/component/Component.java @@ -8,9 +8,8 @@ import com.hbm.blocks.generic.BlockBobble.BobbleType; import com.hbm.blocks.generic.BlockBobble.TileEntityBobble; import com.hbm.config.StructureConfig; import com.hbm.handler.MultiblockHandlerXR; -import com.hbm.items.ModItems; -import com.hbm.items.special.ItemBookLore.BookLoreType; import com.hbm.tileentity.machine.TileEntityLockableBase; + import net.minecraft.block.Block; import net.minecraft.block.BlockWeb; import net.minecraft.block.material.Material; @@ -267,7 +266,7 @@ abstract public class Component extends StructureComponent { case 2: //North dirMeta ^= 2; break; //Flip second bit case 3: //East - dirMeta = Math.abs(dirMeta - 1) % 4; break; //fuck you modulo + dirMeta = (dirMeta + 3) % 4; break; //fuck you modulo } //hee hoo @@ -383,7 +382,7 @@ abstract public class Component extends StructureComponent { int posY = this.getYWithOffset(featureY); int posZ = this.getZWithOffset(featureX, featureZ); - if(world.getBlock(posX, posY, posZ) == block) //replacement for hasPlacedLoot checks + if(!box.isVecInside(posX, posY, posZ) || world.getBlock(posX, posY, posZ) == block) //replacement for hasPlacedLoot checks return true; this.placeBlockAtCurrentPosition(world, block, meta, featureX, featureY, featureZ, box); @@ -414,7 +413,7 @@ abstract public class Component extends StructureComponent { int posY = this.getYWithOffset(featureY); int posZ = this.getZWithOffset(featureX, featureZ); - if(world.getBlock(posX, posY, posZ) == block) //replacement for hasPlacedLoot checks + if(!box.isVecInside(posX, posY, posZ) || world.getBlock(posX, posY, posZ) == block) //replacement for hasPlacedLoot checks return false; this.placeBlockAtCurrentPosition(world, block, meta, featureX, featureY, featureZ, box); @@ -435,19 +434,17 @@ abstract public class Component extends StructureComponent { return false; } - protected void generateLoreBook(World world, StructureBoundingBox box, Random rand, int featureX, int featureY, int featureZ, int slot, BookLoreType[] books) { + protected void generateLoreBook(World world, StructureBoundingBox box, int featureX, int featureY, int featureZ, int slot, ItemStack stack) { //kept for compat int posX = this.getXWithOffset(featureX, featureZ); int posY = this.getYWithOffset(featureY); int posZ = this.getZWithOffset(featureX, featureZ); + if(!box.isVecInside(posX, posY, posZ)) return; + IInventory inventory = (IInventory) world.getTileEntity(posX, posY, posZ); if(inventory != null) { - ItemStack book = new ItemStack(ModItems.book_lore); - int i = rand.nextInt(books.length); - - BookLoreType.setTypeForStack(book, books[i]); - inventory.setInventorySlotContents(slot, book); + inventory.setInventorySlotContents(slot, stack); } } diff --git a/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java b/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java index 3a3549106..e4a96eabb 100644 --- a/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java +++ b/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java @@ -201,7 +201,7 @@ public class OfficeFeatures { randomlyFillWithBlocks(world, box, rand, 0.25F, 10, 3, 7, sizeX - 1, 3, sizeZ - 1, Blocks.web); //Doors placeDoor(world, box, ModBlocks.door_office, 3, false, rand.nextBoolean(), 2, 1, 7); - placeDoor(world, box, ModBlocks.door_office, 3, false, rand.nextBoolean(), 3, 1, 7); + placeDoor(world, box, ModBlocks.door_office, 3, true, rand.nextBoolean(), 3, 1, 7); placeDoor(world, box, ModBlocks.door_office, 0, false, rand.nextBoolean(), 5, 1, 6); //Woot @@ -209,7 +209,8 @@ public class OfficeFeatures { this.hasPlacedLoot[0] = generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), sizeX - 4, 1, sizeZ - 1, HbmChestContents.officeTrash, 8); if(!this.hasPlacedLoot[1]) { this.hasPlacedLoot[1] = generateLockableContents(world, box, rand, ModBlocks.safe, getDecoMeta(3), 6, 1, 1, HbmChestContents.machineParts, 10, 0.5D); - generateLoreBook(world, box, rand, 6, 1, 1, 7, HbmChestContents.books_office_sch); + if(rand.nextInt(2) == 0) + generateLoreBook(world, box, 6, 1, 1, 7, HbmChestContents.generateOfficeBook(rand)); } //0b00/0 West, 0b01/1 East, 0b10/2 North, 0b11/3 South, 0b100/4 West UD, 0b101 East UD, 0b110 North UD, 0b111 South UD @@ -431,12 +432,12 @@ public class OfficeFeatures { placeDoor(world, box, Blocks.wooden_door, 3, true, rand.nextBoolean(), 2, 1, 14); placeDoor(world, box, Blocks.wooden_door, 0, false, rand.nextBoolean(), 0, 1, 12); placeDoor(world, box, Blocks.wooden_door, 0, true, rand.nextBoolean(), 0, 1, 13); - placeDoor(world, box, ModBlocks.door_office, 0, false, rand.nextBoolean(), 6, 1, 3); - placeDoor(world, box, ModBlocks.door_office, 0, false, rand.nextBoolean(), 5, 5, 3); + placeDoor(world, box, ModBlocks.door_office, 3, false, rand.nextBoolean(), 6, 1, 3); + placeDoor(world, box, ModBlocks.door_office, 3, false, rand.nextBoolean(), 5, 5, 3); placeDoor(world, box, ModBlocks.door_office, 2, false, rand.nextBoolean(), 4, 5, 11); - placeDoor(world, box, ModBlocks.door_office, 0, false, rand.nextBoolean(), 10, 9, 3); + placeDoor(world, box, ModBlocks.door_office, 3, false, rand.nextBoolean(), 10, 9, 3); placeDoor(world, box, ModBlocks.door_office, 1, false, rand.nextBoolean(), 3, 9, 10); - placeDoor(world, box, ModBlocks.door_metal, 0, false, rand.nextBoolean(), 5, 13, 3); + placeDoor(world, box, ModBlocks.door_metal, 3, false, rand.nextBoolean(), 5, 13, 3); //Furniture //Floor 1 int NorthStairMeta = getStairMeta(2); @@ -533,7 +534,8 @@ public class OfficeFeatures { generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 2, 9, 5, HbmChestContents.filingCabinet, 4); generateLockableContents(world, box, rand, ModBlocks.safe, getDecoMeta(2), 1, 9, 13, HbmChestContents.officeTrash, 10, 1.0D); - generateLoreBook(world, box, rand, 1, 9, 13, 7, HbmChestContents.books_office_sch); + if(rand.nextInt(2) == 0) + generateLoreBook(world, box, 1, 9, 13, 7, HbmChestContents.generateOfficeBook(rand)); generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 2, 9, 13, HbmChestContents.filingCabinet, 4); generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 3, 9, 13, HbmChestContents.filingCabinet, 4); diff --git a/src/main/java/com/hbm/world/generator/room/TestDungeonRoom8.java b/src/main/java/com/hbm/world/generator/room/TestDungeonRoom8.java index 59d68d846..3f02d6cf0 100644 --- a/src/main/java/com/hbm/world/generator/room/TestDungeonRoom8.java +++ b/src/main/java/com/hbm/world/generator/room/TestDungeonRoom8.java @@ -3,7 +3,7 @@ package com.hbm.world.generator.room; import com.hbm.blocks.ModBlocks; import com.hbm.crafting.handlers.MKUCraftingHandler; import com.hbm.items.ModItems; -import com.hbm.items.special.ItemBookLore.BookLoreType; +import com.hbm.items.special.ItemBookLore; import com.hbm.tileentity.machine.storage.TileEntitySafe; import com.hbm.world.generator.CellularDungeon; import com.hbm.world.generator.CellularDungeonRoom; @@ -53,7 +53,7 @@ public class TestDungeonRoom8 extends CellularDungeonRoom { if(r == 0) ((TileEntitySafe)world.getTileEntity(x + parent.width / 2, y + 2, z + parent.width / 2)).setInventorySlotContents(7, new ItemStack(ModItems.book_of_)); else if(r < 4) - ((TileEntitySafe)world.getTileEntity(x + parent.width / 2, y + 2, z + parent.width / 2)).setInventorySlotContents(7, generateMKU(world)); + ((TileEntitySafe)world.getTileEntity(x + parent.width / 2, y + 2, z + parent.width / 2)).setInventorySlotContents(7, generateBook(world)); else ((TileEntitySafe)world.getTileEntity(x + parent.width / 2, y + 2, z + parent.width / 2)).setInventorySlotContents(7, new ItemStack(Items.book)); } @@ -61,57 +61,51 @@ public class TestDungeonRoom8 extends CellularDungeonRoom { } } - public static ItemStack generateMKU(World world) { - ItemStack book = new ItemStack(ModItems.book_lore); - int i = world.rand.nextInt(books.length); - - BookLoreType.setTypeForStack(book, books[i]); - book.stackTagCompound.setInteger("mku_slot", getSlot(world, books[i])); - - return book; - } - - public static int getSlot(World world, BookLoreType type) { - + public static ItemStack generateBook(World world) { MKUCraftingHandler.generateRecipe(world); ItemStack[] recipe = MKUCraftingHandler.MKURecipe; + if(recipe == null) return new ItemStack(ModItems.flame_pony); + + String key; + int pages; Item item; - //fucking kill me - switch(type) { - case BOOK_DUST: - item = ModItems.dust; break; - case BOOK_FLOWER: - item = ModItems.morning_glory; break; - case BOOK_IODINE: + switch(world.rand.nextInt(6)) { + case 0: + key = "book_iodine"; pages = 3; item = ModItems.powder_iodine; break; - case BOOK_MERCURY: - item = ModItems.ingot_mercury; break; - case BOOK_PHOSPHOROUS: + case 1: + key = "book_phosphorous"; pages = 2; item = ModItems.powder_fire; break; - case BOOK_SYRINGE: + case 2: + key = "book_dust"; pages = 3; + item = ModItems.dust; break; + case 3: + key = "book_mercury"; pages = 2; + item = ModItems.ingot_mercury; break; + case 4: + key = "book_flower"; pages = 2; + item = ModItems.morning_glory; break; + case 5: + key = "book_syringe"; pages = 2; item = ModItems.syringe_metal_empty; break; default: - item = ModItems.nothing; break; + return new ItemStack(ModItems.flame_pony); } - if(recipe == null) //take no chances - return -2; - + int s = 1; for(int i = 0; i < 9; i++) { - if(recipe[i] != null && recipe[i].getItem() == item) { - return i + 1; + s = i + 1; break; } } - return -1; + ItemStack book = ItemBookLore.createBook(key, pages, 0x271E44, 0xFBFFF4); + ItemBookLore.addArgs(book, pages - 1, String.valueOf(s)); + + return book; } - private final static BookLoreType[] books = new BookLoreType[] { - BookLoreType.BOOK_IODINE, BookLoreType.BOOK_PHOSPHOROUS, BookLoreType.BOOK_DUST, BookLoreType.BOOK_MERCURY, BookLoreType.BOOK_FLOWER, BookLoreType.BOOK_SYRINGE - }; - /*public static ItemStack genetateMKU(World world) { ItemStack book = new ItemStack(Items.written_book); diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 539596cf5..92746c9ce 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -321,8 +321,8 @@ book.starter.page18=vær is just a guy who has been trapped in the grey void fea #book.rbmk.page16=§4§lAvoid. book_lore.author=By %s -book_lore.test.name=Test -book_lore.test.author=the dude +book_lore.test.name=this book doesn't work... +book_lore.test.author=me i trolled you hehe :3c book_lore.test.page.0=>hello anons before i begin let me clarify that i'm not gay. >Be me >This night >18 > At hanging out with my best friend with my parents gone for a few days >We've been best friends for a year now >Been drinking a bit and playing lots of video games and ordered a pizza >We were having a blast >At a certain point in the night like around 9:00 he makes a really funny joke that I don't remember but I know that it made us both laugh really hard > With out thinking I brush my right hand through his semi-curly black hair and call him a funny boy >He blushes >I realize I'm feeling flustered >We're kinda close >All of the sudden he kisses me and for some reason I kiss him back >We make love >Cuddle together and fall asleep >Wake up in the middle of the night with his head snuggled up on my chest and neck area >It feels nice but I'm not a homosexual book_lore.test.page.1=I'm typing this as he's asleep in my arms. How do I let my best friend down nicely? I don't want to be a [redacted] /b/ book_lore.test.page.2=3 From f17a1280d71fe16bb8efb23275335e96b8cf392d Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 19 Jun 2023 16:22:03 +0200 Subject: [PATCH 088/109] welded fusion reactor magnets --- src/main/java/com/hbm/blocks/ModBlocks.java | 4 +- .../blocks/generic/BlockToolConversion.java | 3 + .../generic/BlockToolConversionPillar.java | 48 +++++++++++ .../com/hbm/blocks/machine/MachineITER.java | 31 +++++--- .../hbm/handler/nei/ConstructionHandler.java | 11 +-- .../com/hbm/inventory/OreDictManager.java | 3 + .../inventory/recipes/AssemblerRecipes.java | 2 +- .../tileentity/RenderITERMultiblock.java | 75 +++++++----------- .../machine/TileEntityITERStruct.java | 3 +- src/main/resources/assets/hbm/lang/de_DE.lang | 3 + src/main/resources/assets/hbm/lang/en_US.lang | 3 + .../textures/blocks/fusion_conductor_side.png | Bin 336 -> 164 bytes .../blocks/fusion_conductor_side_alt.png | Bin 164 -> 0 bytes .../blocks/fusion_conductor_side_alt2.png | Bin 333 -> 0 bytes .../blocks/fusion_conductor_side_alt3.png | Bin 513 -> 0 bytes .../blocks/fusion_conductor_side_welded.png | Bin 0 -> 469 bytes ...r_top_alt.png => fusion_conductor_top.png} | Bin .../blocks/fusion_conductor_top_welded.png | Bin 0 -> 708 bytes 18 files changed, 118 insertions(+), 68 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/generic/BlockToolConversionPillar.java delete mode 100644 src/main/resources/assets/hbm/textures/blocks/fusion_conductor_side_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/fusion_conductor_side_alt2.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/fusion_conductor_side_alt3.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/fusion_conductor_side_welded.png rename src/main/resources/assets/hbm/textures/blocks/{fusion_conductor_top_alt.png => fusion_conductor_top.png} (100%) create mode 100644 src/main/resources/assets/hbm/textures/blocks/fusion_conductor_top_welded.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index e745ad561..ea756421d 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -2016,7 +2016,7 @@ public class ModBlocks { reactor_conductor = new BlockPillar(Material.iron, RefStrings.MODID + ":reactor_conductor_top").setBlockName("reactor_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":reactor_conductor_side"); reactor_computer = new ReactorCore(Material.iron).setBlockName("reactor_computer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":reactor_computer"); - fusion_conductor = new BlockPillar(Material.iron, RefStrings.MODID + ":fusion_conductor_top_alt").setBlockName("fusion_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_conductor_side_alt"); + fusion_conductor = new BlockToolConversionPillar(Material.iron).addVariant("_welded").setBlockName("fusion_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_conductor"); fusion_center = new BlockPillar(Material.iron, RefStrings.MODID + ":fusion_center_top_alt").setBlockName("fusion_center").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_center_side_alt"); fusion_motor = new BlockPillar(Material.iron, RefStrings.MODID + ":fusion_motor_top_alt").setBlockName("fusion_motor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_motor_side_alt"); fusion_heater = new BlockPillar(Material.iron, RefStrings.MODID + ":fusion_heater_top").setBlockName("fusion_heater").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_heater_side"); @@ -3327,7 +3327,7 @@ public class ModBlocks { GameRegistry.registerBlock(reactor_conductor, reactor_conductor.getUnlocalizedName()); GameRegistry.registerBlock(reactor_computer, reactor_computer.getUnlocalizedName()); - GameRegistry.registerBlock(fusion_conductor, fusion_conductor.getUnlocalizedName()); + register(fusion_conductor); GameRegistry.registerBlock(fusion_center, fusion_center.getUnlocalizedName()); GameRegistry.registerBlock(fusion_motor, fusion_motor.getUnlocalizedName()); GameRegistry.registerBlock(fusion_heater, fusion_heater.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockToolConversion.java b/src/main/java/com/hbm/blocks/generic/BlockToolConversion.java index 582db2d18..a4c146f6a 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockToolConversion.java +++ b/src/main/java/com/hbm/blocks/generic/BlockToolConversion.java @@ -8,9 +8,11 @@ import java.util.Map.Entry; import com.hbm.blocks.BlockMulti; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.OreDictManager; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.MetaBlock; +import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.items.ModItems; import com.hbm.util.I18nUtil; import com.hbm.util.InventoryUtil; @@ -150,6 +152,7 @@ public class BlockToolConversion extends BlockMulti implements IToolable, ILookO public static void registerRecipes() { conversions.put(new Pair(ToolType.BOLT, new MetaBlock(ModBlocks.watz_end, 0)), new Pair(new AStack[] {new ComparableStack(ModItems.bolt_dura_steel, 4)}, new MetaBlock(ModBlocks.watz_end, 1))); + conversions.put(new Pair(ToolType.TORCH, new MetaBlock(ModBlocks.fusion_conductor, 0)), new Pair(new AStack[] {new OreDictStack(OreDictManager.STEEL.plateCast())}, new MetaBlock(ModBlocks.fusion_conductor, 1))); } public static HashMap bufferedRecipes = new HashMap(); diff --git a/src/main/java/com/hbm/blocks/generic/BlockToolConversionPillar.java b/src/main/java/com/hbm/blocks/generic/BlockToolConversionPillar.java new file mode 100644 index 000000000..630437faa --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockToolConversionPillar.java @@ -0,0 +1,48 @@ +package com.hbm.blocks.generic; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.util.IIcon; + +public class BlockToolConversionPillar extends BlockToolConversion { + + public IIcon[] topIcons; + public IIcon topIcon; + + public BlockToolConversionPillar(Material mat) { + super(mat); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + + this.blockIcon = iconRegister.registerIcon(this.getTextureName() + "_side"); + this.topIcon = iconRegister.registerIcon(this.getTextureName() + "_top"); + + if(names != null) { + icons = new IIcon[names.length]; + topIcons = new IIcon[names.length]; + + for(int i = 0; i < names.length; i++) { + icons[i] = iconRegister.registerIcon(getTextureName() + "_side" + names[i]); + topIcons[i] = iconRegister.registerIcon(getTextureName() + "_top" + names[i]); + } + } + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + + metadata -= 1; + + if(metadata == -1 || icons == null || metadata >= icons.length) { + return side == 0 || side == 1 ? topIcon : blockIcon; + } + + return side == 0 || side == 1 ? topIcons[metadata] : icons[metadata]; + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineITER.java b/src/main/java/com/hbm/blocks/machine/MachineITER.java index 98b8f30e3..f049e058f 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineITER.java +++ b/src/main/java/com/hbm/blocks/machine/MachineITER.java @@ -4,6 +4,8 @@ import java.util.Random; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.material.Mats; +import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityITER; @@ -241,20 +243,23 @@ public class MachineITER extends BlockDummyable { @Override public void breakBlock(World world, int x, int y, int z, Block block, int i) { - - if(i >= 12 && drop) { - - for(int l = 0; l < 4; l++) - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.fusion_conductor, 64))); - - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.fusion_conductor, 36))); - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.fusion_center, 64))); - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.fusion_motor, 4))); - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.reinforced_glass, 8))); - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.struct_iter_core, 1))); - } + + if(i >= 12 && drop) { + + for(int l = 0; l < 4; l++) { + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.fusion_conductor, 64))); + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.plate_cast, 64, Mats.MAT_STEEL.id))); + } + + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.fusion_conductor, 36))); + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.plate_cast, 36, Mats.MAT_STEEL.id))); + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.fusion_center, 64))); + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.fusion_motor, 4))); + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.reinforced_glass, 8))); + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.struct_iter_core, 1))); + } super.breakBlock(world, x, y, z, block, i); - } + } } diff --git a/src/main/java/com/hbm/handler/nei/ConstructionHandler.java b/src/main/java/com/hbm/handler/nei/ConstructionHandler.java index 240ad58af..557a71163 100644 --- a/src/main/java/com/hbm/handler/nei/ConstructionHandler.java +++ b/src/main/java/com/hbm/handler/nei/ConstructionHandler.java @@ -3,6 +3,7 @@ package com.hbm.handler.nei; import java.util.HashMap; import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.material.Mats; import com.hbm.items.ModItems; import com.hbm.util.ItemStackUtil; @@ -45,13 +46,13 @@ public class ConstructionHandler extends NEIUniversalHandler { /* ITER */ ItemStack[] iter = new ItemStack[] { new ItemStack(ModBlocks.fusion_conductor, 36), - new ItemStack(ModBlocks.fusion_conductor, 64), - new ItemStack(ModBlocks.fusion_conductor, 64), - new ItemStack(ModBlocks.fusion_conductor, 64), - new ItemStack(ModBlocks.fusion_conductor, 64), + ItemStackUtil.addTooltipToStack(new ItemStack(ModBlocks.fusion_conductor, 320), EnumChatFormatting.RED + "5x64"), + new ItemStack(ModItems.plate_cast, 36, Mats.MAT_STEEL.id), + ItemStackUtil.addTooltipToStack(new ItemStack(ModItems.plate_cast, 320, Mats.MAT_STEEL.id), EnumChatFormatting.RED + "5x64"), new ItemStack(ModBlocks.fusion_center, 64), new ItemStack(ModBlocks.fusion_motor, 4), - new ItemStack(ModBlocks.reinforced_glass, 8)}; + new ItemStack(ModBlocks.reinforced_glass, 8), + new ItemStack(ModItems.blowtorch)}; bufferedRecipes.put(iter, new ItemStack(ModBlocks.iter)); bufferedTools.put(iter, new ItemStack(ModBlocks.struct_iter_core)); diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index c6d7d5e5a..69e41bd65 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -92,6 +92,7 @@ public class OreDictManager { public static final String KEY_TOOL_SCREWDRIVER = "ntmscrewdriver"; public static final String KEY_TOOL_HANDDRILL = "ntmhanddrill"; public static final String KEY_TOOL_CHEMISTRYSET = "ntmchemistryset"; + public static final String KEY_TOOL_TORCH = "ntmtorch"; public static final String KEY_CIRCUIT_BISMUTH = "circuitVersatile"; @@ -482,6 +483,8 @@ public class OreDictManager { OreDictionary.registerOre(KEY_TOOL_HANDDRILL, new ItemStack(hand_drill_desh, 1, OreDictionary.WILDCARD_VALUE)); OreDictionary.registerOre(KEY_TOOL_CHEMISTRYSET, new ItemStack(chemistry_set, 1, OreDictionary.WILDCARD_VALUE)); OreDictionary.registerOre(KEY_TOOL_CHEMISTRYSET, new ItemStack(chemistry_set_boron, 1, OreDictionary.WILDCARD_VALUE)); + OreDictionary.registerOre(KEY_TOOL_TORCH, new ItemStack(blowtorch, 1, OreDictionary.WILDCARD_VALUE)); + OreDictionary.registerOre(KEY_TOOL_TORCH, new ItemStack(acetylene_torch, 1, OreDictionary.WILDCARD_VALUE)); /* * CIRCUITS diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 818f2b000..38ae7cf5b 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -293,7 +293,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.machine_turbinegas, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 4), new ComparableStack(ModItems.hull_small_steel, 6), new ComparableStack(ModItems.generator_steel, 2), new ComparableStack(ModItems.bolt_compound, 4), new ComparableStack(ModBlocks.steel_scaffold, 8), new ComparableStack(ModBlocks.deco_pipe_quad, 4), new ComparableStack(ModItems.turbine_tungsten, 3), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.ingot_rubber, 4), new ComparableStack(ModItems.circuit_red_copper, 3)}, 600); makeRecipe(new ComparableStack(ModBlocks.machine_teleporter, 1), new AStack[] {new OreDictStack(TI.ingot(), 8), new OreDictStack(ALLOY.plate528(), 12), new ComparableStack(ModItems.wire_gold, 32), new ComparableStack(ModItems.entanglement_kit, 1), new ComparableStack(ModBlocks.machine_battery, 1) },300); makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_transmutator, 1), new AStack[] {new OreDictStack(MAGTUNG.ingot(), 1), new OreDictStack(TI.ingot(), 24), new OreDictStack(ALLOY.plate(), 18), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModItems.plate_desh, 6), new OreDictStack(RUBBER.ingot(), 8), new ComparableStack(ModBlocks.machine_battery, 5), new ComparableStack(ModItems.circuit_gold, 5), },500); - makeRecipe(new ComparableStack(ModBlocks.fusion_conductor, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new ComparableStack(ModItems.coil_advanced_alloy, 5), },150); + makeRecipe(new ComparableStack(ModBlocks.fusion_conductor, 1), new AStack[] {new ComparableStack(ModItems.coil_advanced_alloy, 5), }, 100); makeRecipe(new ComparableStack(ModBlocks.fusion_center, 1), new AStack[] {new OreDictStack(ANY_HARDPLASTIC.ingot(), 4), new OreDictStack(STEEL.plate528(), 6), new ComparableStack(ModItems.wire_advanced_alloy, 24), },200); makeRecipe(new ComparableStack(ModBlocks.fusion_motor, 1), new AStack[] {new OreDictStack(TI.ingot(), 4), new OreDictStack(STEEL.ingot(), 2), new ComparableStack(ModItems.motor, 4), },250); makeRecipe(new ComparableStack(ModBlocks.fusion_heater, 1), new AStack[] {new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate528(), 2), new OreDictStack(OreDictManager.getReflector(), 2), new OreDictStack(CU.plate(), 4), new ComparableStack(ModItems.magnetron, 1), new ComparableStack(ModItems.wire_advanced_alloy, 4), },150); diff --git a/src/main/java/com/hbm/render/tileentity/RenderITERMultiblock.java b/src/main/java/com/hbm/render/tileentity/RenderITERMultiblock.java index 225cddd2c..c4cad00da 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderITERMultiblock.java +++ b/src/main/java/com/hbm/render/tileentity/RenderITERMultiblock.java @@ -3,14 +3,12 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; import com.hbm.blocks.ModBlocks; -import com.hbm.render.util.IconUtil; import com.hbm.render.util.SmallBlockPronter; import com.hbm.tileentity.machine.TileEntityITERStruct; -import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; public class RenderITERMultiblock extends TileEntitySpecialRenderer { @@ -19,50 +17,35 @@ public class RenderITERMultiblock extends TileEntitySpecialRenderer { GL11.glPushMatrix(); - GL11.glTranslatef((float)x, (float)y, (float)z); + GL11.glTranslated(x, y, z); + + bindTexture(TextureMap.locationBlocksTexture); + SmallBlockPronter.startDrawing(); + + int[][][] layout = TileEntityITERStruct.layout; + + for(int iy = -2; iy <= 2; iy++) { + int iny = 2 - Math.abs(iy); + + for(int ix = 0; ix < layout[0].length; ix++) { + for(int iz = 0; iz < layout[0][0].length; iz++) { + + int block = layout[iny][ix][iz]; + + switch(block) { + case 0: + continue; + case 1: SmallBlockPronter.drawSmolBlockAt(ModBlocks.fusion_conductor, 1, ix - 7F, iy + 2, iz - 7F); break; + case 2: SmallBlockPronter.drawSmolBlockAt(ModBlocks.fusion_center, 0, ix - 7F, iy + 2, iz - 7F); break; + case 3: SmallBlockPronter.drawSmolBlockAt(ModBlocks.fusion_motor, 0, ix - 7F, iy + 2, iz - 7F); break; + case 4: SmallBlockPronter.drawSmolBlockAt(ModBlocks.reinforced_glass, 0, ix - 7F, iy + 2, iz - 7F); break; + } + } + } + } + + SmallBlockPronter.draw(); - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL11.GL_CULL_FACE); - OpenGlHelper.glBlendFunc(770, 771, 1, 0); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 0.75F); - GL11.glDisable(GL11.GL_ALPHA_TEST); - GL11.glDepthMask(false); - - ResourceLocation magnet = IconUtil.getTextureFromBlockAndSide(ModBlocks.fusion_conductor, 2); - ResourceLocation solenoid = IconUtil.getTextureFromBlockAndSide(ModBlocks.fusion_center, 2); - ResourceLocation motor = IconUtil.getTextureFromBlock(ModBlocks.fusion_motor); - ResourceLocation glass = IconUtil.getTextureFromBlock(ModBlocks.reinforced_glass); - - int[][][] layout = TileEntityITERStruct.layout; - - for(int iy = -2; iy <= 2; iy ++) { - - int iny = 2 - Math.abs(iy); - - for(int ix = 0; ix < layout[0].length; ix++) { - - for(int iz = 0; iz < layout[0][0].length; iz++) { - - int block = layout[iny][ix][iz]; - - switch(block) { - case 0: continue; - case 1: bindTexture(magnet); break; - case 2: bindTexture(solenoid); break; - case 3: bindTexture(motor); break; - case 4: bindTexture(glass); break; - } - - SmallBlockPronter.renderSmolBlockAt(ix - 6F, iy + 3, iz - 7F); - } - } - } - - GL11.glDisable(GL11.GL_BLEND); - GL11.glEnable(GL11.GL_ALPHA_TEST); - GL11.glDepthMask(true); - - GL11.glEnable(GL11.GL_LIGHTING); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityITERStruct.java b/src/main/java/com/hbm/tileentity/machine/TileEntityITERStruct.java index 530de6de6..901cc4195 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityITERStruct.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityITERStruct.java @@ -151,9 +151,10 @@ public class TileEntityITERStruct extends TileEntity { int b = layout[ly][x][z]; Block block = worldObj.getBlock(xCoord + x - width, yCoord + y, zCoord + z - width); + int meta = worldObj.getBlockMetadata(xCoord + x - width, yCoord + y, zCoord + z - width); switch(b) { - case 1: if(block != ModBlocks.fusion_conductor) { return; } break; + case 1: if(block != ModBlocks.fusion_conductor || meta != 1) { return; } break; case 2: if(block != ModBlocks.fusion_center) { return; } break; case 3: if(block != ModBlocks.fusion_motor) { return; } break; case 4: if(block != ModBlocks.reinforced_glass) { return; } break; diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 6ea95cce7..0058e4be6 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -3808,6 +3808,7 @@ tile.furnace_steel.name=Stahlofen tile.furnace_steel.desc=Sehr großer Ofen mit Produktionsboni.$Benötigt externe Hitzequelle.$Wärmetransferrate: ΔT*0.05 TU/t$(Δ heißt Differenz, T heißt Temparatur) tile.fusion_center.name=Zentralmagnetstück tile.fusion_conductor.name=Supraleiter-Magnet +tile.fusion_conductor_welded.name=Supraleiter-Magnet (Verschweißt) tile.fusion_core.name=Fusionsreaktorsteuerung tile.fusion_hatch.name=Fusionsreaktorzugriffsluke tile.fusion_heater.name=Plasmaerhitzer-Komponente @@ -3839,6 +3840,8 @@ tile.glass_polonium.name=Poloniumglas tile.glass_quartz.name=Quarzglas tile.glass_trinitite.name=Trinity-Glas tile.glass_uranium.name=Uranglas +tile.glyphid_base.name=Glyphidnest +tile.glyphid_spawner.name=Glyphidnest-Spawner tile.gneiss_brick.name=Schieferziegel tile.gneiss_chiseled.name=Gemeißelter Schiefer tile.gneiss_tile.name=Schieferfliese diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index cec6b2cbc..9c60416ef 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -4631,6 +4631,7 @@ tile.furnace_steel.name=Steel Furnace tile.furnace_steel.desc=Very large furnace that can provide bonus items$when smelting ores. Requires external heat source.$Heat transfer rate: ΔT*0.05 TU/t$(Δ means difference and T means temperature) tile.fusion_center.name=Central Magnet Piece tile.fusion_conductor.name=Superconducting Magnet +tile.fusion_conductor_welded.name=Superconducting Magnet (Welded) tile.fusion_core.name=Fusion Reactor Control tile.fusion_hatch.name=Duct Deco Block tile.fusion_heater.name=Plasma Heater Component @@ -4662,6 +4663,8 @@ tile.glass_polonium.name=Polonium Glass tile.glass_quartz.name=Quartz Glass tile.glass_trinitite.name=Trinity Glass tile.glass_uranium.name=Uranium Glass +tile.glyphid_base.name=Glyphid Hive Block +tile.glyphid_spawner.name=Glyphid Hive Spawner tile.gneiss_brick.name=Schist Brick tile.gneiss_chiseled.name=Chiseled Schist tile.gneiss_tile.name=Schist Tile diff --git a/src/main/resources/assets/hbm/textures/blocks/fusion_conductor_side.png b/src/main/resources/assets/hbm/textures/blocks/fusion_conductor_side.png index 1db5c40d086da7ab943195e12a4fd3e6f5a66b99..82452e86d314c8ce1aac16694daa05cdcfc5848f 100644 GIT binary patch delta 147 zcmcb>w1jbjWIY=L1B3kM|A|0~rP#?cgaZg_I8r)*{Af=X#}JF&}w!{Ch@wcKn<1@OA%xo=eki y@x%+Cxi#TRLm;youY?ZJPXE73+n%2-lH&o|!{F)a=d#Wzp$PzPB|W78 delta 320 zcmV-G0l)sF0nh@F8Gix*005AYXf^-<00d`2O+f$vv5yP-@iQc1u;B;Cmw*{3Nkts-x1n1zg zEE~tM@B6On5IKrr7$}wQ!-lzhX`1TI017LpG(J!T2Kvl@`o2%qm_Yv(Qpzve!aR3w SNbq(50000ciANfSfpk8fad!aRol?rfgnLSt%Z0x00UFDakVMY8adbQ$n-=(dMS9=s`)#AI zP1489G7j#btL*+qT3Qan1pd=Q++f zPNx&9iua!5@rVy0P*oK%MnVXP2;O^QjF=hDIm`?ZNpq@-hyb7fW=7k#=|czsGwT=C%=Bxaq{fpH8W196W?F|877BPL-2?{{di(Fn-M}l%d)%+aSkvB@#rA%e_WO& zItno}M0HpoiDP`skIK<{7-?3pAH zNgTpsPTtzKWjdYmW%p{32!kND}`XAXx0-g{)RSXf=xhzRrfoa^=a;xTnym$)oT zw%aW+Myjg9>tG&Wv)QDr0c2UmD0v(rLZ0WTkd|dhmSyQ&F7<#NG$ z-|uj}UbEltfxcy%reQLfaJ$`7)iDu3Q4};yliK_*MWHxFl%rLt00000NkvXXu0mjf D86fEo diff --git a/src/main/resources/assets/hbm/textures/blocks/fusion_conductor_side_welded.png b/src/main/resources/assets/hbm/textures/blocks/fusion_conductor_side_welded.png new file mode 100644 index 0000000000000000000000000000000000000000..adbd7c637c7c81a77b96167a7329d3cbe95746c7 GIT binary patch literal 469 zcmV;`0V@89P)Aq2el-=nI85OB_+s)z`;+l@F)6CzT8loBbWLZ+%ErfI@ChjWgU5+d?Z zpsD~EnHA)mNhy(YE@8O{FdX^>$NsbL)*5DdOEh!~J2n8R< z@#BGYj4_r~&EM8@Ee`dhp`O6mUknirdo zKFR+(NcrvS9}tn1f*2zY`#sXHe&WIR52&o=U5q5(K4%#t=c?4-)qHS{SMT4myE#Kd zP*pmOoXOyb&%XJYySqD#F@z9k)P)eJs){_%nNFvi|9y!(`H~nT9T6eM$f8g>)?$o7 zRq@_amL+vv6GEUYORB0Ogg|#~HSieYY6hyxrMqU?+uI{eQ*2q5q-o02XFXK4^?bj$v7xE}e6jh6!^1!>I&FG4k{Szh^M=XlfT5m>I zEDGi6vmTSd$NXe)Mg8OE!MaCGiETc0V4#~2t q1>A=iV>mfEVLqR?#ZB1%ul7Gl4I&x}zjOTn0000 Date: Tue, 20 Jun 2023 16:07:29 +0200 Subject: [PATCH 089/109] nuclear bulkie, better pathfinding --- .../java/com/hbm/entity/EntityMappings.java | 1 + .../com/hbm/entity/mob/EntityGlyphid.java | 33 ++- .../hbm/entity/mob/EntityGlyphidNuclear.java | 100 ++++++++ src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/ResourceManager.java | 1 + .../entity/mob/RenderGlyphidNuclear.java | 236 ++++++++++++++++++ src/main/resources/assets/hbm/lang/de_DE.lang | 4 + src/main/resources/assets/hbm/lang/en_US.lang | 4 + .../hbm/textures/entity/glyphid_nuclear.png | Bin 0 -> 2027 bytes 9 files changed, 369 insertions(+), 11 deletions(-) create mode 100644 src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java create mode 100644 src/main/java/com/hbm/render/entity/mob/RenderGlyphidNuclear.java create mode 100644 src/main/resources/assets/hbm/textures/entity/glyphid_nuclear.png diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index d231fa8b6..fd59a34b9 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -246,6 +246,7 @@ public class EntityMappings { addMob(EntityGlyphidBombardier.class, "entity_glyphid_bombardier", 0xDDD919, 0xDBB79D); addMob(EntityGlyphidBlaster.class, "entity_glyphid_blaster", 0xD83737, 0xDBB79D); addMob(EntityGlyphidScout.class, "entity_glyphid_scout", 0x273038, 0xB9E36B); + addMob(EntityGlyphidNuclear.class, "entity_glyphid_nuclear", 0x267F00, 0xA0A0A0); addSpawn(EntityCreeperPhosgene.class, 5, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); addSpawn(EntityCreeperVolatile.class, 10, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java index bc570fe02..ab3e9ac51 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java @@ -9,14 +9,6 @@ import com.hbm.main.ResourceManager; import net.minecraft.entity.Entity; import net.minecraft.entity.EnumCreatureAttribute; import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.EntityAIAttackOnCollide; -import net.minecraft.entity.ai.EntityAIHurtByTarget; -import net.minecraft.entity.ai.EntityAILookIdle; -import net.minecraft.entity.ai.EntityAIMoveTowardsRestriction; -import net.minecraft.entity.ai.EntityAINearestAttackableTarget; -import net.minecraft.entity.ai.EntityAISwimming; -import net.minecraft.entity.ai.EntityAIWander; -import net.minecraft.entity.ai.EntityAIWatchClosest; import net.minecraft.entity.monster.EntityMob; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; @@ -28,14 +20,14 @@ public class EntityGlyphid extends EntityMob { public EntityGlyphid(World world) { super(world); - this.tasks.addTask(0, new EntityAISwimming(this)); + /*this.tasks.addTask(0, new EntityAISwimming(this)); this.tasks.addTask(2, new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.0D, false)); this.tasks.addTask(5, new EntityAIMoveTowardsRestriction(this, 1.0D)); this.tasks.addTask(7, new EntityAIWander(this, 1.0D)); this.tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); this.tasks.addTask(8, new EntityAILookIdle(this)); this.targetTasks.addTask(1, new EntityAIHurtByTarget(this, true)); - this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 0, true)); + this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 0, true));*/ this.setSize(1.75F, 1F); } @@ -64,9 +56,28 @@ public class EntityGlyphid extends EntityMob { @Override protected Entity findPlayerToAttack() { - EntityPlayer entityplayer = this.worldObj.getClosestVulnerablePlayerToEntity(this, 32.0D); + EntityPlayer entityplayer = this.worldObj.getClosestVulnerablePlayerToEntity(this, 128.0D); return entityplayer != null && this.canEntityBeSeen(entityplayer) ? entityplayer : null; } + + @Override + protected void updateEntityActionState() { + super.updateEntityActionState(); + + if(this.entityToAttack != null) { + this.setPathToEntity(this.worldObj.getPathEntityToEntity(this, this.entityToAttack, 128F, true, false, false, true)); + } + } + + @Override + protected boolean canDespawn() { + return entityToAttack == null; + } + + @Override + public int getMaxSafePointTries() { + return 10; + } @Override public boolean attackEntityFrom(DamageSource source, float amount) { diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java new file mode 100644 index 000000000..8c6590203 --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java @@ -0,0 +1,100 @@ +package com.hbm.entity.mob; + +import com.hbm.blocks.ModBlocks; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; +import com.hbm.explosion.vanillant.standard.BlockMutatorDebris; +import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; +import com.hbm.explosion.vanillant.standard.EntityProcessorStandard; +import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; +import com.hbm.main.MainRegistry; +import com.hbm.main.ResourceManager; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; + +public class EntityGlyphidNuclear extends EntityGlyphid { + + public int deathTicks; + + public EntityGlyphidNuclear(World world) { + super(world); + this.setSize(2.5F, 1.75F); + this.isImmuneToFire = true; + } + + @Override + public ResourceLocation getSkin() { + return ResourceManager.glyphid_nuclear_tex; + } + + @Override + public double getScale() { + return 2D; + } + + @Override + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(20D); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.8D); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(50D); + } + + @Override + public int getArmorBreakChance(float amount) { + return amount < 25 ? 100 : amount > 1000 ? 1 : 10; + } + + @Override + public float calculateDamage(float amount) { + + byte armor = this.dataWatcher.getWatchableObjectByte(17); + int divisor = 1; + + for(int i = 0; i < 5; i++) { + if((armor & (1 << i)) > 0) { + divisor += 5; + } + } + + amount /= divisor; + + return amount; + } + + @Override + public float getDamageThreshold() { + return 10F; + } + + @Override + protected void onDeathUpdate() { + ++this.deathTicks; + + if(this.deathTicks == 100) { + + ExplosionVNT vnt = new ExplosionVNT(worldObj, posX, posY, posZ, 25, this); + vnt.setBlockAllocator(new BlockAllocatorStandard(24)); + vnt.setBlockProcessor(new BlockProcessorStandard().withBlockEffect(new BlockMutatorDebris(ModBlocks.volcanic_lava_block, 0)).setNoDrop()); + vnt.setEntityProcessor(new EntityProcessorStandard().withRangeMod(1.5F)); + vnt.setPlayerProcessor(new PlayerProcessorStandard()); + vnt.explode(); + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "muke"); + // if the FX type is "muke", apply random BF effect + if(MainRegistry.polaroidID == 11 || rand.nextInt(100) == 0) { + data.setBoolean("balefire", true); + } + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY + 0.5, posZ), new TargetPoint(dimension, posX, posY, posZ, 250)); + + this.setDead(); + } + } +} diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 8f491ea8d..26133ebac 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -730,6 +730,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidBombardier.class, new RenderGlyphid()); RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidBlaster.class, new RenderGlyphid()); RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidScout.class, new RenderGlyphid()); + RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidNuclear.class, new RenderGlyphidNuclear()); //"particles" RenderingRegistry.registerEntityRenderingHandler(EntitySmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.smoke1, ModItems.smoke2, ModItems.smoke3, ModItems.smoke4, ModItems.smoke5, ModItems.smoke6, ModItems.smoke7, ModItems.smoke8 })); RenderingRegistry.registerEntityRenderingHandler(EntityBSmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.b_smoke1, ModItems.b_smoke2, ModItems.b_smoke3, ModItems.b_smoke4, ModItems.b_smoke5, ModItems.b_smoke6, ModItems.b_smoke7, ModItems.b_smoke8 })); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 1f9716a94..4820c556d 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -666,6 +666,7 @@ public class ResourceManager { public static final ResourceLocation glyphid_bombardier_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_bombardier.png"); public static final ResourceLocation glyphid_blaster_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_blaster.png"); public static final ResourceLocation glyphid_scout_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_scout.png"); + public static final ResourceLocation glyphid_nuclear_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_nuclear.png"); //ZIRNOX public static final ResourceLocation zirnox_tex = new ResourceLocation(RefStrings.MODID, "textures/models/zirnox.png"); diff --git a/src/main/java/com/hbm/render/entity/mob/RenderGlyphidNuclear.java b/src/main/java/com/hbm/render/entity/mob/RenderGlyphidNuclear.java new file mode 100644 index 000000000..5c91e44a1 --- /dev/null +++ b/src/main/java/com/hbm/render/entity/mob/RenderGlyphidNuclear.java @@ -0,0 +1,236 @@ +package com.hbm.render.entity.mob; + +import org.lwjgl.opengl.GL11; + +import com.hbm.entity.mob.EntityGlyphid; +import com.hbm.entity.mob.EntityGlyphidNuclear; +import com.hbm.main.ResourceManager; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.renderer.entity.RenderLiving; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; + +public class RenderGlyphidNuclear extends RenderLiving { + + public RenderGlyphidNuclear() { + super(new ModelGlyphid(), 1.0F); + this.shadowOpaque = 0.0F; + } + + @Override + protected ResourceLocation getEntityTexture(Entity entity) { + EntityGlyphid glyphid = (EntityGlyphid) entity; + return glyphid.getSkin(); + } + + @Override + protected void preRenderCallback(EntityLivingBase entity, float interp) { + this.preRenderCallback((EntityGlyphidNuclear) entity, interp); + } + + protected void preRenderCallback(EntityGlyphidNuclear entity, float interp) { + float swell = (float) (entity.deathTicks + interp) / 95F; + float flash = 1.0F + MathHelper.sin(swell * 100.0F) * swell * 0.01F; + + if(swell < 0.0F) { + swell = 0.0F; + } + + if(swell > 1.0F) { + swell = 1.0F; + } + + swell *= swell; + swell *= swell; + + float scaleHorizontal = (1.0F + swell * 0.4F) * flash; + float scaleVertical = (1.0F + swell * 0.1F) / flash; + GL11.glScalef(scaleHorizontal, scaleVertical, scaleHorizontal); + } + + @Override + protected int getColorMultiplier(EntityLivingBase entity, float lightBrightness, float interp) { + return this.getColorMultiplier((EntityGlyphidNuclear) entity, lightBrightness, interp); + } + + protected int getColorMultiplier(EntityGlyphidNuclear entity, float lightBrightness, float interp) { + float swell = (float) (entity.deathTicks + interp) / 20F; + + + + + int a = (int) (swell * 0.2F * 255.0F); + + if((int) (swell * 10.0F) % 4 < 2) + return a *= 0.75; + + if(a < 0) { + a = 0; + } + + if(a > 255) { + a = 255; + } + + short r = 255; + short g = 255; + short b = 255; + return a << 24 | r << 16 | g << 8 | b; + } + + public static class ModelGlyphid extends ModelBase { + + double bite = 0; + + @Override + public void setLivingAnimations(EntityLivingBase entity, float limbSwing, float limbSwingAmount, float interp) { + bite = entity.getSwingProgress(interp); + } + + @Override + public void render(Entity entity, float limbSwing, float limbSwingAmount, float rotationYaw, float rotationHeadYaw, float rotationPitch, float scale) { + GL11.glPushMatrix(); + + GL11.glRotatef(180, 1, 0, 0); + GL11.glTranslatef(0, -1.5F, 0); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + + double s = ((EntityGlyphid) entity).getScale(); + GL11.glScaled(s, s, s); + + EntityLivingBase living = (EntityLivingBase) entity; + byte armor = living.getDataWatcher().getWatchableObjectByte(17); + + double walkCycle = limbSwing; + + double speed = 100000D; + double chewing = 200000D; + double cy0 = Math.sin(walkCycle % (Math.PI * 2)); + double cy1 = Math.sin(walkCycle % (Math.PI * 2) - Math.PI * 0.5); + double cy2 = Math.sin(walkCycle % (Math.PI * 2) - Math.PI); + double cy3 = Math.sin(walkCycle % (Math.PI * 2) - Math.PI * 0.75); + + double bite = MathHelper.clamp_double(Math.sin(this.bite * Math.PI * 2 - Math.PI * 0.5), 0, 1) * 20; + double headTilt = Math.sin(this.bite * Math.PI) * 30; + + ResourceManager.glyphid.renderPart("Body"); + if((armor & (1 << 0)) > 0) ResourceManager.glyphid.renderPart("ArmorFront"); + if((armor & (1 << 1)) > 0) ResourceManager.glyphid.renderPart("ArmorLeft"); + if((armor & (1 << 2)) > 0) ResourceManager.glyphid.renderPart("ArmorRight"); + + /// LEFT ARM /// + GL11.glPushMatrix(); + GL11.glTranslated(0.25, 0.625, 0.0625); + GL11.glRotated(10, 0, 1, 0); + GL11.glRotated(35 + cy1 * 20, 1, 0, 0); + GL11.glTranslated(-0.25, -0.625, -0.0625); + ResourceManager.glyphid.renderPart("ArmLeftUpper"); + GL11.glTranslated(0.25, 0.625, 0.4375); + GL11.glRotated(-75 - cy1 * 20 + cy0 * 20, 1, 0, 0); + GL11.glTranslated(-0.25, -0.625, -0.4375); + ResourceManager.glyphid.renderPart("ArmLeftMid"); + GL11.glTranslated(0.25, 0.625, 0.9375); + GL11.glRotated(90 - cy0 * 45, 1, 0, 0); + GL11.glTranslated(-0.25, -0.625, -0.9375); + ResourceManager.glyphid.renderPart("ArmLeftLower"); + if((armor & (1 << 3)) > 0) ResourceManager.glyphid.renderPart("ArmLeftArmor"); + GL11.glPopMatrix(); + + /// RIGHT ARM /// + GL11.glPushMatrix(); + GL11.glTranslated(-0.25, 0.625, 0.0625); + GL11.glRotated(-10, 0, 1, 0); + GL11.glRotated(35 + cy2 * 20, 1, 0, 0); + GL11.glTranslated(0.25, -0.625, -0.0625); + ResourceManager.glyphid.renderPart("ArmRightUpper"); + GL11.glTranslated(-0.25, 0.625, 0.4375); + GL11.glRotated(-75 - cy2 * 20 + cy3 * 20, 1, 0, 0); + GL11.glTranslated(0.25, -0.625, -0.4375); + ResourceManager.glyphid.renderPart("ArmRightMid"); + GL11.glTranslated(-0.25, 0.625, 0.9375); + GL11.glRotated(90 - cy3 * 45, 1, 0, 0); + GL11.glTranslated(0.25, -0.625, -0.9375); + ResourceManager.glyphid.renderPart("ArmRightLower"); + if((armor & (1 << 4)) > 0) ResourceManager.glyphid.renderPart("ArmRightArmor"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + + GL11.glTranslated(0, 0.5, 0.25); + GL11.glRotated(headTilt, 0, 0, 1); + GL11.glTranslated(0, -0.5, -0.25); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.5, 0.25); + GL11.glRotated(-bite, 1, 0, 0); + GL11.glTranslated(0, -0.5, -0.25); + ResourceManager.glyphid.renderPart("JawTop"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.5, 0.25); + GL11.glRotated(bite, 0, 1, 0); + GL11.glRotated(bite, 1, 0, 0); + GL11.glTranslated(0, -0.5, -0.25); + ResourceManager.glyphid.renderPart("JawLeft"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.5, 0.25); + GL11.glRotated(-bite, 0, 1, 0); + GL11.glRotated(bite, 1, 0, 0); + GL11.glTranslated(0, -0.5, -0.25); + ResourceManager.glyphid.renderPart("JawRight"); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + double steppy = 15; + double bend = 60; + + for(int i = 0; i < 3; i++) { + + double c0 = cy0 * (i == 1 ? -1 : 1); + double c1 = cy1 * (i == 1 ? -1 : 1); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.25, 0); + GL11.glRotated(i * 30 - 15 + c0 * 7.5, 0, 1, 0); + GL11.glRotated(steppy + c1 * steppy, 0, 0, 1); + GL11.glTranslated(0, -0.25, 0); + ResourceManager.glyphid.renderPart("LegLeftUpper"); + GL11.glTranslated(0.5625, 0.25, 0); + GL11.glRotated(-bend - c1 * steppy, 0, 0, 1); + GL11.glTranslated(-0.5625, -0.25, 0); + ResourceManager.glyphid.renderPart("LegLeftLower"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.25, 0); + GL11.glRotated(i * 30 - 45 + c0 * 7.5, 0, 1, 0); + GL11.glRotated(-steppy + c1 * steppy, 0, 0, 1); + GL11.glTranslated(0, -0.25, 0); + ResourceManager.glyphid.renderPart("LegRightUpper"); + GL11.glTranslated(-0.5625, 0.25, 0); + GL11.glRotated(bend - c1 * steppy, 0, 0, 1); + GL11.glTranslated(0.5625, -0.25, 0); + ResourceManager.glyphid.renderPart("LegRightLower"); + GL11.glPopMatrix(); + } + + + GL11.glShadeModel(GL11.GL_SMOOTH); + GL11.glTranslated(0, 1, 0); + GL11.glRotated(90, 1, 0, 0); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.mini_nuke_tex); + ResourceManager.projectiles.renderPart("MiniNuke"); + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + } + } +} diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 0058e4be6..5e2693e41 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -507,8 +507,12 @@ entity.entity_elder_one.name=Quackos der Älteste entity.entity_fucc_a_ducc.name=Ente entity.entity_glyphid.name=Glyphid entity.entity_glyphid_behemoth.name=Glyphid-Behemoth +entity.entity_glyphid_blaster.name=Glyphid-Blaster +entity.entity_glyphid_bombardier.name=Glyphid-Bombardierer entity.entity_glyphid_brawler.name=Glyphid-Schläger entity.entity_glyphid_brenda.name=Brenda +entity.entity_glyphid_nuclear.name=Der dicke Johnson +entity.entity_glyphid_scout.name=Glyphid-Späher entity.entity_ntm_fbi.name=FBI Agent entity.entity_ntm_radiation_blaze.name=Kernschmelze-Elementar entity.hbm.entity_ntm_ufo.name=Marsianisches Invasionsschiff diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 9c60416ef..846ac5558 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -953,8 +953,12 @@ entity.entity_elder_one.name=Quackos The Elder One entity.entity_fucc_a_ducc.name=Duck entity.entity_glyphid.name=Glyphid entity.entity_glyphid_behemoth.name=Glyphid Behemoth +entity.entity_glyphid_blaster.name=Glyphid Blaster +entity.entity_glyphid_bombardier.name=Glyphid Bombardier entity.entity_glyphid_brawler.name=Glyphid Brawler entity.entity_glyphid_brenda.name=Brenda +entity.entity_glyphid_nuclear.name=Big Man Johnson +entity.entity_glyphid_scout.name=Glyphid Scout entity.entity_ntm_fbi.name=FBI Agent entity.entity_ntm_radiation_blaze.name=Meltdown Elemental entity.hbm.entity_ntm_ufo.name=Martian Invasion Ship diff --git a/src/main/resources/assets/hbm/textures/entity/glyphid_nuclear.png b/src/main/resources/assets/hbm/textures/entity/glyphid_nuclear.png new file mode 100644 index 0000000000000000000000000000000000000000..af7c50fbcdb5dce79cd6bf2ead8cb7f8f8e255a6 GIT binary patch literal 2027 zcmV8=15FScOaS)J7z_l#%7<#1oEC za^0~%RR;tv4mMLrBh7xC*_qXkEz9`;Lrd-tm*0LfJG)C)zeAirePS8 z{I+eYrfEi_ZsoO)b-7O0b>lD$#D9I?t8H~%HxdyI!$5UiCwY8t7zS$FwzA60bkj6$ zpCx8q0gF6NBLT9EMXUu$K=bW)YQKM`?(xAS5BsR~kMpcPN|KMk!Yd%jlfRtD55^8? zim=*OU*gk`kP;+$s3^|s`+l!HtB>3Umy0UVRp2Gblh5G4QmohO-BmKW4>rwB|u_iS`M;huA1qV5EwFHd_lfmuh)}MMUoH+V`N*$5QvIL>#!^c z%UYuFP_=ElpPe)XX+GxM`SN~g9M-n&$nEuguTC7tkP{hvBBGh*LoBoC`#$+a=bNja z%g6gAkmS|7iGy*9vZAQu2uf%VN3+OH7)XwlFRzJczha0&u9P(2$Nghvd%=BFd5oFm zToIO&_3B63KSd$zKZz*uqq)I7ClVis9m7dOf=Akdr98~f`9+!5+Kc4n(vg1V>I}oM zorN`pV59O{>uj!mE?*lcsahl`;y~vYyLz69r;{D7^ZSYx!4VdY1CEdPv5xsw3%>D#YLZ`5y5F9{iSj~k*~F9Ai22#z`T$Tw9K}y>yv$8>9+s1 zA-tigk@r7>XCj_YIVVaL9aZq8-MbHdy@yA)FQG|<;~q|5io8>SR+9DGtJyTYnx*Lg z7VGtTl#6hj-Q=MSZ)5SE+b%sBNf~JJ$n%;TcUv&uf>ocPg(L1DGfA6gJsrS8zO4L} z_qj8r%99H4>Yb8r`RQzbSM%xh=1C}UKCPpmk_ya)3Ve+U)S!`%?aJR%^D&KmAtLG? zA9QjyPY3c?eS0!@zeL+S#V1Y_s6AYZmm*-YFGU>oE9>)!4g^VZJn|fqUf?KV;E85k zLL$Bt*7HK6Xnu~oq`y*u9(jz_Y@2Ujp^Y*UWhqeWI1a!|C@_bFbg3pJNhMF1uz^L_ zbye4OM07ae!Wqq)`FJl8A!Dw(u9H(giE}A1XTtk;VgJSP9}~5j6Mg-;O|#NCkJXup z2a`Y=JK>pY#FW|exjp%NE(PMRR%efg$BO>=bxWc&U-WgX#y|hf2Ga?F9Ou<_tsWC1 z(1B|zkl*Fi_4M3Vt|U%Xpe!f-_5{*Ykvz?mGe`*3$jGUzq`c*;PF1Kzp8U;1i~S^d zj{hS90(sRD?LPT-hv~&K#>y z{veV+3FfkV-L~z)=kZ6IpMIo%Pz#(_^Uz10`;`d31cotuk3$oD8TrEeI}8JL%P%&0 znu&nZmNUIZq#R)Fx?6sMXYOX&z)nj93u|;GEFYH*8#w=?2tqxRPy$v@foLHUiy32+ z!Le9)j^CQyBB<+{X!-Y)IJv$g3U47ro{LsQOHg@cRdEbvQ8KtgrR8b!yo&6m zzZt|{`pY#Xj9#+(s; zgBJ({BXT;grfa8{qWUpJ^G*H|7qkH_t@B{gOUia}St* z=`&$mV@kM1!IIeIB0K#JR&AgJ6M*mh$4a+R5MSxc7_!QPA=>!`1cJU z?IrIXTj!$ETvu~thelcJPR!W)5s z-^%5_snaHsBlr5Q9jO9w>j}S7%FV(ac{d6@4kS|iA2@X_d^18$(4-{M~JCS9ypLXigGuZ|QYz_yp#5p1nh&cYxrr z=2IHv-teSQil7P0_|RB}y;B6vM1 Date: Tue, 20 Jun 2023 20:28:00 +0200 Subject: [PATCH 090/109] better pathfinding, BDCL, nuclear glyphid improvements --- .../com/hbm/entity/mob/EntityGlyphid.java | 11 ++-- .../hbm/entity/mob/EntityGlyphidNuclear.java | 34 ++++++---- .../entity/pathfinder/PathFinderUtils.java | 62 ++++++++++++++++++ .../com/hbm/inventory/OreDictManager.java | 2 + .../inventory/recipes/AssemblerRecipes.java | 2 +- src/main/java/com/hbm/items/ModItems.java | 3 + .../java/com/hbm/items/food/ItemBDCL.java | 34 ++++++++++ .../hbm/items/tool/ItemPollutionDetector.java | 8 +-- src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + .../assets/hbm/textures/items/bdcl.png | Bin 0 -> 253 bytes 11 files changed, 133 insertions(+), 25 deletions(-) create mode 100644 src/main/java/com/hbm/entity/pathfinder/PathFinderUtils.java create mode 100644 src/main/java/com/hbm/items/food/ItemBDCL.java create mode 100644 src/main/resources/assets/hbm/textures/items/bdcl.png diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java index ab3e9ac51..775c7ea55 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java @@ -4,6 +4,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; +import com.hbm.entity.pathfinder.PathFinderUtils; import com.hbm.main.ResourceManager; import net.minecraft.entity.Entity; @@ -64,8 +65,9 @@ public class EntityGlyphid extends EntityMob { protected void updateEntityActionState() { super.updateEntityActionState(); - if(this.entityToAttack != null) { - this.setPathToEntity(this.worldObj.getPathEntityToEntity(this, this.entityToAttack, 128F, true, false, false, true)); + // hell yeah!! + if(this.entityToAttack != null && !this.hasPath()) { + this.setPathToEntity(PathFinderUtils.getPathEntityToEntityPartial(worldObj, this, this.entityToAttack, 16F, true, false, false, true)); } } @@ -73,11 +75,6 @@ public class EntityGlyphid extends EntityMob { protected boolean canDespawn() { return entityToAttack == null; } - - @Override - public int getMaxSafePointTries() { - return 10; - } @Override public boolean attackEntityFrom(DamageSource source, float amount) { diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java index 8c6590203..62a3ae9a6 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java @@ -79,22 +79,30 @@ public class EntityGlyphidNuclear extends EntityGlyphid { if(this.deathTicks == 100) { - ExplosionVNT vnt = new ExplosionVNT(worldObj, posX, posY, posZ, 25, this); - vnt.setBlockAllocator(new BlockAllocatorStandard(24)); - vnt.setBlockProcessor(new BlockProcessorStandard().withBlockEffect(new BlockMutatorDebris(ModBlocks.volcanic_lava_block, 0)).setNoDrop()); - vnt.setEntityProcessor(new EntityProcessorStandard().withRangeMod(1.5F)); - vnt.setPlayerProcessor(new PlayerProcessorStandard()); - vnt.explode(); - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "muke"); - // if the FX type is "muke", apply random BF effect - if(MainRegistry.polaroidID == 11 || rand.nextInt(100) == 0) { - data.setBoolean("balefire", true); + if(!worldObj.isRemote) { + ExplosionVNT vnt = new ExplosionVNT(worldObj, posX, posY, posZ, 25, this); + vnt.setBlockAllocator(new BlockAllocatorStandard(24)); + vnt.setBlockProcessor(new BlockProcessorStandard().withBlockEffect(new BlockMutatorDebris(ModBlocks.volcanic_lava_block, 0)).setNoDrop()); + vnt.setEntityProcessor(new EntityProcessorStandard().withRangeMod(1.5F)); + vnt.setPlayerProcessor(new PlayerProcessorStandard()); + vnt.explode(); + + worldObj.playSoundEffect(posX, posY, posZ, "hbm:weapon.mukeExplosion", 15.0F, 1.0F); + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "muke"); + // if the FX type is "muke", apply random BF effect + if(MainRegistry.polaroidID == 11 || rand.nextInt(100) == 0) { + data.setBoolean("balefire", true); + } + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY + 0.5, posZ), new TargetPoint(dimension, posX, posY, posZ, 250)); } - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY + 0.5, posZ), new TargetPoint(dimension, posX, posY, posZ, 250)); this.setDead(); + } else { + if(!worldObj.isRemote && this.deathTicks % 10 == 0) { + worldObj.playSoundEffect(posX, posY, posZ, "hbm:weapon.fstbmbPing", 5.0F, 1.0F); + } } } } diff --git a/src/main/java/com/hbm/entity/pathfinder/PathFinderUtils.java b/src/main/java/com/hbm/entity/pathfinder/PathFinderUtils.java new file mode 100644 index 000000000..9d5b2f36c --- /dev/null +++ b/src/main/java/com/hbm/entity/pathfinder/PathFinderUtils.java @@ -0,0 +1,62 @@ +package com.hbm.entity.pathfinder; + +import net.minecraft.entity.Entity; +import net.minecraft.pathfinding.PathEntity; +import net.minecraft.pathfinding.PathFinder; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.ChunkCache; +import net.minecraft.world.World; + +public class PathFinderUtils { + + public static PathEntity getPathEntityToEntityPartial(World world, Entity fromEntity, Entity toEntity, float maxDist, boolean allowDoors, boolean allowBlocked, boolean allowWater, boolean canDrown) { + world.theProfiler.startSection("pathfind"); + int startX = MathHelper.floor_double(fromEntity.posX); + int startY = MathHelper.floor_double(fromEntity.posY + 1.0D); + int startZ = MathHelper.floor_double(fromEntity.posZ); + int maxDistEff = (int) (maxDist + 16.0F); + int minX = startX - maxDistEff; + int minY = startY - maxDistEff; + int minZ = startZ - maxDistEff; + int maxX = startX + maxDistEff; + int maxY = startY + maxDistEff; + int maxZ = startZ + maxDistEff; + ChunkCache chunkcache = new ChunkCache(world, minX, minY, minZ, maxX, maxY, maxZ, 0); + + Vec3 vec = Vec3.createVectorHelper(toEntity.posX - fromEntity.posX, toEntity.posY - fromEntity.posY, toEntity.posZ - fromEntity.posZ); + vec = vec.normalize(); + vec.xCoord *= maxDist; + vec.yCoord *= maxDist; + vec.zCoord *= maxDist; + + int x = (int) Math.floor(fromEntity.posX + vec.xCoord); + int y = (int) Math.floor(fromEntity.posY + vec.yCoord); + int z = (int) Math.floor(fromEntity.posZ + vec.zCoord); + + //this part will adjust the end of the path so it's actually on the ground, it being unreachable causes mobs to slow down + boolean solid = false; + + for(int i = y; i > y - 10; i--) { + if(!world.getBlock(x, i, z).getMaterial().blocksMovement() && world.getBlock(x, i - 1, z).isNormalCube()) { + solid = true; + y = i; + break; + } + + } + + if(!solid) for(int i = y + 10; i > y; i--) { + if(!world.getBlock(x, i, z).getMaterial().blocksMovement() && world.getBlock(x, i - 1, z).isNormalCube()) { + solid = true; + y = i; + break; + } + } + + //PathEntity pathentity = (new PathFinder(chunkcache, allowDoors, allowBlocked, allowWater, canDrown)).createEntityPathTo(fromEntity, toEntity, maxDist); + PathEntity pathentity = (new PathFinder(chunkcache, allowDoors, allowBlocked, allowWater, canDrown)).createEntityPathTo(fromEntity, x, y, z, maxDist); + world.theProfiler.endSection(); + return pathentity; + } +} diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 69e41bd65..271f58aac 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -574,6 +574,8 @@ public class OreDictManager { OreDictionary.registerOre("blockGlassLime", glass_trinitite); OreDictionary.registerOre("blockGlassRed", glass_polonium); OreDictionary.registerOre("blockGlassBlack", glass_ash); + + OreDictionary.registerOre("container1000lubricant", bdcl); MaterialShapes.registerCompatShapes(); } diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 38ae7cf5b..3711f5af2 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -281,7 +281,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.machine_flare, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(IRON.ingot(), 12), new OreDictStack(CU.plate528(), 4), new ComparableStack(ModItems.tank_steel, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 8), new ComparableStack(ModItems.hull_small_steel, 4), new ComparableStack(ModItems.thermo_element, 3), },200); makeRecipe(new ComparableStack(ModBlocks.machine_coker, 1), new AStack[] {new OreDictStack(STEEL.plate(), 24), new OreDictStack(IRON.ingot(), 12), new OreDictStack(CU.plate528(), 8), new OreDictStack(RUBBER.ingot(), 4), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModBlocks.steel_grate, 4) },200); makeRecipe(new ComparableStack(ModBlocks.machine_refinery, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 16), new OreDictStack(CU.plate(), 16), new ComparableStack(ModItems.hull_big_steel, 6), new ComparableStack(ModItems.pipes_steel, 2), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.circuit_red_copper, 1) },350); - makeRecipe(new ComparableStack(ModBlocks.machine_epress, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.bolt_tungsten, 4), new ComparableStack(ModItems.coil_copper, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit_copper, 1), new ComparableStack(ModItems.canister_full, 1, Fluids.LUBRICANT.getID()), },160); + makeRecipe(new ComparableStack(ModBlocks.machine_epress, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.bolt_tungsten, 4), new ComparableStack(ModItems.coil_copper, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit_copper, 1), new OreDictStack(Fluids.LUBRICANT.getDict(1000)), },160); makeRecipe(new ComparableStack(ModBlocks.machine_chemplant, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(CU.plate528(), 6), new ComparableStack(ModItems.tank_steel, 4), new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.coil_tungsten, 3), new ComparableStack(ModItems.circuit_copper, 2), new ComparableStack(ModItems.circuit_red_copper, 1), new ComparableStack(ModItems.plate_polymer, 8), },200); makeRecipe(new ComparableStack(ModBlocks.machine_crystallizer, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 4), new ComparableStack(ModItems.pipes_steel, 1), new OreDictStack(DESH.ingot(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.blades_advanced_alloy, 2), new OreDictStack(STEEL.ingot(), 16), new OreDictStack(TI.plate(), 16), new ComparableStack(Blocks.glass, 4), new ComparableStack(ModItems.circuit_gold, 1), },400); makeRecipe(new ComparableStack(ModBlocks.machine_fluidtank, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(STEEL.plate528(), 6), new ComparableStack(ModItems.hull_big_steel, 4), new OreDictStack(ANY_TAR.any(), 4), },150); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 35b9cb0d5..0b065d7a3 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1007,6 +1007,7 @@ public class ModItems { public static Item cap_sunset; public static Item cap_star; public static Item ring_pull; + public static Item bdcl; //public static Item canned_beef; //public static Item canned_tuna; //public static Item canned_mystery; @@ -3341,6 +3342,7 @@ public class ModItems { cbt_device = new ItemSyringe().setUnlocalizedName("cbt_device").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":cbt_device"); cigarette = new ItemCigarette().setUnlocalizedName("cigarette").setFull3D().setMaxStackSize(16).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cigarette"); crackpipe = new ItemCigarette().setUnlocalizedName("crackpipe").setFull3D().setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":crackpipe"); + bdcl = new ItemBDCL().setUnlocalizedName("bdcl").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":bdcl"); attachment_mask = new ItemModGasmask().setUnlocalizedName("attachment_mask").setTextureName(RefStrings.MODID + ":attachment_mask"); attachment_mask_mono = new ItemModGasmask().setUnlocalizedName("attachment_mask_mono").setTextureName(RefStrings.MODID + ":attachment_mask_mono"); @@ -7618,6 +7620,7 @@ public class ModItems { GameRegistry.registerItem(cbt_device, cbt_device.getUnlocalizedName()); GameRegistry.registerItem(cigarette, cigarette.getUnlocalizedName()); GameRegistry.registerItem(crackpipe, crackpipe.getUnlocalizedName()); + GameRegistry.registerItem(bdcl, bdcl.getUnlocalizedName()); //Armor mods GameRegistry.registerItem(attachment_mask, attachment_mask.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/food/ItemBDCL.java b/src/main/java/com/hbm/items/food/ItemBDCL.java new file mode 100644 index 000000000..1ec41d032 --- /dev/null +++ b/src/main/java/com/hbm/items/food/ItemBDCL.java @@ -0,0 +1,34 @@ +package com.hbm.items.food; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumAction; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class ItemBDCL extends Item { + + @Override + public int getMaxItemUseDuration(ItemStack p_77626_1_) { + return 32; + } + + @Override + public EnumAction getItemUseAction(ItemStack p_77661_1_) { + return EnumAction.drink; + } + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + player.setItemInUse(stack, this.getMaxItemUseDuration(stack)); + return stack; + } + + @Override + public ItemStack onEaten(ItemStack stack, World world, EntityPlayer player) { + + if(!player.capabilities.isCreativeMode) { + --stack.stackSize; + } + return stack; + } +} diff --git a/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java b/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java index dca184a67..9b1a14ec3 100644 --- a/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java +++ b/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java @@ -29,10 +29,10 @@ public class ItemPollutionDetector extends Item { float heavymetal = data.pollution[PollutionType.HEAVYMETAL.ordinal()]; float fallout = data.pollution[PollutionType.FALLOUT.ordinal()]; - soot = ((int) soot * 100) / 100F; - poison = ((int) poison * 100) / 100F; - heavymetal = ((int) heavymetal * 100) / 100F; - fallout = ((int) fallout * 100) / 100F; + soot = ((int) (soot * 100)) / 100F; + poison = ((int) (poison * 100)) / 100F; + heavymetal = ((int) (heavymetal * 100)) / 100F; + fallout = ((int) (fallout * 100)) / 100F; PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Soot: " + soot).color(EnumChatFormatting.YELLOW).flush(), 100, 2000), (EntityPlayerMP) entity); PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Poison: " + poison).color(EnumChatFormatting.YELLOW).flush(), 101, 2000), (EntityPlayerMP) entity); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 5e2693e41..c9a2b3a46 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1160,6 +1160,7 @@ item.battery_steam_large.name=Großer dampfbetriebener Energiespeichertank item.battery_su.name=Einwegbatterie item.battery_su_l.name=Große Einwegbatterie item.battery_trixite.name=Billige Spark-Batterie-Nachmache +item.bdcl.name=BDCL item.beta.name=Beta-Features item.big_sword.name=Großes Schwert item.billet_am_mix.name=Reaktorfähiges Americiumbillet diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 846ac5558..652cd70fa 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1743,6 +1743,7 @@ item.battery_steam_large.name=Large Steam Powered Energy Storage Tank item.battery_su.name=SU-Battery item.battery_su_l.name=Large SU-Battery item.battery_trixite.name=Off-Brand Spark Battery +item.bdcl.name=BDCL item.beta.name=Beta Features item.big_sword.name=Great Sword item.billet_actinium.name=Actinium-227 Billet diff --git a/src/main/resources/assets/hbm/textures/items/bdcl.png b/src/main/resources/assets/hbm/textures/items/bdcl.png new file mode 100644 index 0000000000000000000000000000000000000000..999de5f9091dbd5109e2a41ecd45f28e02170f14 GIT binary patch literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfS{VV?8diRxwWI{p164^NRD;ZA~23AWy+3}r`T}M+X ziDAy?HR7|^m7YH*#izJov)d96p^Ur5ks&wUedGAY#30dDY@{L?Aa?a~)to&ZyM(^Y z>{u|R$&iiVLTT)!{ep|vTODnFwB(Jx%>AY5O*0u6 Date: Tue, 20 Jun 2023 23:12:40 -0700 Subject: [PATCH 091/109] hid book lore from nei --- src/main/java/com/hbm/main/NEIConfig.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/hbm/main/NEIConfig.java b/src/main/java/com/hbm/main/NEIConfig.java index 41d03f7bd..1a2cd65a6 100644 --- a/src/main/java/com/hbm/main/NEIConfig.java +++ b/src/main/java/com/hbm/main/NEIConfig.java @@ -92,6 +92,7 @@ public class NEIConfig implements IConfigureNEI { API.hideItem(new ItemStack(ModBlocks.transission_hatch)); API.hideItem(new ItemStack(ModItems.euphemium_kit)); API.hideItem(new ItemStack(ModItems.bobmazon_hidden)); + API.hideItem(new ItemStack(ModItems.book_lore)); //the broken nbt-less one shouldn't show up in normal play anyway if(MainRegistry.polaroidID != 11) { API.hideItem(new ItemStack(ModItems.book_secret)); API.hideItem(new ItemStack(ModItems.book_of_)); From fdb4a1c39e94d5251618ab8b5320296fd683710e Mon Sep 17 00:00:00 2001 From: Vaern Date: Tue, 20 Jun 2023 23:20:58 -0700 Subject: [PATCH 092/109] Whoops! --- .../com/hbm/inventory/gui/GUIBookLore.java | 2 +- .../com/hbm/items/special/ItemBookLore.java | 79 ------------------- .../java/com/hbm/items/tool/ItemWandD.java | 4 +- 3 files changed, 4 insertions(+), 81 deletions(-) diff --git a/src/main/java/com/hbm/inventory/gui/GUIBookLore.java b/src/main/java/com/hbm/inventory/gui/GUIBookLore.java index ed9779e8c..5c5effbf5 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIBookLore.java +++ b/src/main/java/com/hbm/inventory/gui/GUIBookLore.java @@ -96,7 +96,7 @@ public class GUIBookLore extends GuiScreen { String k = "book_lore." + key + ".page."; for(int i = 0; i < 2; i++) { - int defacto = this.page * 2 + i; //TODO: force i18n to index from 0 instead of 1 + int defacto = this.page * 2 + i; if(defacto < tag.getInteger("p")) { String text; diff --git a/src/main/java/com/hbm/items/special/ItemBookLore.java b/src/main/java/com/hbm/items/special/ItemBookLore.java index ce2564fa3..6fe393616 100644 --- a/src/main/java/com/hbm/items/special/ItemBookLore.java +++ b/src/main/java/com/hbm/items/special/ItemBookLore.java @@ -142,83 +142,4 @@ public class ItemBookLore extends Item implements IGUIProvider { book.stackTagCompound.setTag("p" + page, data); } - //TODO remove this and fix any references - /*public enum BookLoreType { - TEST(true, "test", 5), - BOOK_IODINE(true, "book_iodine", 3) { - public String resolveKey(String key, NBTTagCompound tag) { - return I18nUtil.resolveKey(key, tag.getInteger("mku_slot")); - }}, - BOOK_PHOSPHOROUS(true, "book_phosphorous", 2) { - public String resolveKey(String key, NBTTagCompound tag) { - return I18nUtil.resolveKey(key, tag.getInteger("mku_slot")); - }}, - BOOK_DUST(true, "book_dust", 3) { - public String resolveKey(String key, NBTTagCompound tag) { - return I18nUtil.resolveKey(key, tag.getInteger("mku_slot")); - }}, - BOOK_MERCURY(true, "book_mercury", 2) { - public String resolveKey(String key, NBTTagCompound tag) { - return I18nUtil.resolveKey(key, tag.getInteger("mku_slot")); - }}, - BOOK_FLOWER(true, "book_flower", 2) { - public String resolveKey(String key, NBTTagCompound tag) { - return I18nUtil.resolveKey(key, tag.getInteger("mku_slot")); - }}, - BOOK_SYRINGE(true, "book_syringe", 2) { - public String resolveKey(String key, NBTTagCompound tag) { - return I18nUtil.resolveKey(key, tag.getInteger("mku_slot")); - }}, - RESIGNATION_NOTE(true, "resignation_note", 3), - MEMO_STOCKS(false, "memo_stocks", 1), - MEMO_SCHRAB_GSA(false, "memo_schrab_gsa", 2), - MEMO_SCHRAB_RD(false, "memo_schrab_rd", 4), - MEMO_SCHRAB_NUKE(true, "memo_schrab_nuke", 3), - ; - - public boolean hasAuthor = false; - public final String keyI18n; - public final int pages; - - private BookLoreType(Boolean author, String key, int max) { - this.hasAuthor = author; - this.keyI18n = key; - this.pages = max; - } - - private BookLoreType(String key, int max) { - this.keyI18n = key; - this.pages = max; - } - - /** Function to resolve I18n keys using potential save-dependent information, a la format specifiers. */ - /*public String resolveKey(String key, NBTTagCompound tag) { - return I18nUtil.resolveKey(key, tag); - } - - public static BookLoreType getTypeFromStack(ItemStack stack) { - if(!stack.hasTagCompound()) { - stack.stackTagCompound = new NBTTagCompound(); - } - - NBTTagCompound tag = stack.getTagCompound(); - int ordinal = tag.getInteger("Book_Lore_Type"); - - return BookLoreType.values()[Math.abs(ordinal) % BookLoreType.values().length]; - } - - public static ItemStack setTypeForStack(ItemStack stack, BookLoreType num) { - - if(stack.getItem() instanceof ItemBookLore) { - if(!stack.hasTagCompound()) { - stack.stackTagCompound = new NBTTagCompound(); - } - - NBTTagCompound tag = stack.getTagCompound(); - tag.setInteger("Book_Lore_Type", num.ordinal()); - } - - return stack; - } - }*/ } diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index 3864a35de..4c80ccab4 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -2,6 +2,8 @@ package com.hbm.items.tool; import java.util.List; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.lib.Library; import net.minecraft.entity.player.EntityPlayer; @@ -30,7 +32,7 @@ public class ItemWandD extends Item { vnt.setSFX(new ExplosionEffectStandard()); vnt.explode();*/ - //PollutionHandler.incrementPollution(world, pos.blockX, pos.blockY, pos.blockZ, PollutionType.SOOT, 15); + PollutionHandler.incrementPollution(world, pos.blockX, pos.blockY, pos.blockZ, PollutionType.SOOT, 15); /*TimeAnalyzer.startCount("setBlock"); world.setBlock(pos.blockX, pos.blockY, pos.blockZ, Blocks.dirt); From 6c32813baef6f74bdfc8080484b027874c22c996 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 21 Jun 2023 13:53:15 +0200 Subject: [PATCH 093/109] FBI drones --- src/main/java/com/hbm/config/MobConfig.java | 2 + .../java/com/hbm/entity/EntityMappings.java | 1 + .../com/hbm/entity/mob/EntityFBIDrone.java | 64 ++++ .../com/hbm/entity/mob/EntityUFOBase.java | 4 +- .../com/hbm/handler/BossSpawnHandler.java | 10 + src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/ResourceManager.java | 1 + .../hbm/render/entity/mob/RenderDrone.java | 45 +++ .../assets/hbm/models/mobs/quadcopter.obj | 360 ++++++++++++++++++ .../assets/hbm/textures/entity/quadcopter.png | Bin 0 -> 334 bytes 10 files changed, 486 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/hbm/entity/mob/EntityFBIDrone.java create mode 100644 src/main/java/com/hbm/render/entity/mob/RenderDrone.java create mode 100644 src/main/resources/assets/hbm/models/mobs/quadcopter.obj create mode 100644 src/main/resources/assets/hbm/textures/entity/quadcopter.png diff --git a/src/main/java/com/hbm/config/MobConfig.java b/src/main/java/com/hbm/config/MobConfig.java index cd01ac0c8..5232b8351 100644 --- a/src/main/java/com/hbm/config/MobConfig.java +++ b/src/main/java/com/hbm/config/MobConfig.java @@ -14,6 +14,7 @@ public class MobConfig { public static int raidDelay = 30 * 60 * 60; public static int raidChance = 3; public static int raidAmount = 15; + public static int raidDrones = 5; public static int raidAttackDelay = 40; public static int raidAttackReach = 2; public static int raidAttackDistance = 32; @@ -44,6 +45,7 @@ public class MobConfig { raidAttackDelay = CommonConfig.createConfigInt(config, CATEGORY, "12.F04_raidAttackDelay", "Time between individual attempts to break machines", 40); raidAttackReach = CommonConfig.createConfigInt(config, CATEGORY, "12.F05_raidAttackReach", "How far away machines can be broken", 2); raidAttackDistance = CommonConfig.createConfigInt(config, CATEGORY, "12.F06_raidAttackDistance", "How far away agents will spawn from the targeted player", 32); + raidDrones = CommonConfig.createConfigInt(config, CATEGORY, "12.F07_raidDrones", "How many quadcopter drones are spawned each raid", 5); enableElementals = CommonConfig.createConfigBool(config, CATEGORY, "12.E00_enableMeltdownElementals", "Whether there should be radiation elementals", true); elementalDelay = CommonConfig.createConfigInt(config, CATEGORY, "12.E01_elementalDelay", "How many world ticks need to pass for a check to be performed", 30 * 60 * 60); diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index fd59a34b9..b41ab7eb7 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -234,6 +234,7 @@ public class EntityMappings { addMob(EntityDuck.class, "entity_fucc_a_ducc", 0xd0d0d0, 0xFFBF00); addMob(EntityQuackos.class, "entity_elder_one", 0xd0d0d0, 0xFFBF00); addMob(EntityFBI.class, "entity_ntm_fbi", 0x008000, 0x404040); + addMob(EntityFBIDrone.class, "entity_ntm_fbi_drone", 0x008000, 0x404040); addMob(EntityRADBeast.class, "entity_ntm_radiation_blaze", 0x303030, 0x008000); addMob(EntitySiegeZombie.class, "entity_meme_zombie", 0x303030, 0x008000); addMob(EntitySiegeSkeleton.class, "entity_meme_skeleton", 0x303030, 0x000080); diff --git a/src/main/java/com/hbm/entity/mob/EntityFBIDrone.java b/src/main/java/com/hbm/entity/mob/EntityFBIDrone.java new file mode 100644 index 000000000..b773cd3ff --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/EntityFBIDrone.java @@ -0,0 +1,64 @@ +package com.hbm.entity.mob; + +import com.hbm.entity.grenade.EntityGrenadeGeneric; + +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class EntityFBIDrone extends EntityUFOBase { + + private int attackCooldown; + + public EntityFBIDrone(World world) { + super(world); + } + + @Override + protected void updateEntityActionState() { + super.updateEntityActionState(); + if(this.courseChangeCooldown > 0) this.courseChangeCooldown--; + if(this.scanCooldown > 0) this.scanCooldown--; + + if(!worldObj.isRemote) { + + if(attackCooldown > 0) attackCooldown--; + + if(this.target != null && attackCooldown <= 0) { + + Vec3 vec = Vec3.createVectorHelper(posX - target.posX, posY - target.posY, posZ - target.posZ); + if(Math.abs(vec.xCoord) < 5 && Math.abs(vec.zCoord) < 5 && vec.yCoord > 3) { + attackCooldown = 60; + EntityGrenadeGeneric grenade = new EntityGrenadeGeneric(worldObj); + grenade.setPosition(posX, posY, posZ); + worldObj.spawnEntityInWorld(grenade); + } + } + } + + if(this.courseChangeCooldown > 0) { + approachPosition(this.target == null ? 0.25D : 0.5D); + } + } + + @Override + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(35.0D); + } + + @Override + protected int getScanRange() { + return 100; + } + + @Override + protected int targetHeightOffset() { + return 7 + rand.nextInt(4); + } + + @Override + protected int wanderHeightOffset() { + return 7 + rand.nextInt(4); + } +} diff --git a/src/main/java/com/hbm/entity/mob/EntityUFOBase.java b/src/main/java/com/hbm/entity/mob/EntityUFOBase.java index 125cc1283..2468a5c2b 100644 --- a/src/main/java/com/hbm/entity/mob/EntityUFOBase.java +++ b/src/main/java/com/hbm/entity/mob/EntityUFOBase.java @@ -18,8 +18,8 @@ public abstract class EntityUFOBase extends EntityFlying implements IMob { protected int courseChangeCooldown; protected Entity target; - public EntityUFOBase(World p_i1587_1_) { - super(p_i1587_1_); + public EntityUFOBase(World world) { + super(world); } @Override diff --git a/src/main/java/com/hbm/handler/BossSpawnHandler.java b/src/main/java/com/hbm/handler/BossSpawnHandler.java index 5d981fd0d..5c3a206c7 100644 --- a/src/main/java/com/hbm/handler/BossSpawnHandler.java +++ b/src/main/java/com/hbm/handler/BossSpawnHandler.java @@ -7,6 +7,7 @@ import com.hbm.config.GeneralConfig; import com.hbm.config.MobConfig; import com.hbm.config.WorldConfig; import com.hbm.entity.mob.EntityFBI; +import com.hbm.entity.mob.EntityFBIDrone; import com.hbm.entity.mob.EntityGhost; import com.hbm.entity.mob.EntityMaskMan; import com.hbm.entity.mob.EntityRADBeast; @@ -97,6 +98,15 @@ public class BossSpawnHandler { trySpawn(world, (float)spawnX, (float)spawnY, (float)spawnZ, new EntityFBI(world)); } + + for(int i = 0; i < MobConfig.raidDrones; i++) { + + double spawnX = player.posX + vec.xCoord + world.rand.nextGaussian() * 5; + double spawnZ = player.posZ + vec.zCoord + world.rand.nextGaussian() * 5; + double spawnY = world.getHeightValue((int)spawnX, (int)spawnZ); + + trySpawn(world, (float)spawnX, (float)spawnY + 10, (float)spawnZ, new EntityFBIDrone(world)); + } } } } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 26133ebac..da86b7611 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -731,6 +731,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidBlaster.class, new RenderGlyphid()); RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidScout.class, new RenderGlyphid()); RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidNuclear.class, new RenderGlyphidNuclear()); + RenderingRegistry.registerEntityRenderingHandler(EntityFBIDrone.class, new RenderDrone()); //"particles" RenderingRegistry.registerEntityRenderingHandler(EntitySmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.smoke1, ModItems.smoke2, ModItems.smoke3, ModItems.smoke4, ModItems.smoke5, ModItems.smoke6, ModItems.smoke7, ModItems.smoke8 })); RenderingRegistry.registerEntityRenderingHandler(EntityBSmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.b_smoke1, ModItems.b_smoke2, ModItems.b_smoke3, ModItems.b_smoke4, ModItems.b_smoke5, ModItems.b_smoke6, ModItems.b_smoke7, ModItems.b_smoke8 })); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 4820c556d..869fc2066 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -306,6 +306,7 @@ public class ResourceManager { public static final IModelCustom mini_ufo = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/mobs/mini_ufo.obj")); public static final IModelCustom siege_ufo = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/mobs/siege_ufo.obj")); public static final IModelCustom glyphid = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/mobs/glyphid.obj")); + public static final IModelCustom drone = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mobs/quadcopter.obj")); //ZIRNOX public static final IModelCustom zirnox = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/zirnox.obj")); diff --git a/src/main/java/com/hbm/render/entity/mob/RenderDrone.java b/src/main/java/com/hbm/render/entity/mob/RenderDrone.java new file mode 100644 index 000000000..664bb4275 --- /dev/null +++ b/src/main/java/com/hbm/render/entity/mob/RenderDrone.java @@ -0,0 +1,45 @@ +package com.hbm.render.entity.mob; + +import java.util.Random; + +import org.lwjgl.opengl.GL11; + +import com.hbm.entity.mob.EntityFBIDrone; +import com.hbm.lib.RefStrings; +import com.hbm.main.ResourceManager; + +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; + +public class RenderDrone extends Render { + + @Override + public void doRender(Entity entity, double x, double y, double z, float f0, float f1) { + + GL11.glPushMatrix(); + GL11.glTranslated(x, y + 0.25, z); + + this.bindTexture(getEntityTexture(entity)); + + Random rand = new Random(entity.getEntityId()); + GL11.glRotated(rand.nextDouble() * 360D, 0, 1, 0); + + GL11.glShadeModel(GL11.GL_SMOOTH); + GL11.glDisable(GL11.GL_CULL_FACE); + ResourceManager.drone.renderAll(); + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + } + + @Override + protected ResourceLocation getEntityTexture(Entity entity) { + return this.getEntityTexture((EntityFBIDrone) entity); + } + + protected ResourceLocation getEntityTexture(EntityFBIDrone entity) { + return new ResourceLocation(RefStrings.MODID + ":textures/entity/quadcopter.png"); + } +} diff --git a/src/main/resources/assets/hbm/models/mobs/quadcopter.obj b/src/main/resources/assets/hbm/models/mobs/quadcopter.obj new file mode 100644 index 000000000..2c9858362 --- /dev/null +++ b/src/main/resources/assets/hbm/models/mobs/quadcopter.obj @@ -0,0 +1,360 @@ +# Blender v2.79 (sub 0) OBJ File: 'quadcopter.blend' +# www.blender.org +o Cube_Cube.001 +v -0.187500 0.125000 0.500000 +v -0.187500 0.375000 0.500000 +v -0.187500 0.125000 -0.500000 +v -0.187500 0.375000 -0.500000 +v 0.187500 0.125000 0.500000 +v 0.187500 0.375000 0.500000 +v 0.187500 0.125000 -0.500000 +v 0.187500 0.375000 -0.500000 +v 0.437500 0.125000 0.562500 +v 0.437500 0.500000 0.562500 +v 0.437500 0.125000 0.437500 +v 0.437500 0.500000 0.437500 +v 0.562500 0.125000 0.562500 +v 0.562500 0.500000 0.562500 +v 0.562500 0.125000 0.437500 +v 0.562500 0.500000 0.437500 +v 0.437500 0.125000 -0.437500 +v 0.437500 0.500000 -0.437500 +v 0.437500 0.125000 -0.562500 +v 0.437500 0.500000 -0.562500 +v 0.562500 0.125000 -0.437500 +v 0.562500 0.500000 -0.437500 +v 0.562500 0.125000 -0.562500 +v 0.562500 0.500000 -0.562500 +v -0.562500 0.125000 0.562500 +v -0.562500 0.500000 0.562500 +v -0.562500 0.125000 0.437500 +v -0.562500 0.500000 0.437500 +v -0.437500 0.125000 0.562500 +v -0.437500 0.500000 0.562500 +v -0.437500 0.125000 0.437500 +v -0.437500 0.500000 0.437500 +v -0.562500 0.125000 -0.437500 +v -0.562500 0.500000 -0.437500 +v -0.562500 0.125000 -0.562500 +v -0.562500 0.500000 -0.562500 +v -0.437500 0.125000 -0.437500 +v -0.437500 0.500000 -0.437500 +v -0.437500 0.125000 -0.562500 +v -0.437500 0.500000 -0.562500 +v 0.437500 0.187500 0.531250 +v 0.437500 0.312500 0.531250 +v 0.437500 0.187500 0.468750 +v 0.437500 0.312500 0.468750 +v 0.187500 0.187500 0.343750 +v 0.187500 0.187500 0.406250 +v 0.187500 0.312500 0.406250 +v 0.187500 0.312500 0.343750 +v -0.437500 0.187500 -0.531250 +v -0.437500 0.312500 -0.531250 +v -0.437500 0.187500 -0.468750 +v -0.437500 0.312500 -0.468750 +v -0.187500 0.187500 -0.343750 +v -0.187500 0.187500 -0.406250 +v -0.187500 0.312500 -0.406250 +v -0.187500 0.312500 -0.343750 +v 0.437500 0.312500 -0.531250 +v 0.437500 0.187500 -0.531250 +v 0.437500 0.312500 -0.468750 +v 0.437500 0.187500 -0.468750 +v 0.187500 0.312500 -0.343750 +v 0.187500 0.312500 -0.406250 +v 0.187500 0.187500 -0.406250 +v 0.187500 0.187500 -0.343750 +v -0.437500 0.312500 0.531250 +v -0.437500 0.187500 0.531250 +v -0.437500 0.312500 0.468750 +v -0.437500 0.187500 0.468750 +v -0.187500 0.312500 0.343750 +v -0.187500 0.312500 0.406250 +v -0.187500 0.187500 0.406250 +v -0.187500 0.187500 0.343750 +v -0.500000 0.500000 0.250000 +v -0.676777 0.500000 0.323223 +v -0.750000 0.500000 0.500000 +v -0.676777 0.500000 0.676777 +v -0.500000 0.500000 0.750000 +v -0.323223 0.500000 0.676777 +v -0.250000 0.500000 0.500000 +v -0.323223 0.500000 0.323223 +v 0.500000 0.500000 0.250000 +v 0.323223 0.500000 0.323223 +v 0.250000 0.500000 0.500000 +v 0.323223 0.500000 0.676777 +v 0.500000 0.500000 0.750000 +v 0.676777 0.500000 0.676777 +v 0.750000 0.500000 0.500000 +v 0.676777 0.500000 0.323223 +v -0.500000 0.500000 -0.750000 +v -0.676777 0.500000 -0.676777 +v -0.750000 0.500000 -0.500000 +v -0.676777 0.500000 -0.323223 +v -0.500000 0.500000 -0.250000 +v -0.323223 0.500000 -0.323223 +v -0.250000 0.500000 -0.500000 +v -0.323223 0.500000 -0.676777 +v 0.500000 0.500000 -0.750000 +v 0.323223 0.500000 -0.676777 +v 0.250000 0.500000 -0.500000 +v 0.323223 0.500000 -0.323223 +v 0.500000 0.500000 -0.250000 +v 0.676777 0.500000 -0.323223 +v 0.750000 0.500000 -0.500000 +v 0.676777 0.500000 -0.676777 +vt 0.125000 0.800000 +vt 0.625000 1.000000 +vt 0.125000 1.000000 +vt 0.625000 0.800000 +vt 0.750000 0.500000 +vt 0.750000 0.800000 +vt 0.625000 0.500000 +vt 0.125000 0.300000 +vt 0.625000 0.300000 +vt 0.125000 0.500000 +vt 0.000000 0.800000 +vt 0.000000 0.500000 +vt 0.125000 0.000000 +vt 0.625000 0.000000 +vt 0.812500 1.000000 +vt 0.750000 0.700000 +vt 0.812500 0.700000 +vt 1.000000 1.000000 +vt 0.937500 0.700000 +vt 1.000000 0.700000 +vt 0.937500 1.000000 +vt 0.875000 0.700000 +vt 0.875000 1.000000 +vt 0.875000 0.600000 +vt 0.812500 0.600000 +vt 0.812500 1.000000 +vt 0.750000 0.700000 +vt 0.812500 0.700000 +vt 1.000000 1.000000 +vt 0.937500 0.700000 +vt 1.000000 0.700000 +vt 0.937500 1.000000 +vt 0.875000 0.700000 +vt 0.875000 1.000000 +vt 0.875000 0.600000 +vt 0.812500 0.600000 +vt 0.812500 1.000000 +vt 0.750000 0.700000 +vt 0.812500 0.700000 +vt 1.000000 1.000000 +vt 0.937500 0.700000 +vt 1.000000 0.700000 +vt 0.937500 1.000000 +vt 0.875000 0.700000 +vt 0.875000 1.000000 +vt 0.875000 0.600000 +vt 0.812500 0.600000 +vt 0.875000 0.598554 +vt 0.750904 0.400000 +vt 0.875000 0.201446 +vt 0.812500 1.000000 +vt 0.750000 0.700000 +vt 0.812500 0.700000 +vt 1.000000 1.000000 +vt 0.937500 0.700000 +vt 1.000000 0.700000 +vt 0.937500 1.000000 +vt 0.875000 0.700000 +vt 0.875000 1.000000 +vt 0.875000 0.600000 +vt 0.812500 0.600000 +vt 0.625000 0.200000 +vt 0.750000 0.300000 +vt 0.625000 0.300000 +vt 0.625000 0.050000 +vt 0.750000 0.150000 +vt 0.625000 0.150000 +vt 0.750000 0.300000 +vt 0.625000 0.200000 +vt 0.750000 0.200000 +vt 0.750000 0.150000 +vt 0.625000 0.050000 +vt 0.750000 0.050000 +vt 0.625000 0.150000 +vt 0.750000 0.000000 +vt 0.625000 0.000000 +vt 0.750000 0.200000 +vt 0.750000 0.000000 +vt 0.750000 0.050000 +vt 0.625000 0.050000 +vt 0.750000 0.150000 +vt 0.625000 0.150000 +vt 0.625000 0.200000 +vt 0.750000 0.300000 +vt 0.625000 0.300000 +vt 0.750000 0.150000 +vt 0.625000 0.050000 +vt 0.750000 0.050000 +vt 0.750000 0.300000 +vt 0.625000 0.200000 +vt 0.750000 0.200000 +vt 0.625000 0.000000 +vt 0.750000 0.000000 +vt 0.625000 0.150000 +vt 0.625000 0.000000 +vt 0.750000 0.050000 +vt 0.750000 0.200000 +vt 0.999096 0.400000 +vt 0.962749 0.540399 +vt 0.875000 0.598554 +vt 0.875000 0.598554 +vt 0.750904 0.400000 +vt 0.875000 0.201446 +vt 0.999096 0.400000 +vt 0.962749 0.540399 +vt 0.875000 0.598554 +vt 0.750000 1.000000 +vt 0.750000 1.000000 +vt 0.750000 1.000000 +vt 0.787251 0.540399 +vt 0.787251 0.259601 +vt 0.962749 0.259601 +vt 0.999096 0.400000 +vt 0.962749 0.540399 +vt 0.750000 1.000000 +vt 0.625000 0.300000 +vt 0.625000 0.000000 +vt 0.625000 0.300000 +vt 0.750000 0.000000 +vt 0.787251 0.540399 +vt 0.875000 0.201446 +vt 0.750904 0.400000 +vt 0.787251 0.259601 +vt 0.962749 0.259601 +vt 0.787251 0.540399 +vt 0.787251 0.259601 +vt 0.962749 0.259601 +vt 0.999096 0.400000 +vt 0.962749 0.540399 +vt 0.787251 0.540399 +vt 0.875000 0.201446 +vt 0.750904 0.400000 +vt 0.787251 0.259601 +vt 0.962749 0.259601 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.4472 0.0000 -0.8944 +vn -0.4472 0.0000 0.8944 +vn 0.4472 0.0000 0.8944 +vn -0.4472 0.0000 -0.8944 +s off +f 2/1/1 3/2/1 1/3/1 +f 4/4/2 7/5/2 3/6/2 +f 8/7/3 5/8/3 7/9/3 +f 6/10/4 1/11/4 5/12/4 +f 7/9/5 1/13/5 3/14/5 +f 4/4/6 6/10/6 8/7/6 +f 10/15/1 11/16/1 9/17/1 +f 12/18/2 15/19/2 11/20/2 +f 16/21/3 13/22/3 15/19/3 +f 14/23/4 9/17/4 13/22/4 +f 15/24/5 9/17/5 11/25/5 +f 18/26/1 19/27/1 17/28/1 +f 20/29/2 23/30/2 19/31/2 +f 24/32/3 21/33/3 23/30/3 +f 22/34/4 17/28/4 21/33/4 +f 23/35/5 17/28/5 19/36/5 +f 26/37/1 27/38/1 25/39/1 +f 28/40/2 31/41/2 27/42/2 +f 32/43/3 29/44/3 31/41/3 +f 30/45/4 25/39/4 29/44/4 +f 31/46/5 25/39/5 27/47/5 +f 81/48/6 83/49/6 85/50/6 +f 34/51/1 35/52/1 33/53/1 +f 36/54/2 39/55/2 35/56/2 +f 40/57/3 37/58/3 39/55/3 +f 38/59/4 33/53/4 37/58/4 +f 39/60/5 33/53/5 35/61/5 +f 50/62/7 54/63/7 49/64/7 +f 51/65/8 56/66/8 52/67/8 +f 43/68/7 48/69/7 44/70/7 +f 42/71/8 46/72/8 41/73/8 +f 44/70/6 47/74/6 42/71/6 +f 43/75/5 46/72/5 45/76/5 +f 52/67/6 55/77/6 50/62/6 +f 51/65/5 54/78/5 53/79/5 +f 66/80/9 70/81/9 65/82/9 +f 67/83/10 72/84/10 68/85/10 +f 59/86/9 64/87/9 60/88/9 +f 58/89/10 62/90/10 57/91/10 +f 60/88/5 63/92/5 58/93/5 +f 59/86/6 62/90/6 61/94/6 +f 68/95/5 71/96/5 66/80/5 +f 67/83/6 70/81/6 69/97/6 +f 79/98/6 80/99/6 73/100/6 +f 97/101/6 99/102/6 101/103/6 +f 95/104/6 96/105/6 89/106/6 +f 2/1/1 4/4/1 3/2/1 +f 4/4/2 8/7/2 7/5/2 +f 8/7/3 6/10/3 5/8/3 +f 6/10/4 2/1/4 1/11/4 +f 7/9/5 5/8/5 1/13/5 +f 4/4/6 2/1/6 6/10/6 +f 10/15/1 12/107/1 11/16/1 +f 12/18/2 16/21/2 15/19/2 +f 16/21/3 14/23/3 13/22/3 +f 14/23/4 10/15/4 9/17/4 +f 15/24/5 13/22/5 9/17/5 +f 18/26/1 20/108/1 19/27/1 +f 20/29/2 24/32/2 23/30/2 +f 24/32/3 22/34/3 21/33/3 +f 22/34/4 18/26/4 17/28/4 +f 23/35/5 21/33/5 17/28/5 +f 26/37/1 28/109/1 27/38/1 +f 28/40/2 32/43/2 31/41/2 +f 32/43/3 30/45/3 29/44/3 +f 30/45/4 26/37/4 25/39/4 +f 31/46/5 29/44/5 25/39/5 +f 81/48/6 82/110/6 83/49/6 +f 83/49/6 84/111/6 85/50/6 +f 85/50/6 86/112/6 87/113/6 +f 87/113/6 88/114/6 85/50/6 +f 88/114/6 81/48/6 85/50/6 +f 34/51/1 36/115/1 35/52/1 +f 36/54/2 40/57/2 39/55/2 +f 40/57/3 38/59/3 37/58/3 +f 38/59/4 34/51/4 33/53/4 +f 39/60/5 37/58/5 33/53/5 +f 50/62/7 55/77/7 54/63/7 +f 51/65/8 53/79/8 56/66/8 +f 43/68/7 45/116/7 48/69/7 +f 42/71/8 47/74/8 46/72/8 +f 44/70/6 48/69/6 47/74/6 +f 43/75/5 41/73/5 46/72/5 +f 52/67/6 56/66/6 55/77/6 +f 51/65/5 49/117/5 54/78/5 +f 66/80/9 71/96/9 70/81/9 +f 67/83/10 69/97/10 72/84/10 +f 59/86/9 61/94/9 64/87/9 +f 58/89/10 63/118/10 62/90/10 +f 60/88/5 64/87/5 63/92/5 +f 59/86/6 57/91/6 62/90/6 +f 68/95/5 72/119/5 71/96/5 +f 67/83/6 65/82/6 70/81/6 +f 73/100/6 74/120/6 77/121/6 +f 74/120/6 75/122/6 77/121/6 +f 75/122/6 76/123/6 77/121/6 +f 77/121/6 78/124/6 73/100/6 +f 78/124/6 79/98/6 73/100/6 +f 97/101/6 98/125/6 99/102/6 +f 99/102/6 100/126/6 101/103/6 +f 101/103/6 102/127/6 103/128/6 +f 103/128/6 104/129/6 101/103/6 +f 104/129/6 97/101/6 101/103/6 +f 89/106/6 90/130/6 93/131/6 +f 90/130/6 91/132/6 93/131/6 +f 91/132/6 92/133/6 93/131/6 +f 93/131/6 94/134/6 89/106/6 +f 94/134/6 95/104/6 89/106/6 diff --git a/src/main/resources/assets/hbm/textures/entity/quadcopter.png b/src/main/resources/assets/hbm/textures/entity/quadcopter.png new file mode 100644 index 0000000000000000000000000000000000000000..26d6b5518e6e5642dd6161e9f332b95b30aae07a GIT binary patch literal 334 zcmV-U0kQsxP)ZLP&13_aXj0h54)NvH%QRKg@o!X#7z5-MR5kbr}|AMe5A z5|U*fWcU0bDbSXl(*}bI<2Y`$?FiO&HAnotTgG7+P6dxK9`^M*73oGaE6{pLFPN*G z?_rOEcX=qi{Hg{@e|yzzQgA0ySENeUUGkkGyc0yU{jIRpVp*2WIR|SkMC3Ptny0H> zP~K-|hzL{_M3n6!0st`8-PniGsM z=ES;B!W2BAEI-ge14-d^a3X^D9?rRJW9I%ENP$8K003((hzP3s--bP*s-~oXnLqX) gpM;Mm@c4h=2NX7iSuZx(r2qf`07*qoM6N<$f>WJ_I{*Lx literal 0 HcmV?d00001 From ee7c10174a42a62f4a7b1f04ae22dcce5f256d8e Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 21 Jun 2023 21:47:20 +0200 Subject: [PATCH 094/109] compressor recipes --- .../java/com/hbm/inventory/FluidStack.java | 10 +++- .../container/ContainerCompressor.java | 25 ++++++-- .../inventory/recipes/CompressorRecipes.java | 57 +++++++++++++++++++ .../machine/TileEntityMachineCompressor.java | 2 +- 4 files changed, 86 insertions(+), 8 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java diff --git a/src/main/java/com/hbm/inventory/FluidStack.java b/src/main/java/com/hbm/inventory/FluidStack.java index f508ed0ab..03b001ef4 100644 --- a/src/main/java/com/hbm/inventory/FluidStack.java +++ b/src/main/java/com/hbm/inventory/FluidStack.java @@ -3,9 +3,10 @@ package com.hbm.inventory; import com.hbm.inventory.fluid.FluidType; public class FluidStack { - - public int fill; + public FluidType type; + public int fill; + public int pressure; public FluidStack(int fill, FluidType type) { this.fill = fill; @@ -13,7 +14,12 @@ public class FluidStack { } public FluidStack(FluidType type, int fill) { + this(type, fill, 0); + } + + public FluidStack(FluidType type, int fill, int pressure) { this.fill = fill; this.type = type; + this.pressure = pressure; } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerCompressor.java b/src/main/java/com/hbm/inventory/container/ContainerCompressor.java index 32e147770..e54aee2d3 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCompressor.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCompressor.java @@ -1,7 +1,9 @@ package com.hbm.inventory.container; +import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.tileentity.machine.TileEntityMachineCompressor; +import api.hbm.energy.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -16,7 +18,9 @@ public class ContainerCompressor extends Container { compressor = tile; //Fluid ID - this.addSlotToContainer(new Slot(tile, 0, 35, 72)); + this.addSlotToContainer(new Slot(tile, 0, 17, 72)); + //Battery + this.addSlotToContainer(new Slot(tile, 1, 152, 72)); for(int i = 0; i < 3; i++) { for(int j = 0; j < 9; j++) { @@ -43,12 +47,23 @@ public class ContainerCompressor extends Container { ItemStack var5 = var4.getStack(); var3 = var5.copy(); - if(index == 0) { - if(!this.mergeItemStack(var5, 1, this.inventorySlots.size(), true)) { + if(index < 2) { + if(!this.mergeItemStack(var5, 2, this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(var3.getItem() instanceof IBatteryItem) { + if(!this.mergeItemStack(var5, 1, 2, false)) { + return null; + } + } else if(var3.getItem() instanceof IItemFluidIdentifier) { + if(!this.mergeItemStack(var5, 0, 1, false)) { + return null; + } + } else { return null; } - } else if(!this.mergeItemStack(var5, 0, 1, false)) { - return null; } if(var5.stackSize == 0) { diff --git a/src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java b/src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java new file mode 100644 index 000000000..15f5b2baa --- /dev/null +++ b/src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java @@ -0,0 +1,57 @@ +package com.hbm.inventory.recipes; + +import java.io.IOException; +import java.util.HashMap; + +import com.google.gson.JsonElement; +import com.google.gson.stream.JsonWriter; +import com.hbm.inventory.FluidStack; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.util.Tuple.Pair; + +public class CompressorRecipes extends SerializableRecipe { + + public static HashMap, CompressorRecipe> recipes = new HashMap(); + + @Override + public void registerDefaults() { + + } + + public static class CompressorRecipe { + + public FluidStack output; + public int inputAmount; + + public CompressorRecipe(int input, FluidStack output) { + this.output = output; + this.inputAmount = input; + } + } + + @Override + public String getFileName() { + return "hbmCompressor.json"; + } + + @Override + public Object getRecipeObject() { + return recipes; + } + + @Override + public void deleteRecipes() { + recipes.clear(); + } + + @Override + public void readRecipe(JsonElement recipe) { + + } + + @Override + public void writeRecipe(Object recipe, JsonWriter writer) throws IOException { + + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java index 932e56e59..69c09f344 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java @@ -15,7 +15,7 @@ import net.minecraft.world.World; public class TileEntityMachineCompressor extends TileEntityMachineBase implements IGUIProvider { public TileEntityMachineCompressor() { - super(1); + super(2); } @Override From d6cdc69c899b873bd252329eafd581e32b9dae26 Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 22 Jun 2023 14:59:54 +0200 Subject: [PATCH 095/109] pressure --- changelog | 44 +++ .../hbm/fluid/IFluidStandardTransceiver.java | 8 +- .../hbm/blocks/machine/MachineCompressor.java | 19 +- .../hbm/inventory/fluid/tank/FluidTank.java | 3 + .../com/hbm/inventory/gui/GUICompressor.java | 43 ++- .../inventory/recipes/CompressorRecipes.java | 17 +- .../inventory/recipes/OutgasserRecipes.java | 2 + .../recipes/loader/JSONLoaderBase.java | 177 ------------ .../recipes/loader/SerializableRecipe.java | 5 +- .../com/hbm/items/tool/ItemBlowtorch.java | 2 +- .../render/tileentity/RenderCompressor.java | 11 +- .../machine/TileEntityMachineCompressor.java | 251 +++++++++++++++++- .../textures/models/machines/compressor.png | Bin 3463 -> 5337 bytes 13 files changed, 386 insertions(+), 196 deletions(-) delete mode 100644 src/main/java/com/hbm/inventory/recipes/loader/JSONLoaderBase.java diff --git a/changelog b/changelog index e69de29bb..7e7de1c66 100644 --- a/changelog +++ b/changelog @@ -0,0 +1,44 @@ +## Added +* Glpyhids + * Hives will spawn randomly in the world + * Hives will constantly spawn new glyphids + * If explosed to soot, hives will create glyphid scouts, which when far enough from another hive will explode and generate a new hive + * Higher soot levels create stronger glyphids + * Glyphids possess armor which has a chance of breaking off and fully abrosrbing damage + * Each glyphid has five armor plates + * Glyphid types include multiple tiers of melee glyphids as well as a few ranged ones, the scout, and a nuclear variant +* Compressor + * Can compress fluids, turning them into higher pressure variants + * Can also turn steam into higher pressure types +* A new rocket artillery ammo type that creates volcanic lava on impact +* BDCL + * A type of lubricant that is easy to make and can be used in hydraulic piston and electric press recipes instead of regular lubricant +* FBI drones + * A configurable amount of drones can now spawn during FBI raids + * They will hover over players, dropping bombs + +## Changed +* Updated russian localization +* Fluid traits can now be configured, any fluid can now have any fluid with variable stats assigned to them +* Large explosions now load the central chunk they are in, this can be disabled in the config +* Burning leaded fuels now releases poisonous heavy metals into the atmosphere +* The pollution detector now displays rounded values +* More machines and especially destroyed ones now release soot +* The iGen has been rebalanced again, delete your machine config file for the changes to take effect + * The lubrican power multiplier has been increased from 1.1 to 1.5 + * The fluid divisor has been lowered from 5,000 to 1,000, meaning the iGen now burns flammable liquids at full efficiency +* Removed the config for having an additional keybind for dashing, the keybind is now always active since it no longer conflicts with crouching +* Crucible recipes no longer use foundry scraps to visualize the recipes, instead they use a lava-like texture +* Fusion reactors are now made from welded magnets which are created by weling a cast steel plate onto a magnet + * Due to the cost of the cast plates, fusion reactor magnets are now cheaper to compensate + * Consequently, particle accelerators are now also cheaper due to being made from mostly fusion reactor magnets +* The blowtorch now consumes only 250mB per operation, allowing for up to 16 things to be welded with a single fill +* The page and notebook items have been replaced with more dynamic book items that get their data from NBT +* C4 can now be made by irradiating PVC + * Play stupid games, win stupid prizes + +## Fixed +* Fixed potential crash or logspam regarding the pollution handler +* Fixed missiles leaving behind a 3x3 grid of loaded chunks after being destroyed +* Fixed coal ore yielding coal in the crucible instead of making carbon +* Fixed a potential issue where BuildCraft generators can't supply the RF to HE converter \ No newline at end of file diff --git a/src/main/java/api/hbm/fluid/IFluidStandardTransceiver.java b/src/main/java/api/hbm/fluid/IFluidStandardTransceiver.java index eb7092ad8..4012ab63f 100644 --- a/src/main/java/api/hbm/fluid/IFluidStandardTransceiver.java +++ b/src/main/java/api/hbm/fluid/IFluidStandardTransceiver.java @@ -26,7 +26,7 @@ public interface IFluidStandardTransceiver extends IFluidUser { public default long getTotalFluidForSend(FluidType type, int pressure) { for(FluidTank tank : getSendingTanks()) { - if(tank.getTankType() == type) { + if(tank.getTankType() == type && tank.getPressure() == pressure) { return tank.getFill(); } } @@ -38,7 +38,7 @@ public interface IFluidStandardTransceiver extends IFluidUser { public default void removeFluidForTransfer(FluidType type, int pressure, long amount) { for(FluidTank tank : getSendingTanks()) { - if(tank.getTankType() == type) { + if(tank.getTankType() == type && tank.getPressure() == pressure) { tank.setFill(tank.getFill() - (int) amount); return; } @@ -49,7 +49,7 @@ public interface IFluidStandardTransceiver extends IFluidUser { public default long getDemand(FluidType type, int pressure) { for(FluidTank tank : getReceivingTanks()) { - if(tank.getTankType() == type) { + if(tank.getTankType() == type && tank.getPressure() == pressure) { return tank.getMaxFill() - tank.getFill(); } } @@ -61,7 +61,7 @@ public interface IFluidStandardTransceiver extends IFluidUser { public default long transferFluid(FluidType type, int pressure, long amount) { for(FluidTank tank : getReceivingTanks()) { - if(tank.getTankType() == type) { + if(tank.getTankType() == type && tank.getPressure() == pressure) { tank.setFill(tank.getFill() + (int) amount); if(tank.getFill() > tank.getMaxFill()) { diff --git a/src/main/java/com/hbm/blocks/machine/MachineCompressor.java b/src/main/java/com/hbm/blocks/machine/MachineCompressor.java index 791ad2f77..f22bc3fc1 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCompressor.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCompressor.java @@ -1,6 +1,8 @@ package com.hbm.blocks.machine; import com.hbm.blocks.BlockDummyable; +import com.hbm.handler.MultiblockHandlerXR; +import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityMachineCompressor; import net.minecraft.block.material.Material; @@ -18,6 +20,7 @@ public class MachineCompressor extends BlockDummyable { @Override public TileEntity createNewTileEntity(World world, int meta) { if(meta >= 12) return new TileEntityMachineCompressor(); + if(meta >= extra) return new TileEntityProxyCombo().fluid().power(); return null; } @@ -39,11 +42,25 @@ public class MachineCompressor extends BlockDummyable { @Override protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { - return super.checkRequirement(world, x, y, z, dir, o); + return super.checkRequirement(world, x, y, z, dir, o) && + MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {3, -3, 1, 1, 1, 1}, x, y, z, dir) && + MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {8, -4, 0, 0, 1, 1}, x, y, z, dir); } @Override public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { super.fillSpace(world, x, y, z, dir, o); + + MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {3, -3, 1, 1, 1, 1}, this, dir); + MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {8, -4, 0, 0, 1, 1}, this, dir); + + x += dir.offsetX * o; + z += dir.offsetZ * o; + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + this.makeExtra(world, x - dir.offsetX, y, z - dir.offsetZ); + this.makeExtra(world, x + rot.offsetX, y, z + rot.offsetZ); + this.makeExtra(world, x - rot.offsetX, y, z - rot.offsetZ); } } diff --git a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java index 90e8b3bbf..c9e94b9ee 100644 --- a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java +++ b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java @@ -44,6 +44,9 @@ public class FluidTank { } public FluidTank withPressure(int pressure) { + + if(this.pressure != pressure) this.setFill(0); + this.pressure = pressure; return this; } diff --git a/src/main/java/com/hbm/inventory/gui/GUICompressor.java b/src/main/java/com/hbm/inventory/gui/GUICompressor.java index c31ee0baf..9e2f758e8 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICompressor.java +++ b/src/main/java/com/hbm/inventory/gui/GUICompressor.java @@ -4,21 +4,25 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerCompressor; import com.hbm.lib.RefStrings; +import com.hbm.packet.NBTControlPacket; +import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.machine.TileEntityMachineCompressor; import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ResourceLocation; public class GUICompressor extends GuiInfoContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_compressor.png"); - private TileEntityMachineCompressor solidifier; + private TileEntityMachineCompressor compressor; public GUICompressor(InventoryPlayer invPlayer, TileEntityMachineCompressor tedf) { super(new ContainerCompressor(invPlayer, tedf)); - solidifier = tedf; + compressor = tedf; this.xSize = 176; this.ySize = 204; @@ -28,14 +32,31 @@ public class GUICompressor extends GuiInfoContainer { public void drawScreen(int mouseX, int mouseY, float f) { super.drawScreen(mouseX, mouseY, f); - //solidifier.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 35, guiTop + 36, 16, 52); - //this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 134, guiTop + 18, 16, 52, solidifier.power, solidifier.maxPower); + compressor.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 17, guiTop + 18, 16, 52); + compressor.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 107, guiTop + 18, 16, 52); + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 18, 16, 52, compressor.power, compressor.maxPower); + } + + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + for(int j = 0; j < 5; j++) { + + if(guiLeft + 43 + j * 11 <= x && guiLeft + 43 + 8 + j * 11 > x && guiTop + 46 < y && guiTop + 46 + 14 >= y) { + + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setInteger("compression", j); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, compressor.xCoord, compressor.yCoord, compressor.zCoord)); + } + } } @Override protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.solidifier.hasCustomInventoryName() ? this.solidifier.getInventoryName() : I18n.format(this.solidifier.getInventoryName()); + String name = this.compressor.hasCustomInventoryName() ? this.compressor.getInventoryName() : I18n.format(this.compressor.getInventoryName()); this.fontRendererObj.drawString(name, 70 - this.fontRendererObj.getStringWidth(name) / 2, 6, 0xC7C1A3); this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); @@ -46,5 +67,17 @@ public class GUICompressor extends GuiInfoContainer { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + if(compressor.power >= 1_000) { + drawTexturedModalRect(guiLeft + 156, guiTop + 4, 176, 52, 9, 12); + } + + drawTexturedModalRect(guiLeft + 43 + compressor.tanks[0].getPressure() * 11, guiTop + 46, 193, 18, 8, 124); + + int i = compressor.progress * 55 / compressor.processTime; + drawTexturedModalRect(guiLeft + 42, guiTop + 26, 192, 0, i, 17); + + compressor.tanks[0].renderTank(guiLeft + 17, guiTop + 70, this.zLevel, 16, 52); + compressor.tanks[1].renderTank(guiLeft + 107, guiTop + 70, this.zLevel, 16, 52); } } diff --git a/src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java b/src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java index 15f5b2baa..2e22d2e8b 100644 --- a/src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java @@ -2,11 +2,14 @@ package com.hbm.inventory.recipes; import java.io.IOException; import java.util.HashMap; +import java.util.Map.Entry; import com.google.gson.JsonElement; +import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.inventory.FluidStack; import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.util.Tuple.Pair; @@ -16,7 +19,9 @@ public class CompressorRecipes extends SerializableRecipe { @Override public void registerDefaults() { - + recipes.put(new Pair(Fluids.STEAM, 0), new CompressorRecipe(1_000, new FluidStack(Fluids.HOTSTEAM, 100))); + recipes.put(new Pair(Fluids.HOTSTEAM, 0), new CompressorRecipe(1_000, new FluidStack(Fluids.SUPERHOTSTEAM, 100))); + recipes.put(new Pair(Fluids.SUPERHOTSTEAM, 0), new CompressorRecipe(1_000, new FluidStack(Fluids.ULTRAHOTSTEAM, 100))); } public static class CompressorRecipe { @@ -47,11 +52,21 @@ public class CompressorRecipes extends SerializableRecipe { @Override public void readRecipe(JsonElement recipe) { + JsonObject obj = recipe.getAsJsonObject(); + + FluidStack input = this.readFluidStack(obj.get("input").getAsJsonArray()); + FluidStack output = this.readFluidStack(obj.get("output").getAsJsonArray()); + recipes.put(new Pair(input.type, input.pressure), new CompressorRecipe(input.fill, output)); } @Override public void writeRecipe(Object recipe, JsonWriter writer) throws IOException { + Entry, CompressorRecipe> entry = (Entry) recipe; + writer.name("input"); + this.writeFluidStack(new FluidStack(entry.getKey().getKey(), entry.getValue().inputAmount, entry.getKey().getValue()), writer); + writer.name("output"); + this.writeFluidStack(entry.getValue().output, writer); } } diff --git a/src/main/java/com/hbm/inventory/recipes/OutgasserRecipes.java b/src/main/java/com/hbm/inventory/recipes/OutgasserRecipes.java index 1f1c72505..491a8595f 100644 --- a/src/main/java/com/hbm/inventory/recipes/OutgasserRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/OutgasserRecipes.java @@ -56,6 +56,8 @@ public class OutgasserRecipes extends SerializableRecipe { recipes.put(new OreDictStack(COAL.gem()), new Pair(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.COAL, 1), new FluidStack(Fluids.SYNGAS, 50))); recipes.put(new OreDictStack(COAL.dust()), new Pair(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.COAL, 1), new FluidStack(Fluids.SYNGAS, 50))); recipes.put(new OreDictStack(COAL.block()), new Pair(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.COAL, 9), new FluidStack(Fluids.SYNGAS, 500))); + + recipes.put(new OreDictStack(PVC.ingot()), new Pair(new ItemStack(ModItems.ingot_c4), new FluidStack(Fluids.COLLOID, 250))); recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.COAL)), new Pair(null, new FluidStack(Fluids.COALOIL, 100))); recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.WAX)), new Pair(null, new FluidStack(Fluids.RADIOSOLVENT, 100))); diff --git a/src/main/java/com/hbm/inventory/recipes/loader/JSONLoaderBase.java b/src/main/java/com/hbm/inventory/recipes/loader/JSONLoaderBase.java deleted file mode 100644 index a2e8bc316..000000000 --- a/src/main/java/com/hbm/inventory/recipes/loader/JSONLoaderBase.java +++ /dev/null @@ -1,177 +0,0 @@ -package com.hbm.inventory.recipes.loader; - -import java.io.File; -import java.io.FileReader; -import java.io.IOException; - -import com.google.gson.Gson; -import com.google.gson.JsonArray; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.stream.JsonWriter; -import com.hbm.inventory.RecipesCommon.AStack; -import com.hbm.inventory.RecipesCommon.ComparableStack; -import com.hbm.inventory.RecipesCommon.OreDictStack; -import com.hbm.main.MainRegistry; - -import net.minecraft.item.Item; -import net.minecraftforge.oredict.OreDictionary; - -@Deprecated -public abstract class JSONLoaderBase { - - public File config; - public File template; - private final Gson gson = new Gson(); - - public JSONLoaderBase() { - - } - - public void loadRecipes() { - registerDefaults(); - //saveTemplateJSON(template); - - if(config != null) { - loadJSONRecipes(); - } - } - - protected abstract void registerDefaults(); - - protected void loadJSONRecipes() { - - try { - JsonObject json = gson.fromJson(new FileReader(config), JsonObject.class); - JsonElement recipes = json.get("recipes"); - - if(recipes instanceof JsonArray) { - - JsonArray recArray = recipes.getAsJsonArray(); - for(JsonElement recipe : recArray) { - - if(recipe.isJsonObject()) { - - } - } - } - } catch (Exception e) { } - } - - protected static AStack aStackFromArray(JsonArray array) { - - boolean dict = false; - String item = ""; - int stacksize = 1; - int meta = 0; - - if(array.size() < 2) - return null; - - /* - * EVAL "dict" OR "item" - */ - if(array.get(0).isJsonPrimitive()) { - - if(array.get(0).getAsString().equals("item")) { - dict = false; - } else if(array.get(0).getAsString().equals("dict")) { - dict = true; - } else { - MainRegistry.logger.error("Error reading recipe, stack array does not have 'item' or 'dict' label!"); - return null; - } - - } else { - MainRegistry.logger.error("Error reading recipe, label is not a valid data type!"); - return null; - } - - /* - * EVAL NAME - */ - if(array.get(1).isJsonPrimitive()) { - item = array.get(1).getAsString(); - } else { - MainRegistry.logger.error("Error reading recipe, item string is not a valid data type!"); - return null; - } - - /* - * EVAL STACKSIZE - */ - if(array.size() > 2 && array.get(2).isJsonPrimitive()) { - if(array.get(2).getAsJsonPrimitive().isNumber()) { - stacksize = Math.max(1, array.get(2).getAsJsonPrimitive().getAsNumber().intValue()); - } else { - MainRegistry.logger.error("Error reading recipe, stack size is not a valid data type!"); - return null; - } - } - - /* - * RESOLVE OREDICT - */ - if(dict) { - - if(OreDictionary.doesOreNameExist(item)) { - return new OreDictStack(item, stacksize); - } else { - - MainRegistry.logger.error("Error reading recipe, ore dict name does not exist!"); - return null; - } - - /* - * RESOLVE COMPARABLE - */ - } else { - - /* - * EVAL META - */ - if(array.size() > 3 && array.get(3).isJsonPrimitive()) { - if(array.get(3).getAsJsonPrimitive().isNumber()) { - meta = Math.max(0, array.get(3).getAsJsonPrimitive().getAsNumber().intValue()); - } else { - MainRegistry.logger.error("Error reading recipe, metadata is not a valid data type!"); - return null; - } - } - - Item it = (Item)Item.itemRegistry.getObject(item); - if(it == null) { - MainRegistry.logger.error("Item could not be found!"); - return null; - } - - return new ComparableStack(it, stacksize, meta); - } - } - - protected static void writeAStack(AStack astack, JsonWriter writer) throws IOException { - - writer.beginArray(); - writer.setIndent(""); - - if(astack instanceof ComparableStack) { - ComparableStack comp = (ComparableStack) astack; - - writer.value("item"); //ITEM identifier - writer.value(Item.itemRegistry.getNameForObject(comp.toStack().getItem())); //item name - if(comp.stacksize != 1) writer.value(comp.stacksize); //stack size - if(comp.meta > 0) writer.value(comp.meta); //metadata - } - - if(astack instanceof OreDictStack) { - OreDictStack ore = (OreDictStack) astack; - - writer.value("dict"); //DICT identifier - writer.value(ore.name); //dict name - writer.value(ore.stacksize); //stacksize - } - - writer.endArray(); - writer.setIndent(" "); - } -} diff --git a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java index 92e378ef2..405cede7f 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java @@ -60,6 +60,7 @@ public abstract class SerializableRecipe { recipeHandlers.add(new FuelPoolRecipes()); recipeHandlers.add(new MixerRecipes()); recipeHandlers.add(new OutgasserRecipes()); + recipeHandlers.add(new CompressorRecipes()); recipeHandlers.add(new MatDistribution()); } @@ -266,7 +267,8 @@ public abstract class SerializableRecipe { try { FluidType type = Fluids.fromName(array.get(0).getAsString()); int fill = array.get(1).getAsInt(); - return new FluidStack(type, fill); + int pressure = array.size() < 3 ? 0 : array.get(2).getAsInt(); + return new FluidStack(type, fill, pressure); } catch(Exception ex) { } MainRegistry.logger.error("Error reading fluid array " + array.toString()); return new FluidStack(Fluids.NONE, 0); @@ -287,6 +289,7 @@ public abstract class SerializableRecipe { writer.setIndent(""); writer.value(stack.type.getName()); //fluid type writer.value(stack.fill); //amount in mB + if(stack.pressure != 0) writer.value(stack.pressure); writer.endArray(); writer.setIndent(" "); } diff --git a/src/main/java/com/hbm/items/tool/ItemBlowtorch.java b/src/main/java/com/hbm/items/tool/ItemBlowtorch.java index 172e0fa4a..211a203c6 100644 --- a/src/main/java/com/hbm/items/tool/ItemBlowtorch.java +++ b/src/main/java/com/hbm/items/tool/ItemBlowtorch.java @@ -137,7 +137,7 @@ public class ItemBlowtorch extends Item implements IFillableItem { if(!world.isRemote) { if(this == ModItems.blowtorch) { - this.setFill(stack, Fluids.GAS, this.getFill(stack, Fluids.GAS) - 1000); + this.setFill(stack, Fluids.GAS, this.getFill(stack, Fluids.GAS) - 250); } if(this == ModItems.acetylene_torch) { diff --git a/src/main/java/com/hbm/render/tileentity/RenderCompressor.java b/src/main/java/com/hbm/render/tileentity/RenderCompressor.java index 4c8eb0faa..6934ff5ac 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderCompressor.java +++ b/src/main/java/com/hbm/render/tileentity/RenderCompressor.java @@ -4,6 +4,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.BlockDummyable; import com.hbm.main.ResourceManager; +import com.hbm.tileentity.machine.TileEntityMachineCompressor; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; @@ -28,18 +29,18 @@ public class RenderCompressor extends TileEntitySpecialRenderer { bindTexture(ResourceManager.compressor_tex); ResourceManager.compressor.renderPart("Compressor"); - double h = (System.currentTimeMillis() * 0.005) % 6D; - - if(h > 3) h = 6 - h; + TileEntityMachineCompressor compressor = (TileEntityMachineCompressor) tile; + float lift = compressor.prevPiston + (compressor.piston - compressor.prevPiston) * interp; + float fan = compressor.prevFanSpin + (compressor.fanSpin - compressor.prevFanSpin) * interp; GL11.glPushMatrix(); - GL11.glTranslated(0, h - 3, 0); + GL11.glTranslatef(0, lift * 3 - 3, 0); ResourceManager.compressor.renderPart("Pump"); GL11.glPopMatrix(); GL11.glPushMatrix(); GL11.glTranslated(0, 1.5, 0); - GL11.glRotated((System.currentTimeMillis() * -0.5) % 360, 1, 0, 0); + GL11.glRotatef(fan, 1, 0, 0); GL11.glTranslated(0, -1.5, 0); ResourceManager.compressor.renderPart("Fan"); GL11.glPopMatrix(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java index 69c09f344..26c4210ef 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java @@ -1,21 +1,52 @@ package com.hbm.tileentity.machine; +import com.hbm.blocks.BlockDummyable; +import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.container.ContainerCompressor; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUICompressor; +import com.hbm.inventory.recipes.CompressorRecipes; +import com.hbm.inventory.recipes.CompressorRecipes.CompressorRecipe; +import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.Tuple.Pair; +import com.hbm.util.fauxpointtwelve.DirPos; +import api.hbm.energy.IEnergyUser; +import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineCompressor extends TileEntityMachineBase implements IGUIProvider { +public class TileEntityMachineCompressor extends TileEntityMachineBase implements IGUIProvider, IControlReceiver, IEnergyUser, IFluidStandardTransceiver { + + public FluidTank[] tanks; + public long power; + public static final long maxPower = 1_000_000; + public boolean isOn; + public int progress; + public int processTime = 100; + + public float fanSpin; + public float prevFanSpin; + public float piston; + public float prevPiston; + public boolean pistonDir; public TileEntityMachineCompressor() { super(2); + this.tanks = new FluidTank[2]; + this.tanks[0] = new FluidTank(Fluids.NONE, 16_000); + this.tanks[1] = new FluidTank(Fluids.NONE, 16_000).withPressure(1); } @Override @@ -28,8 +59,148 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement if(!worldObj.isRemote) { + if(worldObj.getTotalWorldTime() % 20 == 0) { + this.updateConnections(); + } + + this.power = Library.chargeTEFromItems(slots, 1, power, maxPower); + this.tanks[0].setType(0, slots); + this.setupTanks(); + + if(canProcess()) { + this.progress++; + this.isOn = true; + this.power -= 1_000; + + if(progress >= this.processTime) { + progress = 0; + this.process(); + this.markChanged(); + } + + } else { + this.progress = 0; + this.isOn = false; + } + + for(DirPos pos : getConPos()) { + this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + + NBTTagCompound data = new NBTTagCompound(); + data.setInteger("progress", progress); + data.setLong("power", power); + tanks[0].writeToNBT(data, "0"); + tanks[1].writeToNBT(data, "1"); + data.setBoolean("isOn", isOn); + this.networkPack(data, 100); + + } else { + + this.prevFanSpin = this.fanSpin; + this.prevPiston = this.piston; + + if(this.isOn) { + this.fanSpin += 15; + + if(this.fanSpin >= 360) { + this.prevFanSpin -= 360; + this.fanSpin -= 360; + } + + if(this.pistonDir) { + this.piston -= 0.1F; + if(this.piston <= 0) this.pistonDir = !this.pistonDir; + } else { + this.piston += 0.05F; + if(this.piston >= 1) this.pistonDir = !this.pistonDir; + } + + this.piston = MathHelper.clamp_float(this.piston, 0F, 1F); + } } } + + public void networkUnpack(NBTTagCompound nbt) { + this.progress = nbt.getInteger("progress"); + this.power = nbt.getLong("power"); + tanks[0].readFromNBT(nbt, "0"); + tanks[1].readFromNBT(nbt, "1"); + this.isOn = nbt.getBoolean("isOn"); + } + + private void updateConnections() { + for(DirPos pos : getConPos()) { + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + public DirPos[] getConPos() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + return new DirPos[] { + new DirPos(xCoord + rot.offsetX * 2, yCoord, zCoord + rot.offsetZ * 2, rot), + new DirPos(xCoord - rot.offsetX * 2, yCoord, zCoord - rot.offsetZ * 2, rot.getOpposite()), + new DirPos(xCoord + dir.offsetX * 2, yCoord, zCoord + dir.offsetZ * 2, dir), + }; + } + + public boolean canProcess() { + + if(this.power <= 1_000) return false; + + CompressorRecipe recipe = CompressorRecipes.recipes.get(new Pair(tanks[0].getTankType(), tanks[0].getPressure())); + + if(recipe == null) { + return tanks[0].getFill() >= 1000 && tanks[1].getFill() + 1000 <= tanks[1].getMaxFill(); + } + + return tanks[0].getFill() > recipe.inputAmount && tanks[1].getFill() + recipe.output.fill <= tanks[1].getMaxFill(); + } + + public void process() { + + CompressorRecipe recipe = CompressorRecipes.recipes.get(new Pair(tanks[0].getTankType(), tanks[0].getPressure())); + + if(recipe == null) { + tanks[0].setFill(tanks[0].getFill() - 1_000); + tanks[1].setFill(tanks[1].getFill() + 1_000); + } else { + tanks[0].setFill(tanks[0].getFill() - recipe.inputAmount); + tanks[1].setFill(tanks[1].getFill() + recipe.output.fill); + } + } + + protected void setupTanks() { + + CompressorRecipe recipe = CompressorRecipes.recipes.get(new Pair(tanks[0].getTankType(), tanks[0].getPressure())); + + if(recipe == null) { + tanks[1].withPressure(tanks[0].getPressure() + 1).setTankType(tanks[0].getTankType()); + } else { + tanks[1].withPressure(recipe.output.pressure).setTankType(recipe.output.type); + } + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + power = nbt.getLong("power"); + progress = nbt.getInteger("progress"); + tanks[0].readFromNBT(nbt, "0"); + tanks[1].readFromNBT(nbt, "1"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setLong("power", power); + nbt.setInteger("progress", progress); + tanks[0].writeToNBT(nbt, "0"); + tanks[1].writeToNBT(nbt, "1"); + } @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { @@ -42,4 +213,82 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement return new GUICompressor(player.inventory, this); } + @Override + public boolean hasPermission(EntityPlayer player) { + return this.isUseableByPlayer(player); + } + + @Override + public void receiveControl(NBTTagCompound data) { + int compression = data.getInteger("compression"); + + if(compression != tanks[0].getPressure()) { + tanks[0].withPressure(compression); + + CompressorRecipe recipe = CompressorRecipes.recipes.get(new Pair(tanks[0].getTankType(), compression)); + + if(recipe == null) { + tanks[1].withPressure(compression + 1); + } else { + tanks[1].withPressure(recipe.output.pressure).setTankType(recipe.output.type); + } + + this.markChanged(); + } + } + + @Override + public long getPower() { + return power; + } + + @Override + public void setPower(long power) { + this.power = power; + } + + @Override + public long getMaxPower() { + return maxPower; + } + + @Override + public FluidTank[] getAllTanks() { + return tanks; + } + + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] {tanks[1]}; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] {tanks[0]}; + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 2, + yCoord, + zCoord - 2, + xCoord + 3, + yCoord + 9, + zCoord + 3 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } } diff --git a/src/main/resources/assets/hbm/textures/models/machines/compressor.png b/src/main/resources/assets/hbm/textures/models/machines/compressor.png index af84d82fd7c4a0ac20022cb0fedf303b0dfd56a2..2b26f107a5bf031ba598fe512912382c560c174b 100644 GIT binary patch literal 5337 zcmYjVc_36@`@alh-%?D7AxoqX3NZ#_E7=v_>`QjC#h|f_GFh@mWhwhoBa)DVInO!w^L)iuh0;6X0N{M0E=tWbD04ll!dtlYT(tYOht8M8M!IjKMRFjw zn=1^2lmus{X`^Uhf>yKht&TLphsKd&+X4!LHwG_9GF?gvcht^|Qm_;JRCN^_XmHR! zar?#7h~)qS&j16${+|EA+GdJmh;!kiu7-)>VY3O9OVn_011o5>RZ)?uSmAu z2PCgkFgZsQjE8*qvxPCnjIoJ{tPdYQ_KMu*iC`Rsg0>9{PTS z|Ig<5h>d&AhWQX?8kh6Khqc^xO02VyFd7${hMCpuNJp5h@E{eGTCUAjnmwAME~$A- z=vp$reVkU_m_#^_G>h1w%!X#Od5c(G1UMhDE9F6h_t5Wn!&4g*IB(S$>K41PgbA9} z-QC^a*LOCwJU*V~-`~H*JFtf}L3G!xp)T1=(A>EA_;}FW8^h;n1#;-{WZrY^IrA(n zeSP{K7mzGlfJly}IPEpH(Bxa}yUa4kx(rc`?|wQd^DH#aVe4uF#yU`{Y>i-HZ}>Dv z6`S}zFer?ML;z{9q5W41m+# zfl~8R0oyv0NLw5gQW=~JW)H9@EJ1%%FaC6q%Ow(twVTlt;aO}gE1GixnX%8iHK9#K zhUHTYW}bD7ZT;To2d3Hf^JxHBLR)$4hw$k18)TSR2&uudH;D8aL~A`=W45 zy98D3n~-ot-9fDMMe39p0EiN-qkDfVctScA&6HeGJZlF4UAkS^;#onRHh>=r5YJ6u zGulmxcY}fO*ZIoy49vXX`u*9|oi0{aSATGq>LU=6;(>Q|xxDnPBO|Yf$0QQ^axegR zb+jP?;0+y=8n6{+fcOLjnb#fsoSB)K-`eUIXRY}9^_E{#N=nKVnYisBzPXCd{(TmQ zwsvpxRj)FHaZmt@I{v_pQ0@(51kjIn(wxH_i#>2uvUkABlDG@JlEGyC7<&&)To{_4V18 zP$O4$e;_?PJqMx%FggY~h=R>VGXAl?D!!iO!e<3l)uQsoBezE#+mj)iA_D0EoGw|K z9fdkGw84;CNi{!2AnJ~+kLn(20n*!UH9Yb<7k5aVF!~L}v6rhpOg%Y(c)$NhZpot9 zXo#1$w?W;6*PPMmfD3AFI|Fkro45-<2gjrg04Gf^JMmHP1cS%c7`;d^^B{CADMH?A39kF4TPGzeZ zjb3=c_W~HZ{BU2M2=4Ey)op$4VT=CxOaTO;cnOi9Xc~W%lbLxQvAMo(mVEFOGfc*Y z);uLw2dxoQPkUySy^mKiZcyI@-T&bBf*o#`J{O|Fm4sV%jvzCbvCDO67EL#qJKwsa>bmgS+Q`(D-go!5xi|{WXhq!truZ zPW^ltd^smR0)RvD*G~?n!feK6b5ugKyc>vI9KFtPfAj;rBWFAK$`1dbiV3}KWEJUX zwS0MhecXSsFYCwlA|Z#nlK!|}N=!^_h)nLfYr!le;V7ebBzF4f8USv*1Gst++fjo9 znxiCsz%MpQjH4#(&-r3N+JK!d~?6Q((TQr@o_M)`_h;;nkb-spQl2Zzr~x zTwYuy@vt_9tQ=h(rs@O&6PdCaN*Bc1Vc(3DLwW7;bIJd0R^x&IwlrsvO9F#st1S+a zC5XMb3)Hq)4(1eEe9t_Z8ozOPZa>OG;Nj&cLZ&zI-Wa42fp}c_6GV zNl*(z+%g79G9AvtBlpzG^iVN*v*Tm(A|Q zOQG0$H^rXbln)MK+MaF`d|nYAkzA7c*MHfGl=z-iPo*jLPkmi;2=J~2S+m!1J;!tO z^~n?T^S!{|vYw;0E%Jc5aN^(p=C6SncWL_%owx>8VY3fVbtj%*LG>$(1}{Wcw2v%B z*|_NB`sFHk=*5Sc+t;cIC{#ieA)%@Q^IF-Q?+i8>7TUO9k_EEjWtoA?q_l%A9Ua9V zemd!zR=u@LscrDmo=pF3phlZYiaOk1Jd4imq3n0UUH;~xHQ1>~ooXBnu+5;vrXHhe znnVY*(DJqcVxQjl$$VF)Ph>Xlea$b;4rl0B7^2Z&wq4lTl3qaaO8zPca34Mw3 zr|XDGDEEgmMqicS3G)^X+Jjd6t#o$7v_KQ(-1e zQ$=(?qh${U2)Zo2`O&`)g|l95cn;b$QQRow`FXJ?hy}>(cZVxZtJi{#=df%Da~HO6 z(`rjwT4g6A1fL@cqJg~eZEx)^xwbA2>vnv-&2D*8bYN@HLfe`vAeF6HKMkIz)~GSx z$bQ!<`a_qz37h)+ThP(2a(sw%sDh_uy-}H;=!3~o1<8qVVIc{gs3xP)KXpyIZ2Hc` zD??LXLy^j<5hY5$41Hty^Cf$*iEY17pVMr-Lm5pj4<_j5-1DL7R4AURbAHFm;Ki5k zet*QK|06lj`6T)VgvK6^~**OkoP>H z!|;V%lPx$dCe5<+_?ebcz3_D@7H&Na+LWaJlAj7XzGi#nd7;grhx-1rYJHXFG)sWx^R}_|L$u0a$?B#F0?wbIyWD;*sg~nh ztr?~y!dH0ioxp<|#*DvO6|N}ai#ipS+Pn7-t_c9XPA^=llMM_Qe^WohWKHgl=bjc? z#0_R-f7=}NBeA!R=nQYC7o~$N`A0WwYKIE`;1#ZBoN~Yroo%k&i#p!#yqsvaf@Bxa(;5&K+JAIW2<&ftzni%ree*+gOkPXPcm}1No z@pHjn#gbTF77BF4m(Z!1^2I**c>Hx^s(_9lF!)*OR1K_W`OFL}x<;nDcD&DaeWP#n z%6>lHeDJ5{sZ!TjcwW1yP(p%qQDu^5UxWQD=Y~H8O>_^<%Fj}MPtAS~*mJ1f6@3~l zqGUGQq)rMaZCk~^Xpo|qv(`=`_N}S$QIgp8buTWbM2W^SneA#x)yT~&X-Bgn;_g&~ zkTRJ$_8#QYq(%(KQx$z_1jZpUD|WCYP+oNFaxvZe5VjK94b$djpYN`dkYZw@%f9K@^RzLuqRSnt80WpaLlg1|yL81bJtX3S>bHMYm>R7pGIFn2!%c^xHnxa)>y2~KHuFs)b zFZBsdWh!eYv(<6s;VE!S$Fj*B?}i*s<%b-Deuf#r{3rUHCKh+n$i#!NqV@!VA?%EX zP-S`Pv(Sbe{FDtlWJcC2UQ>TkBc*uLDC{))qwjK>-oIvRT9`C`RZQqQZG&i&*`*!9 zg^9+dY2J~-KX+H3adaU){(BmJW%99oPA2Q=lLr2|5z03dN;d7T(LUwQ&gk{ZaSUH# zxy|GPndxTBv^A>h?dZ)Jl`1<=>>i$7h&(nb+EmF(%GhCi8`}RosayK;TJ^!WMQQ}Y zf?9a1qhh)iUvi?;C$dlRZ3ug|Q!ekp)Ixx-@t#e=#o-K{hB{Di%jF9!^+*=tHTFsb z*(;)1WlP{juHB@2-&UT&Ffc#+V8z2@aDKLsPn0uPfAOy}hmo^G%1Pi822#&LkqoXh zEo^!6@7@?|kQ^SiQE?zi~xbsO*+`HjnQBD2lk9DYnQ5 z_`bG#X#W%bcO`Qx-joYbXOY@^;%&0cYI7HL%axmolIdCb{JgTvMLJ!r^ps#f z-S#tKEV{Ooc6T!ZhwsiauZ2%RNlpRDHXj5=uZFxga^Y|J7=mKc7tr^sRJyt!Wafp=t2>H6sAJ1 zME%rbMR53SDJ}**ToCfMs`4Z^*~jo;fVZp{)a>9mjnTUaVj0FtHz})Eax6=XYfYtS zNKZPrpQO%u$(GL>vk?d!okJh)c`2zHpk#kSg#0cK6Z=(ID4FN0=Eu$i*0=qOZ(8lw zM8aK+Zd1(%I#62Dhr@RH{}pL=c7G?T7?AaAH~nI?#1Z+G0q>Ikqb9l%UtJa0{BD|! zF?ZP%C}A!)3(5TzVq--=S8B*SfoXD z*MA_owR0G~COpj{!EE5R^jqF%> z^3|r2QM0W%<2PFi%OVXt_`a6Q{;P$EyQ51Hs-3*kI)3myKQk~7Cw3dIh1CEt}RIe%u7yf$8yR?27%3g%=T-$+`E z{3fS9>5^{|vr>=I7esR$dyC7;l>1Bv*Q{(lM0hrHEmsroBoZDXzI~kWbvT&2zR;ML zI{DeO#PScgPF2!E;@g6G`_La=u%X^uW{(U@AeX#1g7n3KEn%XH7zz70{D5kSx)F}*?z*W<7Y6zMs zV?KQL`P{<4vz{o`gDsA=v}aRNT=^q>J*`^~`aHC82Rw*vsF&FuZY@Gtr@MRhr>TZGLu*}kSuVuF20aizJQmS77LM~A@kUcD+R&J z=zXk9j4AQX1rtpPrsOj_TWDmvkUh;cE7u<(uz0Qa0vvn~Y4=Jp6Ad09Tz=xRcKk*D kC$=v>6WS`w01lGswVKOiO+4q&;J->hS5qH_SGSG)KgZWdS^xk5 literal 3463 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 From ff4b231be28ffd862b7123c96bbe50b3c5b0003e Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 22 Jun 2023 21:02:19 +0200 Subject: [PATCH 096/109] more compressor stuff --- .../container/ContainerCompressor.java | 11 ++-- .../com/hbm/inventory/gui/GUICompressor.java | 5 +- .../render/tileentity/RenderCompressor.java | 48 +++++++++++++++++- .../machine/TileEntityMachineCompressor.java | 44 +++++++++++++--- .../oil/TileEntityMachineVacuumDistill.java | 2 +- .../gui/processing/gui_compressor.png | Bin 3119 -> 3380 bytes 6 files changed, 98 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/hbm/inventory/container/ContainerCompressor.java b/src/main/java/com/hbm/inventory/container/ContainerCompressor.java index e54aee2d3..3f81b4f68 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCompressor.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCompressor.java @@ -21,6 +21,9 @@ public class ContainerCompressor extends Container { this.addSlotToContainer(new Slot(tile, 0, 17, 72)); //Battery this.addSlotToContainer(new Slot(tile, 1, 152, 72)); + //Upgrades + this.addSlotToContainer(new Slot(tile, 2, 52, 72)); + this.addSlotToContainer(new Slot(tile, 3, 70, 72)); for(int i = 0; i < 3; i++) { for(int j = 0; j < 9; j++) { @@ -47,8 +50,8 @@ public class ContainerCompressor extends Container { ItemStack var5 = var4.getStack(); var3 = var5.copy(); - if(index < 2) { - if(!this.mergeItemStack(var5, 2, this.inventorySlots.size(), true)) { + if(index < 4) { + if(!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true)) { return null; } } else { @@ -62,7 +65,9 @@ public class ContainerCompressor extends Container { return null; } } else { - return null; + if(!this.mergeItemStack(var5, 2, 4, false)) { + return null; + } } } diff --git a/src/main/java/com/hbm/inventory/gui/GUICompressor.java b/src/main/java/com/hbm/inventory/gui/GUICompressor.java index 9e2f758e8..69c8dc0ac 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICompressor.java +++ b/src/main/java/com/hbm/inventory/gui/GUICompressor.java @@ -68,7 +68,7 @@ public class GUICompressor extends GuiInfoContainer { Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - if(compressor.power >= 1_000) { + if(compressor.power >= compressor.powerRequirement) { drawTexturedModalRect(guiLeft + 156, guiTop + 4, 176, 52, 9, 12); } @@ -77,6 +77,9 @@ public class GUICompressor extends GuiInfoContainer { int i = compressor.progress * 55 / compressor.processTime; drawTexturedModalRect(guiLeft + 42, guiTop + 26, 192, 0, i, 17); + int j = (int) (compressor.power * 52 / compressor.maxPower); + drawTexturedModalRect(guiLeft + 152, guiTop + 70 - j, 176, 52 - j, 16, j); + compressor.tanks[0].renderTank(guiLeft + 17, guiTop + 70, this.zLevel, 16, 52); compressor.tanks[1].renderTank(guiLeft + 107, guiTop + 70, this.zLevel, 16, 52); } diff --git a/src/main/java/com/hbm/render/tileentity/RenderCompressor.java b/src/main/java/com/hbm/render/tileentity/RenderCompressor.java index 6934ff5ac..13e9d2c64 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderCompressor.java +++ b/src/main/java/com/hbm/render/tileentity/RenderCompressor.java @@ -3,13 +3,17 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; import com.hbm.tileentity.machine.TileEntityMachineCompressor; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; -public class RenderCompressor extends TileEntitySpecialRenderer { +public class RenderCompressor extends TileEntitySpecialRenderer implements IItemRendererProvider { @Override public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { @@ -50,4 +54,46 @@ public class RenderCompressor extends TileEntitySpecialRenderer { GL11.glPopMatrix(); } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_compressor); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -4, 0); + GL11.glScaled(3, 3, 3); + } + public void renderCommon() { + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + + GL11.glScaled(0.5, 0.5, 0.5); + + bindTexture(ResourceManager.compressor_tex); + ResourceManager.compressor.renderPart("Compressor"); + + double lift = (System.currentTimeMillis() * 0.005) % 9; + + if(lift > 3) lift = 3 - (lift - 3) / 2D; + + GL11.glPushMatrix(); + GL11.glTranslated(0, -lift, 0); + ResourceManager.compressor.renderPart("Pump"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1.5, 0); + GL11.glRotated((System.currentTimeMillis() * 0.25) % 360D, 1, 0, 0); + GL11.glTranslated(0, -1.5, 0); + ResourceManager.compressor.renderPart("Fan"); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); + }}; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java index 26c4210ef..285c36a20 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java @@ -2,12 +2,14 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.BlockDummyable; import com.hbm.interfaces.IControlReceiver; +import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerCompressor; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUICompressor; import com.hbm.inventory.recipes.CompressorRecipes; import com.hbm.inventory.recipes.CompressorRecipes.CompressorRecipe; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; @@ -18,12 +20,15 @@ import api.hbm.energy.IEnergyUser; import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -35,6 +40,9 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement public boolean isOn; public int progress; public int processTime = 100; + public static final int processTimeBase = 100; + public int powerRequirement; + public static final int powerRequirementBase = 10_000; public float fanSpin; public float prevFanSpin; @@ -43,7 +51,7 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement public boolean pistonDir; public TileEntityMachineCompressor() { - super(2); + super(4); this.tanks = new FluidTank[2]; this.tanks[0] = new FluidTank(Fluids.NONE, 16_000); this.tanks[1] = new FluidTank(Fluids.NONE, 16_000).withPressure(1); @@ -67,10 +75,22 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement this.tanks[0].setType(0, slots); this.setupTanks(); + UpgradeManager.eval(slots, 1, 3); + + int speedLevel = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3); + int powerLevel = Math.min(UpgradeManager.getLevel(UpgradeType.POWER), 3); + int overLevel = UpgradeManager.getLevel(UpgradeType.OVERDRIVE); + + //there is a reason to do this but i'm not telling you + this.processTime = speedLevel == 3 ? 10 : speedLevel == 2 ? 20 : speedLevel == 1 ? 60 : this.processTimeBase; + this.powerRequirement = this.powerRequirementBase / (powerLevel + 1); + this.processTime = this.processTime / (overLevel + 1); + this.powerRequirement = this.powerRequirement * ((overLevel * 2) + 1); + if(canProcess()) { this.progress++; this.isOn = true; - this.power -= 1_000; + this.power -= powerRequirement; if(progress >= this.processTime) { progress = 0; @@ -89,6 +109,8 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement NBTTagCompound data = new NBTTagCompound(); data.setInteger("progress", progress); + data.setInteger("processTime", processTime); + data.setInteger("powerRequirement", powerRequirement); data.setLong("power", power); tanks[0].writeToNBT(data, "0"); tanks[1].writeToNBT(data, "1"); @@ -109,11 +131,17 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement } if(this.pistonDir) { - this.piston -= 0.1F; - if(this.piston <= 0) this.pistonDir = !this.pistonDir; + this.piston -= randSpeed; + if(this.piston <= 0) { + Minecraft.getMinecraft().getSoundHandler().playSound(new PositionedSoundRecord(new ResourceLocation("hbm:item.boltgun"), 0.5F, 0.75F, xCoord, yCoord, zCoord)); + this.pistonDir = !this.pistonDir; + } } else { this.piston += 0.05F; - if(this.piston >= 1) this.pistonDir = !this.pistonDir; + if(this.piston >= 1) { + this.randSpeed = 0.085F + worldObj.rand.nextFloat() * 0.03F; + this.pistonDir = !this.pistonDir; + } } this.piston = MathHelper.clamp_float(this.piston, 0F, 1F); @@ -121,8 +149,12 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement } } + private float randSpeed = 0.1F; + public void networkUnpack(NBTTagCompound nbt) { this.progress = nbt.getInteger("progress"); + this.processTime = nbt.getInteger("processTime"); + this.powerRequirement = nbt.getInteger("powerRequirement"); this.power = nbt.getLong("power"); tanks[0].readFromNBT(nbt, "0"); tanks[1].readFromNBT(nbt, "1"); @@ -149,7 +181,7 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement public boolean canProcess() { - if(this.power <= 1_000) return false; + if(this.power <= powerRequirement) return false; CompressorRecipe recipe = CompressorRecipes.recipes.get(new Pair(tanks[0].getTankType(), tanks[0].getPressure())); diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java index bc2ba6469..9fc45de36 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java @@ -41,7 +41,7 @@ public class TileEntityMachineVacuumDistill extends TileEntityMachineBase implem super(11); this.tanks = new FluidTank[5]; - this.tanks[0] = new FluidTank(Fluids.OIL, 64_000); + this.tanks[0] = new FluidTank(Fluids.OIL, 64_000).withPressure(2); this.tanks[1] = new FluidTank(Fluids.HEAVYOIL_VACUUM, 24_000); this.tanks[2] = new FluidTank(Fluids.REFORMATE, 24_000); this.tanks[3] = new FluidTank(Fluids.LIGHTOIL_VACUUM, 24_000); diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_compressor.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_compressor.png index e5b80132b0bfac3f4073c92b22d4609e1b36a4a7..0a0179680513cf023dac7cf84eb54e87be55e1ea 100644 GIT binary patch literal 3380 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 Vd8BUKQ-uY8JMH(_6>P_!`wtW{4P^iT literal 3119 zcmb_ec|6o>7k_4qB{eaVU9uITWwM7d2}4;UQHipXD2!y8(Q--RhDb)^jULn&%LA?#Ni)OdXQk*$)cH}h zU8vz~Qms8B^M3dcac7aI_^u-f6CuRjAT+GX4~I&EX|%G$AsqFev15-_(BiOi!e^uW@>7xyLn^I zO$1|dvTcQLr?JW7#EDEuCi4T=?PMa&JlC#xG}=Td=;_ddubK;7sZX><&7L#@b7T{J@Jol;J^qL*eQWre zH+_ld7sC~i^`6f!OdOgr9BEu@n|xc$=puyFnD6Uu&G+)fFO%cqJl+>fem!OoEe;s- zp;>{)g{r#dE&azcqI^3_*MFqM#70j#X{?jER@8>a=TM%z0TB4WH{c3DdfCNOElZX z7FREe^{tzH8dw_U=3KRLE07vHvjt0E1(v*0*w$@KK69U!(Kupm(a2{!e_+6PcYaMk z>QGR%cr>ZkRH{oKPSNc*i zry=^MO^FMs_Zoj5AJ5T!_JVy@F{@5HDZ41h2c!ix#J zdRc)8w@=ek2YMfXg55#VBiNmPiOjuXkrQZfW(@h1{VjAuYvBK(AIL=UxExhYxboN+ zaRZ=N8Um(hWHzIn=_TMsRM{4=jq97msHuYr*y@N@B~yBP&*(#Co%;9MnaL98@$cP` zD)+vY-TbD2Wq!#GYPG}Dmgl)k#ie%e{lC(s71hDxd@su&q&L0OoMq77YHu1Is-CEk z1~!BMMMb7xcvNGT5s$I1Sj3wpMvBUE+@F1W^H_gT2wX#M-N0!R_`vE=lbcJ}qUSXz zgR>q?M@oxEzb*Blas6vEpf?=??2A=tCxtPE)gnJO=}wp`;w8*zk0(sLHuY?e9o}A+q{FhEi--96_-uA#ZkfS(gD|3uDlBNa{7U{;vlcC9p;O zKgfEcfIV{QrQkmEAj5^^`7aS~>v*J!%mtiRbF1-C3&iGa1SY!3)`Ocgz=&{>P3D+E z;e%Iv3v_2sEb4tU3Fts94IVv;Vs>KSm`$!oZ=dlvHV5jco{pF6XP)eG5~AwqvXzTY*kb;b&gaI__7Q3}@%7^SJ z6{D|UN7!=H`th6S9g>hkCz?q~SPn}N_%yDf(9lt9(k~kfh$1~`CUhjXP#{ZCW>8=* zkgE#K{VLRDcgJ|Mf_JhATp`Iw3x_OtrQf{L(+o`yhU40j*DtdPB?)8;i$C<~vdl6* zMKHWdpa`59eaD1Qr^TvlFb2eBy^n6F!4S`o3rLliM)N-Vo8ndOke)`@(-}2Uge*N6 zw9P6zX?Zf;3__l2?DIP=0~*v}HLDXopA1)`TRt5!xJ0Pz z&nzrdKOB2SA9`ELnl$Ol?&Y7u1G)UtwFwa`S?ZP=wRzB-|&B%oR0LJ5@Q)u5;?Ei2ER0ZuS?%?zo? zDZdHo3|F5k-J?k?x2`mTNS?p^#-yp-oOj_H+$UJDtN6n@Uykdu(sPN6;rBqd(mm}9 z11D)h*u`=UV!4&hf$Q=*Kt2Bwp*C|-ynXLf32Mr43)&Zwf1kkdE11WVFNVx^TuQuR+ z%sZBv4nVJQP($L(Oz2)?;{v6@?ZdPOhjUVg4%9s$Z)|9646RKZ9`^iU+Zg@mMbq}b z75lHQe$IlO4GVkAW>?Hx2PWY^J|5tbX1$rMVmBIO!O3#{7u(jjyrsZOcjsIlW%z8D+PwH-n z>Li!{Fu&ueSX(KzcKo2})X~J#5@qln2!<00|KC1;GyNaMbCG8K&nw}q>p1W@f#StV16EF;R$Yl&lHCYW3OPc5_S!$N c>GT$emih-j-?Tm6^?Nv5D+kL83-8PS1{QpNxc~qF From bb15f500473149e9c0680a2b0550ee4da4cdb83b Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 23 Jun 2023 11:17:37 +0200 Subject: [PATCH 097/109] pressure requirement for recipes --- changelog | 2 ++ .../handler/nei/ChemplantRecipeHandler.java | 4 +-- .../hbm/inventory/fluid/tank/FluidTank.java | 2 +- .../inventory/recipes/ChemplantRecipes.java | 4 +-- .../inventory/recipes/RefineryRecipes.java | 2 +- .../items/machine/ItemChemistryTemplate.java | 6 ++-- .../com/hbm/items/machine/ItemFluidIcon.java | 33 ++++++++++++------- .../machine/TileEntityMachineChemplant.java | 8 ++--- .../TileEntityMachineChemplantBase.java | 8 ++--- 9 files changed, 41 insertions(+), 28 deletions(-) diff --git a/changelog b/changelog index 7e7de1c66..d82ff17a6 100644 --- a/changelog +++ b/changelog @@ -10,6 +10,8 @@ * Compressor * Can compress fluids, turning them into higher pressure variants * Can also turn steam into higher pressure types + * Vacuum refning now requires oil at 2 PU + * Some chemical plant recipes also require compressed fluid, TATB requires sour gas at 1 PU and osmiridic solution requires hydrogen peroxide at 5 PU * A new rocket artillery ammo type that creates volcanic lava on impact * BDCL * A type of lubricant that is easy to make and can be used in hydraulic piston and electric press recipes instead of regular lubricant diff --git a/src/main/java/com/hbm/handler/nei/ChemplantRecipeHandler.java b/src/main/java/com/hbm/handler/nei/ChemplantRecipeHandler.java index 0beaff581..9ef27b9a9 100644 --- a/src/main/java/com/hbm/handler/nei/ChemplantRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/ChemplantRecipeHandler.java @@ -45,7 +45,7 @@ public class ChemplantRecipeHandler extends TemplateRecipeHandler { for(int i = 0; i < recipe.inputFluids.length; i++) { FluidStack in = recipe.inputFluids[i]; if(in == null) continue; - ItemStack drop = ItemFluidIcon.make(in.type, in.fill); + ItemStack drop = ItemFluidIcon.make(in); this.fluidIn[i] = new PositionedStack(drop, 30 + (i % 2) * 18, 6); } @@ -58,7 +58,7 @@ public class ChemplantRecipeHandler extends TemplateRecipeHandler { for(int i = 0; i < recipe.outputFluids.length; i++) { FluidStack out = recipe.outputFluids[i]; if(out == null) continue; - ItemStack drop = ItemFluidIcon.make(out.type, out.fill); + ItemStack drop = ItemFluidIcon.make(out); this.fluidOut[i] = new PositionedStack(drop, 120 + (i % 2) * 18, 6); } diff --git a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java index c9e94b9ee..bd1561bc3 100644 --- a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java +++ b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java @@ -241,7 +241,7 @@ public class FluidTank { list.add(fluid + "/" + maxFluid + "mB"); if(this.pressure != 0) { - list.add(EnumChatFormatting.RED + "" + this.pressure + " PU"); + list.add(EnumChatFormatting.RED + "Pressure: " + this.pressure + " PU"); } type.addInfo(list); diff --git a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java index 248073743..f32038c47 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java @@ -147,7 +147,7 @@ public class ChemplantRecipes extends SerializableRecipe { .outputItems(new ItemStack(ModItems.ball_tnt, 4))); recipes.add(new ChemRecipe(95, "TATB", 50) .inputItems(new ComparableStack(ModItems.ball_tnt)) - .inputFluids(new FluidStack(Fluids.SOURGAS, 200), new FluidStack(Fluids.NITRIC_ACID, 10)) + .inputFluids(new FluidStack(Fluids.SOURGAS, 200, 1), new FluidStack(Fluids.NITRIC_ACID, 10)) .outputItems(new ItemStack(ModItems.ball_tatb))); recipes.add(new ChemRecipe(84, "C4", 150) .inputItems(new OreDictStack(KNO.dust())) @@ -352,7 +352,7 @@ public class ChemplantRecipes extends SerializableRecipe { new ComparableStack(ModItems.powder_paleogenite), new OreDictStack(F.dust(), 8), new ComparableStack(ModItems.nugget_bismuth, 4)) - .inputFluids(new FluidStack(Fluids.ACID, 1000)) + .inputFluids(new FluidStack(Fluids.ACID, 1000, 5)) .outputFluids(new FluidStack(Fluids.DEATH, 1000))); //one bucket of ethanol equals 275_000 TU using the diesel baseline0 //the coal baseline is 400_000 per piece diff --git a/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java b/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java index 314e50d56..427f4a329 100644 --- a/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java @@ -58,7 +58,7 @@ public class RefineryRecipes { public static HashMap getVacuumRecipe() { HashMap recipes = new HashMap(); - recipes.put(ItemFluidIcon.make(Fluids.OIL, 1000), + recipes.put(ItemFluidIcon.make(Fluids.OIL, 1000, 2), new ItemStack[] { ItemFluidIcon.make(Fluids.HEAVYOIL_VACUUM, vac_frac_heavy * 10), ItemFluidIcon.make(Fluids.REFORMATE, vac_frac_reform * 10), diff --git a/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java b/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java index 12ad0569e..432141d9d 100644 --- a/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java +++ b/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java @@ -75,7 +75,8 @@ public class ItemChemistryTemplate extends Item { for(int i = 0; i < 2; i++) { if(recipe.outputFluids[i] != null) { - list.add(recipe.outputFluids[i].fill + "mB " + I18n.format(recipe.outputFluids[i].type.getUnlocalizedName())); + int p = recipe.outputFluids[i].pressure; + list.add(recipe.outputFluids[i].fill + "mB " + I18n.format(recipe.outputFluids[i].type.getUnlocalizedName()) + (p != 0 ? (" at " + p + "PU") : "")); } } @@ -89,7 +90,8 @@ public class ItemChemistryTemplate extends Item { for(int i = 0; i < 2; i++) { if(recipe.inputFluids[i] != null) { - list.add(recipe.inputFluids[i].fill + "mB " + I18n.format(recipe.inputFluids[i].type.getUnlocalizedName())); + int p = recipe.inputFluids[i].pressure; + list.add(recipe.inputFluids[i].fill + "mB " + I18n.format(recipe.inputFluids[i].type.getUnlocalizedName()) + (p != 0 ? (" at " + p + "PU") : "")); } } diff --git a/src/main/java/com/hbm/items/machine/ItemFluidIcon.java b/src/main/java/com/hbm/items/machine/ItemFluidIcon.java index f15d2ad05..1e121dd96 100644 --- a/src/main/java/com/hbm/items/machine/ItemFluidIcon.java +++ b/src/main/java/com/hbm/items/machine/ItemFluidIcon.java @@ -14,6 +14,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IIcon; import net.minecraft.util.StatCollector; @@ -38,39 +39,47 @@ public class ItemFluidIcon extends Item { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { if(stack.hasTagCompound()) { - if(stack.getTagCompound().getInteger("fill") > 0) - list.add(stack.getTagCompound().getInteger("fill") + "mB"); + if(getQuantity(stack) > 0) list.add(getQuantity(stack) + "mB"); + if(getPressure(stack) > 0) list.add(EnumChatFormatting.RED + "" + getPressure(stack) + "PU"); } Fluids.fromID(stack.getItemDamage()).addInfo(list); } public static ItemStack addQuantity(ItemStack stack, int i) { - - if(!stack.hasTagCompound()) - stack.stackTagCompound = new NBTTagCompound(); - + if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound(); stack.getTagCompound().setInteger("fill", i); + return stack; + } + public static ItemStack addPressure(ItemStack stack, int i) { + if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound(); + stack.getTagCompound().setInteger("pressure", i); return stack; } public static ItemStack make(FluidStack stack) { - return make(stack.type, stack.fill); + return make(stack.type, stack.fill, stack.pressure); } public static ItemStack make(FluidType fluid, int i) { - return addQuantity(new ItemStack(ModItems.fluid_icon, 1, fluid.ordinal()), i); + return make(fluid, i, 0); + } + + public static ItemStack make(FluidType fluid, int i, int pressure) { + return addPressure(addQuantity(new ItemStack(ModItems.fluid_icon, 1, fluid.ordinal()), i), pressure); } public static int getQuantity(ItemStack stack) { - - if(!stack.hasTagCompound()) - return 0; - + if(!stack.hasTagCompound()) return 0; return stack.getTagCompound().getInteger("fill"); } + public static int getPressure(ItemStack stack) { + if(!stack.hasTagCompound()) return 0; + return stack.getTagCompound().getInteger("pressure"); + } + @Override public String getItemStackDisplayName(ItemStack stack) { String s = (StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getUnlocalizedName())).trim(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java index 9aea57727..8055c8d11 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java @@ -266,10 +266,10 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements } private void setupTanks(ChemRecipe recipe) { - if(recipe.inputFluids[0] != null) tanks[0].setTankType(recipe.inputFluids[0].type); else tanks[0].setTankType(Fluids.NONE); - if(recipe.inputFluids[1] != null) tanks[1].setTankType(recipe.inputFluids[1].type); else tanks[1].setTankType(Fluids.NONE); - if(recipe.outputFluids[0] != null) tanks[2].setTankType(recipe.outputFluids[0].type); else tanks[2].setTankType(Fluids.NONE); - if(recipe.outputFluids[1] != null) tanks[3].setTankType(recipe.outputFluids[1].type); else tanks[3].setTankType(Fluids.NONE); + if(recipe.inputFluids[0] != null) tanks[0].withPressure(recipe.inputFluids[0].pressure).setTankType(recipe.inputFluids[0].type); else tanks[0].setTankType(Fluids.NONE); + if(recipe.inputFluids[1] != null) tanks[1].withPressure(recipe.inputFluids[1].pressure).setTankType(recipe.inputFluids[1].type); else tanks[1].setTankType(Fluids.NONE); + if(recipe.outputFluids[0] != null) tanks[2].withPressure(recipe.outputFluids[0].pressure).setTankType(recipe.outputFluids[0].type); else tanks[2].setTankType(Fluids.NONE); + if(recipe.outputFluids[1] != null) tanks[3].withPressure(recipe.outputFluids[1].pressure).setTankType(recipe.outputFluids[1].type); else tanks[3].setTankType(Fluids.NONE); } private boolean hasRequiredFluids(ChemRecipe recipe) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java index 6d2501a7e..6d6caf6e2 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java @@ -109,10 +109,10 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa } private void setupTanks(ChemRecipe recipe, int index) { - if(recipe.inputFluids[0] != null) tanks[index * 4].setTankType(recipe.inputFluids[0].type); - if(recipe.inputFluids[1] != null) tanks[index * 4 + 1].setTankType(recipe.inputFluids[1].type); - if(recipe.outputFluids[0] != null) tanks[index * 4 + 2].setTankType(recipe.outputFluids[0].type); - if(recipe.outputFluids[1] != null) tanks[index * 4 + 3].setTankType(recipe.outputFluids[1].type); + if(recipe.inputFluids[0] != null) tanks[index * 4].withPressure(recipe.inputFluids[0].pressure).setTankType(recipe.inputFluids[0].type); else tanks[index * 4].setTankType(Fluids.NONE); + if(recipe.inputFluids[1] != null) tanks[index * 4 + 1].withPressure(recipe.inputFluids[1].pressure).setTankType(recipe.inputFluids[1].type); else tanks[index * 4 + 1].setTankType(Fluids.NONE); + if(recipe.outputFluids[0] != null) tanks[index * 4 + 2].withPressure(recipe.outputFluids[0].pressure).setTankType(recipe.outputFluids[0].type); else tanks[index * 4 + 2].setTankType(Fluids.NONE); + if(recipe.outputFluids[1] != null) tanks[index * 4 + 3].withPressure(recipe.outputFluids[1].pressure).setTankType(recipe.outputFluids[1].type); else tanks[index * 4 + 3].setTankType(Fluids.NONE); } private boolean hasRequiredFluids(ChemRecipe recipe, int index) { From 00360a4586f63f16f455dc06a36ee49cb24fd843 Mon Sep 17 00:00:00 2001 From: Bob Date: Fri, 23 Jun 2023 23:06:44 +0200 Subject: [PATCH 098/109] memepackhunters.xxx --- .../blocks/generic/BlockGlyphidSpawner.java | 14 ++++++---- .../com/hbm/inventory/gui/GUICompressor.java | 2 ++ .../inventory/recipes/AssemblerRecipes.java | 8 ++++++ .../inventory/recipes/ChemplantRecipes.java | 26 +++++++++---------- .../com/hbm/items/special/ItemTeleLink.java | 2 +- .../com/hbm/main/ModEventHandlerClient.java | 2 +- src/main/resources/assets/hbm/lang/de_DE.lang | 2 ++ src/main/resources/assets/hbm/lang/en_US.lang | 2 ++ 8 files changed, 38 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java index a489018f1..7e9d805f5 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java +++ b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java @@ -4,9 +4,12 @@ import java.util.List; import java.util.Random; import com.hbm.entity.mob.EntityGlyphid; +import com.hbm.entity.mob.EntityGlyphidBehemoth; import com.hbm.entity.mob.EntityGlyphidBlaster; import com.hbm.entity.mob.EntityGlyphidBombardier; import com.hbm.entity.mob.EntityGlyphidBrawler; +import com.hbm.entity.mob.EntityGlyphidBrenda; +import com.hbm.entity.mob.EntityGlyphidNuclear; import com.hbm.entity.mob.EntityGlyphidScout; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; @@ -56,12 +59,13 @@ public class BlockGlyphidSpawner extends BlockContainer { public EntityGlyphid createGlyphid(float soot) { Random rand = new Random(); + + if(soot < 1) return rand.nextInt(5) == 0 ? new EntityGlyphidBombardier(worldObj) : new EntityGlyphid(worldObj); + if(soot < 10) return rand.nextInt(5) == 0 ? new EntityGlyphidBombardier(worldObj) : new EntityGlyphidBrawler(worldObj); + if(soot < 50) return rand.nextInt(5) == 0 ? new EntityGlyphidBlaster(worldObj) : new EntityGlyphidBehemoth(worldObj); + if(soot < 100) return rand.nextInt(5) == 0 ? new EntityGlyphidBlaster(worldObj) : new EntityGlyphidBrenda(worldObj); - if(soot < 1) { - return rand.nextInt(5) == 0 ? new EntityGlyphidBombardier(worldObj) : new EntityGlyphid(worldObj); - } - - return rand.nextInt(5) == 0 ? new EntityGlyphidBlaster(worldObj) : new EntityGlyphidBrawler(worldObj); + return rand.nextInt(3) == 0 ? new EntityGlyphidBlaster(worldObj) : new EntityGlyphidNuclear(worldObj); } } } diff --git a/src/main/java/com/hbm/inventory/gui/GUICompressor.java b/src/main/java/com/hbm/inventory/gui/GUICompressor.java index 69c8dc0ac..e555886fa 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICompressor.java +++ b/src/main/java/com/hbm/inventory/gui/GUICompressor.java @@ -35,6 +35,8 @@ public class GUICompressor extends GuiInfoContainer { compressor.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 17, guiTop + 18, 16, 52); compressor.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 107, guiTop + 18, 16, 52); this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 18, 16, 52, compressor.power, compressor.maxPower); + + for(int j = 0; j < 5; j++) drawCustomInfoStat(mouseX, mouseY, guiLeft + 43 + j * 11, guiTop + 48, 8, 14, mouseX, mouseY, j + " PU -> " + (j + 1) + " PU"); } @Override diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 3711f5af2..077b17bdc 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -985,6 +985,14 @@ public class AssemblerRecipes { new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit_red_copper, 3) }, 200); + + makeRecipe(new ComparableStack(ModBlocks.machine_compressor, 1), new AStack[] { + new OreDictStack(STEEL.plateCast(), 8), + new OreDictStack(CU.plate528(), 4), + new ComparableStack(ModItems.hull_big_steel, 2), + new ComparableStack(ModItems.motor, 3), + new ComparableStack(ModItems.circuit_red_copper, 1) + }, 200); makeRecipe(new ComparableStack(ModItems.euphemium_capacitor, 1), new AStack[] { diff --git a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java index f32038c47..62ba87dfa 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java @@ -91,22 +91,22 @@ public class ChemplantRecipes extends SerializableRecipe { new ComparableStack(ModItems.wire_schrabidium, 4), new OreDictStack(DIAMOND.dust()), new OreDictStack(DESH.ingot())) - .inputFluids(new FluidStack(Fluids.ACID, 800), new FluidStack(Fluids.MERCURY, 200)) + .inputFluids(new FluidStack(Fluids.ACID, 800, GeneralConfig.enable528 ? 1 : 0), new FluidStack(Fluids.MERCURY, 200)) .outputItems(new ItemStack(ModItems.circuit_schrabidium))); recipes.add(new ChemRecipe(43, "POLYMER", 100) .inputItems( new OreDictStack(COAL.dust(), 2), new OreDictStack(F.dust())) - .inputFluids(new FluidStack(Fluids.PETROLEUM, 500)) + .inputFluids(new FluidStack(Fluids.PETROLEUM, 500, GeneralConfig.enable528 ? 1 : 0)) .outputItems(new ItemStack(ModItems.ingot_polymer))); recipes.add(new ChemRecipe(81, "BAKELITE", 100) .inputFluids( - new FluidStack(Fluids.AROMATICS, 500), - new FluidStack(Fluids.PETROLEUM, 500)) + new FluidStack(Fluids.AROMATICS, 500, GeneralConfig.enable528 ? 1 : 0), + new FluidStack(Fluids.PETROLEUM, 500, GeneralConfig.enable528 ? 1 : 0)) .outputItems(new ItemStack(ModItems.ingot_bakelite))); recipes.add(new ChemRecipe(82, "RUBBER", 100) .inputItems(new OreDictStack(S.dust())) - .inputFluids(new FluidStack(Fluids.UNSATURATEDS, 500)) + .inputFluids(new FluidStack(Fluids.UNSATURATEDS, 500, GeneralConfig.enable528 ? 2 : 0)) .outputItems(new ItemStack(ModItems.ingot_rubber))); /*recipes.add(new ChemRecipe(94, "PET", 100) .inputItems(new OreDictStack(AL.dust())) @@ -126,14 +126,14 @@ public class ChemplantRecipes extends SerializableRecipe { .outputItems(new ItemStack(com.hbm.blocks.ModBlocks.reinforced_laminate))); recipes.add(new ChemRecipe(94, "PC", 100) .inputFluids( - new FluidStack(Fluids.XYLENE, 500), - new FluidStack(Fluids.PHOSGENE, 500)) + new FluidStack(Fluids.XYLENE, 500, GeneralConfig.enable528 ? 2 : 0), + new FluidStack(Fluids.PHOSGENE, 500, GeneralConfig.enable528 ? 2 : 0)) .outputItems(new ItemStack(ModItems.ingot_pc))); recipes.add(new ChemRecipe(96, "PVC", 100) .inputItems(new OreDictStack(CD.dust())) .inputFluids( - new FluidStack(Fluids.UNSATURATEDS, 250), - new FluidStack(Fluids.CHLORINE, 250)) + new FluidStack(Fluids.UNSATURATEDS, 250, GeneralConfig.enable528 ? 2 : 0), + new FluidStack(Fluids.CHLORINE, 250, GeneralConfig.enable528 ? 2 : 0)) .outputItems(new ItemStack(ModItems.ingot_pvc, 2))); recipes.add(new ChemRecipe(89, "DYNAMITE", 50) .inputItems( @@ -143,7 +143,7 @@ public class ChemplantRecipes extends SerializableRecipe { .outputItems(new ItemStack(ModItems.ball_dynamite, 2))); recipes.add(new ChemRecipe(83, "TNT", 150) .inputItems(new OreDictStack(KNO.dust())) - .inputFluids(new FluidStack(Fluids.AROMATICS, 500)) + .inputFluids(new FluidStack(Fluids.AROMATICS, 500, GeneralConfig.enable528 ? 1 : 0)) .outputItems(new ItemStack(ModItems.ball_tnt, 4))); recipes.add(new ChemRecipe(95, "TATB", 50) .inputItems(new ComparableStack(ModItems.ball_tnt)) @@ -151,7 +151,7 @@ public class ChemplantRecipes extends SerializableRecipe { .outputItems(new ItemStack(ModItems.ball_tatb))); recipes.add(new ChemRecipe(84, "C4", 150) .inputItems(new OreDictStack(KNO.dust())) - .inputFluids(new FluidStack(Fluids.UNSATURATEDS, 500)) + .inputFluids(new FluidStack(Fluids.UNSATURATEDS, 500, GeneralConfig.enable528 ? 1 : 0)) .outputItems(new ItemStack(ModItems.ingot_c4, 4))); //44, formerly deuterium //45, formerly steam @@ -224,7 +224,7 @@ public class ChemplantRecipes extends SerializableRecipe { new ComparableStack(ModItems.solid_fuel, 2), new OreDictStack(KNO.dust()), new OreDictStack(REDSTONE.dust())) - .inputFluids(new FluidStack(Fluids.PETROLEUM, 200)) + .inputFluids(new FluidStack(Fluids.PETROLEUM, 200, GeneralConfig.enable528 ? 1 : 0)) .outputItems(new ItemStack(ModItems.rocket_fuel, 4))); recipes.add(new ChemRecipe(58, "ELECTROLYSIS", 150) .inputFluids(new FluidStack(Fluids.WATER, 8000)) @@ -353,7 +353,7 @@ public class ChemplantRecipes extends SerializableRecipe { new OreDictStack(F.dust(), 8), new ComparableStack(ModItems.nugget_bismuth, 4)) .inputFluids(new FluidStack(Fluids.ACID, 1000, 5)) - .outputFluids(new FluidStack(Fluids.DEATH, 1000))); + .outputFluids(new FluidStack(Fluids.DEATH, 1000, GeneralConfig.enable528 ? 5 : 0))); //one bucket of ethanol equals 275_000 TU using the diesel baseline0 //the coal baseline is 400_000 per piece //if we assume a burntime of 1.5 ops (300 ticks) for sugar at 100 TU/t that would equal a total of 30_000 TU diff --git a/src/main/java/com/hbm/items/special/ItemTeleLink.java b/src/main/java/com/hbm/items/special/ItemTeleLink.java index baf9880ce..6ed12b051 100644 --- a/src/main/java/com/hbm/items/special/ItemTeleLink.java +++ b/src/main/java/com/hbm/items/special/ItemTeleLink.java @@ -42,7 +42,7 @@ public class ItemTeleLink extends Item { if(!stack.hasTagCompound()) { world.playSoundAtEntity(player, "hbm:item.techBoop", 1.0F, 1.0F); - player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "[TeleLink] No destiation set!")); + player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "[TeleLink] No destination set!")); return false; } diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 3a7624b0b..019a369cc 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -1256,7 +1256,7 @@ public class ModEventHandlerClient { switch(rand) { case 0: main.splashText = "Floppenheimer!"; break; - case 1: main.splashText = "i should dip my balls in sulfuic acid"; break; + case 1: main.splashText = "i should dip my balls in sulfuric acid"; break; case 2: main.splashText = "All answers are popbob!"; break; case 3: main.splashText = "None shall enter The Orb!"; break; case 4: main.splashText = "Wacarb was here"; break; diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index c9a2b3a46..6334c68bb 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -332,6 +332,7 @@ container.machineBoiler=Ölwärmer container.machineCMB=CMB-Stahl Hochofen container.machineCoal=Verbrennungsgenerator container.machineCoker=Koker-Anlage +container.machineCompressor=Kompressor container.machineCrucible=Schmelztiegel container.machineDiesel=Dieselgenerator container.machineElectricBoiler=Elektrischer Ölwärmer @@ -3941,6 +3942,7 @@ tile.machine_coker.name=Koker-Anlage tile.machine_coker.desc=Verkokt Öl, erzeugt fluides Nebenprodukt.$Benötigt externe Hitzequelle.$Wärmestransferrate: ΔT*0.025 TU/t tile.machine_combine_factory.name=CMB-Stahl Hochofen tile.machine_combustion_engine.name=Industrieller Verbrennungsmotor +tile.machine_compressor.name=Kompressor tile.machine_condenser.name=Dampfkondensierer tile.machine_controller.name=Reaktorfernsteuerung tile.machine_converter_he_rf.name=HE zu RF Konverter diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index e192d1821..6bd3ff4e6 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -624,6 +624,7 @@ container.machineBoiler=Oil Heater container.machineCMB=CMB Steel Furnace container.machineCoal=Combustion Generator container.machineCoker=Coker Unit +container.machineCompressor=Compressor container.machineCrucible=Crucible container.machineDiesel=Diesel Generator container.machineElectricBoiler=Electric Oil Heater @@ -4764,6 +4765,7 @@ tile.machine_coker.name=Coker Unit tile.machine_coker.desc=Cokes oil, creating fluid byproducts.$Requires external heat source.$Heat transfer rate: ΔT*0.025 TU/t tile.machine_combine_factory.name=CMB Steel Furnace tile.machine_combustion_engine.name=Industrial Combustion Engine +tile.machine_compressor.name=Compressor tile.machine_condenser.name=Steam Condenser tile.machine_controller.name=Reactor Remote Control Block tile.machine_converter_he_rf.name=HE to RF Converter From c7e428d927772d10154400f84d89369469fe86e9 Mon Sep 17 00:00:00 2001 From: Doctor17-git <60807716+Doctor17-git@users.noreply.github.com> Date: Sat, 24 Jun 2023 10:12:24 +0300 Subject: [PATCH 099/109] Updated ru_RU.lang updated russian localization --- src/main/resources/assets/hbm/lang/ru_RU.lang | 120 ++++++++++-------- 1 file changed, 67 insertions(+), 53 deletions(-) diff --git a/src/main/resources/assets/hbm/lang/ru_RU.lang b/src/main/resources/assets/hbm/lang/ru_RU.lang index 4aa131493..4281a44ff 100644 --- a/src/main/resources/assets/hbm/lang/ru_RU.lang +++ b/src/main/resources/assets/hbm/lang/ru_RU.lang @@ -949,114 +949,114 @@ book.starter.page18=vær - просто парень, который слишк book.lore.office0.title=Заявление об увольнении book.lore.office0.author=Kosma -book.lore.office0.page1=Вчера руководство снова сократило наш отдел. Эти идиоты должны винить только самих себя, я не знаю, чего они ожидали после фиаско с Панаем. Кто, черт возьми, сливает такую информацию? Мы теряем миллионы, и -book.lore.office0.page2=это Я сейчас без работы. Это меня просят уйти в отставку. Я надеюсь, что вы, придурки, наконец-то извлекли урок из своего переизбытка ошибок и вытащили эту палку из своей задницы. -book.lore.office0.page3=Я не вернусь в пятницу. Просто пришлите чек на зарплату. +book.lore.office0.page0=Вчера руководство снова сократило наш отдел. Эти идиоты должны винить только самих себя, я не знаю, чего они ожидали после фиаско с Панаем. Кто, черт возьми, сливает такую информацию? Мы теряем миллионы, и +book.lore.office0.page1=это Я сейчас без работы. Это меня просят уйти в отставку. Я надеюсь, что вы, придурки, наконец-то извлекли урок из своего переизбытка ошибок и вытащили эту палку из своей задницы. +book.lore.office0.page2=Я не вернусь в пятницу. Просто пришлите чек на зарплату. book.lore.office1.title=Заметка book.lore.office1.author=Jonas Quinn -book.lore.office1.page1= -book.lore.office2.page2= +book.lore.office1.page0= +book.lore.office2.page1= book_lore.author=By %s book_lore.book_iodine.name=Note book_lore.book_iodine.author=Dave -book_lore.book_iodine.page.1=alright you will not believe this, but old man weathervane finally managed to show up again since he left two weeks ago and what's more surprising is the fact that he actually decided to spill the beans on what they were doing in the canyon: -book_lore.book_iodine.page.2=apparently the morons from R&D discovered a compound that is mostly inorganic, pretty much like a toxin in nature, but get this: the dying cells will reproduce said toxin and excrete it through the skin, creating an aerosol that is highly contagious. -book_lore.book_iodine.page.3=it's just like a virus, but not a virus. the composition is weird, you can mix it in any household bottle but you do have to get the order right. the doc told me that the first ingredient which is just powdered iodine crystals goes into slot %d +book_lore.book_iodine.page.0=alright you will not believe this, but old man weathervane finally managed to show up again since he left two weeks ago and what's more surprising is the fact that he actually decided to spill the beans on what they were doing in the canyon: +book_lore.book_iodine.page.1=apparently the morons from R&D discovered a compound that is mostly inorganic, pretty much like a toxin in nature, but get this: the dying cells will reproduce said toxin and excrete it through the skin, creating an aerosol that is highly contagious. +book_lore.book_iodine.page.2=it's just like a virus, but not a virus. the composition is weird, you can mix it in any household bottle but you do have to get the order right. the doc told me that the first ingredient which is just powdered iodine crystals goes into slot %d book_lore.book_phosphorous.name=Note book_lore.book_phosphorous.author=Dave -book_lore.book_phosphorous.page.1=heyo, it's me again. i assume you got my last memo, the doc wasn't too happy about it. i'll have to do this quick, the dunderheads from R&D are currently moaning again, probably over money. again. anyway, doc weathervane found that the second -book_lore.book_phosphorous.page.2=ingredient is red phosphorous, whihc has to be mixed into slot %d +book_lore.book_phosphorous.page.0=heyo, it's me again. i assume you got my last memo, the doc wasn't too happy about it. i'll have to do this quick, the dunderheads from R&D are currently moaning again, probably over money. again. anyway, doc weathervane found that the second +book_lore.book_phosphorous.page.1=ingredient is red phosphorous, whihc has to be mixed into slot %d book_lore.book_dust.name=Note book_lore.book_dust.author=Dave -book_lore.book_dust.page.1=the doc was furious when he found out that the R&D dorks kept the one remaining sample, ranting about gross negligence this and a doomsday scenario that. i told him to chill for a minute, getting all worked up isn't good for his blood pressure, not -book_lore.book_dust.page.2=that he has much blood left to begin with. one of the R&D morons slipped some more info into last week's circular, they call their little concoction \"MKU\" whatever that means, and that it contains actual household lint. can you believe that? one of the most -book_lore.book_dust.page.3=dangerous inventions of theirs and it contains dust. strangely they also mentioned that it goes into slot %d +book_lore.book_dust.page.0=the doc was furious when he found out that the R&D dorks kept the one remaining sample, ranting about gross negligence this and a doomsday scenario that. i told him to chill for a minute, getting all worked up isn't good for his blood pressure, not +book_lore.book_dust.page.1=that he has much blood left to begin with. one of the R&D morons slipped some more info into last week's circular, they call their little concoction \"MKU\" whatever that means, and that it contains actual household lint. can you believe that? one of the most +book_lore.book_dust.page.2=dangerous inventions of theirs and it contains dust. strangely they also mentioned that it goes into slot %d book_lore.book_mercury.name=Note book_lore.book_mercury.author=Dave -book_lore.book_mercury.page.1=well that settles that. not counting the vomitting blood part, the toxicological report mostly resembles that of mercury poisoning. why? because our little mix also contains mercury! i just wonder where all that stuff comes from when being -book_lore.book_mercury.page.2=replicated by the body? whatever, the mercury goes into slot %d +book_lore.book_mercury.page.0=well that settles that. not counting the vomitting blood part, the toxicological report mostly resembles that of mercury poisoning. why? because our little mix also contains mercury! i just wonder where all that stuff comes from when being +book_lore.book_mercury.page.1=replicated by the body? whatever, the mercury goes into slot %d book_lore.book_flower.name=Note book_lore.book_flower.author=Dave -book_lore.book_flower.page.1=remember when i mentioned in my first memo that the compound is mostly anorganic? well guess what, the old man shared the fourth ingredient: ipomoea nil, a genus of flower. morning glory! it might be due to its low sulfur content, whatever might be the case, -book_lore.book_flower.page.2=it does not work with other flowers. the morning glory goes into slot %d +book_lore.book_flower.page.0=remember when i mentioned in my first memo that the compound is mostly anorganic? well guess what, the old man shared the fourth ingredient: ipomoea nil, a genus of flower. morning glory! it might be due to its low sulfur content, whatever might be the case, +book_lore.book_flower.page.1=it does not work with other flowers. the morning glory goes into slot %d book_lore.book_syringe.name=Note book_lore.book_syringe.author=Dave -book_lore.book_syringe.page.1=a little addendum to my fifth message, obviously you have to store this MKU stuff in a container. the R&D nuts used regular metal syringes that they got from medical. surplus ware i presume, they got thousands of needles just lying around. the metal -book_lore.book_syringe.page.2=syringe goes into slot %d +book_lore.book_syringe.page.0=a little addendum to my fifth message, obviously you have to store this MKU stuff in a container. the R&D nuts used regular metal syringes that they got from medical. surplus ware i presume, they got thousands of needles just lying around. the metal +book_lore.book_syringe.page.1=syringe goes into slot %d book_lore.resignation_note.name=Letter of Resignation book_lore.resignation_note.author=Kosma -book_lore.resignation_note.page.1=Management downsized our department again yesterday. Those idiots only have themselves to blame, I don't know what they were expecting after that fiasco. Who the hell leaks that sort of information? We're losing millions and -book_lore.resignation_note.page.2=it's ME who's the one out of a job now. I'M the one being asked to resign. I hope you asshats finally learn from your overabundance of mistakes and take that stick out of your ass. -book_lore.resignation_note.page.3=I'm not coming back on Friday. Just send the paycheck. +book_lore.resignation_note.page.0=Management downsized our department again yesterday. Those idiots only have themselves to blame, I don't know what they were expecting after that fiasco. Who the hell leaks that sort of information? We're losing millions and +book_lore.resignation_note.page.1=it's ME who's the one out of a job now. I'M the one being asked to resign. I hope you asshats finally learn from your overabundance of mistakes and take that stick out of your ass. +book_lore.resignation_note.page.2=I'm not coming back on Friday. Just send the paycheck. book_lore.memo_stocks.name=Intracorporate Memorandum -book_lore.memo_stocks.page.1=Investor Relations - $ $ There's been some glaring discrepancies in the figures provided for the latest quarterly report. It would be prudent for the financial department to make some adjustments, so there won't be any concern. +book_lore.memo_stocks.page.0=Investor Relations - $ $ There's been some glaring discrepancies in the figures provided for the latest quarterly report. It would be prudent for the financial department to make some adjustments, so there won't be any concern. book_lore.memo_schrab_gsa.name=Internal Memorandum -book_lore.memo_schrab_gsa.page.1=Contract Management - $ $ Legal has made a breakthrough with the DLA. They've awarded us with a 45 BILLION GSA Schedule for further procurement and research of saralloy. At current estimates, that would be at minimum -book_lore.memo_schrab_gsa.page.2=a 40%% profit on related operations, let alone the possibility of future contracts. Due to the confidential nature, all fiscal evidence is to remain private. +book_lore.memo_schrab_gsa.page.0=Contract Management - $ $ Legal has made a breakthrough with the DLA. They've awarded us with a 45 BILLION GSA Schedule for further procurement and research of saralloy. At current estimates, that would be at minimum +book_lore.memo_schrab_gsa.page.1=a 40%% profit on related operations, let alone the possibility of future contracts. Due to the confidential nature, all fiscal evidence is to remain private. book_lore.memo_schrab_rd.name=Internal Memorandum -book_lore.memo_schrab_rd.page.1=Research & Development - $ $ Our main production method of saralloy has been through the new particle accelerator. However, the energy costs are exorbitantly high compared to the amount of output. -book_lore.memo_schrab_rd.page.2=Doctor Schrabauer, however, has discovered a new interaction - called "Strange Lepton Oscillation" - that could significantly reduce costs. Through a not entirely understood process, supplied electrons are transmuted into extremely -book_lore.memo_schrab_rd.page.3=high-energy photons, through a strange charm. This is an extreme exception to many established particle conversion laws, but preliminary experiments have proved that these protons transmute into up and down quarks, eventually creating saralloy. -book_lore.memo_schrab_rd.page.4=Strangely, the prototype requires Tungsten alloyed with small amounts of saralloy. In addition, a special capacitor is required to negate the leftover positive charge. +book_lore.memo_schrab_rd.page.0=Research & Development - $ $ Our main production method of saralloy has been through the new particle accelerator. However, the energy costs are exorbitantly high compared to the amount of output. +book_lore.memo_schrab_rd.page.1=Doctor Schrabauer, however, has discovered a new interaction - called "Strange Lepton Oscillation" - that could significantly reduce costs. Through a not entirely understood process, supplied electrons are transmuted into extremely +book_lore.memo_schrab_rd.page.2=high-energy photons, through a strange charm. This is an extreme exception to many established particle conversion laws, but preliminary experiments have proved that these protons transmute into up and down quarks, eventually creating saralloy. +book_lore.memo_schrab_rd.page.3=Strangely, the prototype requires Tungsten alloyed with small amounts of saralloy. In addition, a special capacitor is required to negate the leftover positive charge. book_lore.memo_schrab_nuke.name=Research Report book_lore.memo_schrab_nuke.author=Doctor Schrabauer -book_lore.memo_schrab_nuke.page.1=Our most recent investigation led us to the effects of nuclear explosions on materials. Thanks to our grant money, we *accidentally* tested our theory on direct saralloy synthesis from uranium. -book_lore.memo_schrab_nuke.page.2=Only our cyclotron has actually created saralloy previously. However, at our underground shot at Everwerpen, miniscule traces of saralloy were found in uranium ore at the site. All pure, metallic uranium nearby had fissioned. -book_lore.memo_schrab_nuke.page.3=As such, given enough uranium ore concentrated around an explosive, or perhaps even a dirty bomb rich in waste containing fissionable material, one could hypothetically create enough saralloy to collect manually. +book_lore.memo_schrab_nuke.page.0=Our most recent investigation led us to the effects of nuclear explosions on materials. Thanks to our grant money, we *accidentally* tested our theory on direct saralloy synthesis from uranium. +book_lore.memo_schrab_nuke.page.1=Only our cyclotron has actually created saralloy previously. However, at our underground shot at Everwerpen, miniscule traces of saralloy were found in uranium ore at the site. All pure, metallic uranium nearby had fissioned. +book_lore.memo_schrab_nuke.page.2=As such, given enough uranium ore concentrated around an explosive, or perhaps even a dirty bomb rich in waste containing fissionable material, one could hypothetically create enough saralloy to collect manually. book_lore.insanity_1.name=Torn Page book_lore.insanity_1.author=D Ferguson -book_lore.insanity_1.page.1=August 6th $ $ Months, no, years worth of dicking about wrestling with investors and operating the greatest energy hog in the northern hemisphere has finally paid off. -book_lore.insanity_1.page.2=While we aren't entirely sure what exactly we found - given we ran gigavolt collisions on particles that were still poorly documented - the results couldn't have been more exciting. -book_lore.insanity_1.page.3=We haven't found a name for whatever it is we've found, nor are we sure if we're looking at a new type of particle, a wormhole leading into another dimension, or satan's anus, but I'm sure our PR people can come up with something. +book_lore.insanity_1.page.0=August 6th $ $ Months, no, years worth of dicking about wrestling with investors and operating the greatest energy hog in the northern hemisphere has finally paid off. +book_lore.insanity_1.page.1=While we aren't entirely sure what exactly we found - given we ran gigavolt collisions on particles that were still poorly documented - the results couldn't have been more exciting. +book_lore.insanity_1.page.2=We haven't found a name for whatever it is we've found, nor are we sure if we're looking at a new type of particle, a wormhole leading into another dimension, or satan's anus, but I'm sure our PR people can come up with something. book_lore.insanity_2.name=Torn Page book_lore.insanity_2.author=D Ferguson -book_lore.insanity_2.page.1=August 8th $ $ We've kept "The Thing" (yes that's what we call it for now) in magnetic isolation for the past days. Spectroscopy tests ended up breaking our spectrometer, but we managed to gain some useful data. -book_lore.insanity_2.page.2=For starters, this thing glows like a christmas tree, radiation photons of about every wavelength you could think of enveloped by a powerful infrared corona. The logical conclusion is that looking at it with your naked -book_lore.insanity_2.page.3=eye would most likely kill you. Now that begs the question: How can a particle this tiny radiate such immense energy? What are you hiding, little man? +book_lore.insanity_2.page.0=August 8th $ $ We've kept "The Thing" (yes that's what we call it for now) in magnetic isolation for the past days. Spectroscopy tests ended up breaking our spectrometer, but we managed to gain some useful data. +book_lore.insanity_2.page.1=For starters, this thing glows like a christmas tree, radiation photons of about every wavelength you could think of enveloped by a powerful infrared corona. The logical conclusion is that looking at it with your naked +book_lore.insanity_2.page.2=eye would most likely kill you. Now that begs the question: How can a particle this tiny radiate such immense energy? What are you hiding, little man? book_lore.insanity_3.name=Torn Page book_lore.insanity_3.author=D Ferguson -book_lore.insanity_3.page.1=August 22nd $ $ I haven't slept right in days. Doc said he couldn't find anything. Been on all sorts of medication now, but the headaches only get worse. Lab boys suspect it might be contamination from the incident two weeks ago. -book_lore.insanity_3.page.2=Doc said it's not that likely, ARS is different. I might need to take some time off if this continues. The Thing is still in containment, the lab boys speculate if the field goes down, the entire complex turns into a mushroom cloud. -book_lore.insanity_3.page.3=I'm not sure how administration can keep this calm, but i don't get paid enough to waste thoughts on that. +book_lore.insanity_3.page.0=August 22nd $ $ I haven't slept right in days. Doc said he couldn't find anything. Been on all sorts of medication now, but the headaches only get worse. Lab boys suspect it might be contamination from the incident two weeks ago. +book_lore.insanity_3.page.1=Doc said it's not that likely, ARS is different. I might need to take some time off if this continues. The Thing is still in containment, the lab boys speculate if the field goes down, the entire complex turns into a mushroom cloud. +book_lore.insanity_3.page.2=I'm not sure how administration can keep this calm, but i don't get paid enough to waste thoughts on that. book_lore.insanity_4.name=Torn Page book_lore.insanity_4.author=D Ferguson -book_lore.insanity_4.page.1=August 28th $ $ They denied my request for leave and I've been pushing through the past few days. Headaches are getting worse. I'm not the only one who's feeling it, either. Some of the lab boys are in a similar situation. -book_lore.insanity_4.page.2=All the while The Thing has left the complex - GOOD. Some suits came in yesterday and had it shipped off, god knows where. One of the lab boys, Zachary, said they're probably burying the containment vessel in the desert, slowly -book_lore.insanity_4.page.3=trying to "fizzle out" The Thing far off from civilization. I say let's shoot it into space. Needless to say, our investors cut all funding for the time being. I should start looking for another job. +book_lore.insanity_4.page.0=August 28th $ $ They denied my request for leave and I've been pushing through the past few days. Headaches are getting worse. I'm not the only one who's feeling it, either. Some of the lab boys are in a similar situation. +book_lore.insanity_4.page.1=All the while The Thing has left the complex - GOOD. Some suits came in yesterday and had it shipped off, god knows where. One of the lab boys, Zachary, said they're probably burying the containment vessel in the desert, slowly +book_lore.insanity_4.page.2=trying to "fizzle out" The Thing far off from civilization. I say let's shoot it into space. Needless to say, our investors cut all funding for the time being. I should start looking for another job. book_lore.insanity_5.name=Torn Page book_lore.insanity_5.author=D Ferguson -book_lore.insanity_5.page.1=September 11th $ $ I'm having this re-occurring nightmare. I'm walking around in an open space and there's these people everywhere, people in rubber suits and freakishly deformed faces. It's always the same nightmare, -book_lore.insanity_5.page.2=and one of the guys from the lab I've spoken with lately has had the same dream. Meanwhile my post has been rather boring, the accelerator has been shut down, all ongoing projects are on halt and our budget is slowly melting away. -book_lore.insanity_5.page.3=Something is telling me that The Thing is still out there somewhere. I can feel it. +book_lore.insanity_5.page.0=September 11th $ $ I'm having this re-occurring nightmare. I'm walking around in an open space and there's these people everywhere, people in rubber suits and freakishly deformed faces. It's always the same nightmare, +book_lore.insanity_5.page.1=and one of the guys from the lab I've spoken with lately has had the same dream. Meanwhile my post has been rather boring, the accelerator has been shut down, all ongoing projects are on halt and our budget is slowly melting away. +book_lore.insanity_5.page.2=Something is telling me that The Thing is still out there somewhere. I can feel it. book_lore.insanity_6.name=Torn Page book_lore.insanity_6.author=D Ferguson -book_lore.insanity_6.page.1=October 3rd $ $ Half the staff is dead, most of the rest is in the ICU. My condition hasn't changed in the past weeks, for better or worse. -book_lore.insanity_6.page.2=Reality is starting to feel less and less real however. Sometimes I look up into the sky at night and hallucinate that thing we discovered all those weeks ago. -book_lore.insanity_6.page.3=That same brilliant sheen of crimson that our spectrometer spat out. My doc says it's delirium and stress caused by the incident, and perhaps hes right, but the meds aren't working at all. +book_lore.insanity_6.page.0=October 3rd $ $ Half the staff is dead, most of the rest is in the ICU. My condition hasn't changed in the past weeks, for better or worse. +book_lore.insanity_6.page.1=Reality is starting to feel less and less real however. Sometimes I look up into the sky at night and hallucinate that thing we discovered all those weeks ago. +book_lore.insanity_6.page.2=That same brilliant sheen of crimson that our spectrometer spat out. My doc says it's delirium and stress caused by the incident, and perhaps hes right, but the meds aren't working at all. book_lore.insanity_7.name=Torn Page book_lore.insanity_7.author=D Ferguson -book_lore.insanity_7.page.1=December 12th $ $ I've been out of a job, but to be honest I'm somewhat thankful about it. My old workplace has gone up in flames - or so they say. -book_lore.insanity_7.page.2=The seismological observatory a couple miles south recorded constant earthquakes for days on end, not that anyone else would have noticed this deep in the desert. -book_lore.insanity_7.page.3=I have concluded that this place was cursed, making everyone sick and then descending into hell like some sort of Edgar Allan Poe story. Good riddance. +book_lore.insanity_7.page.0=December 12th $ $ I've been out of a job, but to be honest I'm somewhat thankful about it. My old workplace has gone up in flames - or so they say. +book_lore.insanity_7.page.1=The seismological observatory a couple miles south recorded constant earthquakes for days on end, not that anyone else would have noticed this deep in the desert. +book_lore.insanity_7.page.2=I have concluded that this place was cursed, making everyone sick and then descending into hell like some sort of Edgar Allan Poe story. Good riddance. hbmfluid.none=Ничего hbmfluid.water=Вода @@ -2140,6 +2140,8 @@ tile.watz_pump.name=Нагнетающая помпа Ватцза tile.machine_coker.name=Коксовая установка tile.machine_coker.desc=Коксует жидкость, создавая жидкую побочку.$Требует внешний источник тепла.$Скорость передачи тепла: ΔT*0.025 TU/t container.machineCoker=Коксовая установка +container.machineCompressor=Компрессор +tile.machine_compressor.name=Компрессор container.hadron=Ускоритель частиц tile.hadron_access.name=Терминал доступа ускорителя частиц @@ -2263,6 +2265,7 @@ tile.machine_tower_large.name=Градирня tile.machine_tower_small.name=Вспомогательная градирня tile.fusion_conductor.name=Сверхпроводящий магнит +tile.fusion_conductor_welded.name=Сверхпроводящий магнит (Сваренный) tile.fusion_center.name=Центральный элемент магнита tile.fusion_motor.name=Элемент магнитного мотора tile.fusion_heater.name=Компонент нагревателя плазмы @@ -4478,6 +4481,14 @@ entity.entity_taint_crab.name=Заражённый порчей теслакра entity.entity_elder_one.name=Крякос Старший entity.entity_ntm_fbi.name=Агент ФБР entity.entity_ntm_radiation_blaze.name=Элементаль Расплавления +entity.entity_glyphid.name=Глифид +entity.entity_glyphid_behemoth.name=Глифид-страж +entity.entity_glyphid_brawler.name=Глифид-солдат +entity.entity_glyphid_brenda.name=Бренда +entity.entity_glyphid_nuclear.name=Чмяк +entity.entity_glyphid_scout.name=Глифид-паучок +entity.entity_glyphid_blaster.name=Глифид-стрелок +entity.entity_glyphid_bombardier.name=Глифид-бомбардир entity.hbm.entity_balls_o_tron.name=Баллс-О-Трон Прайм entity.hbm.entity_balls_o_tron_seg.name=Баллс-О-Трон Сегмент entity.hbm.entity_ntm_ufo.name=Марсианский корабль вторжения @@ -5079,6 +5090,8 @@ tile.meteor_brick_chiseled.name=Высеченные метеоритные ки tile.meteor_pillar.name=Метеоритный столб tile.meteor_spawner.name=Сборщик киберкрабов tile.meteor_battery.name=Генератор статического электричества из звездного металла +tile.glyphid_base.name=Блок улья глифидов +tile.glyphid_spawner.name=Спавнер улья глифидов tile.ore_tektite_osmiridium.name=Перемешанный с осмиридием Тектит tile.tektite.name=Тектит @@ -5239,6 +5252,7 @@ item.bottle2_fritz.name=Фрицз-Кола item.bottle2_korl_special.name=Первый Корл item.bottle2_fritz_special.name=Первая Фрицз-Кола item.bottle2_sunset.name=Сансет Сарсапарилла +item.bdcl.name=BDCL item.chocolate_milk.name=Молочный шоколад item.cap_nuka.name=Крышка item.cap_quantum.name=Крышка от Квантовой Ядер-колы From c32e20daf7161c129394345ea8ee3fff3bad9517 Mon Sep 17 00:00:00 2001 From: Doctor17-git <60807716+Doctor17-git@users.noreply.github.com> Date: Sat, 24 Jun 2023 10:14:45 +0300 Subject: [PATCH 100/109] Updated ru_RU.lang --- src/main/resources/assets/hbm/lang/ru_RU.lang | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/resources/assets/hbm/lang/ru_RU.lang b/src/main/resources/assets/hbm/lang/ru_RU.lang index 4281a44ff..a3235976c 100644 --- a/src/main/resources/assets/hbm/lang/ru_RU.lang +++ b/src/main/resources/assets/hbm/lang/ru_RU.lang @@ -542,8 +542,8 @@ desc.gui.nukeGadget.desc=§1Требует:§r$ * 4 Набора взрывоо desc.gui.nukeMan.desc=§1Требует:§r$ * 4 Набора взрывоопасных линз$ Первого поколения$ * Плутониевое ядро$ * Воспламенитель desc.gui.nukeMike.desc=§1Требует:§r$ * 4 Набора взрывоопасных линз$ * Плутониевое ядро$ * Блок охлаждения дейтерия$ * Дейтериевый бак с урановым покрытием$ * Дейтериевый бак desc.gui.nukeTsar.desc=§1Требует:§r$ * 4 Набора взрывоопасных линз$ * Плутониевое ядро$§9Опционально:§r$ * Ядро Царь-бомбы -desc.item.zirnoxBreedingRod=§2[Стержень-размножитель Цирнокс]$§eРазмещать рядом с топливными стержнями$§eОсталось %d тиков -desc.item.zirnoxRod=§a[Топливный стержень Цирнокс]$§eГенерирует %1$d тепла на тик$§eОсталость %2$d тиков +desc.item.zirnoxBreedingRod=§2[Стержень-размножитель Цирнокс]$§eРазмещать рядом с топливными стержнями$§eВремя работы %d тиков +desc.item.zirnoxRod=§a[Топливный стержень Цирнокс]$§eГенерирует %1$d тепла на тик$§Время работы %2$d тиков desc.item.ammo.con_accuracy2=- Сильно сниженная точность desc.item.ammo.con_damage=- Сильно сниженный урон desc.item.ammo.con_heavy_wear=- Сильно увеличенный износ @@ -5608,7 +5608,6 @@ item.crystal_energy.desc=Densely packed energy powder.$Not edible. item.custom_core.name=Nuclear Fission Core item.detonator_de.desc=Взрывается при падении! item.detonator_deadman.desc=Shift+ПКМ, чтобы задать позицию,$выбросите для детонации! -item.euphemium_capacitor.name=Redcoil Capacitor with Euphemium Positive Energy Negator item.eye.desc.11=§c"All humans, are afraid of monsters, the monsters they keep inside of them.$§cThey drove the species who are able to expose the monsters in them down the$§cpurgatory underground. There, in the purgatory deep inside the earth where$§cpeople are made, he was born. He hated, and loved, the monster that is$§cforming inside of him more than anyone else. Together with his second$§cmother, he climbed up to the world where the people who have driven him into$§cthe underground live. However, at that time, it was too late. This world$§cabove ground is waiting for its slow death, same as the people who are$§ccontinue to stay there. This world, this surface, is the realm of the dead.$§cAnd this species called humans, they have built for themselves a world of$§ctwilight. There, he met a ghost called 'father'. His second mother, who has$§ccome to this netherworld with him, remained there, while he returned to the$§cpurgatory where he was born. That place, the place where he lives, that$§cpurgatory. That should be the last world of humans."§r item.eye.desc=It's looking at me despite being closed,$or rather, through me...$into my soul.$It makes me uncomfortable item.eye.name=Eye? From 99cfce0e5d1a1b4d8dc460574492cc8bc86e8d62 Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 24 Jun 2023 17:54:46 +0200 Subject: [PATCH 101/109] pollution effects for heavy metal and poison --- changelog | 7 +- .../hbm/entity/grenade/EntityGrenadeGas.java | 23 ++-- .../com/hbm/handler/EntityEffectHandler.java | 104 ++++++++++++------ .../handler/pollution/PollutionHandler.java | 10 +- .../com/hbm/inventory/gui/GUICompressor.java | 2 +- .../com/hbm/items/weapon/ItemAmmoArty.java | 29 +++-- .../java/com/hbm/main/ModEventHandler.java | 25 ++++- .../TileEntityMachineCombustionEngine.java | 4 +- 8 files changed, 141 insertions(+), 63 deletions(-) diff --git a/changelog b/changelog index d82ff17a6..b31f60f2d 100644 --- a/changelog +++ b/changelog @@ -38,9 +38,14 @@ * The page and notebook items have been replaced with more dynamic book items that get their data from NBT * C4 can now be made by irradiating PVC * Play stupid games, win stupid prizes +* Gas grenades now use the new gas system which should be a lot more pleasant to look at and less heavy on the TPS +* Leaded fuels now release heavy metal into the air, heavy metal can cause lead poisoning + * Lower heavy metal concentrations can also cause heavy metal poisoning when breaking blocks +* Gas artillery shell now create heavy metal and poisonous pollution ## Fixed * Fixed potential crash or logspam regarding the pollution handler * Fixed missiles leaving behind a 3x3 grid of loaded chunks after being destroyed * Fixed coal ore yielding coal in the crucible instead of making carbon -* Fixed a potential issue where BuildCraft generators can't supply the RF to HE converter \ No newline at end of file +* Fixed a potential issue where BuildCraft generators can't supply the RF to HE converter +* Fixed combustion engine sound sometimes continue playing even when turned off \ No newline at end of file diff --git a/src/main/java/com/hbm/entity/grenade/EntityGrenadeGas.java b/src/main/java/com/hbm/entity/grenade/EntityGrenadeGas.java index 5526b87a0..51d813653 100644 --- a/src/main/java/com/hbm/entity/grenade/EntityGrenadeGas.java +++ b/src/main/java/com/hbm/entity/grenade/EntityGrenadeGas.java @@ -5,7 +5,9 @@ import net.minecraft.world.World; import java.util.Random; +import com.hbm.entity.effect.EntityMist; import com.hbm.explosion.ExplosionChaos; +import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; import com.hbm.items.weapon.ItemGrenade; @@ -30,21 +32,12 @@ public class EntityGrenadeGas extends EntityGrenadeBouncyBase { if (!this.worldObj.isRemote) { this.setDead(); this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 0.0F, true); - // ExplosionChaos.poison(this.worldObj, (int)this.posX, - // (int)this.posY, (int)this.posZ, 5); - // for(int i = 0; 0 < 15; i++) { - - /* - * ExplosionLarge.spawnParticlesRadial(worldObj, posX, posY, posZ, - * 50); ExplosionLarge.spawnParticlesRadial(worldObj, posX, posY, - * posZ, 50); ExplosionLarge.spawnParticlesRadial(worldObj, posX, - * posY, posZ, 50); ExplosionLarge.spawnParticlesRadial(worldObj, - * posX, posY, posZ, 50); - */ - - ExplosionChaos.spawnChlorine(worldObj, posX, posY, posZ, 50, 1.25, 0); - - // } + + EntityMist mist = new EntityMist(worldObj); + mist.setType(Fluids.CHLORINE); + mist.setPosition(posX, posY - 5, posZ); + mist.setArea(15, 10); + worldObj.spawnEntityInWorld(mist); } } diff --git a/src/main/java/com/hbm/handler/EntityEffectHandler.java b/src/main/java/com/hbm/handler/EntityEffectHandler.java index d3d177c43..1bcec5d0e 100644 --- a/src/main/java/com/hbm/handler/EntityEffectHandler.java +++ b/src/main/java/com/hbm/handler/EntityEffectHandler.java @@ -12,6 +12,8 @@ import com.hbm.extprop.HbmLivingProps; import com.hbm.extprop.HbmPlayerProps; import com.hbm.extprop.HbmLivingProps.ContaminationEffect; import com.hbm.handler.HbmKeybinds.EnumKeybind; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.interfaces.IArmorModDash; import com.hbm.items.armor.ArmorFSB; @@ -19,6 +21,7 @@ import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.potion.HbmPotion; import com.hbm.packet.ExtPropPacket; import com.hbm.saveddata.AuxSavedData; import com.hbm.util.ArmorRegistry; @@ -48,42 +51,40 @@ import net.minecraft.world.World; public class EntityEffectHandler { public static void onUpdate(EntityLivingBase entity) { - + + if(entity.ticksExisted % 20 == 0) { + HbmLivingProps.setRadBuf(entity, HbmLivingProps.getRadEnv(entity)); + HbmLivingProps.setRadEnv(entity, 0); + } + + if(entity instanceof EntityPlayerMP) { + HbmLivingProps props = HbmLivingProps.getData(entity); + HbmPlayerProps pprps = HbmPlayerProps.getData((EntityPlayerMP) entity); + NBTTagCompound data = new NBTTagCompound(); + + if(pprps.shield < pprps.maxShield && entity.ticksExisted > pprps.lastDamage + 60) { + int tsd = entity.ticksExisted - (pprps.lastDamage + 60); + pprps.shield += Math.min(pprps.maxShield - pprps.shield, 0.005F * tsd); + } + + if(pprps.shield > pprps.maxShield) + pprps.shield = pprps.maxShield; + + props.saveNBTData(data); + pprps.saveNBTData(data); + PacketDispatcher.wrapper.sendTo(new ExtPropPacket(data), (EntityPlayerMP) entity); + } + if(!entity.worldObj.isRemote) { - - if(entity.ticksExisted % 20 == 0) { - HbmLivingProps.setRadBuf(entity, HbmLivingProps.getRadEnv(entity)); - HbmLivingProps.setRadEnv(entity, 0); - } - - - if(entity instanceof EntityPlayerMP) { - HbmLivingProps props = HbmLivingProps.getData(entity); - HbmPlayerProps pprps = HbmPlayerProps.getData((EntityPlayerMP) entity); - NBTTagCompound data = new NBTTagCompound(); - - if(pprps.shield < pprps.maxShield && entity.ticksExisted > pprps.lastDamage + 60) { - int tsd = entity.ticksExisted - (pprps.lastDamage + 60); - pprps.shield += Math.min(pprps.maxShield - pprps.shield, 0.005F * tsd); - } - - if(pprps.shield > pprps.maxShield) - pprps.shield = pprps.maxShield; - - props.saveNBTData(data); - pprps.saveNBTData(data); - PacketDispatcher.wrapper.sendTo(new ExtPropPacket(data), (EntityPlayerMP) entity); - } - int timer = HbmLivingProps.getTimer(entity); if(timer > 0) { HbmLivingProps.setTimer(entity, timer - 1); - + if(timer == 1) { ExplosionNukeSmall.explode(entity.worldObj, entity.posX, entity.posY, entity.posZ, ExplosionNukeSmall.PARAMS_MEDIUM); } } - + if(GeneralConfig.enable528 && entity instanceof EntityLivingBase && !entity.isImmuneToFire() && entity.worldObj.provider.isHellWorld) { entity.setFire(5); } @@ -95,6 +96,7 @@ public class EntityEffectHandler { handleDigamma(entity); handleLungDisease(entity); handleOil(entity); + handlePollution(entity); handleDashing(entity); handlePlinking(entity); @@ -365,8 +367,11 @@ public class EntityEffectHandler { double blacklung = Math.min(HbmLivingProps.getBlackLung(entity), HbmLivingProps.maxBlacklung); double asbestos = Math.min(HbmLivingProps.getAsbestos(entity), HbmLivingProps.maxAsbestos); + double soot = PollutionHandler.getPollution(entity.worldObj, (int) Math.floor(entity.posX), (int) Math.floor(entity.posY + entity.getEyeHeight()), (int) Math.floor(entity.posZ), PollutionType.SOOT); - boolean coughs = blacklung / HbmLivingProps.maxBlacklung > 0.25D || asbestos / HbmLivingProps.maxAsbestos > 0.25D; + if(ArmorRegistry.hasProtection(entity, 3, HazardClass.PARTICLE_COARSE)) soot = 0; + + boolean coughs = blacklung / HbmLivingProps.maxBlacklung > 0.25D || asbestos / HbmLivingProps.maxAsbestos > 0.25D || soot > 30; if(!coughs) return; @@ -377,11 +382,10 @@ public class EntityEffectHandler { double blacklungDelta = 1D - (blacklung / (double)HbmLivingProps.maxBlacklung); double asbestosDelta = 1D - (asbestos / (double)HbmLivingProps.maxAsbestos); + double sootDelta = 1D - Math.min(soot / 100, 1D); double total = 1 - (blacklungDelta * asbestosDelta); - int freq = Math.max((int) (1000 - 950 * total), 20); - World world = entity.worldObj; if(total > 0.75D) { @@ -392,6 +396,9 @@ public class EntityEffectHandler { entity.addPotionEffect(new PotionEffect(Potion.confusion.id, 100, 0)); } + total = 1 - (blacklungDelta * asbestosDelta * sootDelta); + int freq = Math.max((int) (1000 - 950 * total), 20); + if(world.getTotalWorldTime() % freq == entity.getEntityId() % freq) { world.playSoundEffect(entity.posX, entity.posY, entity.posZ, "hbm:player.cough", 1.0F, 1.0F); @@ -442,6 +449,41 @@ public class EntityEffectHandler { } } + private static void handlePollution(EntityLivingBase entity) { + + if(!ArmorRegistry.hasProtection(entity, 3, HazardClass.GAS_CORROSIVE) && entity.ticksExisted % 60 == 0) { + + float poison = PollutionHandler.getPollution(entity.worldObj, (int) Math.floor(entity.posX), (int) Math.floor(entity.posY + entity.getEyeHeight()), (int) Math.floor(entity.posZ), PollutionType.POISON); + + if(poison > 10) { + + if(poison < 25) { + entity.addPotionEffect(new PotionEffect(Potion.poison.id, 100, 0)); + } else if(poison < 50) { + entity.addPotionEffect(new PotionEffect(Potion.poison.id, 100, 2)); + } else { + entity.addPotionEffect(new PotionEffect(Potion.wither.id, 100, 2)); + } + } + } + + if(!ArmorRegistry.hasProtection(entity, 3, HazardClass.PARTICLE_FINE) && entity.ticksExisted % 60 == 0) { + + float poison = PollutionHandler.getPollution(entity.worldObj, (int) Math.floor(entity.posX), (int) Math.floor(entity.posY + entity.getEyeHeight()), (int) Math.floor(entity.posZ), PollutionType.HEAVYMETAL); + + if(poison > 25) { + + if(poison < 50) { + entity.addPotionEffect(new PotionEffect(HbmPotion.lead.id, 100, 0)); + } else if(poison < 75) { + entity.addPotionEffect(new PotionEffect(HbmPotion.lead.id, 100, 2)); + } else { + entity.addPotionEffect(new PotionEffect(HbmPotion.lead.id, 100, 2)); + } + } + } + } + private static void handleDashing(Entity entity) { //AAAAAAAAAAAAAAAAAAAAEEEEEEEEEEEEEEEEEEEE diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java index d62fd28e6..ebf943f95 100644 --- a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -169,6 +169,7 @@ public class PollutionHandler { float[] pollutionForNeightbors = new float[PollutionType.values().length]; int S = PollutionType.SOOT.ordinal(); int H = PollutionType.HEAVYMETAL.ordinal(); + int P = PollutionType.POISON.ordinal(); /* CALCULATION */ if(data.pollution[S] > 15) { @@ -178,7 +179,14 @@ public class PollutionHandler { data.pollution[S] *= 0.99F; } - data.pollution[H] *= 0.999F; + data.pollution[H] *= 0.9995F; + + if(data.pollution[P] > 10) { + pollutionForNeightbors[P] = data.pollution[P] * 0.025F; + data.pollution[P] *= 0.9F; + } else { + data.pollution[P] *= 0.995F; + } /* SPREADING */ //apply new data to self diff --git a/src/main/java/com/hbm/inventory/gui/GUICompressor.java b/src/main/java/com/hbm/inventory/gui/GUICompressor.java index e555886fa..66e72609b 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICompressor.java +++ b/src/main/java/com/hbm/inventory/gui/GUICompressor.java @@ -36,7 +36,7 @@ public class GUICompressor extends GuiInfoContainer { compressor.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 107, guiTop + 18, 16, 52); this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 18, 16, 52, compressor.power, compressor.maxPower); - for(int j = 0; j < 5; j++) drawCustomInfoStat(mouseX, mouseY, guiLeft + 43 + j * 11, guiTop + 48, 8, 14, mouseX, mouseY, j + " PU -> " + (j + 1) + " PU"); + for(int j = 0; j < 5; j++) drawCustomInfoStat(mouseX, mouseY, guiLeft + 43 + j * 11, guiTop + 46, 8, 14, mouseX, mouseY, j + " PU -> " + (j + 1) + " PU"); } @Override diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java index 40efef4ce..d4d263fa5 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java @@ -19,6 +19,8 @@ import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; import com.hbm.explosion.vanillant.standard.EntityProcessorCross; import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard; import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.inventory.fluid.Fluids; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; @@ -318,6 +320,7 @@ public class ItemAmmoArty extends Item { mist.setPosition(mop.hitVec.xCoord - vec.xCoord, mop.hitVec.yCoord - vec.yCoord - 3, mop.hitVec.zCoord - vec.zCoord); mist.setArea(15, 7.5F); shell.worldObj.spawnEntityInWorld(mist); + PollutionHandler.incrementPollution(shell.worldObj, mop.blockX, mop.blockY, mop.blockZ, PollutionType.HEAVYMETAL, 5F); } }; this.itemTypes[PHOSGENE] = new ArtilleryShell("ammo_arty_phosgene", SpentCasing.COLOR_CASE_16INCH_NUKE) { @@ -326,18 +329,20 @@ public class ItemAmmoArty extends Item { Vec3 vec = Vec3.createVectorHelper(shell.motionX, shell.motionY, shell.motionZ).normalize(); shell.worldObj.createExplosion(shell, mop.hitVec.xCoord - vec.xCoord, mop.hitVec.yCoord - vec.yCoord, mop.hitVec.zCoord - vec.zCoord, 5F, false); for(int i = 0; i < 3; i++) { - EntityMist mist = new EntityMist(shell.worldObj); - mist.setType(Fluids.PHOSGENE); - double x = mop.hitVec.xCoord - vec.xCoord; - double z = mop.hitVec.zCoord - vec.zCoord; - if(i > 0) { - x += rand.nextGaussian() * 15; - z += rand.nextGaussian() * 15; + EntityMist mist = new EntityMist(shell.worldObj); + mist.setType(Fluids.PHOSGENE); + double x = mop.hitVec.xCoord - vec.xCoord; + double z = mop.hitVec.zCoord - vec.zCoord; + if(i > 0) { + x += rand.nextGaussian() * 15; + z += rand.nextGaussian() * 15; + } + mist.setPosition(x, mop.hitVec.yCoord - vec.yCoord - 5, z); + mist.setArea(15, 10); + shell.worldObj.spawnEntityInWorld(mist); } - mist.setPosition(x, mop.hitVec.yCoord - vec.yCoord - 5, z); - mist.setArea(15, 10); - shell.worldObj.spawnEntityInWorld(mist); - } + PollutionHandler.incrementPollution(shell.worldObj, mop.blockX, mop.blockY, mop.blockZ, PollutionType.HEAVYMETAL, 10F); + PollutionHandler.incrementPollution(shell.worldObj, mop.blockX, mop.blockY, mop.blockZ, PollutionType.POISON, 15F); } }; this.itemTypes[MUSTARD] = new ArtilleryShell("ammo_arty_mustard_gas", SpentCasing.COLOR_CASE_16INCH_NUKE) { @@ -358,6 +363,8 @@ public class ItemAmmoArty extends Item { mist.setArea(20, 10); shell.worldObj.spawnEntityInWorld(mist); } + PollutionHandler.incrementPollution(shell.worldObj, mop.blockX, mop.blockY, mop.blockZ, PollutionType.HEAVYMETAL, 15F); + PollutionHandler.incrementPollution(shell.worldObj, mop.blockX, mop.blockY, mop.blockZ, PollutionType.POISON, 30F); } }; diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 69a28216f..800a62fbb 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -41,6 +41,8 @@ import com.hbm.hazard.HazardSystem; import com.hbm.interfaces.IBomb; import com.hbm.handler.HTTPHandler; import com.hbm.handler.HbmKeybinds.EnumKeybind; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.handler.SiegeOrchestrator; import com.hbm.items.IEquipReceiver; import com.hbm.items.ModItems; @@ -65,12 +67,14 @@ import com.hbm.potion.HbmPotion; import com.hbm.saveddata.AuxSavedData; import com.hbm.tileentity.network.RTTYSystem; import com.hbm.util.AchievementHandler; +import com.hbm.util.ArmorRegistry; import com.hbm.util.ArmorUtil; import com.hbm.util.ContaminationUtil; import com.hbm.util.EnchantmentUtil; import com.hbm.util.EntityDamageUtil; import com.hbm.util.EnumUtil; import com.hbm.util.InventoryUtil; +import com.hbm.util.ArmorRegistry.HazardClass; import com.hbm.world.generator.TimedGenerator; import cpw.mods.fml.common.eventhandler.EventPriority; @@ -1149,10 +1153,12 @@ public class ModEventHandler { @SubscribeEvent public void onBlockBreak(BreakEvent event) { - if(!(event.getPlayer() instanceof EntityPlayerMP)) + EntityPlayer player = event.getPlayer(); + + if(!(player instanceof EntityPlayerMP)) return; - if(event.block == ModBlocks.stone_gneiss && !((EntityPlayerMP) event.getPlayer()).func_147099_x().hasAchievementUnlocked(MainRegistry.achStratum)) { + if(event.block == ModBlocks.stone_gneiss && !((EntityPlayerMP) player).func_147099_x().hasAchievementUnlocked(MainRegistry.achStratum)) { event.getPlayer().triggerAchievement(MainRegistry.achStratum); event.setExpToDrop(500); } @@ -1169,6 +1175,21 @@ public class ModEventHandler { event.world.setBlock(x, y, z, ModBlocks.gas_coal); } } + + if(!ArmorRegistry.hasProtection(player, 3, HazardClass.PARTICLE_FINE)) { + + float metal = PollutionHandler.getPollution(player.worldObj, event.x, event.y, event.z, PollutionType.HEAVYMETAL); + + if(metal < 5) return; + + if(metal < 10) { + player.addPotionEffect(new PotionEffect(HbmPotion.lead.id, 100, 0)); + } else if(metal < 25) { + player.addPotionEffect(new PotionEffect(HbmPotion.lead.id, 100, 1)); + } else { + player.addPotionEffect(new PotionEffect(HbmPotion.lead.id, 100, 2)); + } + } } private static final String hash = "41eb77f138ce350932e33b6b26b233df9aad0c0c80c6a49cb9a54ddd8fae3f83"; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java index a01fd1347..1527a9e17 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java @@ -142,6 +142,8 @@ public class TileEntityMachineCombustionEngine extends TileEntityMachineBase imp audio = rebootAudio(audio); } + audio.keepAlive(); + } else { if(audio != null) { @@ -165,7 +167,7 @@ public class TileEntityMachineCombustionEngine extends TileEntityMachineBase imp } public AudioWrapper createAudioLoop() { - return MainRegistry.proxy.getLoopedSound("hbm:block.igeneratorOperate", xCoord, yCoord, zCoord, 1.0F, 10F, 1.0F); + return MainRegistry.proxy.getLoopedSound("hbm:block.igeneratorOperate", xCoord, yCoord, zCoord, 1.0F, 10F, 1.0F, 20); } @Override From 296af599dc9ec697a7bfb5b41b8d82446cdfda77 Mon Sep 17 00:00:00 2001 From: Vaern Date: Sat, 24 Jun 2023 23:55:24 -0700 Subject: [PATCH 102/109] lore --- src/main/resources/assets/hbm/lang/en_US.lang | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 6bd3ff4e6..6b313960b 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -386,6 +386,51 @@ book_lore.memo_schrab_nuke.page.0=Our most recent investigation led us to the ef book_lore.memo_schrab_nuke.page.1=Only our cyclotron has actually created saralloy previously. However, at our underground shot at Everwerpen, miniscule traces of saralloy were found in uranium ore at the site. All pure, metallic uranium nearby had fissioned. book_lore.memo_schrab_nuke.page.2=As such, given enough uranium ore concentrated around an explosive, or perhaps even a dirty bomb rich in waste containing fissionable material, one could hypothetically create enough saralloy to collect manually. +book_lore.bf_bomb_1.name=Private Notes +book_lore.bf_bomb_1.author=M. Porter +book_lore.bf_bomb_1.page.0=Took long enough, but my transfer was accepted. Those new grads were already hard to handle, let alone all the unprofessionalism of the lead. $ Not all good news - this lab was withholding further detail, and I didn't need more chaos over another magic new discovery. +book_lore.bf_bomb_1.page.1=Of course that was the case. The alumni had their doubts (surprising, considering how bright-eyed they were), but my only... competent? colleague actually got his hands on the primer hand-out. Must have more connections than I thought. His memo is discouraging: +book_lore.bf_bomb_1.page.2=apparently, there's yet ANOTHER miracle material that they prodded out of some concoction of antimatter and a fringe isotope. The brochure calls it "SWIRLMAT" - hell if I know - and that's it. No wonder they wanted a theoretical physicist, +book_lore.bf_bomb_1.page.3=they don't even know what it is yet. Either way, practically any job would be better than my old position, so I can't complain much about sketchiness. + +book_lore.bf_bomb_2.name=Private Notes +book_lore.bf_bomb_2.author=M. Porter +book_lore.bf_bomb_2.page.0=Despite the absence of information in that primer, I still had some hope they knew a bit more. Not at all. Every other senior researcher has a blind faith in this material; their propositions were practically biblical. I was near speechless. +book_lore.bf_bomb_2.page.1=And yet I can't even blame them. Swirlmat makes no goddamn sense - it is completely unlike any other substance I've seen before. Its appearance was near frightening, a literal mass of swirling colors, with darker lines permeating through the neon green surface. +book_lore.bf_bomb_2.page.2=Even worse, this thing is an energy source. The existence of our sample is a violation of ALARA: the lab was vacated when it arrived, and the only person brave enough (one Dr. Melfyn) donned a level A hazmat just to carry it 20 meters. +book_lore.bf_bomb_2.page.3=The empirical data isn't better, as we're breaking the first law of thermodynamics with how much energy it radiates. Being anywhere near that thing - even behind a meter of lead - was terrifying. We sprinted out of the chamber upon conclusion of the spectroscopy +book_lore.bf_bomb_2.page.4=and we got nothing new out of it. Those idiots in the science team, god, did not even waver after all that. Sitting through those "discussions" was horrible; that quack of a head researcher even rumored that the test ban would be lifted, that we could be +book_lore.bf_bomb_2.page.5=building bombs out of the shit in the coming weeks, who in their right mind would work on that? Hell, the one sane assistant (an Andrew) nicknamed it "balefire" - because burning to death on a funeral pyre would be painless by comparison. + +book_lore.bf_bomb_3.name=Private Notes +book_lore.bf_bomb_3.author=M. Porter +book_lore.bf_bomb_3.page.0=The team and I have made some breakthroughs. Emphasis on the separation - isolating myself from the more devout has made working there so much more bearable. While we still have no idea about the actual properties of balefire (it's difficult to analyze +book_lore.bf_bomb_3.page.1=a sample that fries your equipment) its interactions with other matter has proved fruitful. Notably, they synthesized a "gaseous" form: Andrew, of all people, informed me that it was really a colloid consisting of microscopic balefire particles, suspended in some +book_lore.bf_bomb_3.page.2=noble gas. Each particle is enveloped by a positively-charged 'bubble' of ionized gas, preventing it from settling. Who could've guessed that fatal gamma radiation had a benefit? Not me. $ I'm choosing not to think about how they transformed the sample into +book_lore.bf_bomb_3.page.3=particulate, but I can't understate the utility of this gaseous balefire - it's made it much safer to experiment on. $ Speaking of safety, the head researcher (in an act of callous disregard) made a discovery that also nearly took his head off. +book_lore.bf_bomb_3.page.4=He decided to get "dirty" by letting a cell of our new colloid interact directly with some very expensive antimatter: the resulting explosion turned the table it was on into a piece of radiation-bleached slag, carved a near-perfect hemisphere through +book_lore.bf_bomb_3.page.5=the top, and gave the head a healthy dose of ARS. I guess we know how to make it explode now, but god, some people... + +book_lore.bf_bomb_4.name=Private Notes +book_lore.bf_bomb_4.author=M. Porter +book_lore.bf_bomb_4.page.0=I just can't escape my old work. They're the only place that's hiring despite all this godforsaken turmoil, but I'm not going back into that hole. $ They only tempted me because I need out, fast. Remember that atmospheric testing treaty we withdrew from a week ago? +book_lore.bf_bomb_4.page.1=Well, the dipshit in charge of our lab got something right for once. The denunciation came with a flurry of new "scientists" joining, just so we could weaponize balefire. The lack of critical thought here is honestly baffling - bless him, Andrew even jumped ship the +book_lore.bf_bomb_4.page.2=second the first fucking BOMB DESIGN was drafted. That ass Melfyn looked so happy with his little mechanism - perhaps he got brainworms from carrying that sample? - which involved some stupid shit using the solidified, base balefire and an HV +book_lore.bf_bomb_4.page.3=battery. $ Apparently, the form matters for energy output and activation method or whatever, kind of like uranium versus plutonium in regular nukes, but the end result is an initial shock starting the explosion. I find it funny, hilarious even. +book_lore.bf_bomb_4.page.4=All of them place such emphasis on the activation; they ignore the actual mechanism of it all because they don't have a single clue how it works! It may as well be magic at this point, and yet they're still trying to twist and bend it - just for more weapons of war. + +book_lore.bf_bomb_5.name=Private Notes +book_lore.bf_bomb_5.author=M. Porter +book_lore.bf_bomb_5.page.0=I just... can't come to grips with it, even days after. It was a foregone conclusion, really, with how flippant the science team was with safety. $ $ Doctor Melfyn, M.S., is gone. Dead, maybe. I saw it happen before my own eyes, in their test chamber. +book_lore.bf_bomb_5.page.1=We had just gotten another batch of pure balefire, and he had recovered electrical equipment and an energy source to test his proposal. I don't know what caused it (was the power on? had he begun too soon?), but it seemingly progressed in agonizingly slow motion, +book_lore.bf_bomb_5.page.2=as the green-tinted light consumed the table, the battery, and Dr. Melfyn standing only a meter away. Even when the table had degraded into a pool of broiling metal on the floor, he did not burn. I don't know what I saw in his eyes... $ $ Terror, or awe +book_lore.bf_bomb_5.page.3=over his continued survival, maybe? Whatever our "miracle" material was, it didn't care. With a bright blaze of light, he disappeared in the next moment. Was he evaporated? incinerated? annihilated? sent to fucking hell itself, I don't know anymore! +book_lore.bf_bomb_5.page.4=The head researcher sickens me. Said we could be more careful, keep trucking, whatever other morale-improving filth he spewed. That dipshit won't ever figure out that playing with fire will get you burned. $ I didn't bother +book_lore.bf_bomb_5.page.5=resigning, I just grabbed my shit and ran for the hills. Not like it matters, anyway; considering the lack of calls, and the mushroom cloud that rose over my (now former) workplace, they've either blown everything up or entered full-on military jurisdiction. +book_lore.bf_bomb_5.page.6=There's a vital distinction to be made between dissection and VIVISECTION, one which was clearly lost on them. They can dissect metal or atoms as much as they like, but tearing into, vivisecting reality itself is only going to end in more Dr. Melfyns. Who knows! +book_lore.bf_bomb_5.page.7=The government wants to put this shit into bombs after all, maybe we'll see a couple more wars, couple more million resigned to a fate worse than death. They can't hide this forever. $ $ I don't care. Not anymore. Please, god, let me go back +book_lore.bf_bomb_5.page.8=to actual science. $ $ Goddamnit, Mae, get ahold of yourself... + cannery.f1=[ Press F1 for help ] cannery.centrifuge=Gas Centrifuge From ff3afbf0281a6931f7525e77e587b751c4c956a8 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 25 Jun 2023 19:10:29 +0200 Subject: [PATCH 103/109] ow --- gradle.properties | 2 +- src/main/java/com/hbm/blocks/ModBlocks.java | 2 +- .../java/com/hbm/blocks/rail/IRailNTM.java | 6 +- .../hbm/blocks/rail/RailStandardBuffer.java | 90 +- .../hbm/entity/train/EntityRailCarBase.java | 62 +- .../inventory/recipes/AssemblerRecipes.java | 8 + .../java/com/hbm/items/special/ItemTrain.java | 6 +- src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/CraftingManager.java | 2 + .../com/hbm/main/ModEventHandlerClient.java | 9 +- .../java/com/hbm/main/ResourceManager.java | 1 + .../block/RenderStandardBufferRail.java | 77 ++ src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + .../models/blocks/rail_standard_buffer.obj | 1143 +++++++++++++++++ .../textures/blocks/rail_standard_buffer.png | Bin 0 -> 890 bytes 17 files changed, 1380 insertions(+), 33 deletions(-) create mode 100644 src/main/java/com/hbm/render/block/RenderStandardBufferRail.java create mode 100644 src/main/resources/assets/hbm/models/blocks/rail_standard_buffer.obj create mode 100644 src/main/resources/assets/hbm/textures/blocks/rail_standard_buffer.png diff --git a/gradle.properties b/gradle.properties index 2f43c1817..fa397e559 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4627 +mod_build_number=4641 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index ea756421d..da5c00298 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -2161,7 +2161,7 @@ public class ModBlocks { rail_large_straight = new RailStandardStraight().setBlockName("rail_large_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); rail_large_curve = new RailStandardCurve().setBlockName("rail_large_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); rail_large_ramp = new RailStandardRamp().setBlockName("rail_large_ramp").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); - rail_large_buffer = new RailStandardBuffer().setBlockName("rail_large_buffer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); + rail_large_buffer = new RailStandardBuffer().setBlockName("rail_large_buffer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_buffer"); crate = new BlockCrate(Material.wood).setBlockName("crate").setStepSound(Block.soundTypeWood).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate"); crate_weapon = new BlockCrate(Material.wood).setBlockName("crate_weapon").setStepSound(Block.soundTypeWood).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate_weapon"); diff --git a/src/main/java/com/hbm/blocks/rail/IRailNTM.java b/src/main/java/com/hbm/blocks/rail/IRailNTM.java index 782dc15e6..120c3b586 100644 --- a/src/main/java/com/hbm/blocks/rail/IRailNTM.java +++ b/src/main/java/com/hbm/blocks/rail/IRailNTM.java @@ -45,11 +45,13 @@ public interface IRailNTM { /** A wrapper for additional information like stopping on rails and what type of check we're doing */ public static class MoveContext { public RailCheckType type; + public double collisionBogieDistance; public boolean collision = false; //if a buffer stop or similar applies - public double overshoot; //how much of the travel distance was cut shor + public double overshoot; //how much of the travel distance was cut short - public MoveContext(RailCheckType type) { + public MoveContext(RailCheckType type, double collisionBogieDistance) { this.type = type; + this.collisionBogieDistance = collisionBogieDistance; } } diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java b/src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java index 52bee4310..bb503060a 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java @@ -1,12 +1,17 @@ package com.hbm.blocks.rail; import com.hbm.blocks.BlockDummyable; +import com.hbm.lib.Library; +import com.hbm.util.fauxpointtwelve.BlockPos; +import cpw.mods.fml.client.registry.RenderingRegistry; import net.minecraft.block.material.Material; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; public class RailStandardBuffer extends BlockDummyable implements IRailNTM { @@ -19,9 +24,11 @@ public class RailStandardBuffer extends BlockDummyable implements IRailNTM { return null; } + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + @Override public int getRenderType() { - return 0; + return renderID; } @Override @@ -38,16 +45,89 @@ public class RailStandardBuffer extends BlockDummyable implements IRailNTM { public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); } - - // TBI + @Override public Vec3 getSnappingPos(World world, int x, int y, int z, double trainX, double trainY, double trainZ) { - return null; + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, 0, 0, 0, 0, new RailContext(), new MoveContext(RailCheckType.OTHER, 0)); } @Override public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info, MoveContext context) { - return null; + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, motionX, motionY, motionZ, speed, info, context); + } + + /* Very simple function determining the snapping position and adding the motion value to it, if desired. */ + public Vec3 snapAndMove(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info, MoveContext context) { + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return Vec3.createVectorHelper(trainX, trainY, trainZ); + int cX = pos[0]; + int cY = pos[1]; + int cZ = pos[2]; + int meta = world.getBlockMetadata(cX, cY, cZ) - this.offset; + ForgeDirection dir = ForgeDirection.getOrientation(meta); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + Vec3 vec = Vec3.createVectorHelper(trainX, trainY, trainZ); + + if(speed == 0) { + //return vec; + } + + if(dir == Library.POS_X || dir == Library.NEG_X) { + double targetX = trainX; + if(motionX > 0) { + targetX += speed; + info.yaw(-90F); + } else { + targetX -= speed; + info.yaw(90F); + } + vec.xCoord = MathHelper.clamp_double(targetX, cX - 2, cX + 3); + vec.yCoord = y + 0.1875; + vec.zCoord = cZ + 0.5 + rot.offsetZ * 0.5; + + double nX = (dir == Library.POS_X ? -1 - context.collisionBogieDistance : 2); + double pX = (dir == Library.NEG_X ? 0 - context.collisionBogieDistance : 3); + double buffer = MathHelper.clamp_double(targetX, cX - nX, cX + pX); + + if(buffer != vec.xCoord) { + context.collision = true; + context.overshoot = Math.abs(buffer - vec.xCoord); + vec.xCoord = buffer; + return vec; + } + + info.dist(Math.abs(targetX - vec.xCoord) * Math.signum(speed)); + info.pos(new BlockPos(cX + (motionX * speed > 0 ? 3 : -3), y, cZ)); + } else { + double targetZ = trainZ; + if(motionZ > 0) { + targetZ += speed; + info.yaw(0F); + } else { + targetZ -= speed; + info.yaw(180F); + } + vec.xCoord = cX + 0.5 + rot.offsetX * 0.5; + vec.yCoord = y + 0.1875; + vec.zCoord = MathHelper.clamp_double(targetZ, cZ - 2,cZ + 3); + + double nZ = (dir == Library.POS_Z ? -1 - context.collisionBogieDistance : 2); + double pZ = (dir == Library.NEG_Z ? 0 - context.collisionBogieDistance : 3); + double buffer = MathHelper.clamp_double(targetZ, cZ - nZ, cZ + pZ); + + if(buffer != vec.xCoord) { + context.collision = true; + context.overshoot = Math.abs(buffer - vec.zCoord); + vec.zCoord = buffer; + return vec; + } + + info.dist(Math.abs(targetZ - vec.zCoord) * Math.signum(speed)); + info.pos(new BlockPos(cX, y, cZ + (motionZ * speed > 0 ? 3 : -3))); + } + + return vec; } @Override diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index 37f77f79f..f4a301914 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -14,8 +14,7 @@ import com.hbm.blocks.rail.IRailNTM.TrackGauge; import com.hbm.items.ModItems; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.PlayerInformPacket; -import com.hbm.util.ChatBuilder; +import com.hbm.util.Tuple.Pair; import com.hbm.util.fauxpointtwelve.BlockPos; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; @@ -27,7 +26,6 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ChatComponentText; import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; @@ -166,8 +164,8 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { } BlockPos anchor = this.getCurrentAnchorPos(); - Vec3 frontPos = getRelPosAlongRail(anchor, this.getLengthSpan(), new MoveContext(RailCheckType.FRONT)); - Vec3 backPos = getRelPosAlongRail(anchor, -this.getLengthSpan(), new MoveContext(RailCheckType.BACK)); + Vec3 frontPos = getRelPosAlongRail(anchor, this.getLengthSpan(), new MoveContext(RailCheckType.FRONT, this.getCollisionSpan() - this.getLengthSpan())); + Vec3 backPos = getRelPosAlongRail(anchor, -this.getLengthSpan(), new MoveContext(RailCheckType.BACK, this.getCollisionSpan() - this.getLengthSpan())); this.lastRenderX = this.renderX; this.lastRenderY = this.renderY; @@ -325,7 +323,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { EntityRailCarBase train = ltu.trains[0]; BlockPos anchor = new BlockPos(train.posX, train.posY, train.posZ); - Vec3 newPos = train.getRelPosAlongRail(anchor, speed, new MoveContext(RailCheckType.CORE)); + Vec3 newPos = train.getRelPosAlongRail(anchor, speed, new MoveContext(RailCheckType.CORE, 0)); if(newPos == null) { train.derail(); ltu.dissolveTrain(); @@ -333,8 +331,8 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { } train.setPosition(newPos.xCoord, newPos.yCoord, newPos.zCoord); anchor = train.getCurrentAnchorPos(); - Vec3 frontPos = train.getRelPosAlongRail(anchor, train.getLengthSpan(), new MoveContext(RailCheckType.FRONT)); - Vec3 backPos = train.getRelPosAlongRail(anchor, -train.getLengthSpan(), new MoveContext(RailCheckType.BACK)); + Vec3 frontPos = train.getRelPosAlongRail(anchor, train.getLengthSpan(), new MoveContext(RailCheckType.FRONT, train.getCollisionSpan() - train.getLengthSpan())); + Vec3 backPos = train.getRelPosAlongRail(anchor, -train.getLengthSpan(), new MoveContext(RailCheckType.BACK, train.getCollisionSpan() - train.getLengthSpan())); if(frontPos == null || backPos == null) { train.derail(); @@ -634,11 +632,11 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { BlockPos anchor = new BlockPos(moving.posX, moving.posY, moving.posZ); Vec3 trainPos = Vec3.createVectorHelper(moving.posX, moving.posY, moving.posZ); float yaw = EntityRailCarBase.generateYaw(prevLoc, nextLoc); - Vec3 newPos = EntityRailCarBase.getRelPosAlongRail(anchor, len, moving.getGauge(), moving.worldObj, trainPos, yaw, new MoveContext(RailCheckType.CORE)); + Vec3 newPos = EntityRailCarBase.getRelPosAlongRail(anchor, len, moving.getGauge(), moving.worldObj, trainPos, yaw, new MoveContext(RailCheckType.CORE, 0)); moving.setPosition(newPos.xCoord, newPos.yCoord, newPos.zCoord); anchor = moving.getCurrentAnchorPos(); //reset origin to new position - Vec3 frontPos = moving.getRelPosAlongRail(anchor, moving.getLengthSpan(), new MoveContext(RailCheckType.FRONT)); - Vec3 backPos = moving.getRelPosAlongRail(anchor, -moving.getLengthSpan(), new MoveContext(RailCheckType.BACK)); + Vec3 frontPos = moving.getRelPosAlongRail(anchor, moving.getLengthSpan(), new MoveContext(RailCheckType.FRONT, moving.getCollisionSpan() - moving.getLengthSpan())); + Vec3 backPos = moving.getRelPosAlongRail(anchor, -moving.getLengthSpan(), new MoveContext(RailCheckType.BACK, moving.getCollisionSpan() - moving.getLengthSpan())); if(frontPos == null || backPos == null) { moving.derail(); @@ -679,7 +677,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { for(EntityRailCarBase train : this.trains) { BlockPos anchor = train.getCurrentAnchorPos(); - Vec3 corePos = train.getRelPosAlongRail(anchor, totalSpeed, new MoveContext(RailCheckType.CORE)); + Vec3 corePos = train.getRelPosAlongRail(anchor, totalSpeed, new MoveContext(RailCheckType.CORE, 0)); if(corePos == null) { train.derail(); @@ -688,8 +686,8 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { } else { train.setPosition(corePos.xCoord, corePos.yCoord, corePos.zCoord); anchor = train.getCurrentAnchorPos(); //reset origin to new position - Vec3 frontPos = train.getRelPosAlongRail(anchor, train.getLengthSpan(), new MoveContext(RailCheckType.FRONT)); - Vec3 backPos = train.getRelPosAlongRail(anchor, -train.getLengthSpan(), new MoveContext(RailCheckType.BACK)); + Vec3 frontPos = train.getRelPosAlongRail(anchor, train.getLengthSpan(), new MoveContext(RailCheckType.FRONT, 0)); + Vec3 backPos = train.getRelPosAlongRail(anchor, -train.getLengthSpan(), new MoveContext(RailCheckType.BACK, 0)); if(frontPos == null || backPos == null) { train.derail(); @@ -763,16 +761,17 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { boolean inReverse = first.getCouplingFrom(null) == current.getCouplingFrom(null); int sigNum = inReverse ? 1 : -1; BlockPos anchor = current.getCurrentAnchorPos(); - Vec3 corePos = current.getRelPosAlongRail(anchor, speed * sigNum, new MoveContext(RailCheckType.CORE)); - if(corePos == null) { + /*Vec3 frontPos = current.getRelPosAlongRail(anchor, current.getLengthSpan(), new MoveContext(RailCheckType.FRONT)); + + if(frontPos == null) { current.derail(); this.dissolveTrain(); return; } else { - current.setPosition(corePos.xCoord, corePos.yCoord, corePos.zCoord); anchor = current.getCurrentAnchorPos(); //reset origin to new position - Vec3 frontPos = current.getRelPosAlongRail(anchor, current.getLengthSpan(), new MoveContext(RailCheckType.FRONT)); + Vec3 corePos = current.getRelPosAlongRail(anchor, speed * sigNum, new MoveContext(RailCheckType.CORE)); + current.setPosition(corePos.xCoord, corePos.yCoord, corePos.zCoord); Vec3 backPos = current.getRelPosAlongRail(anchor, -current.getLengthSpan(), new MoveContext(RailCheckType.BACK)); if(frontPos == null || backPos == null) { @@ -782,6 +781,33 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { } else { setRenderPos(current, frontPos, backPos); } + }*/ + + Pair[] checks; + double dist = speed * sigNum; + + if(forward) { + checks = new Pair[] { + new Pair(dist + current.getLengthSpan(), RailCheckType.FRONT), + new Pair(dist, RailCheckType.CORE), + new Pair(dist - current.getLengthSpan(), RailCheckType.BACK) + }; + } else { + checks = new Pair[] { + new Pair(dist - current.getLengthSpan(), RailCheckType.BACK), + new Pair(dist, RailCheckType.CORE), + new Pair(dist + current.getLengthSpan(), RailCheckType.FRONT) + }; + } + + double brake = 0; + + for(Pair check : checks) { + MoveContext ctx = new MoveContext(check.getValue(), current.getCollisionSpan() - current.getLengthSpan()); + current.getRelPosAlongRail(anchor, check.getKey() - (brake * Math.signum(check.getKey())), ctx); + if(ctx.collision) { + brake += ctx.overshoot; + } } } else { diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 077b17bdc..db8e456d6 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -866,6 +866,14 @@ public class AssemblerRecipes { new OreDictStack(OreDictManager.getReflector(), 12), new ComparableStack(ModItems.circuit_copper, 12) }, 100); + makeRecipe(new ComparableStack(ModItems.ammo_himars, 1, ItemAmmoHIMARS.SMALL_LAVA), new AStack[] { + new OreDictStack(STEEL.plate(), 24), + new OreDictStack(ANY_HARDPLASTIC.ingot(), 12), + new ComparableStack(ModItems.rocket_fuel, 32), + new ComparableStack(ModItems.ball_tatb, 4), + new OreDictStack(VOLCANIC.gem(), 1), + new ComparableStack(ModItems.circuit_copper, 6) + }, 100); makeRecipe(new ComparableStack(ModItems.ammo_himars, 1, ItemAmmoHIMARS.LARGE), new AStack[] { new OreDictStack(STEEL.plate(), 24), new OreDictStack(ANY_HARDPLASTIC.ingot(), 12), diff --git a/src/main/java/com/hbm/items/special/ItemTrain.java b/src/main/java/com/hbm/items/special/ItemTrain.java index 25dc46ccf..a99df9079 100644 --- a/src/main/java/com/hbm/items/special/ItemTrain.java +++ b/src/main/java/com/hbm/items/special/ItemTrain.java @@ -80,10 +80,10 @@ public class ItemTrain extends ItemEnumMulti { train.setPosition(x + fx, y + fy, z + fz); BlockPos anchor = train.getCurrentAnchorPos(); train.rotationYaw = entity.rotationYaw; - Vec3 corePos = train.getRelPosAlongRail(anchor, 0, new MoveContext(RailCheckType.CORE)); + Vec3 corePos = train.getRelPosAlongRail(anchor, 0, new MoveContext(RailCheckType.CORE, 0)); train.setPosition(corePos.xCoord, corePos.yCoord, corePos.zCoord); - Vec3 frontPos = train.getRelPosAlongRail(anchor, train.getLengthSpan(), new MoveContext(RailCheckType.FRONT)); - Vec3 backPos = train.getRelPosAlongRail(anchor, -train.getLengthSpan(), new MoveContext(RailCheckType.BACK)); + Vec3 frontPos = train.getRelPosAlongRail(anchor, train.getLengthSpan(), new MoveContext(RailCheckType.FRONT, train.getCollisionSpan() - train.getLengthSpan())); + Vec3 backPos = train.getRelPosAlongRail(anchor, -train.getLengthSpan(), new MoveContext(RailCheckType.BACK, train.getCollisionSpan() - train.getLengthSpan())); train.rotationYaw = train.generateYaw(frontPos, backPos); world.spawnEntityInWorld(train); } diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 4e3d4bdfc..bfb6dcb7a 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4627)"; + public static final String VERSION = "1.0.27 BETA (4641)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index da86b7611..5852d92cd 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -801,6 +801,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerBlockHandler(new RenderStandardStraightRail()); RenderingRegistry.registerBlockHandler(new RenderStandardCurveRail()); RenderingRegistry.registerBlockHandler(new RenderStandardRampRail()); + RenderingRegistry.registerBlockHandler(new RenderStandardBufferRail()); RenderingRegistry.registerBlockHandler(new RenderBlockRotated(ModBlocks.charge_dynamite.getRenderType(), ResourceManager.charge_dynamite)); RenderingRegistry.registerBlockHandler(new RenderBlockRotated(ModBlocks.charge_c4.getRenderType(), ResourceManager.charge_c4)); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 29b6606ed..c18a730e0 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -996,6 +996,8 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.upgrade_5g), new Object[] { ModItems.upgrade_template, ModItems.gem_alexandrite }); + addShapelessAuto(new ItemStack(ModItems.bdcl), new Object[] { ANY_TAR.any(), Fluids.WATER.getDict(1_000), KEY_WHITE }); + if(GeneralConfig.enableLBSM && GeneralConfig.enableLBSMSimpleCrafting) { addShapelessAuto(new ItemStack(ModItems.cordite, 3), new Object[] { ModItems.ballistite, Items.gunpowder, new ItemStack(Blocks.wool, 1, OreDictionary.WILDCARD_VALUE) }); addShapelessAuto(new ItemStack(ModItems.ingot_semtex, 3), new Object[] { Items.slime_ball, Blocks.tnt, KNO.dust() }); diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 019a369cc..9e3463f96 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -13,6 +13,10 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockAshes; +import com.hbm.blocks.rail.IRailNTM; +import com.hbm.blocks.rail.IRailNTM.MoveContext; +import com.hbm.blocks.rail.IRailNTM.RailCheckType; +import com.hbm.blocks.rail.IRailNTM.RailContext; import com.hbm.config.GeneralConfig; import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.mob.EntityHunterChopper; @@ -66,6 +70,7 @@ import com.hbm.tileentity.machine.TileEntityNukeFurnace; import com.hbm.util.I18nUtil; import com.hbm.util.ItemStackUtil; import com.hbm.util.LoggingUtil; +import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.wiaj.GuiWorldInAJar; import com.hbm.wiaj.cannery.CanneryBase; import com.hbm.wiaj.cannery.Jars; @@ -259,12 +264,12 @@ public class ModEventHandlerClient { boolean flip = distanceToCover < 0; if(it == 1) { - Vec3 snap = next = rail.getTravelLocation(world, x, y, z, next.xCoord, next.yCoord, next.zCoord, rot.xCoord, rot.yCoord, rot.zCoord, 0, info, new MoveContext(RailCheckType.CORE)); + Vec3 snap = next = rail.getTravelLocation(world, x, y, z, next.xCoord, next.yCoord, next.zCoord, rot.xCoord, rot.yCoord, rot.zCoord, 0, info, new MoveContext(RailCheckType.CORE, 0)); if(i == 0) world.spawnParticle("reddust", snap.xCoord, snap.yCoord + 0.25, snap.zCoord, 0.1, 1, 0.1); } Vec3 prev = next; - next = rail.getTravelLocation(world, x, y, z, prev.xCoord, prev.yCoord, prev.zCoord, rot.xCoord, rot.yCoord, rot.zCoord, distanceToCover, info, new MoveContext(i == 0 ? RailCheckType.FRONT : RailCheckType.BACK)); + next = rail.getTravelLocation(world, x, y, z, prev.xCoord, prev.yCoord, prev.zCoord, rot.xCoord, rot.yCoord, rot.zCoord, distanceToCover, info, new MoveContext(i == 0 ? RailCheckType.FRONT : RailCheckType.BACK, 0)); distanceToCover = info.overshoot; anchor = info.pos; if(i == 0) world.spawnParticle("reddust", next.xCoord, next.yCoord + 0.25, next.zCoord, 0, distanceToCover != 0 ? 0.5 : 0, 0); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 869fc2066..cf4b0f9df 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1344,6 +1344,7 @@ public class ResourceManager { public static final IModelCustom rail_standard_straight = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard.obj")); public static final IModelCustom rail_standard_curve = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_bend.obj")); public static final IModelCustom rail_standard_ramp = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_ramp.obj")); + public static final IModelCustom rail_standard_buffer = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_buffer.obj")); public static final IModelCustom capacitor = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/capacitor.obj")); public static final IModelCustom charge_dynamite = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/charge_dynamite.obj")); diff --git a/src/main/java/com/hbm/render/block/RenderStandardBufferRail.java b/src/main/java/com/hbm/render/block/RenderStandardBufferRail.java new file mode 100644 index 000000000..5cf6381e1 --- /dev/null +++ b/src/main/java/com/hbm/render/block/RenderStandardBufferRail.java @@ -0,0 +1,77 @@ +package com.hbm.render.block; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.rail.RailStandardBuffer; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.client.model.obj.WavefrontObject; + +public class RenderStandardBufferRail implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + + GL11.glPushMatrix(); + Tessellator tessellator = Tessellator.instance; + + GL11.glTranslated(0, -0.0625, 0); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(0.3, 0.3, 0.3); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_buffer, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + + GL11.glPopMatrix(); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + + int meta = world.getBlockMetadata(x, y, z); + if(meta < 12) return true; + + Tessellator tessellator = Tessellator.instance; + + tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); + tessellator.setColorOpaque_F(1, 1, 1); + + float rotation = 0; + + if(meta == 12) rotation = (float) Math.PI; + if(meta == 14) rotation = 270F / 180F * (float) Math.PI; + if(meta == 15) rotation = 90F / 180F * (float) Math.PI; + + if(meta == 12) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, -0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, 0.5F); + + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_buffer, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + + if(meta == 12) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, 0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, -0.5F); + + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return RailStandardBuffer.renderID; + } +} diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 6334c68bb..34aa19f02 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1000,6 +1000,7 @@ item.ammo_grenade_toxic.name=40mm Granate (Chemisch) item.ammo_grenade_tracer.name=40mm Übungsgranate item.ammo_himars_standard.name=227mm gelenkte Artillerierakete item.ammo_himars_standard_he.name=227mm Artillerielenkrakete (HE) +item.ammo_himars_standard_lava.name=227mm Artillerielenkrakete (Lava) item.ammo_himars_standard_mini_nuke.name=227mm Artillerielenkrakete (Miniatombombe) item.ammo_himars_standard_tb.name=227mm Artillerielenkrakete (Thermobarisch) item.ammo_himars_standard_wp.name=227mm Artillerielenkrakete (WP) diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 6bd3ff4e6..feac1b38e 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1580,6 +1580,7 @@ item.ammo_grenade_toxic.name=40mm Grenade (Chemical) item.ammo_grenade_tracer.name=40mm Training Grenade item.ammo_himars_standard.name=227mm Guided Artillery Rocket Pod item.ammo_himars_standard_he.name=227mm Guided Artillery Rocket Pod (HE) +item.ammo_himars_standard_lava.name=227mm Guided Artillery Rocket Pod (Lava) item.ammo_himars_standard_mini_nuke.name=227mm Guided Artillery Rocket Pod (Mini Nuke) item.ammo_himars_standard_tb.name=227mm Guided Artillery Rocket Pod (Thermobaric) item.ammo_himars_standard_wp.name=227mm Guided Artillery Rocket Pod (WP) diff --git a/src/main/resources/assets/hbm/models/blocks/rail_standard_buffer.obj b/src/main/resources/assets/hbm/models/blocks/rail_standard_buffer.obj new file mode 100644 index 000000000..d56bd4b9b --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/rail_standard_buffer.obj @@ -0,0 +1,1143 @@ +# Blender v2.79 (sub 0) OBJ File: 'rail_standard_stop.blend' +# www.blender.org +o Plane.001 +v 1.000000 0.062500 -0.187500 +v 1.000000 0.062500 0.187500 +v -1.000000 0.062500 0.187500 +v -1.000000 0.062500 -0.187500 +v -1.000000 0.000000 0.187500 +v 1.000000 0.000000 0.187500 +v -1.000000 0.000000 -0.187500 +v 1.000000 0.000000 -0.187500 +v -1.000000 0.000000 -0.812500 +v 1.000000 0.000000 -0.812500 +v -1.000000 0.000000 -1.187500 +v 1.000000 0.000000 -1.187500 +v -1.000000 0.000000 -1.812500 +v 1.000000 0.000000 -1.812500 +v -1.000000 0.000000 -2.187500 +v 1.000000 0.000000 -2.187500 +v -1.000000 0.000000 2.187500 +v 1.000000 0.000000 2.187500 +v -1.000000 0.000000 1.812500 +v 1.000000 0.000000 1.812500 +v -1.000000 0.000000 1.187500 +v 1.000000 0.000000 1.187500 +v -1.000000 0.000000 0.812500 +v 1.000000 0.000000 0.812500 +v -1.000000 0.062500 -1.187500 +v -1.000000 0.062500 -0.812500 +v 1.000000 0.062500 -0.812500 +v 1.000000 0.062500 -1.187500 +v -1.000000 0.062500 -2.187500 +v -1.000000 0.062500 -1.812500 +v 1.000000 0.062500 -1.812500 +v 1.000000 0.062500 -2.187500 +v -1.000000 0.062500 1.812500 +v -1.000000 0.062500 2.187500 +v 1.000000 0.062500 2.187500 +v 1.000000 0.062500 1.812500 +v -1.000000 0.062500 0.812500 +v -1.000000 0.062500 1.187500 +v 1.000000 0.062500 1.187500 +v 1.000000 0.062500 0.812500 +v -0.812500 0.062500 2.500000 +v 0.812500 0.062500 2.500000 +v -0.812500 0.062500 -2.500000 +v 0.812500 0.062500 -2.500000 +v -0.812500 0.187500 2.500000 +v 0.812500 0.187500 2.500000 +v -0.812500 0.187500 -2.500000 +v 0.812500 0.187500 -2.500000 +v 0.750000 0.062500 2.500000 +v 0.750000 0.062500 -2.500000 +v 0.750000 0.187500 2.500000 +v 0.750000 0.187500 -2.500000 +v -0.750000 0.062500 -2.500000 +v -0.750000 0.062500 2.500000 +v -0.750000 0.187500 -2.500000 +v -0.750000 0.187500 2.500000 +v 0.625000 0.062500 2.062500 +v 0.937500 0.062500 2.062500 +v 0.625000 0.062500 1.937500 +v 0.937500 0.062500 1.937500 +v 0.625000 0.125000 2.062500 +v 0.937500 0.125000 2.062500 +v 0.625000 0.125000 1.937500 +v 0.937500 0.125000 1.937500 +v -0.937500 0.062500 2.062500 +v -0.625000 0.062500 2.062500 +v -0.937500 0.062500 1.937500 +v -0.625000 0.062500 1.937500 +v -0.937500 0.125000 2.062500 +v -0.625000 0.125000 2.062500 +v -0.937500 0.125000 1.937500 +v -0.625000 0.125000 1.937500 +v 0.625000 0.062500 1.062500 +v 0.937500 0.062500 1.062500 +v 0.625000 0.062500 0.937500 +v 0.937500 0.062500 0.937500 +v 0.625000 0.125000 1.062500 +v 0.937500 0.125000 1.062500 +v 0.625000 0.125000 0.937500 +v 0.937500 0.125000 0.937500 +v -0.937500 0.062500 1.062500 +v -0.625000 0.062500 1.062500 +v -0.937500 0.062500 0.937500 +v -0.625000 0.062500 0.937500 +v -0.937500 0.125000 1.062500 +v -0.625000 0.125000 1.062500 +v -0.937500 0.125000 0.937500 +v -0.625000 0.125000 0.937500 +v 0.625000 0.062500 0.062500 +v 0.937500 0.062500 0.062500 +v 0.625000 0.062500 -0.062500 +v 0.937500 0.062500 -0.062500 +v 0.625000 0.125000 0.062500 +v 0.937500 0.125000 0.062500 +v 0.625000 0.125000 -0.062500 +v 0.937500 0.125000 -0.062500 +v -0.937500 0.062500 0.062500 +v -0.625000 0.062500 0.062500 +v -0.937500 0.062500 -0.062500 +v -0.625000 0.062500 -0.062500 +v -0.937500 0.125000 0.062500 +v -0.625000 0.125000 0.062500 +v -0.937500 0.125000 -0.062500 +v -0.625000 0.125000 -0.062500 +v 0.625000 0.062500 -0.937500 +v 0.937500 0.062500 -0.937500 +v 0.625000 0.062500 -1.062500 +v 0.937500 0.062500 -1.062500 +v 0.625000 0.125000 -0.937500 +v 0.937500 0.125000 -0.937500 +v 0.625000 0.125000 -1.062500 +v 0.937500 0.125000 -1.062500 +v -0.937500 0.062500 -0.937500 +v -0.625000 0.062500 -0.937500 +v -0.937500 0.062500 -1.062500 +v -0.625000 0.062500 -1.062500 +v -0.937500 0.125000 -0.937500 +v -0.625000 0.125000 -0.937500 +v -0.937500 0.125000 -1.062500 +v -0.625000 0.125000 -1.062500 +v 0.625000 0.062500 -1.937500 +v 0.937500 0.062500 -1.937500 +v 0.625000 0.062500 -2.062500 +v 0.937500 0.062500 -2.062500 +v 0.625000 0.125000 -1.937500 +v 0.937500 0.125000 -1.937500 +v 0.625000 0.125000 -2.062500 +v 0.937500 0.125000 -2.062500 +v -0.937500 0.062500 -1.937500 +v -0.625000 0.062500 -1.937500 +v -0.937500 0.062500 -2.062500 +v -0.625000 0.062500 -2.062500 +v -0.937500 0.125000 -1.937500 +v -0.625000 0.125000 -1.937500 +v -0.937500 0.125000 -2.062500 +v -0.625000 0.125000 -2.062500 +v -0.812500 0.062500 -1.500000 +v -0.812500 0.062500 -0.500000 +v -0.812500 0.062500 0.500000 +v -0.812500 0.062500 1.500000 +v 0.812500 0.062500 1.500000 +v 0.812500 0.062500 0.500000 +v 0.812500 0.062500 -0.500000 +v 0.812500 0.062500 -1.500000 +v -0.812500 0.187500 -1.500000 +v -0.812500 0.187500 -0.500000 +v -0.812500 0.187500 0.500000 +v -0.812500 0.187500 1.500000 +v 0.812500 0.187500 1.500000 +v 0.812500 0.187500 0.500000 +v 0.812500 0.187500 -0.500000 +v 0.812500 0.187500 -1.500000 +v 0.750000 0.062500 1.500000 +v 0.750000 0.062500 0.500000 +v 0.750000 0.062500 -0.500000 +v 0.750000 0.062500 -1.500000 +v 0.750000 0.187500 1.500000 +v 0.750000 0.187500 0.500000 +v 0.750000 0.187500 -0.500000 +v 0.750000 0.187500 -1.500000 +v -0.750000 0.062500 -1.500000 +v -0.750000 0.062500 -0.500000 +v -0.750000 0.062500 0.500000 +v -0.750000 0.062500 1.500000 +v -0.750000 0.187500 -1.500000 +v -0.750000 0.187500 -0.500000 +v -0.750000 0.187500 0.500000 +v -0.750000 0.187500 1.500000 +v -1.000000 1.500000 -1.000000 +v 1.000000 1.500000 -1.000000 +v -1.000000 1.500000 -1.375000 +v 1.000000 1.500000 -1.375000 +v -1.000000 0.875000 -1.375000 +v -1.000000 0.875000 -1.000000 +v 1.000000 0.875000 -1.000000 +v 1.000000 0.875000 -1.375000 +v 0.687500 1.062500 -1.000000 +v 0.937500 1.062500 -1.000000 +v 0.687500 1.312500 -1.000000 +v 0.937500 1.312500 -1.000000 +v 0.687500 1.312500 -0.625000 +v 0.687500 1.062500 -0.625000 +v 0.937500 1.062500 -0.625000 +v 0.937500 1.312500 -0.625000 +v 0.562500 1.312500 -0.625000 +v 0.687500 1.437500 -0.625000 +v 0.687500 0.937500 -0.625000 +v 0.562500 1.062500 -0.625000 +v 1.062500 1.062500 -0.625000 +v 0.937500 0.937500 -0.625000 +v 0.937500 1.437500 -0.625000 +v 1.062500 1.312500 -0.625000 +v 0.687500 1.437500 -0.500000 +v 0.562500 1.312500 -0.500000 +v 0.562500 1.062500 -0.500000 +v 0.687500 0.937500 -0.500000 +v 0.937500 0.937500 -0.500000 +v 1.062500 1.062500 -0.500000 +v 1.062500 1.312500 -0.500000 +v 0.937500 1.437500 -0.500000 +v 0.625000 0.875000 -1.062500 +v 0.875000 0.875000 -1.062500 +v 0.625000 0.875000 -1.312500 +v 0.875000 0.875000 -1.312500 +v 0.625000 0.000000 -1.312500 +v 0.625000 0.000000 -1.062500 +v 0.875000 0.000000 -1.062500 +v 0.875000 0.000000 -1.312500 +v -0.875000 0.875000 -1.062500 +v -0.625000 0.875000 -1.062500 +v -0.875000 0.875000 -1.312500 +v -0.625000 0.875000 -1.312500 +v -0.875000 0.000000 -1.312500 +v -0.875000 0.000000 -1.062500 +v -0.625000 0.000000 -1.062500 +v -0.625000 0.000000 -1.312500 +v 0.625000 0.000000 -2.687500 +v 0.625000 0.000000 -2.437500 +v 0.875000 0.000000 -2.437500 +v 0.875000 0.000000 -2.687500 +v -0.875000 0.000000 -2.687500 +v -0.875000 0.000000 -2.437500 +v -0.625000 0.000000 -2.437500 +v -0.625000 0.000000 -2.687500 +v 0.625000 1.062500 -1.375000 +v 0.875000 1.062500 -1.375000 +v -0.875000 1.062500 -1.375000 +v -0.625000 1.062500 -1.375000 +v 0.625000 1.312500 -1.375000 +v 0.875000 1.312500 -1.375000 +v -0.875000 1.312500 -1.375000 +v -0.625000 1.312500 -1.375000 +v -0.937500 1.062500 -1.000000 +v -0.687500 1.062500 -1.000000 +v -0.937500 1.312500 -1.000000 +v -0.687500 1.312500 -1.000000 +v -0.937500 1.312500 -0.625000 +v -0.937500 1.062500 -0.625000 +v -0.687500 1.062500 -0.625000 +v -0.687500 1.312500 -0.625000 +v -1.062500 1.312500 -0.625000 +v -0.937500 1.437500 -0.625000 +v -0.937500 0.937500 -0.625000 +v -1.062500 1.062500 -0.625000 +v -0.562500 1.062500 -0.625000 +v -0.687500 0.937500 -0.625000 +v -0.687500 1.437500 -0.625000 +v -0.562500 1.312500 -0.625000 +v -0.937500 1.437500 -0.500000 +v -1.062500 1.312500 -0.500000 +v -1.062500 1.062500 -0.500000 +v -0.937500 0.937500 -0.500000 +v -0.687500 0.937500 -0.500000 +v -0.562500 1.062500 -0.500000 +v -0.562500 1.312500 -0.500000 +v -0.687500 1.437500 -0.500000 +vt -0.000000 0.000000 +vt 0.093750 0.500000 +vt -0.000000 0.500000 +vt 0.109375 0.500000 +vt 0.203125 -0.000000 +vt 0.203125 0.500000 +vt 0.109375 0.500000 +vt 0.203125 -0.000000 +vt 0.203125 0.500000 +vt 0.109375 0.500000 +vt 0.203125 -0.000000 +vt 0.203125 0.500000 +vt 0.109375 0.500000 +vt 0.203125 -0.000000 +vt 0.203125 0.500000 +vt 0.109375 0.500000 +vt 0.203125 -0.000000 +vt 0.203125 0.500000 +vt -0.000000 0.000000 +vt 0.093750 0.500000 +vt -0.000000 0.500000 +vt -0.000000 0.000000 +vt 0.093750 0.500000 +vt -0.000000 0.500000 +vt -0.000000 0.000000 +vt 0.093750 0.500000 +vt -0.000000 0.500000 +vt -0.000000 0.000000 +vt 0.093750 0.500000 +vt -0.000000 0.500000 +vt 0.203125 0.015625 +vt 0.296875 0.000000 +vt 0.296875 0.015625 +vt 0.109375 0.500000 +vt 0.093750 0.000000 +vt 0.109375 0.000000 +vt 0.109375 0.500000 +vt 0.093750 0.000000 +vt 0.109375 0.000000 +vt 0.296875 0.000000 +vt 0.203125 0.015625 +vt 0.296875 0.000000 +vt 0.203125 0.015625 +vt 0.093750 0.000000 +vt 0.109375 0.000000 +vt 0.203125 0.015625 +vt 0.296875 0.000000 +vt 0.296875 0.015625 +vt 0.093750 0.000000 +vt 0.109375 0.000000 +vt 0.203125 0.015625 +vt 0.296875 0.000000 +vt 0.296875 0.015625 +vt 0.109375 0.500000 +vt 0.093750 0.000000 +vt 0.109375 0.000000 +vt 0.203125 0.015625 +vt 0.296875 0.000000 +vt 0.296875 0.015625 +vt 0.109375 0.500000 +vt 0.093750 0.000000 +vt 0.109375 0.000000 +vt 0.296875 0.000000 +vt 0.203125 0.015625 +vt 0.109375 0.500000 +vt 0.093750 0.000000 +vt 0.109375 0.000000 +vt 0.296875 0.000000 +vt 0.203125 0.015625 +vt 0.093750 0.000000 +vt 0.109375 0.000000 +vt 0.296875 0.000000 +vt 0.203125 0.015625 +vt 0.093750 0.000000 +vt 0.109375 0.000000 +vt 0.203125 0.015625 +vt 0.296875 0.000000 +vt 0.296875 0.015625 +vt 0.093750 0.000000 +vt 0.109375 0.000000 +vt 0.250000 0.078125 +vt 0.218750 0.328125 +vt 0.218750 0.078125 +vt 0.265625 0.328125 +vt 0.296875 0.078125 +vt 0.296875 0.328125 +vt 0.296875 0.328125 +vt 0.265625 0.078125 +vt 0.296875 0.078125 +vt 0.265625 0.359375 +vt 0.250000 0.328125 +vt 0.265625 0.328125 +vt 0.250000 0.078125 +vt 0.265625 0.328125 +vt 0.250000 0.328125 +vt 0.203125 0.078125 +vt 0.250000 0.328125 +vt 0.265625 0.359375 +vt 0.250000 0.359375 +vt 0.218750 0.078125 +vt 0.250000 0.328125 +vt 0.218750 0.328125 +vt 0.265625 0.328125 +vt 0.250000 0.078125 +vt 0.265625 0.078125 +vt 0.203125 0.078125 +vt 0.203125 0.328125 +vt 0.265625 0.359375 +vt 0.250000 0.328125 +vt 0.265625 0.328125 +vt 0.250000 0.328125 +vt 0.265625 0.359375 +vt 0.250000 0.359375 +vt 0.218750 0.031250 +vt 0.203125 0.062500 +vt 0.203125 0.031250 +vt 0.218750 0.062500 +vt 0.296875 0.078125 +vt 0.218750 0.078125 +vt 0.296875 0.031250 +vt 0.218750 0.015625 +vt 0.296875 0.015625 +vt 0.296875 0.062500 +vt 0.312500 0.031250 +vt 0.312500 0.062500 +vt 0.218750 0.031250 +vt 0.203125 0.062500 +vt 0.203125 0.031250 +vt 0.218750 0.062500 +vt 0.296875 0.078125 +vt 0.218750 0.078125 +vt 0.296875 0.031250 +vt 0.218750 0.015625 +vt 0.296875 0.015625 +vt 0.296875 0.062500 +vt 0.312500 0.031250 +vt 0.312500 0.062500 +vt 0.218750 0.031250 +vt 0.203125 0.062500 +vt 0.203125 0.031250 +vt 0.218750 0.062500 +vt 0.296875 0.078125 +vt 0.218750 0.078125 +vt 0.296875 0.031250 +vt 0.218750 0.015625 +vt 0.296875 0.015625 +vt 0.296875 0.062500 +vt 0.312500 0.031250 +vt 0.312500 0.062500 +vt 0.218750 0.031250 +vt 0.203125 0.062500 +vt 0.203125 0.031250 +vt 0.218750 0.062500 +vt 0.296875 0.078125 +vt 0.218750 0.078125 +vt 0.296875 0.031250 +vt 0.218750 0.015625 +vt 0.296875 0.015625 +vt 0.296875 0.062500 +vt 0.312500 0.031250 +vt 0.312500 0.062500 +vt 0.218750 0.031250 +vt 0.203125 0.062500 +vt 0.203125 0.031250 +vt 0.218750 0.062500 +vt 0.296875 0.078125 +vt 0.218750 0.078125 +vt 0.296875 0.031250 +vt 0.218750 0.015625 +vt 0.296875 0.015625 +vt 0.296875 0.062500 +vt 0.312500 0.031250 +vt 0.312500 0.062500 +vt 0.218750 0.031250 +vt 0.203125 0.062500 +vt 0.203125 0.031250 +vt 0.218750 0.062500 +vt 0.296875 0.078125 +vt 0.218750 0.078125 +vt 0.296875 0.031250 +vt 0.218750 0.015625 +vt 0.296875 0.015625 +vt 0.296875 0.062500 +vt 0.312500 0.031250 +vt 0.312500 0.062500 +vt 0.218750 0.031250 +vt 0.203125 0.062500 +vt 0.203125 0.031250 +vt 0.218750 0.062500 +vt 0.296875 0.078125 +vt 0.218750 0.078125 +vt 0.296875 0.031250 +vt 0.218750 0.015625 +vt 0.296875 0.015625 +vt 0.296875 0.062500 +vt 0.312500 0.031250 +vt 0.312500 0.062500 +vt 0.218750 0.031250 +vt 0.203125 0.062500 +vt 0.203125 0.031250 +vt 0.218750 0.062500 +vt 0.296875 0.078125 +vt 0.218750 0.078125 +vt 0.296875 0.031250 +vt 0.218750 0.015625 +vt 0.296875 0.015625 +vt 0.296875 0.062500 +vt 0.312500 0.031250 +vt 0.312500 0.062500 +vt 0.218750 0.031250 +vt 0.203125 0.062500 +vt 0.203125 0.031250 +vt 0.218750 0.062500 +vt 0.296875 0.078125 +vt 0.218750 0.078125 +vt 0.296875 0.031250 +vt 0.218750 0.015625 +vt 0.296875 0.015625 +vt 0.296875 0.062500 +vt 0.312500 0.031250 +vt 0.312500 0.062500 +vt 0.218750 0.031250 +vt 0.203125 0.062500 +vt 0.203125 0.031250 +vt 0.218750 0.062500 +vt 0.296875 0.078125 +vt 0.218750 0.078125 +vt 0.296875 0.031250 +vt 0.218750 0.015625 +vt 0.296875 0.015625 +vt 0.296875 0.062500 +vt 0.312500 0.031250 +vt 0.312500 0.062500 +vt 0.203125 0.078125 +vt 0.218750 0.328125 +vt 0.203125 0.328125 +vt 0.203125 0.078125 +vt 0.218750 0.328125 +vt 0.203125 0.328125 +vt 0.203125 0.078125 +vt 0.218750 0.328125 +vt 0.203125 0.328125 +vt 0.203125 0.078125 +vt 0.218750 0.328125 +vt 0.203125 0.328125 +vt 0.250000 0.078125 +vt 0.265625 0.078125 +vt 0.265625 0.328125 +vt 0.250000 0.078125 +vt 0.265625 0.078125 +vt 0.265625 0.328125 +vt 0.250000 0.078125 +vt 0.265625 0.078125 +vt 0.265625 0.328125 +vt 0.250000 0.078125 +vt 0.265625 0.078125 +vt 0.218750 0.078125 +vt 0.250000 0.328125 +vt 0.218750 0.078125 +vt 0.250000 0.328125 +vt 0.218750 0.078125 +vt 0.250000 0.328125 +vt 0.218750 0.078125 +vt 0.250000 0.328125 +vt 0.218750 0.328125 +vt 0.203125 0.078125 +vt 0.218750 0.078125 +vt 0.218750 0.328125 +vt 0.203125 0.078125 +vt 0.218750 0.078125 +vt 0.218750 0.328125 +vt 0.203125 0.078125 +vt 0.218750 0.078125 +vt 0.218750 0.328125 +vt 0.203125 0.078125 +vt 0.218750 0.078125 +vt 0.265625 0.328125 +vt 0.250000 0.328125 +vt 0.250000 0.078125 +vt 0.265625 0.328125 +vt 0.250000 0.328125 +vt 0.250000 0.078125 +vt 0.265625 0.328125 +vt 0.250000 0.328125 +vt 0.250000 0.078125 +vt 0.265625 0.328125 +vt 0.250000 0.328125 +vt 0.296875 0.328125 +vt 0.265625 0.078125 +vt 0.296875 0.078125 +vt 0.296875 0.328125 +vt 0.265625 0.078125 +vt 0.296875 0.078125 +vt 0.296875 0.328125 +vt 0.265625 0.078125 +vt 0.296875 0.078125 +vt 0.296875 0.328125 +vt 0.265625 0.078125 +vt 0.296875 0.078125 +vt 0.296875 0.078125 +vt 0.296875 0.328125 +vt 0.296875 0.078125 +vt 0.296875 0.328125 +vt 0.296875 0.078125 +vt 0.296875 0.328125 +vt 0.296875 0.078125 +vt 0.296875 0.328125 +vt 0.467018 0.000041 +vt 0.560886 0.500669 +vt 0.467018 0.500669 +vt 0.562500 -0.000000 +vt 0.468750 0.500000 +vt 0.468750 -0.000000 +vt 0.312500 0.500000 +vt 0.468750 0.593750 +vt 0.312500 0.593750 +vt 0.312500 0.500000 +vt 0.468750 0.593750 +vt 0.312500 0.593750 +vt 0.312500 -0.000000 +vt 0.468750 0.500000 +vt 0.312500 -0.000000 +vt 0.656250 0.187500 +vt 0.562500 0.125000 +vt 0.656250 0.125000 +vt 0.656250 0.062500 +vt 0.562500 0.000000 +vt 0.656250 0.000000 +vt 0.562500 0.062500 +vt 0.656250 0.250000 +vt 0.562500 0.187500 +vt 0.625000 0.437500 +vt 0.687500 0.406250 +vt 0.687500 0.437500 +vt 0.718750 0.312500 +vt 0.593750 0.375000 +vt 0.687500 0.406250 +vt 0.593750 0.375000 +vt 0.625000 0.281250 +vt 0.687500 0.250000 +vt 0.625000 0.281250 +vt 0.625000 0.250000 +vt 0.750000 0.375000 +vt 0.750000 0.312500 +vt 0.718750 0.437500 +vt 0.718750 0.281250 +vt 0.687500 0.281250 +vt 0.593750 0.250000 +vt 0.593750 0.406250 +vt 0.625000 0.406250 +vt 0.562500 0.312500 +vt 0.562500 0.375000 +vt 0.781250 0.000000 +vt 0.718750 0.062500 +vt 0.718750 0.000000 +vt 0.656250 0.218750 +vt 0.718750 -0.000000 +vt 0.718750 0.218750 +vt 0.656250 0.218750 +vt 0.718750 0.218750 +vt 0.656250 0.218750 +vt 0.718750 -0.000000 +vt 0.718750 0.218750 +vt 0.656250 0.218750 +vt 0.718750 -0.000000 +vt 0.718750 0.218750 +vt 0.781250 0.000000 +vt 0.718750 0.062500 +vt 0.718750 0.000000 +vt 0.656250 0.218750 +vt 0.718750 -0.000000 +vt 0.718750 0.218750 +vt 0.656250 0.218750 +vt 0.718750 0.218750 +vt 0.656250 0.218750 +vt 0.718750 -0.000000 +vt 0.718750 0.218750 +vt 0.656250 0.218750 +vt 0.718750 -0.000000 +vt 0.718750 0.218750 +vt 0.250000 0.500000 +vt 0.312500 0.562500 +vt 0.250000 0.562500 +vt 0.250000 0.500000 +vt 0.312500 0.562500 +vt 0.250000 0.562500 +vt 0.187500 0.921875 +vt 0.250000 0.546875 +vt 0.250000 0.921875 +vt 0.187500 0.921875 +vt 0.250000 0.546875 +vt 0.250000 0.921875 +vt 0.000000 0.546875 +vt 0.062500 0.968750 +vt 0.000000 0.921875 +vt 0.125000 0.500000 +vt 0.125000 0.968750 +vt 0.000000 0.546875 +vt 0.062500 0.968750 +vt 0.000000 0.921875 +vt 0.125000 0.500000 +vt 0.125000 0.968750 +vt 0.656250 0.187500 +vt 0.562500 0.125000 +vt 0.656250 0.125000 +vt 0.656250 0.062500 +vt 0.562500 0.000000 +vt 0.656250 0.000000 +vt 0.562500 0.062500 +vt 0.656250 0.250000 +vt 0.562500 0.187500 +vt 0.625000 0.437500 +vt 0.687500 0.406250 +vt 0.687500 0.437500 +vt 0.718750 0.312500 +vt 0.593750 0.375000 +vt 0.687500 0.406250 +vt 0.593750 0.375000 +vt 0.625000 0.281250 +vt 0.687500 0.250000 +vt 0.625000 0.281250 +vt 0.625000 0.250000 +vt 0.750000 0.375000 +vt 0.750000 0.312500 +vt 0.718750 0.437500 +vt 0.718750 0.281250 +vt 0.687500 0.281250 +vt 0.593750 0.250000 +vt 0.593750 0.406250 +vt 0.625000 0.406250 +vt 0.562500 0.312500 +vt 0.562500 0.375000 +vt 0.203125 0.000000 +vt 0.093750 0.500000 +vt 0.093750 0.500000 +vt 0.296875 0.015625 +vt 0.296875 0.015625 +vt 0.203125 0.000000 +vt 0.203125 0.000000 +vt 0.093750 0.500000 +vt 0.203125 0.000000 +vt 0.093750 0.500000 +vt 0.296875 0.015625 +vt 0.093750 0.500000 +vt 0.296875 0.015625 +vt 0.296875 0.015625 +vt 0.203125 0.000000 +vt 0.250000 0.359375 +vt 0.203125 0.328125 +vt 0.265625 0.328125 +vt 0.250000 0.359375 +vt 0.265625 0.328125 +vt 0.203125 0.328125 +vt 0.203125 0.328125 +vt 0.203125 0.328125 +vt 0.203125 0.328125 +vt 0.560886 0.000041 +vt 0.562500 0.500000 +vt 0.468750 -0.000000 +vt 0.562500 0.250000 +vt 0.593750 0.312500 +vt 0.718750 0.375000 +vt 0.687500 0.281250 +vt 0.718750 0.312500 +vt 0.718750 0.375000 +vt 0.625000 0.406250 +vt 0.593750 0.312500 +vt 0.718750 0.406250 +vt 0.718750 0.250000 +vt 0.593750 0.281250 +vt 0.593750 0.437500 +vt 0.781250 0.062500 +vt 0.656250 -0.000000 +vt 0.656250 -0.000000 +vt 0.656250 -0.000000 +vt 0.656250 -0.000000 +vt 0.781250 0.062500 +vt 0.656250 -0.000000 +vt 0.656250 -0.000000 +vt 0.656250 -0.000000 +vt 0.656250 -0.000000 +vt 0.312500 0.500000 +vt 0.312500 0.500000 +vt 0.187500 0.546875 +vt 0.187500 0.546875 +vt 0.062500 0.500000 +vt 0.062500 0.500000 +vt 0.562500 0.250000 +vt 0.593750 0.312500 +vt 0.718750 0.375000 +vt 0.687500 0.281250 +vt 0.718750 0.312500 +vt 0.718750 0.375000 +vt 0.625000 0.406250 +vt 0.593750 0.312500 +vt 0.718750 0.406250 +vt 0.718750 0.250000 +vt 0.593750 0.281250 +vt 0.593750 0.437500 +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.0000 0.0000 -1.0000 +vn 0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +s off +f 2/1/1 4/2/1 3/3/1 +f 7/4/2 6/5/2 5/6/2 +f 11/7/2 10/8/2 9/9/2 +f 15/10/2 14/11/2 13/12/2 +f 19/13/2 18/14/2 17/15/2 +f 23/16/2 22/17/2 21/18/2 +f 27/19/1 25/20/1 26/21/1 +f 31/22/1 29/23/1 30/24/1 +f 35/25/1 33/26/1 34/27/1 +f 39/28/1 37/29/1 38/30/1 +f 17/31/3 33/32/3 19/33/3 +f 10/34/4 26/35/4 9/36/4 +f 18/37/4 34/38/4 17/39/4 +f 12/40/5 27/41/5 10/8/5 +f 20/42/5 35/43/5 18/14/5 +f 11/7/6 28/44/6 12/45/6 +f 5/46/3 4/47/3 7/48/3 +f 19/13/6 36/49/6 20/50/6 +f 13/51/3 29/52/3 15/53/3 +f 6/54/4 3/55/4 5/56/4 +f 21/57/3 37/58/3 23/59/3 +f 14/60/4 30/61/4 13/62/4 +f 8/63/5 2/64/5 6/5/5 +f 22/65/4 38/66/4 21/67/4 +f 16/68/5 31/69/5 14/11/5 +f 7/4/6 1/70/6 8/71/6 +f 24/72/5 39/73/5 22/17/5 +f 15/10/6 32/74/6 16/75/6 +f 9/76/3 25/77/3 11/78/3 +f 23/16/6 40/79/6 24/80/6 +f 149/81/5 42/82/5 141/83/5 +f 145/84/3 43/85/3 137/86/3 +f 49/87/3 157/88/3 153/89/3 +f 46/90/4 49/91/4 42/92/4 +f 48/93/1 160/94/1 152/95/1 +f 42/82/2 153/96/2 141/83/2 +f 44/97/6 52/98/6 48/99/6 +f 53/100/5 165/101/5 161/102/5 +f 45/103/1 168/104/1 148/105/1 +f 43/106/2 161/102/2 137/107/2 +f 47/108/6 53/109/6 43/110/6 +f 41/111/4 56/112/4 45/113/4 +f 61/114/3 59/115/3 57/116/3 +f 63/117/6 60/118/6 59/119/6 +f 62/120/4 57/121/4 58/122/4 +f 64/123/5 58/124/5 60/125/5 +f 61/114/1 64/123/1 63/117/1 +f 69/126/3 67/127/3 65/128/3 +f 71/129/6 68/130/6 67/131/6 +f 70/132/4 65/133/4 66/134/4 +f 72/135/5 66/136/5 68/137/5 +f 69/126/1 72/135/1 71/129/1 +f 77/138/3 75/139/3 73/140/3 +f 79/141/6 76/142/6 75/143/6 +f 78/144/4 73/145/4 74/146/4 +f 80/147/5 74/148/5 76/149/5 +f 77/138/1 80/147/1 79/141/1 +f 85/150/3 83/151/3 81/152/3 +f 87/153/6 84/154/6 83/155/6 +f 86/156/4 81/157/4 82/158/4 +f 88/159/5 82/160/5 84/161/5 +f 85/150/1 88/159/1 87/153/1 +f 93/162/3 91/163/3 89/164/3 +f 95/165/6 92/166/6 91/167/6 +f 94/168/4 89/169/4 90/170/4 +f 96/171/5 90/172/5 92/173/5 +f 93/162/1 96/171/1 95/165/1 +f 101/174/3 99/175/3 97/176/3 +f 103/177/6 100/178/6 99/179/6 +f 102/180/4 97/181/4 98/182/4 +f 104/183/5 98/184/5 100/185/5 +f 101/174/1 104/183/1 103/177/1 +f 109/186/3 107/187/3 105/188/3 +f 111/189/6 108/190/6 107/191/6 +f 110/192/4 105/193/4 106/194/4 +f 112/195/5 106/196/5 108/197/5 +f 109/186/1 112/195/1 111/189/1 +f 117/198/3 115/199/3 113/200/3 +f 119/201/6 116/202/6 115/203/6 +f 118/204/4 113/205/4 114/206/4 +f 120/207/5 114/208/5 116/209/5 +f 117/198/1 120/207/1 119/201/1 +f 125/210/3 123/211/3 121/212/3 +f 127/213/6 124/214/6 123/215/6 +f 126/216/4 121/217/4 122/218/4 +f 128/219/5 122/220/5 124/221/5 +f 125/210/1 128/219/1 127/213/1 +f 133/222/3 131/223/3 129/224/3 +f 135/225/6 132/226/6 131/227/6 +f 134/228/4 129/229/4 130/230/4 +f 136/231/5 130/232/5 132/233/5 +f 133/222/1 136/231/1 135/225/1 +f 140/234/2 54/235/2 41/236/2 +f 139/237/2 164/238/2 140/239/2 +f 138/240/2 163/241/2 139/242/2 +f 137/243/2 162/244/2 138/245/2 +f 145/84/1 55/246/1 47/247/1 +f 146/248/1 165/249/1 145/250/1 +f 147/251/1 166/252/1 146/253/1 +f 148/254/1 167/255/1 147/256/1 +f 164/257/5 56/258/5 54/235/5 +f 163/259/5 168/260/5 164/238/5 +f 162/261/5 167/262/5 163/241/5 +f 161/263/5 166/264/5 162/244/5 +f 144/265/2 50/266/2 44/267/2 +f 143/268/2 156/269/2 144/270/2 +f 142/271/2 155/272/2 143/273/2 +f 141/274/2 154/275/2 142/276/2 +f 149/81/1 51/277/1 46/278/1 +f 150/279/1 157/280/1 149/281/1 +f 151/282/1 158/283/1 150/284/1 +f 152/285/1 159/286/1 151/287/1 +f 156/288/3 52/289/3 50/290/3 +f 155/291/3 160/292/3 156/293/3 +f 154/294/3 159/295/3 155/296/3 +f 153/297/3 158/298/3 154/299/3 +f 45/103/3 140/300/3 41/301/3 +f 148/254/3 139/302/3 140/303/3 +f 147/251/3 138/304/3 139/305/3 +f 146/248/3 137/306/3 138/307/3 +f 48/93/5 144/265/5 44/267/5 +f 152/285/5 143/268/5 144/270/5 +f 151/282/5 142/271/5 143/273/5 +f 150/279/5 141/274/5 142/276/5 +f 170/308/1 171/309/1 169/310/1 +f 173/311/2 175/312/2 174/313/2 +f 170/314/5 176/315/5 172/316/5 +f 171/317/3 174/318/3 169/319/3 +f 172/320/6 173/321/6 171/317/6 +f 169/322/4 175/312/4 170/314/4 +f 179/323/1 184/324/1 180/325/1 +f 178/326/2 182/327/2 177/328/2 +f 180/325/5 183/329/5 178/326/5 +f 177/330/3 181/331/3 179/323/3 +f 186/332/1 200/333/1 191/334/1 +f 198/335/4 200/333/4 194/336/4 +f 186/337/6 192/338/6 190/339/6 +f 190/340/2 196/341/2 187/342/2 +f 192/343/5 198/335/5 189/344/5 +f 200/333/7 192/345/7 191/334/7 +f 190/340/8 198/346/8 197/347/8 +f 196/341/9 188/348/9 187/342/9 +f 186/332/10 194/349/10 193/350/10 +f 188/351/3 194/336/3 185/352/3 +f 205/353/2 207/354/2 206/355/2 +f 202/356/5 208/357/5 204/358/5 +f 203/359/3 206/355/3 201/360/3 +f 204/361/6 205/362/6 203/363/6 +f 201/364/4 207/365/4 202/366/4 +f 213/367/2 215/368/2 214/369/2 +f 210/370/5 216/371/5 212/372/5 +f 211/373/3 214/369/3 209/374/3 +f 212/375/6 213/376/6 211/377/6 +f 209/378/4 215/379/4 210/380/4 +f 217/381/2 219/382/2 218/383/2 +f 221/384/2 223/385/2 222/386/2 +f 223/387/11 227/388/11 222/389/11 +f 219/390/11 225/391/11 218/392/11 +f 225/393/3 217/394/3 218/395/3 +f 217/394/12 230/396/12 220/397/12 +f 230/396/5 219/390/5 220/397/5 +f 227/398/3 221/399/3 222/400/3 +f 221/399/12 232/401/12 224/402/12 +f 232/401/5 223/387/5 224/402/5 +f 235/403/1 240/404/1 236/405/1 +f 234/406/2 238/407/2 233/408/2 +f 236/405/5 239/409/5 234/406/5 +f 233/410/3 237/411/3 235/403/3 +f 242/412/1 256/413/1 247/414/1 +f 254/415/4 256/413/4 250/416/4 +f 242/417/6 248/418/6 246/419/6 +f 246/420/2 252/421/2 243/422/2 +f 248/423/5 254/415/5 245/424/5 +f 256/413/7 248/425/7 247/414/7 +f 246/420/8 254/426/8 253/427/8 +f 252/421/9 244/428/9 243/422/9 +f 242/412/10 250/429/10 249/430/10 +f 244/431/3 250/416/3 241/432/3 +f 2/1/1 1/70/1 4/2/1 +f 7/4/2 8/71/2 6/5/2 +f 11/7/2 12/45/2 10/8/2 +f 15/10/2 16/75/2 14/11/2 +f 19/13/2 20/50/2 18/14/2 +f 23/16/2 24/80/2 22/17/2 +f 27/19/1 28/44/1 25/20/1 +f 31/22/1 32/74/1 29/23/1 +f 35/25/1 36/49/1 33/26/1 +f 39/28/1 40/79/1 37/29/1 +f 17/31/3 34/433/3 33/32/3 +f 10/34/4 27/434/4 26/35/4 +f 18/37/4 35/435/4 34/38/4 +f 12/40/5 28/436/5 27/41/5 +f 20/42/5 36/437/5 35/43/5 +f 11/7/6 25/20/6 28/44/6 +f 5/46/3 3/438/3 4/47/3 +f 19/13/6 33/26/6 36/49/6 +f 13/51/3 30/439/3 29/52/3 +f 6/54/4 2/440/4 3/55/4 +f 21/57/3 38/441/3 37/58/3 +f 14/60/4 31/442/4 30/61/4 +f 8/63/5 1/443/5 2/64/5 +f 22/65/4 39/444/4 38/66/4 +f 16/68/5 32/445/5 31/69/5 +f 7/4/6 4/2/6 1/70/6 +f 24/72/5 40/446/5 39/73/5 +f 15/10/6 29/23/6 32/74/6 +f 9/76/3 26/447/3 25/77/3 +f 23/16/6 37/29/6 40/79/6 +f 149/81/5 46/278/5 42/82/5 +f 145/84/3 47/247/3 43/85/3 +f 49/87/3 51/277/3 157/88/3 +f 46/90/4 51/448/4 49/91/4 +f 48/93/1 52/289/1 160/94/1 +f 42/82/2 49/449/2 153/96/2 +f 44/97/6 50/450/6 52/98/6 +f 53/100/5 55/246/5 165/101/5 +f 45/103/1 56/258/1 168/104/1 +f 43/106/2 53/100/2 161/102/2 +f 47/108/6 55/451/6 53/109/6 +f 41/111/4 54/452/4 56/112/4 +f 61/114/3 63/117/3 59/115/3 +f 63/117/6 64/123/6 60/118/6 +f 62/120/4 61/114/4 57/121/4 +f 64/123/5 62/120/5 58/124/5 +f 61/114/1 62/120/1 64/123/1 +f 69/126/3 71/129/3 67/127/3 +f 71/129/6 72/135/6 68/130/6 +f 70/132/4 69/126/4 65/133/4 +f 72/135/5 70/132/5 66/136/5 +f 69/126/1 70/132/1 72/135/1 +f 77/138/3 79/141/3 75/139/3 +f 79/141/6 80/147/6 76/142/6 +f 78/144/4 77/138/4 73/145/4 +f 80/147/5 78/144/5 74/148/5 +f 77/138/1 78/144/1 80/147/1 +f 85/150/3 87/153/3 83/151/3 +f 87/153/6 88/159/6 84/154/6 +f 86/156/4 85/150/4 81/157/4 +f 88/159/5 86/156/5 82/160/5 +f 85/150/1 86/156/1 88/159/1 +f 93/162/3 95/165/3 91/163/3 +f 95/165/6 96/171/6 92/166/6 +f 94/168/4 93/162/4 89/169/4 +f 96/171/5 94/168/5 90/172/5 +f 93/162/1 94/168/1 96/171/1 +f 101/174/3 103/177/3 99/175/3 +f 103/177/6 104/183/6 100/178/6 +f 102/180/4 101/174/4 97/181/4 +f 104/183/5 102/180/5 98/184/5 +f 101/174/1 102/180/1 104/183/1 +f 109/186/3 111/189/3 107/187/3 +f 111/189/6 112/195/6 108/190/6 +f 110/192/4 109/186/4 105/193/4 +f 112/195/5 110/192/5 106/196/5 +f 109/186/1 110/192/1 112/195/1 +f 117/198/3 119/201/3 115/199/3 +f 119/201/6 120/207/6 116/202/6 +f 118/204/4 117/198/4 113/205/4 +f 120/207/5 118/204/5 114/208/5 +f 117/198/1 118/204/1 120/207/1 +f 125/210/3 127/213/3 123/211/3 +f 127/213/6 128/219/6 124/214/6 +f 126/216/4 125/210/4 121/217/4 +f 128/219/5 126/216/5 122/220/5 +f 125/210/1 126/216/1 128/219/1 +f 133/222/3 135/225/3 131/223/3 +f 135/225/6 136/231/6 132/226/6 +f 134/228/4 133/222/4 129/229/4 +f 136/231/5 134/228/5 130/232/5 +f 133/222/1 134/228/1 136/231/1 +f 140/234/2 164/257/2 54/235/2 +f 139/237/2 163/259/2 164/238/2 +f 138/240/2 162/261/2 163/241/2 +f 137/243/2 161/263/2 162/244/2 +f 145/84/1 165/101/1 55/246/1 +f 146/248/1 166/264/1 165/249/1 +f 147/251/1 167/262/1 166/252/1 +f 148/254/1 168/260/1 167/255/1 +f 164/257/5 168/104/5 56/258/5 +f 163/259/5 167/255/5 168/260/5 +f 162/261/5 166/252/5 167/262/5 +f 161/263/5 165/249/5 166/264/5 +f 144/265/2 156/453/2 50/266/2 +f 143/268/2 155/454/2 156/269/2 +f 142/271/2 154/455/2 155/272/2 +f 141/274/2 153/456/2 154/275/2 +f 149/81/1 157/88/1 51/277/1 +f 150/279/1 158/298/1 157/280/1 +f 151/282/1 159/295/1 158/283/1 +f 152/285/1 160/292/1 159/286/1 +f 156/288/3 160/94/3 52/289/3 +f 155/291/3 159/286/3 160/292/3 +f 154/294/3 158/283/3 159/295/3 +f 153/297/3 157/280/3 158/298/3 +f 45/103/3 148/105/3 140/300/3 +f 148/254/3 147/256/3 139/302/3 +f 147/251/3 146/253/3 138/304/3 +f 146/248/3 145/250/3 137/306/3 +f 48/93/5 152/95/5 144/265/5 +f 152/285/5 151/287/5 143/268/5 +f 151/282/5 150/284/5 142/271/5 +f 150/279/5 149/281/5 141/274/5 +f 170/308/1 172/457/1 171/309/1 +f 173/311/2 176/458/2 175/312/2 +f 170/314/5 175/312/5 176/315/5 +f 171/317/3 173/321/3 174/318/3 +f 172/320/6 176/459/6 173/321/6 +f 169/322/4 174/313/4 175/312/4 +f 179/323/1 181/331/1 184/324/1 +f 178/326/2 183/329/2 182/327/2 +f 180/325/5 184/324/5 183/329/5 +f 177/330/3 182/460/3 181/331/3 +f 186/332/1 193/350/1 200/333/1 +f 194/336/4 195/461/4 196/341/4 +f 196/341/4 197/347/4 198/335/4 +f 198/335/4 199/462/4 200/333/4 +f 200/333/4 193/350/4 194/336/4 +f 194/336/4 196/341/4 198/335/4 +f 190/339/6 187/463/6 188/464/6 +f 188/464/6 185/465/6 186/337/6 +f 186/337/6 191/466/6 192/338/6 +f 192/338/6 189/467/6 190/339/6 +f 190/339/6 188/464/6 186/337/6 +f 190/340/2 197/347/2 196/341/2 +f 192/343/5 199/462/5 198/335/5 +f 200/333/7 199/468/7 192/345/7 +f 190/340/8 189/469/8 198/346/8 +f 196/341/9 195/470/9 188/348/9 +f 186/332/10 185/471/10 194/349/10 +f 188/351/3 195/461/3 194/336/3 +f 205/353/2 208/472/2 207/354/2 +f 202/356/5 207/473/5 208/357/5 +f 203/359/3 205/474/3 206/355/3 +f 204/361/6 208/475/6 205/362/6 +f 201/364/4 206/476/4 207/365/4 +f 213/367/2 216/477/2 215/368/2 +f 210/370/5 215/478/5 216/371/5 +f 211/373/3 213/479/3 214/369/3 +f 212/375/6 216/480/6 213/376/6 +f 209/378/4 214/481/4 215/379/4 +f 217/381/2 220/482/2 219/382/2 +f 221/384/2 224/483/2 223/385/2 +f 223/387/11 228/484/11 227/388/11 +f 219/390/11 226/485/11 225/391/11 +f 225/393/3 229/486/3 217/394/3 +f 217/394/12 229/486/12 230/396/12 +f 230/396/5 226/485/5 219/390/5 +f 227/398/3 231/487/3 221/399/3 +f 221/399/12 231/487/12 232/401/12 +f 232/401/5 228/484/5 223/387/5 +f 235/403/1 237/411/1 240/404/1 +f 234/406/2 239/409/2 238/407/2 +f 236/405/5 240/404/5 239/409/5 +f 233/410/3 238/488/3 237/411/3 +f 242/412/1 249/430/1 256/413/1 +f 250/416/4 251/489/4 252/421/4 +f 252/421/4 253/427/4 254/415/4 +f 254/415/4 255/490/4 256/413/4 +f 256/413/4 249/430/4 250/416/4 +f 250/416/4 252/421/4 254/415/4 +f 246/419/6 243/491/6 244/492/6 +f 244/492/6 241/493/6 242/417/6 +f 242/417/6 247/494/6 248/418/6 +f 248/418/6 245/495/6 246/419/6 +f 246/419/6 244/492/6 242/417/6 +f 246/420/2 253/427/2 252/421/2 +f 248/423/5 255/490/5 254/415/5 +f 256/413/7 255/496/7 248/425/7 +f 246/420/8 245/497/8 254/426/8 +f 252/421/9 251/498/9 244/428/9 +f 242/412/10 241/499/10 250/429/10 +f 244/431/3 251/489/3 250/416/3 diff --git a/src/main/resources/assets/hbm/textures/blocks/rail_standard_buffer.png b/src/main/resources/assets/hbm/textures/blocks/rail_standard_buffer.png new file mode 100644 index 0000000000000000000000000000000000000000..a8943aaf877e18d8ebf7dbbae062706411f5d5ab GIT binary patch literal 890 zcmV-=1BLvFP)RX_}Vj^BDl(`#u1m z`kbceMDqK=;{eymKkE2QpCRHTN%Hi>n)DqCZqpwmNm5p~$bP>c^ww~w2SCke0O|oy zGa7(;0Mv{IpdJ7H$zQ8i0BL)Qkq89so6?0jLK+&1eAX0Z{Yh4bb>d z^byaV9QWlg)wltG+r^3scHzKcLj|NAiA!2PcSr`CVR0j`_?2b0HkR;d35)u zyBrl)en_4$`StT#<30TS$8V)E+Qx*gz03uG#XJB2yuO_fyv%U=c;_8-nu=$$fY^`1 za~$A0IfmzXwGKM%Gf=ApgO{1IqfQ$#dRUsT(VG@IzMfyqq4W58k_C?mX1vqd$XhGEEE zU)0)Sqq8Q}Hp#7kchon{iY zr`aA?P1sZ>sAU0FwWrf;QJr9(=T;^UNWKL`bec_csm@9oEQ*3xd?Gr{7P9iU+BSs? zTFq*Ek@B6Lp6dm9i;8?U5 z&;DiF;c$@F;i~t2=B^YLU0yK9|DK}{hnPBS-+++pzV$FKR} Date: Sun, 25 Jun 2023 20:22:57 +0300 Subject: [PATCH 104/109] Updated ru_RU.lang updated russian localization --- src/main/resources/assets/hbm/lang/ru_RU.lang | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/resources/assets/hbm/lang/ru_RU.lang b/src/main/resources/assets/hbm/lang/ru_RU.lang index a3235976c..307e76297 100644 --- a/src/main/resources/assets/hbm/lang/ru_RU.lang +++ b/src/main/resources/assets/hbm/lang/ru_RU.lang @@ -1506,6 +1506,7 @@ chem.TATB=Синтез TATB chem.CC_CENTRIFUGE=Отделение хлоркальцита chem.CC_ELECTROLYSIS=Электролиз хлорида кальция chem.PC_ELECTROLYSIS=Электролиз хлорида калия +chem.LAMINATE=Производство ламината item.record.lc.desc=Valve - Diabolic Adrenaline Guitar/Lambda Core item.record.ss.desc=Valve - Sector Sweep @@ -2065,6 +2066,7 @@ item.ammo_himars_standard_he.name=227-мм управляемый артилле item.ammo_himars_standard_mini_nuke.name=227-мм управляемый артиллерийский ракетный снаряд (Мини-ядерный) item.ammo_himars_standard_tb.name=227-мм управляемый артиллерийский ракетный снаряд (Термобарический) item.ammo_himars_standard_wp.name=227-мм управляемый артиллерийский ракетный снаряд (БФ) +item.ammo_himars_standard_lava.name=227-мм управляемый артиллерийский ракетный снаряд (Лава) item.ammo_himars_single.name=610-мм управляемый артиллерийский ракетный снаряд item.ammo_himars_single_tb.name=610-мм управляемый артиллерийский ракетный снаряд (Термобарический) tile.brick_asbestos_stairs.name=Ступени из асбестовых кирпичей From 9875f5a9c28f88efca727445f8c12f1a62e236bd Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 26 Jun 2023 16:12:58 +0200 Subject: [PATCH 105/109] small fixes, config options --- changelog | 15 +++++++++------ .../blocks/generic/BlockGlyphidSpawner.java | 11 ++++++----- .../hbm/blocks/machine/MachineExcavator.java | 5 ++++- src/main/java/com/hbm/config/MobConfig.java | 17 +++++++++++++++++ .../com/hbm/entity/mob/EntityFBIDrone.java | 4 ++-- src/main/java/com/hbm/lib/HbmWorldGen.java | 5 +++-- .../textures/gui/fluids/calcium_solution.png | Bin 0 -> 708 bytes 7 files changed, 41 insertions(+), 16 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/calcium_solution.png diff --git a/changelog b/changelog index b31f60f2d..57cd7d610 100644 --- a/changelog +++ b/changelog @@ -2,15 +2,16 @@ * Glpyhids * Hives will spawn randomly in the world * Hives will constantly spawn new glyphids - * If explosed to soot, hives will create glyphid scouts, which when far enough from another hive will explode and generate a new hive + * If exposed to soot, hives will create glyphid scouts, which when far enough from another hive will explode and generate a new hive * Higher soot levels create stronger glyphids - * Glyphids possess armor which has a chance of breaking off and fully abrosrbing damage + * Glyphids possess armor which has a chance of breaking off and fully absorbing damage * Each glyphid has five armor plates * Glyphid types include multiple tiers of melee glyphids as well as a few ranged ones, the scout, and a nuclear variant * Compressor * Can compress fluids, turning them into higher pressure variants + * Higher pressure fluid can use the same ducts as regular fluids, connections work the same so long as the input tank can accept the higher pressure type * Can also turn steam into higher pressure types - * Vacuum refning now requires oil at 2 PU + * Vacuum refining now requires oil at 2 PU * Some chemical plant recipes also require compressed fluid, TATB requires sour gas at 1 PU and osmiridic solution requires hydrogen peroxide at 5 PU * A new rocket artillery ammo type that creates volcanic lava on impact * BDCL @@ -27,11 +28,11 @@ * The pollution detector now displays rounded values * More machines and especially destroyed ones now release soot * The iGen has been rebalanced again, delete your machine config file for the changes to take effect - * The lubrican power multiplier has been increased from 1.1 to 1.5 + * The lubricant power multiplier has been increased from 1.1 to 1.5 * The fluid divisor has been lowered from 5,000 to 1,000, meaning the iGen now burns flammable liquids at full efficiency * Removed the config for having an additional keybind for dashing, the keybind is now always active since it no longer conflicts with crouching * Crucible recipes no longer use foundry scraps to visualize the recipes, instead they use a lava-like texture -* Fusion reactors are now made from welded magnets which are created by weling a cast steel plate onto a magnet +* Fusion reactors are now made from welded magnets which are created by welding a cast steel plate onto a magnet * Due to the cost of the cast plates, fusion reactor magnets are now cheaper to compensate * Consequently, particle accelerators are now also cheaper due to being made from mostly fusion reactor magnets * The blowtorch now consumes only 250mB per operation, allowing for up to 16 things to be welded with a single fill @@ -48,4 +49,6 @@ * Fixed missiles leaving behind a 3x3 grid of loaded chunks after being destroyed * Fixed coal ore yielding coal in the crucible instead of making carbon * Fixed a potential issue where BuildCraft generators can't supply the RF to HE converter -* Fixed combustion engine sound sometimes continue playing even when turned off \ No newline at end of file +* Fixed combustion engine sound sometimes continue playing even when turned off +* Fixed large mining drill not properly performing a block check and potentially deleting blocks when placed +* Fixed calcium solution not having a fluid texture \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java index 7e9d805f5..8de0979ae 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java +++ b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java @@ -3,6 +3,7 @@ package com.hbm.blocks.generic; import java.util.List; import java.util.Random; +import com.hbm.config.MobConfig; import com.hbm.entity.mob.EntityGlyphid; import com.hbm.entity.mob.EntityGlyphidBehemoth; import com.hbm.entity.mob.EntityGlyphidBlaster; @@ -49,7 +50,7 @@ public class BlockGlyphidSpawner extends BlockContainer { this.worldObj.spawnEntityInWorld(glyphid); } - if(worldObj.rand.nextInt(20) == 0 && soot > 0) { + if(worldObj.rand.nextInt(20) == 0 && soot >= MobConfig.scoutThreshold) { EntityGlyphidScout scout = new EntityGlyphidScout(worldObj); scout.setLocationAndAngles(xCoord + 0.5, yCoord + 1, zCoord + 0.5, worldObj.rand.nextFloat() * 360.0F, 0.0F); this.worldObj.spawnEntityInWorld(scout); @@ -60,10 +61,10 @@ public class BlockGlyphidSpawner extends BlockContainer { public EntityGlyphid createGlyphid(float soot) { Random rand = new Random(); - if(soot < 1) return rand.nextInt(5) == 0 ? new EntityGlyphidBombardier(worldObj) : new EntityGlyphid(worldObj); - if(soot < 10) return rand.nextInt(5) == 0 ? new EntityGlyphidBombardier(worldObj) : new EntityGlyphidBrawler(worldObj); - if(soot < 50) return rand.nextInt(5) == 0 ? new EntityGlyphidBlaster(worldObj) : new EntityGlyphidBehemoth(worldObj); - if(soot < 100) return rand.nextInt(5) == 0 ? new EntityGlyphidBlaster(worldObj) : new EntityGlyphidBrenda(worldObj); + if(soot < MobConfig.tier2Threshold) return rand.nextInt(5) == 0 ? new EntityGlyphidBombardier(worldObj) : new EntityGlyphid(worldObj); + if(soot < MobConfig.tier3Threshold) return rand.nextInt(5) == 0 ? new EntityGlyphidBombardier(worldObj) : new EntityGlyphidBrawler(worldObj); + if(soot < MobConfig.tier4Threshold) return rand.nextInt(5) == 0 ? new EntityGlyphidBlaster(worldObj) : new EntityGlyphidBehemoth(worldObj); + if(soot < MobConfig.tier5Threshold) return rand.nextInt(5) == 0 ? new EntityGlyphidBlaster(worldObj) : new EntityGlyphidBrenda(worldObj); return rand.nextInt(3) == 0 ? new EntityGlyphidBlaster(worldObj) : new EntityGlyphidNuclear(worldObj); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineExcavator.java b/src/main/java/com/hbm/blocks/machine/MachineExcavator.java index 0d27866a6..c91d6bb16 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineExcavator.java +++ b/src/main/java/com/hbm/blocks/machine/MachineExcavator.java @@ -51,7 +51,10 @@ public class MachineExcavator extends BlockDummyable { y += dir.offsetY * o; z += dir.offsetZ * o; - return MultiblockHandlerXR.checkSpace(world, x, y, z, getDimensions(), x, y, z, dir); + return MultiblockHandlerXR.checkSpace(world, x, y, z, getDimensions(), x, y, z, dir) && + MultiblockHandlerXR.checkSpace(world, x, y, z, new int[] {-1, 3, 3, -2, 3, -2}, x, y, z, dir) && + MultiblockHandlerXR.checkSpace(world, x, y, z, new int[] {-1, 3, 3, -2, -2, 3}, x, y, z, dir) && + MultiblockHandlerXR.checkSpace(world, x, y, z, new int[] {-1, 3, -2, 3, 3, 3}, x, y, z, dir); } @Override diff --git a/src/main/java/com/hbm/config/MobConfig.java b/src/main/java/com/hbm/config/MobConfig.java index 5232b8351..1fce6249f 100644 --- a/src/main/java/com/hbm/config/MobConfig.java +++ b/src/main/java/com/hbm/config/MobConfig.java @@ -28,6 +28,15 @@ public class MobConfig { public static boolean enableDucks = true; public static boolean enableMobGear = true; + public static boolean enableHives = true; + public static int hiveSpawn = 128; + public static double scoutThreshold = 0.1; + public static double tier2Threshold = 1; + public static double tier3Threshold = 10; + public static double tier4Threshold = 50; + public static double tier5Threshold = 100; + + public static void loadFromConfig(Configuration config) { final String CATEGORY = CommonConfig.CATEGORY_MOBS; @@ -55,5 +64,13 @@ public class MobConfig { enableDucks = CommonConfig.createConfigBool(config, CATEGORY, "12.D00_enableDucks", "Whether pressing O should allow the player to duck", true); enableMobGear = CommonConfig.createConfigBool(config, CATEGORY, "12.D01_enableMobGear", "Whether zombies and skeletons should have additional gear when spawning", true); + + enableHives = CommonConfig.createConfigBool(config, CATEGORY, "12.G00_enableHives", "Whether glyphid hives should spawn", true); + hiveSpawn = CommonConfig.createConfigInt(config, CATEGORY, "12.G01_hiveSpawn", "The average amount of chunks per hive", 128); + scoutThreshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G02_scoutThreshold", "Minimum amount of soot for scouts to spawn", 0.1); + tier2Threshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G03_tier2Threshold", "Minimum amount of soot for tier 2 glyphids to spawn", 1); + tier3Threshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G04_tier3Threshold", "Minimum amount of soot for tier 3 glyphids to spawn", 10); + tier4Threshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G05_tier4Threshold", "Minimum amount of soot for tier 4 glyphids to spawn", 50); + tier5Threshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G06_tier5Threshold", "Minimum amount of soot for tier 5 glyphids to spawn", 100); } } diff --git a/src/main/java/com/hbm/entity/mob/EntityFBIDrone.java b/src/main/java/com/hbm/entity/mob/EntityFBIDrone.java index b773cd3ff..97110b54f 100644 --- a/src/main/java/com/hbm/entity/mob/EntityFBIDrone.java +++ b/src/main/java/com/hbm/entity/mob/EntityFBIDrone.java @@ -1,6 +1,6 @@ package com.hbm.entity.mob; -import com.hbm.entity.grenade.EntityGrenadeGeneric; +import com.hbm.entity.grenade.EntityGrenadeStrong; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.util.Vec3; @@ -29,7 +29,7 @@ public class EntityFBIDrone extends EntityUFOBase { Vec3 vec = Vec3.createVectorHelper(posX - target.posX, posY - target.posY, posZ - target.posZ); if(Math.abs(vec.xCoord) < 5 && Math.abs(vec.zCoord) < 5 && vec.yCoord > 3) { attackCooldown = 60; - EntityGrenadeGeneric grenade = new EntityGrenadeGeneric(worldObj); + EntityGrenadeStrong grenade = new EntityGrenadeStrong(worldObj); grenade.setPosition(posX, posY, posZ); worldObj.spawnEntityInWorld(grenade); } diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index 04c41da43..6d2af30ab 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -7,6 +7,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockMotherOfAllOres; import com.hbm.blocks.generic.BlockNTMFlower.EnumFlowerType; import com.hbm.config.GeneralConfig; +import com.hbm.config.MobConfig; import com.hbm.config.WorldConfig; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; @@ -218,11 +219,11 @@ public class HbmWorldGen implements IWorldGenerator { if(GeneralConfig.enableDungeons && world.provider.isSurfaceWorld()) { - if(rand.nextInt(1000) == 0) { + if(MobConfig.enableHives && rand.nextInt(MobConfig.hiveSpawn) == 0) { int x = i + rand.nextInt(16) + 8; int z = j + rand.nextInt(16) + 8; int y = world.getHeightValue(x, z); - GlyphidHive.generate(world, x, y, z, rand); + if(world.getBlock(x, y - 1, z).isNormalCube()) GlyphidHive.generate(world, x, y, z, rand); } if(biome == BiomeGenBase.plains || biome == BiomeGenBase.desert) { diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/calcium_solution.png b/src/main/resources/assets/hbm/textures/gui/fluids/calcium_solution.png new file mode 100644 index 0000000000000000000000000000000000000000..f1ebd5aba4619ce2699a1d0678639c73f5345e78 GIT binary patch literal 708 zcmV;#0z3VQP)>_ zij)$i)R3;OYgVfj0A1G+LLjQDYDkbI2|@_IzP>1mf~IK@LJ&m}08P^jcv+SK5D6hr zO3`&4o6Uwej=8(Lqby7Q@Qg7CApkJOu;1^|T2oaOVmuzBwPrjX56i&+F!DU7ZCjL5 zIOoW+3}XyhYlIMjzVA^=v0kqUAt0rsX&Rh!%;$525R_$!b8a~9-xNhrkR-`anNo@@ z%UCQHlx4~5>npq64(~mO!-3Ig#N~1!j$GnmG)-~NvET36Y&NV`E4r>@ zyWNuK`5=ukhOX=I-cwc8e=RgkgZG|4j3|nDd3m9#D)KzXT8oqtDJ5OkQ4|GADe^og ziXx&UNod;^tu<}ivREvz)-oQCvDOX_D5WThVo*KLb3zD+5CYa(wAO?W0GLjv)OG!5 q8UW|>nYXt$K0ZDGI2;ZLA@~O#o<1iFE_aXs0000 Date: Mon, 26 Jun 2023 18:26:59 +0200 Subject: [PATCH 106/109] doxotron --- changelog | 1 + src/main/java/com/hbm/entity/mob/EntityFBI.java | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/changelog b/changelog index 57cd7d610..871d564ea 100644 --- a/changelog +++ b/changelog @@ -43,6 +43,7 @@ * Leaded fuels now release heavy metal into the air, heavy metal can cause lead poisoning * Lower heavy metal concentrations can also cause heavy metal poisoning when breaking blocks * Gas artillery shell now create heavy metal and poisonous pollution +* FBI agents will now target the player from a much larger distance ## Fixed * Fixed potential crash or logspam regarding the pollution handler diff --git a/src/main/java/com/hbm/entity/mob/EntityFBI.java b/src/main/java/com/hbm/entity/mob/EntityFBI.java index df1ed0755..ce51f5d25 100644 --- a/src/main/java/com/hbm/entity/mob/EntityFBI.java +++ b/src/main/java/com/hbm/entity/mob/EntityFBI.java @@ -8,6 +8,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.config.MobConfig; import com.hbm.entity.mob.ai.EntityAIBreaking; import com.hbm.entity.mob.ai.EntityAI_MLPF; +import com.hbm.entity.pathfinder.PathFinderUtils; import com.hbm.entity.projectile.EntityBullet; import com.hbm.items.ModItems; @@ -50,7 +51,7 @@ public class EntityFBI extends EntityMob implements IRangedAttackMob { this.tasks.addTask(2, new EntityAIArrowAttack(this, 1D, 20, 25, 15.0F)); this.tasks.addTask(3, new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.0D, true)); this.tasks.addTask(5, new EntityAIMoveTowardsRestriction(this, 1.0D)); - this.tasks.addTask(6, new EntityAI_MLPF(this, EntityPlayer.class, 100, 1D, 16)); + //this.tasks.addTask(6, new EntityAI_MLPF(this, EntityPlayer.class, 100, 1D, 16)); this.tasks.addTask(7, new EntityAIWander(this, 1.0D)); this.tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); this.tasks.addTask(8, new EntityAILookIdle(this)); @@ -119,6 +120,20 @@ public class EntityFBI extends EntityMob implements IRangedAttackMob { protected boolean isAIEnabled() { return true; } + + @Override + protected void updateAITasks() { + super.updateAITasks(); + + if(this.getAttackTarget() == null) { + this.setAttackTarget(this.worldObj.getClosestVulnerablePlayerToEntity(this, 128.0D)); + } + + // hell yeah!! + if(this.getAttackTarget() != null) { + this.getNavigator().setPath(PathFinderUtils.getPathEntityToEntityPartial(worldObj, this, this.getAttackTarget(), 16F, true, false, false, true), 1); + } + } //combat vest = full diamond set public int getTotalArmorValue() { From ae88efa44949f22830c207bd41dae37ed40af837 Mon Sep 17 00:00:00 2001 From: Vaern Date: Mon, 26 Jun 2023 09:36:33 -0700 Subject: [PATCH 107/109] joever --- src/main/java/com/hbm/lib/HbmChestContents.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/lib/HbmChestContents.java b/src/main/java/com/hbm/lib/HbmChestContents.java index 7dc26a319..ddeee1df8 100644 --- a/src/main/java/com/hbm/lib/HbmChestContents.java +++ b/src/main/java/com/hbm/lib/HbmChestContents.java @@ -415,7 +415,7 @@ public class HbmChestContents { public static ItemStack generateOfficeBook(Random rand) { //TODO rework this lore in general String key; int pages; - switch(rand.nextInt(5)) { + switch(rand.nextInt(10)) { case 0: key = "resignation_note"; pages = 3; break; case 1: @@ -426,6 +426,16 @@ public class HbmChestContents { key = "memo_schrab_rd"; pages = 4; break; case 4: key = "memo_schrab_nuke"; pages = 3; break; + case 5: + key = "bf_bomb_1"; pages = 4; break; + case 6: + key = "bf_bomb_2"; pages = 6; break; + case 7: + key = "bf_bomb_3"; pages = 6; break; + case 8: + key = "bf_bomb_4"; pages = 5; break; + case 10: + key = "bf_bomb_5"; pages = 9; break; default: return null; } From b853faf265a0d66d62a877deec0f3c962017bff0 Mon Sep 17 00:00:00 2001 From: Vaern Date: Mon, 26 Jun 2023 09:38:17 -0700 Subject: [PATCH 108/109] a --- src/main/java/com/hbm/lib/HbmChestContents.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/lib/HbmChestContents.java b/src/main/java/com/hbm/lib/HbmChestContents.java index ddeee1df8..cdd0a61cd 100644 --- a/src/main/java/com/hbm/lib/HbmChestContents.java +++ b/src/main/java/com/hbm/lib/HbmChestContents.java @@ -434,7 +434,7 @@ public class HbmChestContents { key = "bf_bomb_3"; pages = 6; break; case 8: key = "bf_bomb_4"; pages = 5; break; - case 10: + case 9: key = "bf_bomb_5"; pages = 9; break; default: return null; From 0ac2445329acfbb76ab347454d1e86a9260bcddf Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 26 Jun 2023 19:52:36 +0200 Subject: [PATCH 109/109] i'll fucking shoot somebody --- src/main/java/com/hbm/main/ClientProxy.java | 5 +++++ src/main/java/com/hbm/main/ServerProxy.java | 2 ++ .../hbm/tileentity/machine/TileEntityMachineCompressor.java | 3 ++- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 5852d92cd..84723d576 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -1988,5 +1988,10 @@ public class ClientProxy extends ServerProxy { public boolean getImpact(World world) { return ImpactWorldHandler.getImpactForClient(world); } + + @Override + public void playSoundFuckMojang(double x, double y, double z, String sound, float volume, float pitch) { + Minecraft.getMinecraft().getSoundHandler().playSound(new PositionedSoundRecord(new ResourceLocation(sound), volume, pitch, (float) x, (float) y, (float) z)); + } } diff --git a/src/main/java/com/hbm/main/ServerProxy.java b/src/main/java/com/hbm/main/ServerProxy.java index ac286d931..783dc4df3 100644 --- a/src/main/java/com/hbm/main/ServerProxy.java +++ b/src/main/java/com/hbm/main/ServerProxy.java @@ -84,4 +84,6 @@ public class ServerProxy { public boolean getImpact(World world) { return TomSaveData.forWorld(world).impact; } + + public void playSoundFuckMojang(double x, double y, double z, String sound, float volume, float pitch) { } } \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java index 285c36a20..a21a30834 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java @@ -11,6 +11,7 @@ import com.hbm.inventory.recipes.CompressorRecipes; import com.hbm.inventory.recipes.CompressorRecipes.CompressorRecipe; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.Tuple.Pair; @@ -133,7 +134,7 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement if(this.pistonDir) { this.piston -= randSpeed; if(this.piston <= 0) { - Minecraft.getMinecraft().getSoundHandler().playSound(new PositionedSoundRecord(new ResourceLocation("hbm:item.boltgun"), 0.5F, 0.75F, xCoord, yCoord, zCoord)); + MainRegistry.proxy.playSoundFuckMojang(xCoord, yCoord, zCoord, "hbm:item.boltgun", 0.5F, 0.75F); this.pistonDir = !this.pistonDir; } } else {