diff --git a/changelog b/changelog index 9483965ac..13825b254 100644 --- a/changelog +++ b/changelog @@ -1,13 +1,34 @@ ## Added -* Fluid valve with counter to control and count fluid that pass through. +* New battery system + * Energy storage blocks, capacitors and battery items are now deprecated, but can still be used + * There is now new types of battery items, as well as capacitor items + * Instead of energy storage blocks, there is now a battery socket, which allows those new items to be connected to the power grid + * Battery sockets act like cables, they will connect power grids when two cables are plugged into them in different directions + * Self-chargers and creative batteries are still around, as well as spark batteries which are needed for the balefire bomb + * The FEnSU has been replaced by a much larger version with unlimited energy storage +* `/ntmreapnetworks` + * Deletes all active nodespace instances + * Mainly useful for server owners, in case nodespace builds up too much garbage data that isn't cleared correctly ## Changed +* Updated italian localization * After not being part of worldgen for a long time, oily coal is finally being removed * The rare metal blocks that had been unobtainable and unused for the longest time have been removed * The schrabidium transmutator's grace period is over, it is finally being destroyed * Most of the legacy fusion reactor components, which were unobtainable and unusable, have been removed * The block ID economy is looking better than ever +* Infinite water barrels can now be crafted with any water container and not just buckets +* OpenComputers integration for the PWR can now also read the heat capacity stats +* Removed the restriction that demands that cluster ores need to be mined by hand +* Laser beams from energy weapons are now a lot more narrow ## Fixed * Fixed meteors using a nonexistant keepalive timer, causing potential audio flickering in certain cases * Fixed 528 coltan deposit config misspelling +* Potentially fixed a performance issue caused by transmission networks not being deleted when they have no active links +* Fixed multi output recipe objects not deserializing right, causing the precision assembler config to not load +* Fixed pedestal recipes not using the correct register option, making custom config files wipe all clay tablets +* Fixed custom fluids breaking when using the `/ntmreload` command +* Fixed power not saving for mining lasers +* Fixed the annihilator producing blank 528 mode blueprints when 528 mode isn't even enabled +* Fixed black fire not using the skeletonizer on death diff --git a/src/main/java/api/hbm/block/IDrillInteraction.java b/src/main/java/api/hbm/block/IDrillInteraction.java index 7e9c7bffe..f9b700da3 100644 --- a/src/main/java/api/hbm/block/IDrillInteraction.java +++ b/src/main/java/api/hbm/block/IDrillInteraction.java @@ -3,6 +3,7 @@ package api.hbm.block; import net.minecraft.item.ItemStack; import net.minecraft.world.World; +@Deprecated public interface IDrillInteraction { /** diff --git a/src/main/java/api/hbm/block/IMiningDrill.java b/src/main/java/api/hbm/block/IMiningDrill.java index 15d61178b..05294f0d1 100644 --- a/src/main/java/api/hbm/block/IMiningDrill.java +++ b/src/main/java/api/hbm/block/IMiningDrill.java @@ -1,5 +1,6 @@ package api.hbm.block; +@Deprecated public interface IMiningDrill { /** diff --git a/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java b/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java index 50f74215c..bb51996e0 100644 --- a/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java +++ b/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java @@ -2,7 +2,6 @@ package api.hbm.energymk2; import com.hbm.handler.threading.PacketThreading; import com.hbm.packet.toclient.AuxParticlePacketNT; -import com.hbm.util.Compat; import api.hbm.energymk2.Nodespace.PowerNode; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; @@ -25,7 +24,7 @@ public interface IEnergyProviderMK2 extends IEnergyHandlerMK2 { public default void tryProvide(World world, int x, int y, int z, ForgeDirection dir) { - TileEntity te = Compat.getTileStandard(world, x, y, z); + TileEntity te = TileAccessCache.getTileOrCache(world, x, y, z); boolean red = false; if(te instanceof IEnergyConductorMK2) { diff --git a/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java b/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java index 466b8b277..58c9ae1ec 100644 --- a/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java +++ b/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java @@ -3,7 +3,6 @@ package api.hbm.energymk2; import com.hbm.handler.threading.PacketThreading; import com.hbm.interfaces.NotableComments; import com.hbm.packet.toclient.AuxParticlePacketNT; -import com.hbm.util.Compat; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energymk2.Nodespace.PowerNode; @@ -39,7 +38,7 @@ public interface IEnergyReceiverMK2 extends IEnergyHandlerMK2 { public default void trySubscribe(World world, int x, int y, int z, ForgeDirection dir) { - TileEntity te = Compat.getTileStandard(world, x, y, z); + TileEntity te = TileAccessCache.getTileOrCache(world, x, y, z); boolean red = false; if(te instanceof IEnergyConductorMK2) { diff --git a/src/main/java/api/hbm/fluidmk2/IFluidReceiverMK2.java b/src/main/java/api/hbm/fluidmk2/IFluidReceiverMK2.java index 55bdb1372..80d3a5f7b 100644 --- a/src/main/java/api/hbm/fluidmk2/IFluidReceiverMK2.java +++ b/src/main/java/api/hbm/fluidmk2/IFluidReceiverMK2.java @@ -5,7 +5,6 @@ import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.uninos.GenNode; import com.hbm.uninos.UniNodespace; -import com.hbm.util.Compat; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energymk2.IEnergyReceiverMK2.ConnectionPriority; @@ -28,7 +27,7 @@ public interface IFluidReceiverMK2 extends IFluidUserMK2 { public default void trySubscribe(FluidType type, World world, int x, int y, int z, ForgeDirection dir) { - TileEntity te = Compat.getTileStandard(world, x, y, z); + TileEntity te = TileAccessCache.getTileOrCache(world, x, y, z); boolean red = false; if(te instanceof IFluidConnectorMK2) { diff --git a/src/main/java/api/hbm/fluidmk2/IFluidStandardSenderMK2.java b/src/main/java/api/hbm/fluidmk2/IFluidStandardSenderMK2.java index 75791b659..6aa83ec15 100644 --- a/src/main/java/api/hbm/fluidmk2/IFluidStandardSenderMK2.java +++ b/src/main/java/api/hbm/fluidmk2/IFluidStandardSenderMK2.java @@ -6,7 +6,6 @@ import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.uninos.GenNode; import com.hbm.uninos.UniNodespace; -import com.hbm.util.Compat; import com.hbm.util.fauxpointtwelve.DirPos; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; @@ -30,7 +29,7 @@ public interface IFluidStandardSenderMK2 extends IFluidProviderMK2 { public default void tryProvide(FluidType type, int pressure, World world, int x, int y, int z, ForgeDirection dir) { - TileEntity te = Compat.getTileStandard(world, x, y, z); + TileEntity te = TileAccessCache.getTileOrCache(world, x, y, z); boolean red = false; if(te instanceof IFluidConnectorMK2) { diff --git a/src/main/java/api/hbm/tile/ILoadedTile.java b/src/main/java/api/hbm/tile/ILoadedTile.java index 33b221bde..9ff84aacd 100644 --- a/src/main/java/api/hbm/tile/ILoadedTile.java +++ b/src/main/java/api/hbm/tile/ILoadedTile.java @@ -1,7 +1,55 @@ package api.hbm.tile; +import java.util.HashMap; +import java.util.Map; + +import com.hbm.util.Compat; +import com.hbm.util.Tuple.Quartet; + +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + /** For anything that should be removed off networks when considered unloaded, only affects providers and receivers, not links. Must not necessarily be a tile. */ public interface ILoadedTile { public boolean isLoaded(); + + // should we gunk this into the API? no, but i don't care + public static class TileAccessCache { + + public static Map cache = new HashMap(); + + public static int NULL_CACHE = 20; + public static int NONNULL_CACHE = 60; + + public TileEntity tile; + public long expiresOn; + + public TileAccessCache(TileEntity tile, long expiresOn) { + this.tile = tile; + this.expiresOn = expiresOn; + } + + public boolean hasExpired(long worldTime) { + if(tile != null && tile.isInvalid()) return true; + if(worldTime >= expiresOn) return true; + if(tile instanceof ILoadedTile && !((ILoadedTile) tile).isLoaded()) return true; + return false; + } + + public static Quartet publicCumRag = new Quartet(0, 0, 0, 0); + public static TileEntity getTileOrCache(World world, int x, int y, int z) { + publicCumRag.mangle(x, y, z, world.provider.dimensionId); + TileAccessCache cache = TileAccessCache.cache.get(publicCumRag); + + if(cache == null || cache.hasExpired(world.getTotalWorldTime())) { + TileEntity tile = Compat.getTileStandard(world, x, y, z); + cache = new TileAccessCache(tile, world.getTotalWorldTime() + (tile == null ? NULL_CACHE : NONNULL_CACHE)); + TileAccessCache.cache.put(publicCumRag.clone(), cache); + return tile; + } else { + return cache.tile; + } + } + } } diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index ed97a6af0..6b9f833e4 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -743,20 +743,21 @@ public class ModBlocks { public static Block machine_microwave; public static Block machine_battery_socket; - + public static Block machine_battery_redd; + @Deprecated public static Block machine_battery_potato; @Deprecated public static Block machine_battery; @Deprecated public static Block machine_lithium_battery; @Deprecated public static Block machine_schrabidium_battery; @Deprecated public static Block machine_dineutronium_battery; - public static Block machine_fensu; + @Deprecated public static Block machine_fensu; - 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 capacitor_schrabidate; + @Deprecated public static Block capacitor_bus; + public static Block capacitor_copper; // neat for structures + @Deprecated public static Block capacitor_gold; + @Deprecated public static Block capacitor_niobium; + @Deprecated public static Block capacitor_tantalium; + @Deprecated public static Block capacitor_schrabidate; public static Block machine_wood_burner; @@ -1864,6 +1865,8 @@ public class ModBlocks { machine_microwave = new MachineMicrowave(Material.iron).setBlockName("machine_microwave").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_microwave"); machine_battery_socket = new MachineBatterySocket().setBlockName("machine_battery_socket").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_battery_redd = new MachineBatteryREDD().setBlockName("machine_battery_redd").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + 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); @@ -1871,12 +1874,12 @@ public class ModBlocks { 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_bus = new MachineCapacitorBus(Material.iron).setBlockName("capacitor_bus").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null); 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, 150_000_000L, "tantalium").setBlockName("capacitor_tantalium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_tantalium"); - capacitor_schrabidate = new MachineCapacitor(Material.iron, 50_000_000_000L, "schrabidate").setBlockName("capacitor_schrabidate").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_schrabidate"); + capacitor_gold = new MachineCapacitor(Material.iron, 5_000_000L, "gold").setBlockName("capacitor_gold").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName("gold_block"); + capacitor_niobium = new MachineCapacitor(Material.iron, 25_000_000L, "niobium").setBlockName("capacitor_niobium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_niobium"); + capacitor_tantalium = new MachineCapacitor(Material.iron, 150_000_000L, "tantalium").setBlockName("capacitor_tantalium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_tantalium"); + capacitor_schrabidate = new MachineCapacitor(Material.iron, 50_000_000_000L, "schrabidate").setBlockName("capacitor_schrabidate").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_schrabidate"); machine_wood_burner = new MachineWoodBurner(Material.iron).setBlockName("machine_wood_burner").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_diesel = new MachineDiesel().setBlockName("machine_diesel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -3264,6 +3267,7 @@ public class ModBlocks { register(barrel_tcalloy); register(barrel_antimatter); register(machine_battery_socket); + register(machine_battery_redd); register(machine_battery_potato); register(machine_battery); register(machine_lithium_battery); diff --git a/src/main/java/com/hbm/blocks/generic/BlockCluster.java b/src/main/java/com/hbm/blocks/generic/BlockCluster.java index ab7ae9dff..0887df979 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockCluster.java +++ b/src/main/java/com/hbm/blocks/generic/BlockCluster.java @@ -1,26 +1,15 @@ package com.hbm.blocks.generic; -import java.util.List; import java.util.Random; -import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ModBlocks; import com.hbm.items.ModItems; -import com.hbm.util.i18n.I18nUtil; -import api.hbm.block.IDrillInteraction; -import api.hbm.block.IMiningDrill; import net.minecraft.block.Block; import net.minecraft.block.material.Material; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.world.World; -import net.minecraftforge.common.util.FakePlayer; -public class BlockCluster extends Block implements IDrillInteraction, ITooltipProvider { +public class BlockCluster extends Block { public BlockCluster(Material mat) { super(mat); @@ -28,32 +17,7 @@ public class BlockCluster extends Block implements IDrillInteraction, ITooltipPr @Override public Item getItemDropped(int i, Random rand, int j) { - return null; - } - - @Override - public void harvestBlock(World world, EntityPlayer player, int x, int y, int z, int meta) { - - if(player instanceof FakePlayer || player == null) { - return; - } - - if(!world.isRemote && world.getGameRules().getGameRuleBooleanValue("doTileDrops") && !world.restoringBlockSnapshots) { - - Item drop = getDrop(); - - if(drop == null) - return; - - float f = 0.7F; - double mX = (double) (world.rand.nextFloat() * f) + (double) (1.0F - f) * 0.5D; - double mY = (double) (world.rand.nextFloat() * f) + (double) (1.0F - f) * 0.5D; - double mZ = (double) (world.rand.nextFloat() * f) + (double) (1.0F - f) * 0.5D; - - EntityItem entityitem = new EntityItem(world, (double) x + mX, (double) y + mY, (double) z + mZ, new ItemStack(drop)); - entityitem.delayBeforeCanPickup = 10; - world.spawnEntityInWorld(entityitem); - } + return getDrop(); } private Item getDrop() { @@ -65,24 +29,4 @@ public class BlockCluster extends Block implements IDrillInteraction, ITooltipPr return null; } - - @Override - public boolean canBreak(World world, int x, int y, int z, int meta, IMiningDrill drill) { - return drill.getDrillRating() > 70 || world.rand.nextFloat() < 0.05; - } - - @Override - public ItemStack extractResource(World world, int x, int y, int z, int meta, IMiningDrill drill) { - return drill.getDrillRating() <= 70 ? new ItemStack(getDrop()) : null; - } - - @Override - public float getRelativeHardness(World world, int x, int y, int z, int meta, IMiningDrill drill) { - return this.getBlockHardness(world, x, y, z); - } - - @Override - public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.tile.cluster")); - } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockCrate.java b/src/main/java/com/hbm/blocks/generic/BlockCrate.java index abfebe1d1..6e948d05f 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockCrate.java @@ -8,6 +8,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.interfaces.Spaghetti; import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmoSecret; import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack; import net.minecraft.block.BlockFalling; import net.minecraft.block.material.Material; @@ -102,8 +103,7 @@ public class BlockCrate extends BlockFalling { BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_diesel), 8); BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_rtg_grey), 4); BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.red_pylon), 9); - BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_battery), 8); - BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_lithium_battery), 5); + BlockCrate.addToListWithWeight(metalList, new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LEAD.ordinal()), 10); BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_electric_furnace_off), 8); BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_assembly_machine), 10); BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_fluidtank), 7); diff --git a/src/main/java/com/hbm/blocks/machine/Radiobox.java b/src/main/java/com/hbm/blocks/machine/Radiobox.java index b7eea5519..bfec9aa75 100644 --- a/src/main/java/com/hbm/blocks/machine/Radiobox.java +++ b/src/main/java/com/hbm/blocks/machine/Radiobox.java @@ -1,7 +1,6 @@ package com.hbm.blocks.machine; import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemBattery; import com.hbm.tileentity.machine.TileEntityRadiobox; import net.minecraft.block.Block; @@ -47,31 +46,17 @@ public class Radiobox extends BlockContainer { public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - if(i == 0) - { - world.setBlockMetadataWithNotify(x, y, z, 2, 2); - } - if(i == 1) - { - world.setBlockMetadataWithNotify(x, y, z, 5, 2); - } - if(i == 2) - { - world.setBlockMetadataWithNotify(x, y, z, 3, 2); - } - if(i == 3) - { - world.setBlockMetadataWithNotify(x, y, z, 4, 2); - } + if(i == 0) world.setBlockMetadataWithNotify(x, y, z, 2, 2); + if(i == 1) world.setBlockMetadataWithNotify(x, y, z, 5, 2); + if(i == 2) world.setBlockMetadataWithNotify(x, y, z, 3, 2); + if(i == 3) world.setBlockMetadataWithNotify(x, y, z, 4, 2); } @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { + if(world.isRemote) { return true; - } else if(!player.isSneaking()) - { + } else if(!player.isSneaking()) { TileEntityRadiobox box = (TileEntityRadiobox)world.getTileEntity(x, y, z); if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.battery_spark && !box.infinite) { @@ -93,78 +78,53 @@ public class Radiobox extends BlockContainer { return true; } else { - //FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_radiobox, world, x, y, z); - //return true; return false; } } - + @Override - public void setBlockBoundsBasedOnState(IBlockAccess p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_) - { + public void setBlockBoundsBasedOnState(IBlockAccess p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_) { int te = p_149719_1_.getBlockMetadata(p_149719_2_, p_149719_3_, p_149719_4_); - float f = 0.0625F; - - this.setBlockBounds(0.0F, 0.0F, 2*f, 1.0F, 1.0F, 14*f); - switch(te) - { + float f = 0.0625F; + + this.setBlockBounds(0.0F, 0.0F, 2 * f, 1.0F, 1.0F, 14 * f); + switch(te) { case 4: - case 8: - this.setBlockBounds(11*f, 1*f, 4*f, 16*f, 15*f, 12*f); - break; + case 8: this.setBlockBounds(11 * f, 1 * f, 4 * f, 16 * f, 15 * f, 12 * f); break; case 2: - case 6: - this.setBlockBounds(4*f, 1*f, 11*f, 12*f, 15*f, 16*f); - break; + case 6: this.setBlockBounds(4 * f, 1 * f, 11 * f, 12 * f, 15 * f, 16 * f); break; case 5: - case 9: - this.setBlockBounds(0*f, 1*f, 4*f, 5*f, 15*f, 12*f); - break; + case 9: this.setBlockBounds(0 * f, 1 * f, 4 * f, 5 * f, 15 * f, 12 * f); break; case 3: - case 7: - this.setBlockBounds(4*f, 1*f, 0*f, 12*f, 15*f, 5*f); - break; + case 7: this.setBlockBounds(4 * f, 1 * f, 0 * f, 12 * f, 15 * f, 5 * f); break; } - } + } @Override public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { int te = world.getBlockMetadata(x, y, z); - float f = 0.0625F; - - this.setBlockBounds(0.0F, 0.0F, 2*f, 1.0F, 1.0F, 14*f); - switch(te) - { + float f = 0.0625F; + + this.setBlockBounds(0.0F, 0.0F, 2 * f, 1.0F, 1.0F, 14 * f); + switch(te) { case 4: - case 8: - this.setBlockBounds(11*f, 1*f, 4*f, 16*f, 15*f, 12*f); - break; + case 8: this.setBlockBounds(11 * f, 1 * f, 4 * f, 16 * f, 15 * f, 12 * f); break; case 2: - case 6: - this.setBlockBounds(4*f, 1*f, 11*f, 12*f, 15*f, 16*f); - break; + case 6: this.setBlockBounds(4 * f, 1 * f, 11 * f, 12 * f, 15 * f, 16 * f); break; case 5: - case 9: - this.setBlockBounds(0*f, 1*f, 4*f, 5*f, 15*f, 12*f); - break; + case 9: this.setBlockBounds(0 * f, 1 * f, 4 * f, 5 * f, 15 * f, 12 * f); break; case 3: - case 7: - this.setBlockBounds(4*f, 1*f, 0*f, 12*f, 15*f, 5*f); - break; + case 7: this.setBlockBounds(4 * f, 1 * f, 0 * f, 12 * f, 15 * f, 5 * f); break; } - + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); } - public void breakBlock(World world, int x, int y, int z, Block b, int m) { - + public void breakBlock(World world, int x, int y, int z, Block b, int m) { TileEntityRadiobox box = (TileEntityRadiobox)world.getTileEntity(x, y, z); + if(box.infinite) world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.battery_spark))); - if(box.infinite) { - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, ItemBattery.getEmptyBattery(ModItems.battery_spark))); - } - - super.breakBlock(world, x, y, z, b, m); - } + super.breakBlock(world, x, y, z, b, m); + } } diff --git a/src/main/java/com/hbm/blocks/network/MachineBatteryREDD.java b/src/main/java/com/hbm/blocks/network/MachineBatteryREDD.java new file mode 100644 index 000000000..ee40d8574 --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/MachineBatteryREDD.java @@ -0,0 +1,50 @@ +package com.hbm.blocks.network; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.storage.TileEntityBatteryREDD; + +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 MachineBatteryREDD extends BlockDummyable { + + public MachineBatteryREDD() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityBatteryREDD(); + if(meta >= 6) return new TileEntityProxyCombo().power().conductor(); + return null; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + return standardOpenBehavior(world, x, y, z, player, side); + } + + @Override public int[] getDimensions() { return new int[] {9, 0, 2, 2, 4, 4}; } + @Override public int getOffset() { return 2; } + + @Override + protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + x += dir.offsetX * o; + z += dir.offsetZ * o; + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + this.makeExtra(world, x + dir.offsetX * 2 + rot.offsetX * 2, y, z + dir.offsetZ * 2 + rot.offsetZ * 2); + this.makeExtra(world, x + dir.offsetX * 2 - rot.offsetX * 2, y, z + dir.offsetZ * 2 - rot.offsetZ * 2); + this.makeExtra(world, x - dir.offsetX * 2 + rot.offsetX * 2, y, z - dir.offsetZ * 2 + rot.offsetZ * 2); + this.makeExtra(world, x - dir.offsetX * 2 - rot.offsetX * 2, y, z - dir.offsetZ * 2 - rot.offsetZ * 2); + this.makeExtra(world, x + rot.offsetX * 4, y, z + rot.offsetZ * 4); + this.makeExtra(world, x - rot.offsetX * 4, y, z - rot.offsetZ * 4); + } +} diff --git a/src/main/java/com/hbm/blocks/network/MachineBatterySocket.java b/src/main/java/com/hbm/blocks/network/MachineBatterySocket.java index a1030cd99..89ccdf7ce 100644 --- a/src/main/java/com/hbm/blocks/network/MachineBatterySocket.java +++ b/src/main/java/com/hbm/blocks/network/MachineBatterySocket.java @@ -35,6 +35,7 @@ public class MachineBatterySocket extends BlockDummyable implements ITooltipProv @Override public int[] getDimensions() { return new int[] {1, 0, 1, 0, 1, 0}; } @Override public int getOffset() { return 0; } + @Override protected 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/commands/CommandReapNetworks.java b/src/main/java/com/hbm/commands/CommandReapNetworks.java new file mode 100644 index 000000000..a52c41e3d --- /dev/null +++ b/src/main/java/com/hbm/commands/CommandReapNetworks.java @@ -0,0 +1,49 @@ +package com.hbm.commands; + +import com.hbm.uninos.GenNode; +import com.hbm.uninos.UniNodespace; +import com.hbm.util.ChatBuilder; + +import net.minecraft.command.CommandBase; +import net.minecraft.command.ICommandSender; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.EnumChatFormatting; + +public class CommandReapNetworks extends CommandBase { + + @Override + public String getCommandName() { + return "ntmreapnetworks"; + } + + @Override + public String getCommandUsage(ICommandSender sender) { + return "/ntmreapnetworks"; + } + + @Override + public void processCommand(ICommandSender sender, String[] args) { + + try { + + UniNodespace.activeNodeNets.forEach((net) -> { + net.links.forEach((link) -> { ((GenNode)link).expired = true; }); + net.links.clear(); + net.providerEntries.clear(); + net.receiverEntries.clear(); + }); + UniNodespace.activeNodeNets.clear(); + UniNodespace.worlds.clear(); + + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "Nodespace cleared :)")); + + } catch(Exception ex) { + sender.addChatMessage(ChatBuilder.start("----------------------------------").color(EnumChatFormatting.GRAY).flush()); + sender.addChatMessage(ChatBuilder.start("An error has occoured during network reap, consult the log for details.").color(EnumChatFormatting.RED).flush()); + sender.addChatMessage(ChatBuilder.start(ex.getLocalizedMessage()).color(EnumChatFormatting.RED).flush()); + sender.addChatMessage(ChatBuilder.start(ex.getStackTrace()[0].toString()).color(EnumChatFormatting.RED).flush()); + sender.addChatMessage(ChatBuilder.start("----------------------------------").color(EnumChatFormatting.GRAY).flush()); + throw ex; + } + } +} diff --git a/src/main/java/com/hbm/crafting/ConsumableRecipes.java b/src/main/java/com/hbm/crafting/ConsumableRecipes.java index 07500552b..d8fc7090b 100644 --- a/src/main/java/com/hbm/crafting/ConsumableRecipes.java +++ b/src/main/java/com/hbm/crafting/ConsumableRecipes.java @@ -4,6 +4,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.inventory.fluid.Fluids; +import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack; import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; import com.hbm.items.ItemEnums; @@ -181,9 +182,9 @@ public class ConsumableRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.pads_static, 1), new Object[] { "CDC", "ISI", "CDC", 'C', CU.ingot(), 'D', ModItems.ducttape, 'I', ANY_RUBBER.ingot(), 'S', ModItems.pads_slime }); //Batteries - CraftingManager.addRecipeAuto(new ItemStack(ModItems.armor_battery, 1), new Object[] { "PCP", "PCP", "PCP", 'P', STEEL.plate(), 'C', ModBlocks.capacitor_gold }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.armor_battery_mk2, 1), new Object[] { "PCP", "PCP", "PCP", 'P', ANY_PLASTIC.ingot(), 'C', ModBlocks.capacitor_niobium }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.armor_battery_mk3, 1), new Object[] { "PCP", "PCP", "PCP", 'P', GOLD.plate(), 'C', ModBlocks.capacitor_tantalium }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.armor_battery, 1), new Object[] { "PCP", "PCP", "PCP", 'P', STEEL.plate(), 'C', new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_GOLD.ordinal()) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.armor_battery_mk2, 1), new Object[] { "PCP", "PCP", "PCP", 'P', ANY_PLASTIC.ingot(), 'C', new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_NIOBIUM.ordinal()) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.armor_battery_mk3, 1), new Object[] { "PCP", "PCP", "PCP", 'P', GOLD.plate(), 'C', new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_TANTALUM.ordinal()) }); //Special Mods CraftingManager.addRecipeAuto(new ItemStack(ModItems.horseshoe_magnet, 1), new Object[] { "L L", "I I", "ILI", 'L', ModItems.lodestone, 'I', IRON.ingot() }); diff --git a/src/main/java/com/hbm/crafting/ToolRecipes.java b/src/main/java/com/hbm/crafting/ToolRecipes.java index 814607a6c..e3a63d760 100644 --- a/src/main/java/com/hbm/crafting/ToolRecipes.java +++ b/src/main/java/com/hbm/crafting/ToolRecipes.java @@ -9,6 +9,7 @@ import static com.hbm.inventory.OreDictManager.*; import com.hbm.items.ItemEnums.EnumPlantType; import com.hbm.items.ItemGenericPart.EnumPartType; import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack; import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.items.tool.ItemBlowtorch; import com.hbm.items.tool.ItemModMinecart; @@ -62,10 +63,10 @@ public class ToolRecipes { addShovel( DESH.ingot(), ModItems.desh_shovel); addHoe( DESH.ingot(), ModItems.desh_hoe); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_sword, 1), new Object[] { "RPR", "RPR", " B ", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', DURA.bolt(), 'M', ModItems.motor, 'B', ModItems.battery_lithium }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_pickaxe, 1), new Object[] { "RDM", " PB", " P ", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', DURA.bolt(), 'M', ModItems.motor, 'B', ModItems.battery_lithium }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_axe, 1), new Object[] { " DP", "RRM", " PB", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', DURA.bolt(), 'M', ModItems.motor, 'B', ModItems.battery_lithium }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_shovel, 1), new Object[] { " P", "RRM", " B", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', DURA.bolt(), 'M', ModItems.motor, 'B', ModItems.battery_lithium }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_sword, 1), new Object[] { "RPR", "RPR", " B ", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', DURA.bolt(), 'M', ModItems.motor, 'B', EnumBatteryPack.BATTERY_LEAD.stack() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_pickaxe, 1), new Object[] { "RDM", " PB", " P ", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', DURA.bolt(), 'M', ModItems.motor, 'B', EnumBatteryPack.BATTERY_LEAD.stack() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_axe, 1), new Object[] { " DP", "RRM", " PB", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', DURA.bolt(), 'M', ModItems.motor, 'B', EnumBatteryPack.BATTERY_LEAD.stack() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_shovel, 1), new Object[] { " P", "RRM", " B", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', DURA.bolt(), 'M', ModItems.motor, 'B', EnumBatteryPack.BATTERY_LEAD.stack() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.centri_stick, 1), new Object[] { ModItems.centrifuge_element, ModItems.energy_core, KEY_STICK }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.smashing_hammer, 1), new Object[] { "STS", "SPS", " P ", 'S', STEEL.block(), 'T', W.block(), 'P', ANY_PLASTIC.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.meteorite_sword, 1), new Object[] { " B", "GB ", "SG ", 'B', ModItems.blade_meteorite, 'G', GOLD.plate(), 'S', KEY_STICK }); @@ -136,7 +137,7 @@ public class ToolRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.mirror_tool), new Object[] { " A ", " IA", "I ", 'A', AL.ingot(), 'I', IRON.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.rbmk_tool), new Object[] { " A ", " IA", "I ", 'A', PB.ingot(), 'I', IRON.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.power_net_tool), new Object[] { "WRW", " I ", " B ", 'W', MINGRADE.wireFine(), 'R', REDSTONE.dust(), 'I', IRON.ingot(), 'B', ModItems.battery_generic }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.power_net_tool), new Object[] { "WRW", " I ", " B ", 'W', MINGRADE.wireFine(), 'R', REDSTONE.dust(), 'I', IRON.ingot(), 'B', EnumBatteryPack.BATTERY_LEAD.stack() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.analysis_tool), new Object[] { " G", " S ", "S ", 'G', KEY_ANYPANE, 'S', STEEL.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.toolbox), new Object[] { "CCC", "CIC", 'C', CU.plate(), 'I', IRON.ingot() }); diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index 96a34b51d..e597fec39 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -12,6 +12,7 @@ import static com.hbm.inventory.OreDictManager.*; import com.hbm.items.ItemAmmoEnums.*; import com.hbm.items.ItemEnums.EnumCasingType; import com.hbm.items.ItemEnums.EnumSecretType; +import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack; import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.items.ModItems; import com.hbm.items.weapon.GunB92Cell; @@ -148,7 +149,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.DRILL_SATURNITE.ordinal()), new Object[] { " IP", "IIM", " IP", 'I', BIGMT.ingot(), 'P', ANY_HARDPLASTIC.ingot(), 'M', WEAPONSTEEL.mechanism() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.ENGINE_DIESEL.ordinal()), new Object[] { "DSD", "PPP", "DSD", 'D', DURA.plate(), 'P', ModItems.piston_selenium, 'S', STEEL.pipe() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.ENGINE_AVIATION.ordinal()), new Object[] { "DSD", "PPP", "DSD", 'D', DURA.plateCast(), 'P', ModItems.piston_selenium, 'S', GUNMETAL.mechanism() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.ENGINE_ELECTRIC.ordinal()), new Object[] { "DSD", "PPP", "DSD", 'D', ANY_PLASTIC.ingot(), 'P', GOLD.wireDense(), 'S', ModBlocks.capacitor_gold }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.ENGINE_ELECTRIC.ordinal()), new Object[] { "DSD", "PPP", "DSD", 'D', ANY_PLASTIC.ingot(), 'P', GOLD.wireDense(), 'S', new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_GOLD.ordinal()) }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.ENGINE_TURBO.ordinal()), new Object[] { "DSD", "PPP", "DSD", 'D', ANY_BISMOIDBRONZE.plateCast(), 'P', ModItems.piston_selenium, 'S', WEAPONSTEEL.mechanism() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.MAGNET.ordinal()), new Object[] { "RGR", "GBG", "RGR", 'R', RUBBER.ingot(), 'G', GOLD.wireDense(), 'B', NB.block() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.SIFTER.ordinal()), new Object[] { "IGI", "IGI", 'I', DURA.ingot(), 'G', ModBlocks.steel_grate }); @@ -310,6 +311,9 @@ public class WeaponRecipes { //Nuke parts CraftingManager.addRecipeAuto(new ItemStack(ModItems.n2_charge, 1), new Object[] { " D ", "ERE", " D ", 'D', ModItems.ducttape, 'E', ModBlocks.det_charge, 'R', REDSTONE.block() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.battery_spark, 1), new Object[] { " W ", "DSD", "DSD", 'W', MAGTUNG.wireDense(), 'D', ModItems.plate_dineutronium, 'S', ModItems.powder_spark_mix }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.battery_trixite, 1), new Object[] { " W ", "DSD", "DTD", 'W', MAGTUNG.wireDense(), 'D', BIGMT.plateCast(), 'S', ModItems.powder_power, 'T', ModItems.crystal_trixite }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.battery_trixite, 1), new Object[] { " W ", "DTD", "DSD", 'W', MAGTUNG.wireDense(), 'D', BIGMT.plateCast(), 'S', ModItems.powder_power, 'T', ModItems.crystal_trixite }); //Custom nuke rods CraftingManager.addRecipeAuto(new ItemStack(ModItems.custom_tnt, 1), new Object[] { " C ", "TIT", "TIT", 'C', CU.plate(), 'I', IRON.plate(), 'T', ANY_HIGHEXPLOSIVE.ingot() }); diff --git a/src/main/java/com/hbm/handler/EntityEffectHandler.java b/src/main/java/com/hbm/handler/EntityEffectHandler.java index 8a98850ac..9fc6d0c0e 100644 --- a/src/main/java/com/hbm/handler/EntityEffectHandler.java +++ b/src/main/java/com/hbm/handler/EntityEffectHandler.java @@ -676,7 +676,7 @@ public class EntityEffectHandler { FlameCreator.composeEffect(entity.worldObj, x - living.width / 2 + living.width * rand.nextDouble(), y + rand.nextDouble() * living.height, z - living.width / 2 + living.width * rand.nextDouble(), FlameCreator.META_BLACK); } - if(props.fire > 0 || props.phosphorus > 0 || props.balefire > 0) if(!entity.isEntityAlive()) ConfettiUtil.decideConfetti(living, DamageSource.onFire); + if(props.fire > 0 || props.phosphorus > 0 || props.balefire > 0 || props.blackFire > 0) if(!entity.isEntityAlive()) ConfettiUtil.decideConfetti(living, DamageSource.onFire); } private static void handleDashing(Entity entity) { diff --git a/src/main/java/com/hbm/inventory/container/ContainerBatteryREDD.java b/src/main/java/com/hbm/inventory/container/ContainerBatteryREDD.java new file mode 100644 index 000000000..e2478b79c --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerBatteryREDD.java @@ -0,0 +1,62 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotNonRetarded; +import com.hbm.tileentity.machine.storage.TileEntityBatteryREDD; + +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 ContainerBatteryREDD extends Container { + + protected TileEntityBatteryREDD socket; + + public ContainerBatteryREDD(InventoryPlayer invPlayer, TileEntityBatteryREDD tedf) { + this.socket = tedf; + + this.addSlotToContainer(new SlotNonRetarded(socket, 0, 26, 53)); + this.addSlotToContainer(new SlotNonRetarded(socket, 1, 80, 53)); + + 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, 99 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 157)); + } + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return socket.isUseableByPlayer(player); + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack copy = null; + Slot slot = (Slot) this.inventorySlots.get(index); + + if(slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + copy = stack.copy(); + + if(index <= 1) { + if(!this.mergeItemStack(stack, 2, this.inventorySlots.size(), true)) return null; + } else { + if(!this.mergeItemStack(stack, 0, 2, false)) return null; + } + + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); + } else { + slot.onSlotChanged(); + } + } + + return copy; + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/FluidType.java b/src/main/java/com/hbm/inventory/fluid/FluidType.java index f983c90ed..aed5ef93c 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidType.java +++ b/src/main/java/com/hbm/inventory/fluid/FluidType.java @@ -70,7 +70,12 @@ public class FluidType { this.id = Fluids.registerSelf(this); } + /** For custom fluids */ public FluidType(String name, int color, int p, int f, int r, EnumSymbol symbol, String texName, int tint, int id, String displayName) { + setupCustom(name, color, p, f, r, symbol, texName, tint, id, displayName); + } + + public FluidType setupCustom(String name, int color, int p, int f, int r, EnumSymbol symbol, String texName, int tint, int id, String displayName) { this.stringId = name; this.color = color; this.unlocalized = "hbmfluid." + name.toLowerCase(Locale.US); @@ -85,6 +90,7 @@ public class FluidType { this.id = id; Fluids.register(this, id); + return this; } public FluidType(int forcedId, String name, int color, int p, int f, int r, EnumSymbol symbol) { diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 9d8b6109e..494973163 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -817,7 +817,9 @@ public class Fluids { String texture = obj.get("texture").getAsString(); int temperature = obj.get("temperature").getAsInt(); - FluidType type = new FluidType(name, color, p, f, r, symbol, texture, tint, id, displayName).setTemp(temperature); + FluidType type = fluidMigration.get(name); + if(type == null) type = new FluidType(name, color, p, f, r, symbol, texture, tint, id, displayName).setTemp(temperature); + else type.setupCustom(name, color, p, f, r, symbol, texture, tint, id, displayName).setTemp(temperature); customFluids.add(type); } @@ -881,13 +883,16 @@ public class Fluids { ex.printStackTrace(); } } + + private static HashMap fluidMigration = new HashMap(); // since reloading would create new fluid instances, and those break existing machines public static void reloadFluids(){ File folder = MainRegistry.configHbmDir; File customTypes = new File(folder.getAbsolutePath() + File.separatorChar + "hbmFluidTypes.json"); if(!customTypes.exists()) initDefaultFluids(customTypes); - for(FluidType type : customFluids){ + for(FluidType type : customFluids) { + fluidMigration.put(type.getName(), type); idMapping.remove(type.getID()); registerOrder.remove(type); nameMapping.remove(type.getName()); @@ -895,7 +900,7 @@ public class Fluids { } customFluids.clear(); - for(FluidType type : foreignFluids){ + for(FluidType type : foreignFluids) { idMapping.remove(type.getID()); registerOrder.remove(type); nameMapping.remove(type.getName()); diff --git a/src/main/java/com/hbm/inventory/gui/GUIBatteryREDD.java b/src/main/java/com/hbm/inventory/gui/GUIBatteryREDD.java new file mode 100644 index 000000000..c8c2f5f55 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIBatteryREDD.java @@ -0,0 +1,87 @@ +package com.hbm.inventory.gui; + +import java.math.BigInteger; +import java.util.Locale; + +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; + +import com.hbm.inventory.container.ContainerBatteryREDD; +import com.hbm.lib.RefStrings; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; +import com.hbm.tileentity.machine.storage.TileEntityBatteryREDD; + +import net.minecraft.client.Minecraft; +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 GUIBatteryREDD extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_battery_redd.png"); + private TileEntityBatteryREDD battery; + + public GUIBatteryREDD(InventoryPlayer invPlayer, TileEntityBatteryREDD tedf) { + super(new ContainerBatteryREDD(invPlayer, tedf)); + battery = tedf; + + this.xSize = 176; + this.ySize = 181; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + } + + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + NBTTagCompound data = new NBTTagCompound(); + + if(this.checkClick(x, y, 133, 16, 18, 18)) { this.click(); data.setBoolean("low", true); } + if(this.checkClick(x, y, 133, 52, 18, 18)) { this.click(); data.setBoolean("high", true); } + if(this.checkClick(x, y, 152, 35, 16, 16)) { this.click(); data.setBoolean("priority", true); } + + if(!data.hasNoTags()) PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, battery.xCoord, battery.yCoord, battery.zCoord)); + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.battery.hasCustomInventoryName() ? this.battery.getInventoryName() : I18n.format(this.battery.getInventoryName()); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + + GL11.glPushMatrix(); + GL11.glDisable(GL12.GL_RESCALE_NORMAL); + GL11.glScaled(0.5, 0.5, 1); + + String label = String.format(Locale.US, "%,d", battery.power) + " HE"; + this.fontRendererObj.drawString(label, 242 - this.fontRendererObj.getStringWidth(label), 45, 0x00ff00); + + String deltaText = String.format(Locale.US, "%,d", battery.delta) + " HE/s"; + + int comp = battery.delta.compareTo(BigInteger.ZERO); + if(comp > 0) deltaText = EnumChatFormatting.GREEN + "+" + deltaText; + else if(comp < 0) deltaText = EnumChatFormatting.RED + deltaText; + else deltaText = EnumChatFormatting.YELLOW + "+" + deltaText; + + this.fontRendererObj.drawString(deltaText, 242 - this.fontRendererObj.getStringWidth(deltaText), 65, 0x00ff00); + + GL11.glPopMatrix(); + } + + @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); + + drawTexturedModalRect(guiLeft + 133, guiTop + 16, 176, 52 + battery.redLow * 18, 18, 18); + drawTexturedModalRect(guiLeft + 133, guiTop + 52, 176, 52 + battery.redHigh * 18, 18, 18); + drawTexturedModalRect(guiLeft + 152, guiTop + 35, 194, 52 + battery.priority.ordinal() * 16 - 16, 16, 16); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIBatterySocket.java b/src/main/java/com/hbm/inventory/gui/GUIBatterySocket.java index f9e0f5585..cc94ceae3 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIBatterySocket.java +++ b/src/main/java/com/hbm/inventory/gui/GUIBatterySocket.java @@ -99,6 +99,12 @@ public class GUIBatterySocket extends GuiInfoContainer { IBatteryItem item = (IBatteryItem) battery.slots[0].getItem(); long power = item.getCharge(battery.slots[0]); long maxPower = item.getMaxCharge(battery.slots[0]); + + if(power > Long.MAX_VALUE / 100) { + power /= 100; + maxPower /= 100; + } + if(maxPower <= 1) maxPower = 1; int p = (int) (power * 52 / maxPower); // won't work then flying too close to the sun (the limits of the LONG data type) drawTexturedModalRect(guiLeft + 62, guiTop + 69 - p, 176, 52 - p, 34, p); } diff --git a/src/main/java/com/hbm/inventory/recipes/AnnihilatorRecipes.java b/src/main/java/com/hbm/inventory/recipes/AnnihilatorRecipes.java index 2a1ae355d..b58b8d9d2 100644 --- a/src/main/java/com/hbm/inventory/recipes/AnnihilatorRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AnnihilatorRecipes.java @@ -14,6 +14,7 @@ import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; +import com.hbm.config.GeneralConfig; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.fluid.FluidType; @@ -59,23 +60,25 @@ public class AnnihilatorRecipes extends SerializableRecipe { @Override public void registerDefaults() { - recipes.put(STEEL.ingot(), new AnnihilatorRecipe(new Pair(new BigInteger("256"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "steel")))); - recipes.put(SI.billet(), new AnnihilatorRecipe(new Pair(new BigInteger("256"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "chip")))); - recipes.put(BI.nugget(), new AnnihilatorRecipe(new Pair(new BigInteger("128"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "chip_bismoid")))); - recipes.put(ModItems.pellet_charged, new AnnihilatorRecipe(new Pair(new BigInteger("1024"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "chip_quantum")))); - - recipes.put(U.billet(), new AnnihilatorRecipe(new Pair(new BigInteger("256"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "gascent")))); - recipes.put(ANY_PLASTIC.ingot(), new AnnihilatorRecipe(new Pair(new BigInteger("512"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "plastic")))); - recipes.put(RUBBER.ingot(), new AnnihilatorRecipe(new Pair(new BigInteger("512"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "rubber")))); - recipes.put(FERRO.ingot(), new AnnihilatorRecipe(new Pair(new BigInteger("1024"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "ferrouranium")))); - recipes.put(SR.dust(), new AnnihilatorRecipe(new Pair(new BigInteger("256"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "strontium")))); - recipes.put(ANY_HARDPLASTIC.ingot(), new AnnihilatorRecipe(new Pair(new BigInteger("1024"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "hardplastic")))); - recipes.put(ANY_RESISTANTALLOY.ingot(), new AnnihilatorRecipe(new Pair(new BigInteger("1024"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "tcalloy")))); - recipes.put(ModItems.powder_chlorophyte, new AnnihilatorRecipe(new Pair(new BigInteger("1024"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "chlorophyte")))); - - recipes.put(new ComparableStack(ModItems.ammo_standard, 1, EnumAmmo.BMG50_FMJ), new AnnihilatorRecipe(new Pair(new BigInteger("256"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "bmg")))); - recipes.put(new ComparableStack(ModItems.ammo_arty, 1, 0), new AnnihilatorRecipe(new Pair(new BigInteger("128"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "arty")))); - recipes.put(new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CONTROLLER), new AnnihilatorRecipe(new Pair(new BigInteger("128"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "controller")))); + if(GeneralConfig.enable528) { + recipes.put(STEEL.ingot(), new AnnihilatorRecipe(new Pair(new BigInteger("256"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "steel")))); + recipes.put(SI.billet(), new AnnihilatorRecipe(new Pair(new BigInteger("256"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "chip")))); + recipes.put(BI.nugget(), new AnnihilatorRecipe(new Pair(new BigInteger("128"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "chip_bismoid")))); + recipes.put(ModItems.pellet_charged, new AnnihilatorRecipe(new Pair(new BigInteger("1024"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "chip_quantum")))); + + recipes.put(U.billet(), new AnnihilatorRecipe(new Pair(new BigInteger("256"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "gascent")))); + recipes.put(ANY_PLASTIC.ingot(), new AnnihilatorRecipe(new Pair(new BigInteger("512"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "plastic")))); + recipes.put(RUBBER.ingot(), new AnnihilatorRecipe(new Pair(new BigInteger("512"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "rubber")))); + recipes.put(FERRO.ingot(), new AnnihilatorRecipe(new Pair(new BigInteger("1024"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "ferrouranium")))); + recipes.put(SR.dust(), new AnnihilatorRecipe(new Pair(new BigInteger("256"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "strontium")))); + recipes.put(ANY_HARDPLASTIC.ingot(), new AnnihilatorRecipe(new Pair(new BigInteger("1024"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "hardplastic")))); + recipes.put(ANY_RESISTANTALLOY.ingot(), new AnnihilatorRecipe(new Pair(new BigInteger("1024"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "tcalloy")))); + recipes.put(ModItems.powder_chlorophyte, new AnnihilatorRecipe(new Pair(new BigInteger("1024"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "chlorophyte")))); + + recipes.put(new ComparableStack(ModItems.ammo_standard, 1, EnumAmmo.BMG50_FMJ), new AnnihilatorRecipe(new Pair(new BigInteger("256"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "bmg")))); + recipes.put(new ComparableStack(ModItems.ammo_arty, 1, 0), new AnnihilatorRecipe(new Pair(new BigInteger("128"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "arty")))); + recipes.put(new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CONTROLLER), new AnnihilatorRecipe(new Pair(new BigInteger("128"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "controller")))); + } } @Override public String getFileName() { return "hbmAnnihilator.json"; } diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index c6a7bf0cf..6ad7036c3 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -115,10 +115,6 @@ import net.minecraft.item.ItemStack; makeRecipe(new ComparableStack(ModBlocks.machine_gascent, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_element, 4), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(DESH.ingot(), 2), new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.coil_tungsten, 4), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED.ordinal()) }, 300); makeRecipe(new ComparableStack(ModBlocks.machine_diesel, 1), new AStack[] {new OreDictStack(STEEL.shell(), 1), new ComparableStack(ModItems.piston_selenium, 1), new OreDictStack(STEEL.plateCast(), 1), new ComparableStack(ModItems.coil_copper, 4), }, 60); makeRecipe(new ComparableStack(ModBlocks.machine_rtg_grey, 1), new AStack[] {new ComparableStack(ModItems.rtg_unit, 3), new OreDictStack(STEEL.plate(), 4), new OreDictStack(MINGRADE.wireFine(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 3), },200); - makeRecipe(new ComparableStack(ModBlocks.machine_battery, 1), new AStack[] {new OreDictStack(STEEL.plateWelded(), 1), new OreDictStack(S.dust(), 12), new OreDictStack(PB.dust(), 12) },100); - makeRecipe(new ComparableStack(ModBlocks.machine_lithium_battery, 1), new AStack[] {new OreDictStack(ANY_PLASTIC.ingot(), 8), new OreDictStack(CO.dust(), 12), new OreDictStack(LI.dust(), 12) },100); - makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_battery, 1), new AStack[] {new OreDictStack(DESH.ingot(), 16), new OreDictStack(NP237.dust(), 12), new OreDictStack(SA326.dust(), 12) },200); - makeRecipe(new ComparableStack(ModBlocks.machine_dineutronium_battery, 1), new AStack[] {new OreDictStack(DNT.ingot(), 24), new ComparableStack(ModItems.powder_spark_mix, 12), new ComparableStack(ModItems.battery_spark_cell_1000, 1), new OreDictStack(CMB.ingot(), 32) }, 300); makeRecipe(new ComparableStack(ModBlocks.machine_shredder, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModBlocks.steel_beam, 2), new ComparableStack(Blocks.iron_bars, 2) },200); makeRecipe(new ComparableStack(ModBlocks.machine_well, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 20), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.pipes_steel, 1), new ComparableStack(ModItems.drill_titanium, 1) }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_pumpjack, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.plateWelded(), 8), new ComparableStack(ModItems.pipes_steel, 4), new ComparableStack(ModItems.tank_steel, 4), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.motor_desh) }, 400); @@ -131,10 +127,8 @@ import net.minecraft.item.ItemStack; makeRecipe(new ComparableStack(ModBlocks.machine_fluidtank, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(STEEL.plate(), 6), new OreDictStack(STEEL.shell(), 4), new OreDictStack(ANY_TAR.any(), 4), },150); makeRecipe(new ComparableStack(ModBlocks.machine_bat9000, 1), new AStack[] {new OreDictStack(STEEL.plate(), 16), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 2), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16), },150); makeRecipe(new ComparableStack(ModBlocks.machine_orbus, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 8), new OreDictStack(BIGMT.plate(), 12), new ComparableStack(ModItems.coil_advanced_alloy, 12), new ComparableStack(ModItems.battery_sc_polonium, 1) }, 200); - makeRecipe(new ComparableStack(ModBlocks.machine_mining_laser, 1), new AStack[] {new ComparableStack(ModItems.tank_steel, 3), !exp ? new OreDictStack(STEEL.plate(), 16) : new OreDictStack(STEEL.heavyComp(), 3), new ComparableStack(ModItems.crystal_redstone, 3), new ComparableStack(Items.diamond, 3), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.motor, 3), !exp ? new OreDictStack(DURA.ingot(), 4) : new OreDictStack(DESH.heavyComp(), 1), new OreDictStack(DURA.bolt(), 8), new ComparableStack(ModBlocks.machine_battery, 3), },400); makeRecipe(new ComparableStack(ModBlocks.machine_turbofan, 1), new AStack[] {!exp ? new OreDictStack(TI.shell(), 8) : new OreDictStack(TI.heavyComp(), 1), new OreDictStack(DURA.pipe(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 12), new ComparableStack(ModItems.turbine_tungsten, 1), new OreDictStack(GOLD.wireDense(), 12), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.BASIC.ordinal()) }, 300); makeRecipe(new ComparableStack(ModBlocks.machine_turbinegas, 1), new AStack[] {!exp ? new OreDictStack(STEEL.shell(), 10) : new OreDictStack(STEEL.heavyComp(), 2), new OreDictStack(GOLD.wireDense(), 12), new OreDictStack(DURA.pipe(), 4), new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.pipe(), 4), new ComparableStack(ModItems.turbine_tungsten, 3), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.ingot_rubber, 4), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.BASIC.ordinal())}, 600); - makeRecipe(new ComparableStack(ModBlocks.machine_teleporter, 1), new AStack[] {new OreDictStack(TI.ingot(), 8), new OreDictStack(ALLOY.plate(), 12), new OreDictStack(GOLD.wireFine(), 32), new ComparableStack(ModItems.entanglement_kit, 1), new ComparableStack(ModBlocks.machine_battery, 1) },300); makeRecipe(new ComparableStack(ModBlocks.watz_element, 3), new AStack[] {new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(ZR.ingot(), 2), new OreDictStack(BIGMT.ingot(), 2), new OreDictStack(ANY_HARDPLASTIC.ingot(), 4)},200); makeRecipe(new ComparableStack(ModBlocks.watz_cooler, 3), new AStack[] {new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(CU.plateCast(), 4), new OreDictStack(RUBBER.ingot(), 2), }, 200); makeRecipe(new ComparableStack(ModBlocks.watz_end, 3), new AStack[] {new OreDictStack(ANY_RESISTANTALLOY.plateWelded()), new OreDictStack(B.ingot(), 3), new OreDictStack(STEEL.plateWelded(), 2), }, 100); @@ -199,17 +193,6 @@ import net.minecraft.item.ItemStack; new ComparableStack(ModItems.part_generic, 32, EnumPartType.LDE) },600); - makeRecipe(new ComparableStack(ModItems.sat_base, 1), new AStack[] { - new OreDictStack(RUBBER.ingot(), 12), - new OreDictStack(TI.shell(), 3), - new ComparableStack(ModItems.thruster_large, 1), - new ComparableStack(ModItems.part_generic, 8, EnumPartType.LDE), - new ComparableStack(ModItems.plate_desh, 4), - new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), - new ComparableStack(ModItems.photo_panel, 24), - new ComparableStack(ModItems.circuit, 12, EnumCircuitType.BASIC), - new ComparableStack(ModBlocks.machine_lithium_battery, 1) - },500); makeRecipe(new ComparableStack(ModItems.sat_head_mapper, 1), new AStack[] { new OreDictStack(STEEL.shell(), 3), new ComparableStack(ModItems.plate_desh, 4), @@ -246,39 +229,6 @@ import net.minecraft.item.ItemStack; new ComparableStack(ModItems.crystal_xen, 1), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.ADVANCED) },1000); - makeRecipe(new ComparableStack(ModItems.sat_foeq, 1), new AStack[] { - new OreDictStack(TI.shell(), 3), - new ComparableStack(ModItems.plate_desh, 8), - new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.HYDROGEN.getID()), - new ComparableStack(ModItems.photo_panel, 16), - new ComparableStack(ModItems.thruster_nuclear, 1), - new ComparableStack(ModItems.ingot_uranium_fuel, 6), - new ComparableStack(ModItems.circuit, 24, EnumCircuitType.BASIC), - new ComparableStack(ModItems.magnetron, 3), - new ComparableStack(ModBlocks.machine_lithium_battery, 1) - },1200); - makeRecipe(new ComparableStack(ModItems.sat_miner, 1), new AStack[] { - new OreDictStack(BIGMT.plate(), 24), - new ComparableStack(ModItems.motor_desh, 2), - new ComparableStack(ModItems.drill_titanium, 2), - new ComparableStack(ModItems.circuit, 12, EnumCircuitType.ADVANCED), - new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), - new ComparableStack(ModItems.thruster_small, 1), - new ComparableStack(ModItems.photo_panel, 12), - new ComparableStack(ModItems.centrifuge_element, 4), - new ComparableStack(ModBlocks.machine_lithium_battery, 1) - },600); - makeRecipe(new ComparableStack(ModItems.sat_lunar_miner, 1), new AStack[] { - new ComparableStack(ModItems.ingot_meteorite, 4), - new ComparableStack(ModItems.plate_desh, 4), - new ComparableStack(ModItems.motor, 2), - new ComparableStack(ModItems.drill_titanium, 2), - new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED), - new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), - new ComparableStack(ModItems.thruster_small, 1), - new ComparableStack(ModItems.photo_panel, 12), - new ComparableStack(ModBlocks.machine_lithium_battery, 1) - },600); makeRecipe(new ComparableStack(ModItems.upgrade_overdrive_1, 1), new AStack[] { new ComparableStack(ModItems.upgrade_speed_3, 1), @@ -304,19 +254,6 @@ import net.minecraft.item.ItemStack; new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BISMOID), }, 500); - makeRecipe(new ComparableStack(ModBlocks.machine_fensu, 1), new AStack[] { - new ComparableStack(ModItems.ingot_electronium, 32), - new ComparableStack(ModBlocks.machine_dineutronium_battery, 16), - !exp ? new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 64) : new OreDictStack(ANY_RESISTANTALLOY.heavyComp(), 64), - new OreDictStack(DURA.block(), 16), - new OreDictStack(STAR.block(), 64), - new ComparableStack(ModBlocks.machine_transformer_dnt, 8), - new ComparableStack(ModItems.coil_magnetized_tungsten, 24), - new ComparableStack(ModItems.powder_magic, 64), - new ComparableStack(ModItems.plate_dineutronium, 24), - new ComparableStack(ModItems.ingot_u238m2), - new ComparableStack(ModItems.ingot_cft, 128) - }, 1200); makeRecipe(new ComparableStack(ModBlocks.machine_combustion_engine, 1), new AStack[] { new OreDictStack(STEEL.plate(), 16), new OreDictStack(CU.ingot(), 12), @@ -463,18 +400,6 @@ import net.minecraft.item.ItemStack; new OreDictStack(Fluids.LUBRICANT.getDict(1_000), 4) }, 600); - makeRecipe(new ComparableStack(ModBlocks.machine_cyclotron, 1), new AStack[] { - new ComparableStack(ModBlocks.machine_lithium_battery, 3), - new OreDictStack(ND.wireDense(), 32), - !exp ? new OreDictStack(STEEL.ingot(), 16) : new OreDictStack(STEEL.heavyComp(), 3), - new OreDictStack(STEEL.plate(), 32), - new OreDictStack(AL.plate(), 32), - new OreDictStack(ANY_PLASTIC.ingot(), 24), - new OreDictStack(RUBBER.ingot(), 24), - new OreDictStack(CU.plateCast(), 8), - new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC) - }, 600); - makeRecipe(new ComparableStack(ModBlocks.reactor_zirnox, 1), new AStack[] { !exp ? new OreDictStack(STEEL.shell(), 4) : new OreDictStack(STEEL.heavyComp(), 1), new OreDictStack(STEEL.pipe(), 8), @@ -527,113 +452,6 @@ import net.minecraft.item.ItemStack; new ComparableStack(ModItems.motor, 2), }, 200); - makeRecipe(new ComparableStack(ModBlocks.turret_chekhov, 1), new AStack[] { - new ComparableStack(ModBlocks.machine_battery, 1), - new OreDictStack(STEEL.ingot(), 16), - new ComparableStack(ModItems.motor, 3), - new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), - new OreDictStack(STEEL.pipe(), 3), - new OreDictStack(GUNMETAL.mechanism(), 3), - new ComparableStack(ModBlocks.crate_iron, 1), - new ComparableStack(ModItems.crt_display, 1) - }, 200); - makeRecipe(new ComparableStack(ModBlocks.turret_friendly, 1), new AStack[] { - new ComparableStack(ModBlocks.machine_battery, 1), - new OreDictStack(STEEL.ingot(), 16), - new ComparableStack(ModItems.motor, 3), - new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC), - new OreDictStack(STEEL.pipe(), 3), - new OreDictStack(GUNMETAL.mechanism(), 1), - new ComparableStack(ModBlocks.crate_iron, 1), - new ComparableStack(ModItems.crt_display, 1) - }, 200); - makeRecipe(new ComparableStack(ModBlocks.turret_jeremy, 1), new AStack[] { - new ComparableStack(ModBlocks.machine_battery, 1), - new OreDictStack(STEEL.ingot(), 16), - new ComparableStack(ModItems.motor, 2), - new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), - new ComparableStack(ModItems.motor_desh, 1), - new OreDictStack(STEEL.shell(), 3), - new OreDictStack(WEAPONSTEEL.mechanism(), 3), - new ComparableStack(ModBlocks.crate_steel, 1), - new ComparableStack(ModItems.crt_display, 1) - }, 200); - makeRecipe(new ComparableStack(ModBlocks.turret_tauon, 1), new AStack[] { - new ComparableStack(ModBlocks.machine_lithium_battery, 1), - new OreDictStack(STEEL.ingot(), 16), - new OreDictStack(ANY_PLASTIC.ingot(), 4), - new ComparableStack(ModItems.motor, 2), - new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), - new ComparableStack(ModItems.motor_desh, 1), - new OreDictStack(CU.ingot(), 32), - new OreDictStack(BIGMT.mechanism(), 3), - new ComparableStack(ModItems.battery_lithium, 1), - new ComparableStack(ModItems.crt_display, 1) - }, 200); - makeRecipe(new ComparableStack(ModBlocks.turret_richard, 1), new AStack[] { - new ComparableStack(ModBlocks.machine_battery, 1), - new OreDictStack(STEEL.ingot(), 16), - new ComparableStack(ModItems.motor, 2), - new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), - new OreDictStack(ANY_PLASTIC.ingot(), 2), - new OreDictStack(STEEL.shell(), 8), - new OreDictStack(WEAPONSTEEL.mechanism(), 3), - new ComparableStack(ModBlocks.crate_steel, 1), - new ComparableStack(ModItems.crt_display, 1) - }, 200); - makeRecipe(new ComparableStack(ModBlocks.turret_howard, 1), new AStack[] { - new ComparableStack(ModBlocks.machine_battery, 1), - new OreDictStack(STEEL.ingot(), 24), - new ComparableStack(ModItems.motor, 2), - new ComparableStack(ModItems.motor_desh, 2), - new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ADVANCED), - new OreDictStack(STEEL.pipe(), 10), - new OreDictStack(WEAPONSTEEL.mechanism(), 3), - new ComparableStack(ModBlocks.crate_steel, 1), - new ComparableStack(ModItems.crt_display, 1) - }, 200); - makeRecipe(new ComparableStack(ModBlocks.turret_maxwell, 1), new AStack[] { - new ComparableStack(ModBlocks.machine_lithium_battery, 1), - new OreDictStack(STEEL.ingot(), 24), - new ComparableStack(ModItems.motor, 2), - new ComparableStack(ModItems.circuit, 2, EnumCircuitType.ADVANCED), - new OreDictStack(STEEL.pipe(), 4), - new OreDictStack(BIGMT.mechanism(), 3), - new ComparableStack(ModItems.magnetron, 16), - new OreDictStack(ANY_RESISTANTALLOY.ingot(), 8), - new ComparableStack(ModItems.crt_display, 1) - }, 200); - makeRecipe(new ComparableStack(ModBlocks.turret_fritz, 1), new AStack[] { - new ComparableStack(ModBlocks.machine_battery, 1), - new OreDictStack(STEEL.ingot(), 16), - new ComparableStack(ModItems.motor, 3), - new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), - new OreDictStack(STEEL.pipe(), 8), - new OreDictStack(GUNMETAL.mechanism(), 3), - new ComparableStack(ModBlocks.barrel_steel, 1), - new ComparableStack(ModItems.crt_display, 1) - }, 200); - makeRecipe(new ComparableStack(ModBlocks.turret_arty, 1), new AStack[] { - new ComparableStack(ModBlocks.machine_battery, 1), - new OreDictStack(STEEL.ingot(), 128), - new ComparableStack(ModItems.motor_desh, 5), - new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ADVANCED), - new OreDictStack(STEEL.pipe(), 12), - new OreDictStack(WEAPONSTEEL.mechanism(), 16), - new ComparableStack(ModBlocks.machine_radar, 1), - new ComparableStack(ModItems.crt_display, 1) - }, 200); - makeRecipe(new ComparableStack(ModBlocks.turret_himars, 1), new AStack[] { - new ComparableStack(ModBlocks.machine_battery, 1), - new OreDictStack(STEEL.ingot(), 128), - new OreDictStack(ANY_PLASTIC.ingot(), 64), - new ComparableStack(ModItems.motor_desh, 5), - new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED), - new OreDictStack(BIGMT.mechanism(), 8), - new ComparableStack(ModBlocks.machine_radar, 1), - new ComparableStack(ModItems.crt_display, 1) - }, 300); - makeRecipe(new ComparableStack(ModItems.ammo_himars, 1, ItemAmmoHIMARS.SMALL), new AStack[] { new OreDictStack(STEEL.plate(), 24), new OreDictStack(ANY_PLASTIC.ingot(), 12), @@ -707,14 +525,6 @@ import net.minecraft.item.ItemStack; new OreDictStack(RUBBER.ingot(), 8), new OreDictStack(STEEL.pipe(), 8), }, 400); - makeRecipe(new ComparableStack(Item.getItemFromBlock(ModBlocks.machine_fel), 1), new AStack[] { - new ComparableStack(ModBlocks.machine_lithium_battery, 1), - new OreDictStack(ALLOY.wireDense(), 64), - !exp ? new OreDictStack(STEEL.plateCast(), 12) : new OreDictStack(STEEL.heavyComp(), 1), - new OreDictStack(ANY_PLASTIC.ingot(), 16), - new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CAPACITOR), - new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC) - }, 400); makeRecipe(new ComparableStack(ModBlocks.rbmk_blank, 1), new AStack[] { new ComparableStack(ModBlocks.concrete_asbestos, 4), @@ -851,17 +661,6 @@ import net.minecraft.item.ItemStack; new ComparableStack(ModItems.circuit, 4, EnumCircuitType.QUANTUM), }, 400); - makeRecipe(new ComparableStack(ModBlocks.machine_exposure_chamber, 1), new AStack[] { - !exp ? new OreDictStack(AL.plateCast(), 12) : new OreDictStack(AL.heavyComp(), 1), - new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), - new OreDictStack(ANY_HARDPLASTIC.ingot(), 12), - new OreDictStack(ALLOY.wireDense(), 32), - new ComparableStack(ModItems.motor_desh, 2), - new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID), - new ComparableStack(ModBlocks.capacitor_tantalium, 1), - new ComparableStack(ModBlocks.glass_quartz, 16) - }, 200); - makeRecipe(new ComparableStack(ModBlocks.launch_pad_large, 1), new AStack[] { new OreDictStack(STEEL.plateCast(), 6), @@ -1010,20 +809,6 @@ import net.minecraft.item.ItemStack; addTantalium(new ComparableStack(ModBlocks.turret_fritz, 1), 3); addTantalium(new ComparableStack(ModBlocks.launch_pad, 1), 5); - makeRecipe(new ComparableStack(ModBlocks.machine_cyclotron, 1), new AStack[] { - new ComparableStack(ModBlocks.machine_lithium_battery, 3), - new ComparableStack(ModBlocks.hadron_coil_neodymium, 8), - new OreDictStack(ALLOY.wireFine(), 64), - new OreDictStack(STEEL.ingot(), 16), - new OreDictStack(STEEL.plate(), 32), - new OreDictStack(AL.plate(), 32), - new OreDictStack(ANY_PLASTIC.ingot(), 24), - new OreDictStack(RUBBER.ingot(), 24), - new OreDictStack(CU.plateCast(), 8), - new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC), - new ComparableStack(ModItems.circuit, 50, EnumCircuitType.CAPACITOR_BOARD) - }, 600); - makeRecipe(new ComparableStack(ModBlocks.rbmk_console, 1), new AStack[] { new OreDictStack(STEEL.ingot(), 16), new OreDictStack(AL.plate(), 32), @@ -1040,34 +825,6 @@ import net.minecraft.item.ItemStack; new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC), new ComparableStack(ModItems.circuit, 10, EnumCircuitType.CAPACITOR_BOARD), }, 300); - - makeRecipe(new ComparableStack(ModBlocks.struct_launcher_core, 1), new AStack[] { - new ComparableStack(ModBlocks.machine_battery, 3), - new ComparableStack(ModBlocks.steel_scaffold, 10), - new OreDictStack(STEEL.ingot(), 16), - new OreDictStack(ANY_PLASTIC.ingot(), 8), - new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED), - new ComparableStack(ModItems.circuit, 15, EnumCircuitType.CAPACITOR_BOARD), - }, 200); - - makeRecipe(new ComparableStack(ModBlocks.struct_launcher_core_large, 1), new AStack[] { - new ComparableStack(ModBlocks.machine_battery, 5), - new ComparableStack(ModBlocks.steel_scaffold, 10), - new OreDictStack(STEEL.ingot(), 24), - new OreDictStack(ANY_PLASTIC.ingot(), 12), - new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED), - new ComparableStack(ModItems.circuit, 25, EnumCircuitType.CAPACITOR_BOARD), - }, 200); - - makeRecipe(new ComparableStack(ModBlocks.struct_soyuz_core, 1), new AStack[] { - new ComparableStack(ModBlocks.machine_lithium_battery, 5), - new ComparableStack(ModBlocks.steel_scaffold, 24), - new OreDictStack(STEEL.ingot(), 32), - new OreDictStack(ANY_PLASTIC.ingot(), 24), - new ComparableStack(ModItems.circuit, 5, EnumCircuitType.ADVANCED), - new ComparableStack(ModItems.upgrade_power_3, 3), - new ComparableStack(ModItems.circuit, 100, EnumCircuitType.CAPACITOR_BOARD), - }, 200); } makeRecipe(new ComparableStack(ModBlocks.machine_fracking_tower), new AStack[] { diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java index d399ba1bd..5013ba2ba 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java @@ -27,6 +27,7 @@ import com.hbm.items.ItemEnums.EnumExpensiveType; import com.hbm.items.ItemEnums.EnumSecretType; import com.hbm.items.ItemGenericPart.EnumPartType; import com.hbm.items.machine.ItemFluidIcon; +import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack; import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.items.machine.ItemDrillbit.EnumDrillType; import com.hbm.items.machine.ItemPACoil.EnumCoilType; @@ -82,7 +83,7 @@ public class AssemblyMachineRecipes extends GenericRecipes { this.register(new GenericRecipe("ass.platebismuth").setup(200, 100).outputItems(new ItemStack(ModItems.plate_bismuth, 1)) .inputItems(new ComparableStack(ModItems.nugget_bismuth, 2), new OreDictStack(U238.billet(), 2), new OreDictStack(NB.dust(), 1))); this.register(new GenericRecipe("ass.plateeuphemium").setup(600, 100).outputItems(new ItemStack(ModItems.plate_euphemium, 1)) - .inputItems(new OreDictStack(EUPH.ingot(), 4), new OreDictStack(AT.dust(), 3), new OreDictStack(BI.dust(), 1), new OreDictStack(VOLCANIC.gem(), 1), new ComparableStack(ModItems.ingot_osmiridium))); + .inputItems(new OreDictStack(EUPH.ingot(), 4), new OreDictStack(AT.dust(), 3), new OreDictStack(BI.dust(), 1), new OreDictStack(VOLCANIC.gem(), 1), new OreDictStack(OSMIRIDIUM.ingot()))); this.register(new GenericRecipe("ass.platednt").setup(600, 100).outputItems(new ItemStack(ModItems.plate_dineutronium, 4)) .inputItems(new OreDictStack(DNT.ingot(), 4), new ComparableStack(ModItems.powder_spark_mix, 2), new OreDictStack(DESH.ingot(), 1))); @@ -306,7 +307,7 @@ public class AssemblyMachineRecipes extends GenericRecipes { .inputItems(new OreDictStack(STEEL.plate(), 8), new OreDictStack(ANY_RUBBER.ingot(), 4), new ComparableStack(ModItems.part_generic, 2, EnumPartType.PISTON_HYDRAULIC.ordinal()), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC)) .inputItemsEx(new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.HEAVY_FRAME), new ComparableStack(ModItems.part_generic, 4, EnumPartType.PISTON_HYDRAULIC.ordinal()), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC))); this.register(new GenericRecipe("ass.fel").setup(400, 100).outputItems(new ItemStack(ModBlocks.machine_fel, 1)) - .inputItems(new ComparableStack(ModBlocks.machine_lithium_battery, 1), new OreDictStack(ALLOY.wireDense(), 64), new OreDictStack(STEEL.plateCast(), 12), new OreDictStack(ANY_PLASTIC.ingot(), 16), new ComparableStack(ModItems.part_generic, 4, EnumPartType.GLASS_POLARIZED), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CAPACITOR), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC)) + .inputItems(new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LITHIUM), new OreDictStack(ALLOY.wireDense(), 64), new OreDictStack(STEEL.plateCast(), 12), new OreDictStack(ANY_PLASTIC.ingot(), 16), new ComparableStack(ModItems.part_generic, 4, EnumPartType.GLASS_POLARIZED), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CAPACITOR), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC)) .inputItemsEx(new ComparableStack(ModItems.item_expensive, 3, EnumExpensiveType.FERRO_PLATING), new OreDictStack(ALLOY.wireDense(), 64), new OreDictStack(ANY_PLASTIC.ingot(), 16), new ComparableStack(ModItems.part_generic, 4, EnumPartType.GLASS_POLARIZED), new ComparableStack(ModItems.item_expensive, 3, EnumExpensiveType.CIRCUIT))); this.register(new GenericRecipe("ass.silex").setup(400, 100).outputItems(new ItemStack(ModBlocks.machine_silex, 1)) .inputItems(new ComparableStack(ModBlocks.glass_quartz, 16), new OreDictStack(STEEL.plateCast(), 8), new OreDictStack(DESH.ingot(), 4), new OreDictStack(RUBBER.ingot(), 8), new OreDictStack(STEEL.pipe(), 8)) @@ -339,7 +340,7 @@ public class AssemblyMachineRecipes extends GenericRecipes { .inputItems(new OreDictStack(STEEL.plate(), 16), new OreDictStack(TI.shell(), 4), new OreDictStack(DURA.plate(), 4), new ComparableStack(ModItems.crystal_redstone, 3), new ComparableStack(Items.diamond, 3), new OreDictStack(ANY_PLASTIC.ingot(), 8), new ComparableStack(ModItems.motor, 3)) .inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.HEAVY_FRAME), new OreDictStack(DURA.plate(), 4), new ComparableStack(ModItems.crystal_redstone, 12), new OreDictStack(ANY_PLASTIC.ingot(), 16), new ComparableStack(ModItems.motor_desh, 3))); this.register(new GenericRecipe("ass.teleporter").setup(100, 100).outputItems(new ItemStack(ModBlocks.machine_teleporter, 1)) - .inputItems(new OreDictStack(TI.plate(), 12), new OreDictStack(ALLOY.plate(), 12), new OreDictStack(GOLD.wireFine(), 32), new ComparableStack(ModItems.entanglement_kit, 1), new ComparableStack(ModBlocks.machine_battery, 1))); + .inputItems(new OreDictStack(TI.plate(), 12), new OreDictStack(ALLOY.plate(), 12), new OreDictStack(GOLD.wireFine(), 32), new ComparableStack(ModItems.entanglement_kit, 1), new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LITHIUM))); this.register(new GenericRecipe("ass.radar").setup(300, 100).outputItems(new ItemStack(ModBlocks.machine_radar, 1)) .inputItems(new OreDictStack(STEEL.plate(), 12), new OreDictStack(ANY_RUBBER.ingot(), 12), new ComparableStack(ModItems.magnetron, 5), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.BASIC.ordinal()), new ComparableStack(ModItems.crt_display, 4)) .inputItemsEx(new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.HEAVY_FRAME), new ComparableStack(ModItems.magnetron, 16), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.CIRCUIT), new ComparableStack(ModItems.crt_display, 4))); @@ -400,36 +401,49 @@ public class AssemblyMachineRecipes extends GenericRecipes { .inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.FERRO_PLATING), new ComparableStack(ModItems.motor_desh, 5), new OreDictStack(STEEL.pipe(), 24), new OreDictStack(Fluids.LUBRICANT.getDict(1_000), 16))); // batteries - this.register(new GenericRecipe("ass.battery").setup(100, 100).outputItems(new ItemStack(ModBlocks.machine_battery, 1)) - .inputItems(new OreDictStack(STEEL.plateWelded(), 1), new OreDictStack(S.dust(), 12), new OreDictStack(PB.dust(), 12))); - this.register(new GenericRecipe("ass.batterylithium").setup(100, 100).outputItems(new ItemStack(ModBlocks.machine_lithium_battery, 1)) - .inputItems(new OreDictStack(ANY_PLASTIC.ingot(), 8), new OreDictStack(CO.dust(), 12), new OreDictStack(LI.dust(), 12))); - this.register(new GenericRecipe("ass.batteryschrabidium").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_schrabidium_battery, 1)) - .inputItems(new OreDictStack(DESH.ingot(), 16), new OreDictStack(NP237.dust(), 12), new OreDictStack(SA326.dust(), 12))); - this.register(new GenericRecipe("ass.batterydnt").setup(400, 100).outputItems(new ItemStack(ModBlocks.machine_dineutronium_battery, 1)) - .inputItems(new OreDictStack(DNT.ingot(), 24), new ComparableStack(ModItems.powder_spark_mix, 12), new ComparableStack(ModItems.battery_spark_cell_1000, 1), new OreDictStack(CMB.ingot(), 32))); - this.register(new GenericRecipe("ass.fensusan").setup(1_200, 100).outputItems(new ItemStack(ModBlocks.machine_fensu, 1)) - .inputItems(new ComparableStack(ModItems.ingot_electronium, 32), - new ComparableStack(ModBlocks.machine_dineutronium_battery, 16), - new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 64), - new OreDictStack(DURA.block(), 16), - new OreDictStack(STAR.block(), 64), - new ComparableStack(ModBlocks.machine_transformer_dnt, 8), - new ComparableStack(ModItems.coil_magnetized_tungsten, 24), + this.register(new GenericRecipe("ass.capacitorgold").setup(100, 100).outputItems(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_GOLD.ordinal())) + .inputItems(new OreDictStack(STEEL.plate(), 8), + new OreDictStack(GOLD.wireDense(), 16))); + this.register(new GenericRecipe("ass.capacitorniobium").setup(100, 1_000).outputItems(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_NIOBIUM.ordinal())) + .inputItems(new OreDictStack(ANY_PLASTIC.ingot(), 12), + new OreDictStack(NB.wireDense(), 24))); + this.register(new GenericRecipe("ass.capacitortantalum").setup(100, 10_000).outputItems(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_TANTALUM.ordinal())) + .inputItems(new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), + new OreDictStack(TA.ingot(), 24))); + this.register(new GenericRecipe("ass.capacitorbismuth").setup(100, 25_000).outputItems(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_BISMUTH.ordinal())) + .inputItems(new OreDictStack(ANY_HARDPLASTIC.ingot(), 24), + new OreDictStack(BI.ingot(), 24), + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CHIP_QUANTUM))); + this.register(new GenericRecipe("ass.capacitorspark").setup(100, 100_000).outputItems(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_SPARK.ordinal())) + .inputItems(new OreDictStack(CMB.plateCast(), 12), + new ComparableStack(ModItems.powder_spark_mix, 32), + new ComparableStack(ModItems.pellet_charged, 32), + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CHIP_QUANTUM)) + .inputFluids(new FluidStack(Fluids.PERFLUOROMETHYL_COLD, 8_000)) + .outputFluids(new FluidStack(Fluids.PERFLUOROMETHYL, 8_000))); + + this.register(new GenericRecipe("ass.fensusan").setup(1_200, 100).outputItems(new ItemStack(ModBlocks.machine_battery_redd, 1)) + .inputItems(new ComparableStack(ModItems.ingot_electronium, 64), + new ComparableStack(ModItems.battery_pack, 16, EnumBatteryPack.BATTERY_QUANTUM), + new OreDictStack(OSMIRIDIUM.plateWelded(), 64), + new OreDictStack(OSMIRIDIUM.plateWelded(), 64), + new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 64), + new OreDictStack(CMB.plateCast(), 32), + new OreDictStack(MAGTUNG.wireDense(), 32), + new ComparableStack(ModItems.plate_dineutronium, 64), new ComparableStack(ModItems.powder_magic, 64), - new ComparableStack(ModItems.plate_dineutronium, 24), new ComparableStack(ModItems.ingot_u238m2), new ComparableStack(ModItems.ingot_cft, 64), new ComparableStack(ModItems.ingot_cft, 64)) .inputItemsEx(new ComparableStack(ModItems.ingot_electronium, 64), - new ComparableStack(ModBlocks.machine_dineutronium_battery, 16), + new ComparableStack(ModItems.battery_pack, 16, EnumBatteryPack.BATTERY_QUANTUM), new ComparableStack(ModItems.item_expensive, 64, EnumExpensiveType.BRONZE_TUBES), new ComparableStack(ModItems.item_expensive, 64, EnumExpensiveType.FERRO_PLATING), - new OreDictStack(STAR.block(), 64), - new ComparableStack(ModBlocks.machine_transformer_dnt, 8), - new ComparableStack(ModItems.coil_magnetized_tungsten, 24), - new ComparableStack(ModItems.powder_magic, 64), - new ComparableStack(ModItems.plate_dineutronium, 24), + new OreDictStack(OSMIRIDIUM.plateWelded(), 64), + new OreDictStack(OSMIRIDIUM.plateWelded(), 64), + new OreDictStack(OSMIRIDIUM.plateWelded(), 64), + new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 64), + new OreDictStack(CMB.plateCast(), 64), new ComparableStack(ModItems.ingot_u238m2), new ComparableStack(ModItems.ingot_cft, 64), new ComparableStack(ModItems.ingot_cft, 64))); @@ -447,7 +461,7 @@ public class AssemblyMachineRecipes extends GenericRecipes { // accelerators this.register(new GenericRecipe("ass.cyclotron").setup(600, 100).outputItems(new ItemStack(ModBlocks.machine_cyclotron, 1)) - .inputItems(new ComparableStack(ModBlocks.machine_lithium_battery, 3), new OreDictStack(ND.wireDense(), 32), new OreDictStack(STEEL.ingot(), 16), new OreDictStack(STEEL.plate(), 32), new OreDictStack(AL.plate(), 32), new OreDictStack(ANY_PLASTIC.ingot(), 24), new OreDictStack(RUBBER.ingot(), 24), new OreDictStack(CU.plateCast(), 8), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC)) + .inputItems(new ComparableStack(ModItems.battery_pack, 3, EnumBatteryPack.BATTERY_LITHIUM), new OreDictStack(ND.wireDense(), 32), new OreDictStack(STEEL.ingot(), 16), new OreDictStack(STEEL.plate(), 32), new OreDictStack(AL.plate(), 32), new OreDictStack(ANY_PLASTIC.ingot(), 24), new OreDictStack(RUBBER.ingot(), 24), new OreDictStack(CU.plateCast(), 8), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC)) .inputItemsEx(new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.FERRO_PLATING), new OreDictStack(ND.wireDense(), 32), new OreDictStack(AL.plateWelded(), 16), new OreDictStack(RUBBER.ingot(), 32), new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.CIRCUIT))); this.register(new GenericRecipe("ass.beamline").setup(200, 100).outputItems(new ItemStack(ModBlocks.pa_beamline, 1)) .inputItems(new OreDictStack(STEEL.plateCast(), 8), new OreDictStack(CU.plate(), 16), new OreDictStack(GOLD.wireDense(), 4)) @@ -478,7 +492,7 @@ public class AssemblyMachineRecipes extends GenericRecipes { this.register(new GenericRecipe("ass.pabscco").setup(400, 100).outputItems(new ItemStack(ModItems.pa_coil, 1, EnumCoilType.BSCCO.ordinal())).inputItems(new OreDictStack(BSCCO.wireDense(), 64), new OreDictStack(ANY_PLASTIC.ingot(), 64))); this.register(new GenericRecipe("ass.pachlorophyte").setup(400, 100).outputItems(new ItemStack(ModItems.pa_coil, 1, EnumCoilType.CHLOROPHYTE.ordinal())).inputItems(new OreDictStack(CU.wireDense(), 64), new OreDictStack(CU.wireDense(), 64), new ComparableStack(ModItems.powder_chlorophyte, 16))); this.register(new GenericRecipe("ass.exposurechamber").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_exposure_chamber, 1)) - .inputItems(new OreDictStack(AL.plateCast(), 12), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new OreDictStack(ANY_HARDPLASTIC.ingot(), 12), new OreDictStack(ALLOY.wireDense(), 32), new ComparableStack(ModItems.motor_desh, 2), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID), new ComparableStack(ModBlocks.capacitor_tantalium, 1), new ComparableStack(ModBlocks.glass_quartz, 16)) + .inputItems(new OreDictStack(AL.plateCast(), 12), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new OreDictStack(ANY_HARDPLASTIC.ingot(), 12), new OreDictStack(ALLOY.wireDense(), 32), new ComparableStack(ModItems.motor_desh, 2), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID), new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_TANTALUM), new ComparableStack(ModBlocks.glass_quartz, 16)) .inputItemsEx(new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.LEAD_PLATING), new OreDictStack(ANY_HARDPLASTIC.ingot(), 24), new OreDictStack(ALLOY.wireDense(), 32), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID), new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.COMPUTER)) .setPools528(GenericRecipes.POOL_PREFIX_528 + "chip_quantum")); @@ -771,34 +785,34 @@ public class AssemblyMachineRecipes extends GenericRecipes { // turrets this.register(new GenericRecipe("ass.turretchekhov").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_chekhov, 1)) - .inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 3), new OreDictStack(GUNMETAL.mechanism(), 3), new ComparableStack(ModBlocks.crate_iron, 1), new ComparableStack(ModItems.crt_display, 1)) + .inputItems(new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LEAD), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 3), new OreDictStack(GUNMETAL.mechanism(), 3), new ComparableStack(ModBlocks.crate_iron, 1), new ComparableStack(ModItems.crt_display, 1)) .setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg")); this.register(new GenericRecipe("ass.turretfriendly").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_friendly, 1)) - .inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC), new OreDictStack(STEEL.pipe(), 3), new OreDictStack(GUNMETAL.mechanism(), 1), new ComparableStack(ModBlocks.crate_iron, 1), new ComparableStack(ModItems.crt_display, 1)) + .inputItems(new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LEAD), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC), new OreDictStack(STEEL.pipe(), 3), new OreDictStack(GUNMETAL.mechanism(), 1), new ComparableStack(ModBlocks.crate_iron, 1), new ComparableStack(ModItems.crt_display, 1)) .setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg")); this.register(new GenericRecipe("ass.turretjeremy").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_jeremy, 1)) - .inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.motor_desh, 1), new OreDictStack(STEEL.shell(), 3), new OreDictStack(WEAPONSTEEL.mechanism(), 3), new ComparableStack(ModBlocks.crate_steel, 1), new ComparableStack(ModItems.crt_display, 1)) + .inputItems(new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LEAD), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.motor_desh, 1), new OreDictStack(STEEL.shell(), 3), new OreDictStack(WEAPONSTEEL.mechanism(), 3), new ComparableStack(ModBlocks.crate_steel, 1), new ComparableStack(ModItems.crt_display, 1)) .setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg")); this.register(new GenericRecipe("ass.turrettauon").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_tauon, 1)) - .inputItems(new ComparableStack(ModBlocks.machine_lithium_battery, 1), new OreDictStack(STEEL.ingot(), 16), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.motor_desh, 1), new OreDictStack(CU.ingot(), 32), new OreDictStack(BIGMT.mechanism(), 3), new ComparableStack(ModItems.battery_lithium, 1), new ComparableStack(ModItems.crt_display, 1)) + .inputItems(new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_NIOBIUM), new OreDictStack(STEEL.ingot(), 16), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.motor_desh, 1), new OreDictStack(CU.ingot(), 32), new OreDictStack(BIGMT.mechanism(), 3), new ComparableStack(ModItems.crt_display, 1)) .setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg")); this.register(new GenericRecipe("ass.turretrichard").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_richard, 1)) - .inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new OreDictStack(ANY_PLASTIC.ingot(), 2), new OreDictStack(STEEL.shell(), 8), new OreDictStack(WEAPONSTEEL.mechanism(), 3), new ComparableStack(ModBlocks.crate_steel, 1), new ComparableStack(ModItems.crt_display, 1)) + .inputItems(new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LEAD), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new OreDictStack(ANY_PLASTIC.ingot(), 2), new OreDictStack(STEEL.shell(), 8), new OreDictStack(WEAPONSTEEL.mechanism(), 3), new ComparableStack(ModBlocks.crate_steel, 1), new ComparableStack(ModItems.crt_display, 1)) .setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg")); this.register(new GenericRecipe("ass.turrethoward").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_howard, 1)) - .inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 24), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.motor_desh, 2), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 10), new OreDictStack(WEAPONSTEEL.mechanism(), 3), new ComparableStack(ModBlocks.crate_steel, 1), new ComparableStack(ModItems.crt_display, 1)) + .inputItems(new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LEAD), new OreDictStack(STEEL.ingot(), 24), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.motor_desh, 2), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 10), new OreDictStack(WEAPONSTEEL.mechanism(), 3), new ComparableStack(ModBlocks.crate_steel, 1), new ComparableStack(ModItems.crt_display, 1)) .setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg")); this.register(new GenericRecipe("ass.maxwell").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_maxwell, 1)) - .inputItems(new ComparableStack(ModBlocks.machine_lithium_battery, 1), new OreDictStack(STEEL.ingot(), 24), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 4), new OreDictStack(BIGMT.mechanism(), 3), new ComparableStack(ModItems.magnetron, 16), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 8), new ComparableStack(ModItems.crt_display, 1)) + .inputItems(new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_NIOBIUM), new OreDictStack(STEEL.ingot(), 24), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 4), new OreDictStack(BIGMT.mechanism(), 3), new ComparableStack(ModItems.magnetron, 16), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 8), new ComparableStack(ModItems.crt_display, 1)) .setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg")); this.register(new GenericRecipe("ass.fritz").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_fritz, 1)) - .inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 8), new OreDictStack(GUNMETAL.mechanism(), 3), new ComparableStack(ModBlocks.barrel_steel)) + .inputItems(new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LEAD), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 8), new OreDictStack(GUNMETAL.mechanism(), 3), new ComparableStack(ModBlocks.barrel_steel)) .setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg")); this.register(new GenericRecipe("ass.arty").setup(1_200, 100).outputItems(new ItemStack(ModBlocks.turret_arty, 1)) - .inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 64), new OreDictStack(STEEL.ingot(), 64), new ComparableStack(ModItems.motor_desh, 5), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 12), new OreDictStack(WEAPONSTEEL.mechanism(), 16), new ComparableStack(ModBlocks.machine_radar, 1), new ComparableStack(ModItems.crt_display, 1)) + .inputItems(new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LITHIUM), new OreDictStack(STEEL.ingot(), 64), new OreDictStack(STEEL.ingot(), 64), new ComparableStack(ModItems.motor_desh, 5), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 12), new OreDictStack(WEAPONSTEEL.mechanism(), 16), new ComparableStack(ModBlocks.machine_radar, 1), new ComparableStack(ModItems.crt_display, 1)) .setPools528(GenericRecipes.POOL_PREFIX_528 + "arty")); this.register(new GenericRecipe("ass.himars").setup(1_200, 100).outputItems(new ItemStack(ModBlocks.turret_himars, 1)) - .inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 64), new OreDictStack(STEEL.ingot(), 64), new OreDictStack(ANY_PLASTIC.ingot(), 64), new ComparableStack(ModItems.motor_desh, 5), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED), new OreDictStack(BIGMT.mechanism(), 8), new ComparableStack(ModBlocks.machine_radar, 1), new ComparableStack(ModItems.crt_display, 1)) + .inputItems(new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LITHIUM), new OreDictStack(STEEL.ingot(), 64), new OreDictStack(STEEL.ingot(), 64), new OreDictStack(ANY_PLASTIC.ingot(), 64), new ComparableStack(ModItems.motor_desh, 5), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED), new OreDictStack(BIGMT.mechanism(), 8), new ComparableStack(ModBlocks.machine_radar, 1), new ComparableStack(ModItems.crt_display, 1)) .setPools528(GenericRecipes.POOL_PREFIX_528 + "arty")); this.register(new GenericRecipe("ass.himarssmall").setup(100, 100).outputItems(new ItemStack(ModItems.ammo_himars, 1, ItemAmmoHIMARS.SMALL)) .inputItems(new OreDictStack(STEEL.plate(), 24), new OreDictStack(ANY_PLASTIC.ingot(), 12), new ComparableStack(ModItems.rocket_fuel, 48), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 48), new ComparableStack(ModItems.circuit, 6, EnumCircuitType.BASIC))); @@ -1023,7 +1037,7 @@ public class AssemblyMachineRecipes extends GenericRecipes { new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.photo_panel, 24), new ComparableStack(ModItems.circuit, 12, EnumCircuitType.BASIC), - new ComparableStack(ModBlocks.machine_lithium_battery, 1))); + new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LITHIUM))); this.register(new GenericRecipe("ass.satellitemapper").setup(600, 100).outputItems(new ItemStack(ModItems.sat_head_mapper, 1)) .inputItems(new OreDictStack(STEEL.shell(), 3), new ComparableStack(ModItems.plate_desh, 4), @@ -1064,7 +1078,7 @@ public class AssemblyMachineRecipes extends GenericRecipes { new ComparableStack(ModItems.ingot_uranium_fuel, 6), new ComparableStack(ModItems.circuit, 24, EnumCircuitType.BASIC), new ComparableStack(ModItems.magnetron, 3), - new ComparableStack(ModBlocks.machine_lithium_battery, 1))); + new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LITHIUM))); this.register(new GenericRecipe("ass.satelliteasteroidminer").setup(600, 100).outputItems(new ItemStack(ModItems.sat_miner, 1)) .inputItems(new OreDictStack(BIGMT.plate(), 24), new ComparableStack(ModItems.motor_desh, 2), @@ -1074,7 +1088,7 @@ public class AssemblyMachineRecipes extends GenericRecipes { new ComparableStack(ModItems.thruster_small, 1), new ComparableStack(ModItems.photo_panel, 12), new ComparableStack(ModItems.centrifuge_element, 4), - new ComparableStack(ModBlocks.machine_lithium_battery, 1))); + new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LITHIUM))); this.register(new GenericRecipe("ass.satellitelunarminer").setup(600, 100).outputItems(new ItemStack(ModItems.sat_lunar_miner, 1)) .inputItems(new ComparableStack(ModItems.ingot_meteorite, 4), new ComparableStack(ModItems.plate_desh, 4), @@ -1084,7 +1098,7 @@ public class AssemblyMachineRecipes extends GenericRecipes { new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.thruster_small, 1), new ComparableStack(ModItems.photo_panel, 12), - new ComparableStack(ModBlocks.machine_lithium_battery, 1))); + new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LITHIUM))); this.register(new GenericRecipe("ass.gerald").setup(6_000, 100).outputItems(new ItemStack(ModItems.sat_gerald, 1)) .inputItems(new OreDictStack(SBD.plateCast(), 64), new OreDictStack(SBD.plateCast(), 64), diff --git a/src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java index 610a20f5a..0e58f73a3 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java @@ -19,6 +19,7 @@ import com.hbm.items.ItemEnums.EnumFuelAdditive; import com.hbm.items.ItemGenericPart.EnumPartType; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFluidIcon; +import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack; import net.minecraft.init.Blocks; import net.minecraft.init.Items; @@ -155,6 +156,36 @@ public class ChemicalPlantRecipes extends GenericRecipes { .inputFluids(new FluidStack(Fluids.BITUMEN, 1_000)) .outputItems(new ItemStack(ModBlocks.asphalt, 16))); + /// BATTERIES /// + this.register(new GenericRecipe("chem.batterylead").setup(100, 100) + .inputItems(new OreDictStack(STEEL.plate(), 4), + new OreDictStack(PB.ingot(), 4)) + .inputFluids(new FluidStack(Fluids.SULFURIC_ACID, 8_000)) + .outputItems(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LEAD.ordinal()))); + this.register(new GenericRecipe("chem.batterylithium").setup(100, 1_000) + .inputItems(new OreDictStack(LI.dust(), 12), + new OreDictStack(CO.dust(), 8), + new OreDictStack(ANY_PLASTIC.ingot(), 4)) + .inputFluids(new FluidStack(Fluids.OXYGEN, 2_000)) + .outputItems(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LITHIUM.ordinal()))); + this.register(new GenericRecipe("chem.batterysodium").setup(100, 10_000) + .inputItems(new OreDictStack(NA.dust(), 24), + new OreDictStack(IRON.dust(), 24), + new OreDictStack(ANY_HARDPLASTIC.ingot(), 12)) + .outputItems(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_SODIUM.ordinal()))); + this.register(new GenericRecipe("chem.batteryschrabidium").setup(100, 25_000) + .inputItems(new OreDictStack(SA326.dust(), 24), + new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 8)) + .inputFluids(new FluidStack(Fluids.HELIUM4, 8_000)) + .outputItems(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_SCHRABIDIUM.ordinal()))); + this.register(new GenericRecipe("chem.batteryquantum").setup(100, 100_000) + .inputItems(new OreDictStack(BSCCO.wireDense(), 24), + new ComparableStack(ModItems.pellet_charged, 32), + new ComparableStack(ModItems.ingot_cft, 16)) + .inputFluids(new FluidStack(Fluids.PERFLUOROMETHYL_COLD, 8_000)) + .outputItems(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_QUANTUM.ordinal())) + .outputFluids(new FluidStack(Fluids.PERFLUOROMETHYL, 8_000))); + /// SOLIDS /// this.register(new GenericRecipe("chem.desh").setup(100, 100) .inputItems(new ComparableStack(ModItems.powder_desh_mix)) diff --git a/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java b/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java index ddc9f78db..ecbe59072 100644 --- a/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java @@ -6,6 +6,7 @@ import com.hbm.interfaces.Spaghetti; import com.hbm.inventory.FluidContainer; import com.hbm.inventory.FluidContainerRegistry; import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack; import com.hbm.util.Tuple.Triplet; import net.minecraft.init.Blocks; @@ -48,32 +49,17 @@ public class MachineRecipes { ArrayList fuels = new ArrayList(); fuels.add(new ItemStack(ModItems.battery_potato)); fuels.add(new ItemStack(ModItems.battery_potatos)); - fuels.add(new ItemStack(ModItems.battery_generic)); - fuels.add(new ItemStack(ModItems.battery_red_cell)); - fuels.add(new ItemStack(ModItems.battery_red_cell_6)); - fuels.add(new ItemStack(ModItems.battery_red_cell_24)); - fuels.add(new ItemStack(ModItems.battery_advanced)); - fuels.add(new ItemStack(ModItems.battery_advanced_cell)); - fuels.add(new ItemStack(ModItems.battery_advanced_cell_4)); - fuels.add(new ItemStack(ModItems.battery_advanced_cell_12)); - fuels.add(new ItemStack(ModItems.battery_lithium)); - fuels.add(new ItemStack(ModItems.battery_lithium_cell)); - fuels.add(new ItemStack(ModItems.battery_lithium_cell_3)); - fuels.add(new ItemStack(ModItems.battery_lithium_cell_6)); - fuels.add(new ItemStack(ModItems.battery_schrabidium)); - fuels.add(new ItemStack(ModItems.battery_schrabidium_cell)); - fuels.add(new ItemStack(ModItems.battery_schrabidium_cell_2)); - fuels.add(new ItemStack(ModItems.battery_schrabidium_cell_4)); - fuels.add(new ItemStack(ModItems.battery_trixite)); - fuels.add(new ItemStack(ModItems.battery_spark)); - fuels.add(new ItemStack(ModItems.battery_spark_cell_6)); - fuels.add(new ItemStack(ModItems.battery_spark_cell_25)); - fuels.add(new ItemStack(ModItems.battery_spark_cell_100)); - fuels.add(new ItemStack(ModItems.battery_spark_cell_1000)); - fuels.add(new ItemStack(ModItems.battery_spark_cell_10000)); - fuels.add(new ItemStack(ModItems.battery_spark_cell_power)); fuels.add(new ItemStack(ModItems.fusion_core)); fuels.add(new ItemStack(ModItems.energy_core)); + for(EnumBatteryPack num : EnumBatteryPack.values()) fuels.add(new ItemStack(ModItems.battery_pack, 1, num.ordinal())); + fuels.add(new ItemStack(ModItems.battery_creative)); + fuels.add(new ItemStack(ModItems.battery_sc_uranium)); + fuels.add(new ItemStack(ModItems.battery_sc_technetium)); + fuels.add(new ItemStack(ModItems.battery_sc_plutonium)); + fuels.add(new ItemStack(ModItems.battery_sc_polonium)); + fuels.add(new ItemStack(ModItems.battery_sc_gold)); + fuels.add(new ItemStack(ModItems.battery_sc_lead)); + fuels.add(new ItemStack(ModItems.battery_sc_americium)); return fuels; } diff --git a/src/main/java/com/hbm/inventory/recipes/PedestalRecipes.java b/src/main/java/com/hbm/inventory/recipes/PedestalRecipes.java index 76dcbcd1a..69a0fab4e 100644 --- a/src/main/java/com/hbm/inventory/recipes/PedestalRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/PedestalRecipes.java @@ -172,7 +172,7 @@ public class PedestalRecipes extends SerializableRecipe { rec.recipeSet = obj.get("set").getAsInt(); } - this.recipes.add(rec); + this.register(rec); } @Override diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index c107df9d5..27d058172 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -740,8 +740,6 @@ public class AnvilRecipes extends SerializableRecipe { new AnvilOutput(new ItemStack(ModItems.scrap, 1)), new AnvilOutput(new ItemStack(ModItems.coil_tungsten, 1)), new AnvilOutput(new ItemStack(Items.bread, 1), 0.5F), - new AnvilOutput(new ItemStack(ModItems.battery_generic, 1), 0.25F), - new AnvilOutput(new ItemStack(ModItems.battery_advanced, 1), 0.1F), new AnvilOutput(new ItemStack(ModItems.fusion_core, 1), 0.01F) } @@ -753,7 +751,6 @@ public class AnvilRecipes extends SerializableRecipe { new AnvilOutput(new ItemStack(ModItems.scrap, 1)), new AnvilOutput(new ItemStack(ModItems.coil_tungsten, 2)), new AnvilOutput(new ItemStack(Items.bread, 1), 0.5F), - new AnvilOutput(new ItemStack(ModItems.battery_lithium, 1), 0.25F), new AnvilOutput(new ItemStack(ModItems.battery_sc_uranium, 1), 0.1F), new AnvilOutput(new ItemStack(ModItems.fusion_core, 1), 0.05F) diff --git a/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java b/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java index 0394807eb..6bc4d93e1 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java @@ -327,6 +327,7 @@ public abstract class GenericRecipes extends Serializab @Override public void deserialize(JsonArray array) { for(JsonElement element : array) { + if(element.isJsonPrimitive()) continue; // the array we get includes the "multi" tag, which is also the only primitive ChanceOutput output = new ChanceOutput(); output.deserialize(element.getAsJsonArray()); pool.add(output); diff --git a/src/main/java/com/hbm/itempool/ItemPoolsComponent.java b/src/main/java/com/hbm/itempool/ItemPoolsComponent.java index 4f9b63282..7ba5e59fc 100644 --- a/src/main/java/com/hbm/itempool/ItemPoolsComponent.java +++ b/src/main/java/com/hbm/itempool/ItemPoolsComponent.java @@ -9,6 +9,7 @@ import com.hbm.items.ItemEnums.EnumCokeType; import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemRTGPelletDepleted; +import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack; import com.hbm.items.tool.ItemBlowtorch; import net.minecraft.init.Items; @@ -45,7 +46,7 @@ public class ItemPoolsComponent { weighted(ModItems.coil_copper_torus, 0, 1, 2, 3), weighted(ModItems.wire_fine, Mats.MAT_MINGRADE.id, 1, 8, 5), weighted(ModItems.piston_selenium, 0, 1, 1, 3), - weighted(ModItems.battery_advanced_cell, 0, 1, 1, 3), + weighted(ModItems.battery_pack, EnumBatteryPack.BATTERY_LEAD.ordinal(), 1, 1, 3), weighted(ModItems.circuit, EnumCircuitType.VACUUM_TUBE.ordinal(), 1, 2, 4), weighted(ModItems.circuit, EnumCircuitType.PCB.ordinal(), 1, 3, 5), weighted(ModItems.circuit, EnumCircuitType.CAPACITOR.ordinal(), 1, 1, 3), @@ -81,7 +82,7 @@ public class ItemPoolsComponent { weighted(ModItems.missile_generic, 0, 1, 1, 4), weighted(ModItems.missile_incendiary, 0, 1, 1, 4), weighted(ModItems.gas_mask_m65, 0, 1, 1, 5), - weighted(ModItems.battery_advanced, 0, 1, 1, 5), + weighted(ModItems.battery_pack, EnumBatteryPack.BATTERY_LEAD.ordinal(), 1, 1, 3), weighted(ModItems.designator, 0, 1, 1, 5), weighted(ModItems.thruster_small, 0, 1, 1, 5), weighted(ModItems.thruster_medium, 0, 1, 1, 4), diff --git a/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java b/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java index 706fe43b1..76cad0680 100644 --- a/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java +++ b/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java @@ -4,6 +4,7 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.material.Mats; import com.hbm.items.ItemEnums.EnumCasingType; import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack; import com.hbm.items.machine.ItemBreedingRod.BreedingRodType; import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType; @@ -52,8 +53,7 @@ public class ItemPoolsLegacy { weighted(ModItems.casing, EnumCasingType.SMALL.ordinal(), 4, 10, 3), weighted(ModItems.casing, EnumCasingType.SHOTSHELL.ordinal(), 4, 10, 3), weighted(ModItems.cordite, 0, 4, 6, 5), - weighted(ModItems.battery_generic, 0, 1, 1, 4), - weighted(ModItems.battery_advanced, 0, 1, 1, 2), + weighted(ModItems.battery_pack, EnumBatteryPack.BATTERY_REDSTONE.ordinal(), 1, 1, 1), weighted(ModItems.scrap, 0, 1, 3, 10), weighted(ModItems.dust, 0, 2, 4, 9), weighted(ModItems.bottle_opener, 0, 1, 1, 2), @@ -79,8 +79,7 @@ public class ItemPoolsLegacy { weighted(ModItems.wire_fine, Mats.MAT_MINGRADE.id, 2, 3, 7), weighted(ModItems.circuit, EnumCircuitType.VACUUM_TUBE.ordinal(), 1, 1, 4), weighted(ModItems.circuit, EnumCircuitType.CAPACITOR.ordinal(), 1, 1, 2), - weighted(ModItems.battery_generic, 0, 1, 1, 4), - weighted(ModItems.battery_advanced, 0, 1, 1, 3), + weighted(ModItems.battery_pack, EnumBatteryPack.BATTERY_REDSTONE.ordinal(), 1, 1, 1), weighted(ModItems.powder_iodine, 0, 1, 1, 1), weighted(ModItems.powder_bromine, 0, 1, 1, 1), weighted(ModBlocks.steel_poles, 0, 1, 4, 8), @@ -116,9 +115,7 @@ public class ItemPoolsLegacy { weighted(ModItems.grenade_smart, 0, 1, 3, 3), weighted(ModItems.grenade_mirv, 0, 1, 1, 2), weighted(ModItems.stealth_boy, 0, 1, 1, 2), - weighted(ModItems.battery_advanced, 0, 1, 1, 3), - weighted(ModItems.battery_advanced_cell, 0, 1, 1, 2), - weighted(ModItems.battery_schrabidium, 0, 1, 1, 1), + weighted(ModItems.battery_pack, EnumBatteryPack.BATTERY_LITHIUM.ordinal(), 1, 1, 1), weighted(ModItems.syringe_awesome, 0, 1, 1, 1), weighted(ModItems.fusion_core, 0, 1, 1, 4), weighted(ModItems.bottle_nuka, 0, 1, 3, 6), @@ -215,7 +212,7 @@ public class ItemPoolsLegacy { //spaceship double chests new ItemPool(POOL_SPACESHIP) {{ this.pool = new WeightedRandomChestContent[] { - weighted(ModItems.battery_advanced, 0, 1, 1, 5), + weighted(ModItems.battery_pack, EnumBatteryPack.BATTERY_LEAD.ordinal(), 1, 1, 2), weighted(ModItems.ingot_advanced_alloy, 0, 2, 16, 5), weighted(ModItems.wire_fine, Mats.MAT_ALLOY.id, 8, 32, 5), weighted(ModItems.coil_advanced_alloy, 0, 2, 16, 5), diff --git a/src/main/java/com/hbm/itempool/ItemPoolsSingle.java b/src/main/java/com/hbm/itempool/ItemPoolsSingle.java index 570df9ef6..8950a9e06 100644 --- a/src/main/java/com/hbm/itempool/ItemPoolsSingle.java +++ b/src/main/java/com/hbm/itempool/ItemPoolsSingle.java @@ -42,7 +42,6 @@ public class ItemPoolsSingle { new ItemPool(POOL_VAULT_STANDARD) {{ this.pool = new WeightedRandomChestContent[] { weighted(ModItems.ingot_desh, 0, 2, 6, 1), - weighted(ModItems.battery_advanced_cell_4, 0, 1, 1, 1), weighted(ModItems.powder_desh_mix, 0, 1, 5, 1), weighted(Items.diamond, 0, 3, 6, 1), weighted(ModItems.ammo_standard, EnumAmmo.NUKE_STANDARD.ordinal(), 1, 1, 1), @@ -59,7 +58,6 @@ public class ItemPoolsSingle { new ItemPool(POOL_VAULT_REINFORCED) {{ this.pool = new WeightedRandomChestContent[] { weighted(ModItems.ingot_desh, 0, 6, 16, 1), - weighted(ModItems.battery_lithium, 0, 1, 1, 1), weighted(ModItems.powder_power, 0, 1, 5, 1), weighted(ModItems.sat_chip, 0, 1, 1, 1), weighted(Items.diamond, 0, 5, 9, 1), @@ -81,7 +79,6 @@ public class ItemPoolsSingle { weighted(ModItems.gun_carbine, 0, 1, 1, 1), weighted(ModItems.ammo_standard, EnumAmmo.R762_DU.ordinal(), 16, 32, 1), weighted(ModItems.gun_congolake, 0, 1, 1, 1), - weighted(ModItems.battery_schrabidium_cell, 0, 1, 1, 1), weighted(ModItems.circuit, EnumCircuitType.ADVANCED.ordinal(), 6, 12, 1) }; }}; diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 06dfd4ad2..fb868ca18 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1631,8 +1631,6 @@ public class ModItems { @Deprecated public static Item battery_advanced; @Deprecated public static Item battery_lithium; @Deprecated public static Item battery_schrabidium; - @Deprecated public static Item battery_spark; - @Deprecated public static Item battery_trixite; @Deprecated public static Item battery_red_cell; @Deprecated public static Item battery_red_cell_6; @Deprecated public static Item battery_red_cell_24; @@ -1656,6 +1654,8 @@ public class ModItems { public static Item battery_pack; public static Item battery_creative; public static Item cube_power; + public static Item battery_spark; + public static Item battery_trixite; public static Item battery_sc_uranium; public static Item battery_sc_technetium; @@ -3873,8 +3873,8 @@ public class ModItems { battery_advanced = new ItemBattery(20000, 500, 500).setUnlocalizedName("battery_advanced").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_advanced_new"); battery_lithium = new ItemBattery(250000, 1000, 1000).setUnlocalizedName("battery_lithium").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_lithium"); battery_schrabidium = new ItemBattery(1000000, 5000, 5000).setUnlocalizedName("battery_schrabidium").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_schrabidium_new"); - battery_spark = new ItemBattery(100000000, 2000000, 2000000).setUnlocalizedName("battery_spark").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_spark"); - battery_trixite = new ItemBattery(5000000, 40000, 200000).setUnlocalizedName("battery_trixite").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_trixite"); + battery_spark = new Item().setUnlocalizedName("battery_spark").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":battery_spark"); + battery_trixite = new Item().setUnlocalizedName("battery_trixite").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":battery_trixite"); battery_red_cell = new ItemBattery(15000, 100, 100).setUnlocalizedName("battery_red_cell").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_red_cell"); battery_red_cell_6 = new ItemBattery(15000 * 6, 100, 100).setUnlocalizedName("battery_red_cell_6").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_red_cell_6"); battery_red_cell_24 = new ItemBattery(15000 * 24, 100, 100).setUnlocalizedName("battery_red_cell_24").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_red_cell_24"); @@ -3896,7 +3896,7 @@ public class ModItems { battery_spark_cell_power = new ItemBattery(100000000L * 1000000L, 200000000, 200000000).setUnlocalizedName("battery_spark_cell_power").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_spark_cell_power"); battery_pack = new ItemBatteryPack().setUnlocalizedName("battery_pack").setTextureName(RefStrings.MODID + ":battery_generic_new"); - battery_creative = new Item().setUnlocalizedName("battery_creative").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_creative_new"); + battery_creative = new ItemBatteryCreative().setUnlocalizedName("battery_creative").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_creative_new"); cube_power = new ItemBattery(1000000000000000000L, 1000000000000000L, 1000000000000000L).setUnlocalizedName("cube_power").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":cube_power"); battery_sc_uranium = new ItemSelfcharger(5).setUnlocalizedName("battery_sc_uranium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc_uranium"); diff --git a/src/main/java/com/hbm/items/block/ItemBlockStorageCrate.java b/src/main/java/com/hbm/items/block/ItemBlockStorageCrate.java index 97d2cb7e8..badb00e86 100644 --- a/src/main/java/com/hbm/items/block/ItemBlockStorageCrate.java +++ b/src/main/java/com/hbm/items/block/ItemBlockStorageCrate.java @@ -133,6 +133,11 @@ public class ItemBlockStorageCrate extends ItemBlockBase implements IGUIProvider public boolean hasCustomInventoryName() { return target.hasDisplayName(); } + + @Override + public boolean isUseableByPlayer(EntityPlayer player) { + return player.getHeldItem() == this.target; + } @Override public void markDirty() { // You have been blessed by the unfuck diff --git a/src/main/java/com/hbm/items/machine/ItemBatteryCreative.java b/src/main/java/com/hbm/items/machine/ItemBatteryCreative.java new file mode 100644 index 000000000..1c3f30b82 --- /dev/null +++ b/src/main/java/com/hbm/items/machine/ItemBatteryCreative.java @@ -0,0 +1,18 @@ +package com.hbm.items.machine; + +import api.hbm.energymk2.IBatteryItem; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +public class ItemBatteryCreative extends Item implements IBatteryItem { + + @Override public void chargeBattery(ItemStack stack, long i) { } + @Override public void setCharge(ItemStack stack, long i) { } + @Override public void dischargeBattery(ItemStack stack, long i) { } + + @Override public long getCharge(ItemStack stack) { return Long.MAX_VALUE / 2L; } + @Override public long getMaxCharge(ItemStack stack) { return Long.MAX_VALUE; } + + @Override public long getChargeRate(ItemStack stack) { return Long.MAX_VALUE / 100L; } + @Override public long getDischargeRate(ItemStack stack) { return Long.MAX_VALUE / 100L; } +} diff --git a/src/main/java/com/hbm/items/machine/ItemBatteryPack.java b/src/main/java/com/hbm/items/machine/ItemBatteryPack.java index ba4f95f75..eb780d51a 100644 --- a/src/main/java/com/hbm/items/machine/ItemBatteryPack.java +++ b/src/main/java/com/hbm/items/machine/ItemBatteryPack.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.interfaces.IOrderedEnum; import com.hbm.items.ItemEnumMulti; +import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.util.BobMathUtil; @@ -29,20 +30,34 @@ public class ItemBatteryPack extends ItemEnumMulti implements IBatteryItem { } public static enum EnumBatteryPack { - REDSTONE ("battery_redstone", 100L), - LEAD ("battery_lead", 1_000L), - LITHIUM ("battery_lithium", 10_000L), - SODIUM ("battery_sodium", 50_000L), - SCHRABIDIUM ("battery_schrabidium", 250_000L), - QUANTUM ("battery_quantum", 1_000_000L); + BATTERY_REDSTONE ("battery_redstone", 100L, false), + BATTERY_LEAD ("battery_lead", 1_000L, false), + BATTERY_LITHIUM ("battery_lithium", 10_000L, false), + BATTERY_SODIUM ("battery_sodium", 50_000L, false), + BATTERY_SCHRABIDIUM ("battery_schrabidium", 250_000L, false), + BATTERY_QUANTUM ("battery_quantum", 1_000_000L, 20 * 60 * 60), + + CAPACITOR_COPPER ("capacitor_copper", 1_000L, true), + CAPACITOR_GOLD ("capacitor_gold", 10_000L, true), + CAPACITOR_NIOBIUM ("capacitor_niobium", 100_000L, true), + CAPACITOR_TANTALUM ("capacitor_tantalum", 500_000L, true), + CAPACITOR_BISMUTH ("capacitor_bismuth", 2_500_000L, true), + CAPACITOR_SPARK ("capacitor_spark", 10_000_000L, true); public ResourceLocation texture; public long capacity; public long chargeRate; public long dischargeRate; - private EnumBatteryPack(String tex, long dischargeRate) { - this(tex, dischargeRate * 20 * 60 * 15, dischargeRate * 10, dischargeRate); + private EnumBatteryPack(String tex, long dischargeRate, boolean capacitor) { + this(tex, + capacitor ? (dischargeRate * 20 * 30) : (dischargeRate * 20 * 60 * 15), + capacitor ? dischargeRate : dischargeRate * 10, + dischargeRate); + } + + private EnumBatteryPack(String tex, long dischargeRate, long duration) { + this(tex, dischargeRate * duration, dischargeRate * 10, dischargeRate); } private EnumBatteryPack(String tex, long capacity, long chargeRate, long dischargeRate) { @@ -51,6 +66,9 @@ public class ItemBatteryPack extends ItemEnumMulti implements IBatteryItem { this.chargeRate = chargeRate; this.dischargeRate = dischargeRate; } + + public boolean isCapacitor() { return this.ordinal() > BATTERY_QUANTUM.ordinal(); } + public ItemStack stack() { return new ItemStack(ModItems.battery_pack, 1, this.ordinal()); } } @Override @@ -79,7 +97,7 @@ public class ItemBatteryPack extends ItemEnumMulti implements IBatteryItem { stack.stackTagCompound.setLong("charge", stack.stackTagCompound.getLong("charge") - i); } else { stack.stackTagCompound = new NBTTagCompound(); - stack.stackTagCompound.setLong("charge", this.getMaxCharge(stack) - i); + stack.stackTagCompound.setLong("charge", 0); } } @@ -89,7 +107,7 @@ public class ItemBatteryPack extends ItemEnumMulti implements IBatteryItem { return stack.stackTagCompound.getLong("charge"); } else { stack.stackTagCompound = new NBTTagCompound(); - stack.stackTagCompound.setLong("charge", getMaxCharge(stack)); + stack.stackTagCompound.setLong("charge", 0); return stack.stackTagCompound.getLong("charge"); } } @@ -112,7 +130,7 @@ public class ItemBatteryPack extends ItemEnumMulti implements IBatteryItem { return pack.dischargeRate; } - @Override public boolean showDurabilityBar(ItemStack stack) { return true; } + @Override public boolean showDurabilityBar(ItemStack stack) { return getDurabilityForDisplay(stack) != 0; } @Override public double getDurabilityForDisplay(ItemStack stack) { return 1D - (double) getCharge(stack) / (double) getMaxCharge(stack); } @Override @@ -124,7 +142,7 @@ public class ItemBatteryPack extends ItemEnumMulti implements IBatteryItem { if(itemstack.hasTagCompound()) charge = getCharge(itemstack); - list.add(EnumChatFormatting.GREEN + "Energy stored: " + BobMathUtil.getShortNumber(charge) + "/" + BobMathUtil.getShortNumber(maxCharge) + "HE"); + list.add(EnumChatFormatting.GREEN + "Energy stored: " + BobMathUtil.getShortNumber(charge) + "/" + BobMathUtil.getShortNumber(maxCharge) + "HE (" + (charge * 1000 / maxCharge / 10D) + "%)"); list.add(EnumChatFormatting.YELLOW + "Charge rate: " + BobMathUtil.getShortNumber(chargeRate) + "HE/t"); list.add(EnumChatFormatting.YELLOW + "Discharge rate: " + BobMathUtil.getShortNumber(dischargeRate) + "HE/t"); list.add(EnumChatFormatting.GOLD + "Time for full charge: " + (maxCharge / chargeRate / 20 / 60D) + "min"); diff --git a/src/main/java/com/hbm/items/special/ItemStarterKit.java b/src/main/java/com/hbm/items/special/ItemStarterKit.java index 6d7af36a9..c193b8c7b 100644 --- a/src/main/java/com/hbm/items/special/ItemStarterKit.java +++ b/src/main/java/com/hbm/items/special/ItemStarterKit.java @@ -7,6 +7,7 @@ import com.hbm.interfaces.Spaghetti; import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack; import com.hbm.items.machine.ItemBreedingRod.BreedingRodType; import com.hbm.items.machine.ItemCircuit.EnumCircuitType; @@ -180,10 +181,6 @@ public class ItemStarterKit extends Item { player.inventory.addItemStackToInventory(new ItemStack(ModItems.piston_selenium, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.canister_full, 16, Fluids.DIESEL.getID())); player.inventory.addItemStackToInventory(new ItemStack(ModItems.canister_full, 16, Fluids.BIOFUEL.getID())); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.battery_advanced_cell_4, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.battery_advanced_cell_4, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.battery_lithium, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.battery_lithium, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.battery_potato, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.screwdriver, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_excavator, 1)); @@ -191,8 +188,8 @@ public class ItemStarterKit extends Item { player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.red_cable, 64)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.red_wire_coated, 16)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.red_pylon, 8)); - player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_battery, 4)); - player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_lithium_battery, 2)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_battery_socket, 4)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.battery_pack, 4, EnumBatteryPack.BATTERY_LEAD.ordinal())); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_converter_he_rf, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_converter_rf_he, 1)); } @@ -382,7 +379,6 @@ public class ItemStarterKit extends Item { player.inventory.addItemStackToInventory(new ItemStack(ModItems.designator, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.designator_range, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.designator_manual, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.battery_schrabidium_cell_4, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.missile_generic, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.missile_strong, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.missile_burst, 1)); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java b/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java index a2bf670d2..4513341a7 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java @@ -443,7 +443,7 @@ public class LegoClient { double age = MathHelper.clamp_double(1D - ((double) bullet.ticksExisted - 2 + interp) / (double) bullet.getBulletConfig().expires, 0, 1); GL11.glScaled(age / 2 + 0.5, 1, age / 2 + 0.5); int colorInner = ((int)(r * age) << 16) | ((int)(g * age) << 8) | (int) (b * age); - BeamPronter.prontBeam(delta, EnumWaveType.RANDOM, EnumBeamType.SOLID, colorInner, colorInner, bullet.ticksExisted / 3, (int)(bullet.beamLength / 2 + 1), 0F, 8, 0.0625F); + BeamPronter.prontBeam(delta, EnumWaveType.RANDOM, EnumBeamType.SOLID, colorInner, colorInner, bullet.ticksExisted / 3, (int)(bullet.beamLength / 2 + 1), 0F, 4, 0.025F); GL11.glPopMatrix(); RenderArcFurnace.fullbright(false); } diff --git a/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineElectricEngine.java b/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineElectricEngine.java index 1c8c2c285..ea38a19d9 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineElectricEngine.java +++ b/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineElectricEngine.java @@ -42,7 +42,7 @@ public class MagazineElectricEngine implements IMagazine { @Override public void reloadAction(ItemStack stack, IInventory inventory) { } @Override public SpentCasing getCasing(ItemStack stack, IInventory inventory) { return null; } - @Override public ItemStack getIconForHUD(ItemStack stack, EntityPlayer player) { return new ItemStack(ModItems.battery_generic); } + @Override public ItemStack getIconForHUD(ItemStack stack, EntityPlayer player) { return new ItemStack(ModItems.battery_creative); } @Override public String reportAmmoStateForHUD(ItemStack stack, EntityPlayer player) { return BobMathUtil.getShortNumber(getAmount(stack, player.inventory)) + "/" + BobMathUtil.getShortNumber(this.capacity) + "HE"; } @Override public void setAmountBeforeReload(ItemStack stack, int amount) { ItemGunBaseNT.setValueInt(stack, KEY_MAG_PREV + index, amount); } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 47bb3e5d9..f563e2300 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -307,6 +307,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityForceField.class, new RenderMachineForceField()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineFENSU.class, new RenderFENSU()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBatterySocket.class, new RenderBatterySocket()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBatteryREDD.class, new RenderBatteryREDD()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineLargeTurbine.class, new RenderBigTurbine()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineReactorBreeding.class, new RenderBreeder()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySolarBoiler.class, new RenderSolarBoiler()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 4146f92a5..773bb98bc 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -30,6 +30,7 @@ import com.hbm.items.ItemGenericPart.EnumPartType; import com.hbm.items.food.ItemConserve.EnumFoodType; import com.hbm.items.machine.ItemArcElectrode.EnumElectrodeType; import com.hbm.items.machine.ItemBattery; +import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack; import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.items.machine.ItemFluidIDMulti; import com.hbm.items.special.ItemCircuitStarComponent.CircuitComponentType; @@ -257,13 +258,6 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModBlocks.red_pylon_medium_wood_transformer, 1), new Object[] { ModBlocks.red_pylon_medium_wood, ModItems.plate_polymer, ModItems.coil_copper }); addRecipeAuto(new ItemStack(ModBlocks.red_pylon_medium_steel, 2), new Object[] { "CCW", "IIW", " S", 'C', ModItems.coil_copper, 'W', STEEL.pipe(), 'I', ModItems.plate_polymer, 'S', KEY_COBBLESTONE }); addShapelessAuto(new ItemStack(ModBlocks.red_pylon_medium_steel_transformer, 1), new Object[] { ModBlocks.red_pylon_medium_steel, ModItems.plate_polymer, ModItems.coil_copper }); - 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.capacitor_schrabidate, 1), new Object[] { "PPP", "ICI", "WWW", 'P', STEEL.plate(), 'I', ANY_RESISTANTALLOY.ingot(), 'C', SBD.block(), 'W', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.machine_wood_burner, 1), new Object[] { "PPP", "CFC", "I I" , 'P', STEEL.plate(), 'C', ModItems.coil_copper, 'I', IRON.ingot(), 'F', Blocks.furnace}); addRecipeAuto(new ItemStack(ModBlocks.machine_turbine, 1), new Object[] { "SMS", "PTP", "SMS", 'S', STEEL.ingot(), 'T', ModItems.turbine_titanium, 'M', ModItems.coil_copper, 'P', ANY_PLASTIC.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.machine_converter_he_rf, 1), new Object[] { "RRR", "WWW", "III", 'R', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CAPACITOR), 'W', REDSTONE.dust(), 'I', STEEL.ingot() }); @@ -272,6 +266,11 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.crate_iron, 1), new Object[] { "PPP", "I I", "III", 'P', IRON.plate(), 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.crate_steel, 1), new Object[] { "PPP", "I I", "III", 'P', STEEL.plate(), 'I', STEEL.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.machine_battery_socket), new Object[] { "I I", "I I", "IRI", 'I', ModItems.plate_polymer, 'R', ModItems.coil_copper }); + addRecipeAuto(new ItemStack(ModBlocks.machine_battery_socket), new Object[] { "PRP", 'P', STEEL.plate(), 'R', MINGRADE.ingot() }); + addRecipeAuto(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_REDSTONE.ordinal()), new Object[] { "IRI", "PRP", "IRI", 'I', IRON.plate(), 'R', REDSTONE.block(), 'P', ModItems.plate_polymer }); + addRecipeAuto(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_COPPER.ordinal()), new Object[] { "IRI", "PRP", "IRI", 'I', STEEL.plate(), 'R', CU.block(), 'P', ModItems.plate_polymer }); + GameRegistry.addRecipe(new ContainerUpgradeCraftingHandler(new ItemStack(ModBlocks.crate_desh, 1), new Object[] { " D ", "DSD", " D ", 'D', ModItems.plate_desh, 'S', ModBlocks.crate_steel })); GameRegistry.addRecipe(new ContainerUpgradeCraftingHandler(new ItemStack(ModBlocks.crate_tungsten, 1), new Object[] { "BPB", "PCP", "BPB", 'B', W.block(), 'P', CU.plateCast(), 'C', ModBlocks.crate_steel })); // Note: voids the last few slots when placed, because a safe's inventory is smaller than a crate's one @@ -526,18 +525,6 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModBlocks.charge_semtex, 1), new Object[] { ModItems.stick_semtex, ModItems.stick_semtex, ModItems.stick_semtex, ModItems.ducttape }); addShapelessAuto(new ItemStack(ModBlocks.charge_c4, 1), new Object[] { ModItems.stick_c4, ModItems.stick_c4, ModItems.stick_c4, ModItems.ducttape }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_generic), new Object[] { " A ", "PRP", "PRP", 'A', AL.wireFine(), 'P', AL.plate(), 'R', REDSTONE.dust() }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_advanced), new Object[] { " A ", "PSP", "PLP", 'A', MINGRADE.wireFine(), 'P', CU.plate(), 'S', "sulfur", 'L', PB.dust() }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_advanced), new Object[] { " A ", "PLP", "PSP", 'A', MINGRADE.wireFine(), 'P', CU.plate(), 'S', "sulfur", 'L', PB.dust() }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_advanced), new Object[] { " A ", "PSP", "PLP", 'A', MINGRADE.wireFine(), 'P', CU.plate(), 'S', "dustSulfur", 'L', PB.dust() }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_advanced), new Object[] { " A ", "PLP", "PSP", 'A', MINGRADE.wireFine(), 'P', CU.plate(), 'S', "dustSulfur", 'L', PB.dust() }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_lithium), new Object[] { "A A", "PSP", "PLP", 'A', GOLD.wireFine(), 'P', TI.plate(), 'S', LI.dust(), 'L', CO.dust() }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_lithium), new Object[] { "A A", "PLP", "PSP", 'A', GOLD.wireFine(), 'P', TI.plate(), 'S', LI.dust(), 'L', CO.dust() }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_schrabidium), new Object[] { " A ", "PNP", "PSP", 'A', SA326.wireFine(), 'P', SA326.plate(), 'S', SA326.dust(), 'N', NP237.dust() }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_schrabidium), new Object[] { " A ", "PSP", "PNP", 'A', SA326.wireFine(), 'P', SA326.plate(), 'S', SA326.dust(), 'N', NP237.dust() }); - 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', AL.wireFine(), 'P', AL.plate(), 'S', ModItems.powder_power, 'T', ModItems.crystal_trixite }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_trixite), new Object[] { " A ", "PTP", "PSP", 'A', AL.wireFine(), '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', ALLOY.wireFine(), 'R', ModItems.cell_tritium, 'D', ModItems.cell_deuterium, 'T', W.ingot() }); addRecipeAuto(ItemBattery.getFullBattery(ModItems.energy_core), new Object[] { "PCW", "TDR", "PCW", 'P', ALLOY.plate(), 'C', ModItems.coil_advanced_alloy, 'W', ALLOY.wireFine(), 'R', ModItems.cell_tritium, 'D', ModItems.cell_deuterium, 'T', W.ingot() }); addRecipeAuto(new ItemStack(ModItems.hev_battery, 4), new Object[] { " W ", "IEI", "ICI", 'W', GOLD.wireFine(), 'I', ModItems.plate_polymer, 'E', REDSTONE.dust(), 'C', CO.dust() }); @@ -545,26 +532,6 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.hev_battery, 1), new Object[] { ModBlocks.hev_battery }); addShapelessAuto(new ItemStack(ModBlocks.hev_battery, 1), new Object[] { ModItems.hev_battery }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_red_cell), new Object[] { "WBW", "PBP", "WBW", 'W', AL.wireFine(), 'P', AL.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_generic) }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_advanced_cell), new Object[] { "WBW", "PBP", "WBW", 'W', MINGRADE.wireFine(), 'P', CU.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_advanced) }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_lithium_cell), new Object[] { "WBW", "PBP", "WBW", 'W', GOLD.wireFine(), 'P', TI.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_lithium) }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_schrabidium_cell), new Object[] { "WBW", "PBP", "WBW", 'W', SA326.wireFine(), 'P', SA326.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_schrabidium) }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_red_cell_6), new Object[] { "BBB", "WPW", "BBB", 'W', AL.wireFine(), 'P', AL.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_red_cell) }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_advanced_cell_4), new Object[] { "BWB", "WPW", "BWB", 'W', MINGRADE.wireFine(), 'P', CU.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_advanced_cell) }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_lithium_cell_3), new Object[] { "WPW", "BBB", "WPW", 'W', GOLD.wireFine(), 'P', TI.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_lithium_cell) }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_schrabidium_cell_2), new Object[] { "WPW", "BWB", "WPW", 'W', SA326.wireFine(), 'P', SA326.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_schrabidium_cell) }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_red_cell_24), new Object[] { "BWB", "WPW", "BWB", 'W', AL.wireFine(), 'P', AL.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_red_cell_6) }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_advanced_cell_12), new Object[] { "WPW", "BBB", "WPW", 'W', MINGRADE.wireFine(), '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', GOLD.wireFine(), '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', SA326.wireFine(), 'P', SA326.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_schrabidium_cell_2) }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_6), new Object[] { "BW", "PW", "BW", 'W', MAGTUNG.wireFine(), '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', MAGTUNG.wireFine(), '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', MAGTUNG.wireFine(), '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 }); - addShapelessAuto(ItemBattery.getFullBattery(ModItems.battery_potato), new Object[] { Items.potato, AL.wireFine(), CU.wireFine() }); addShapelessAuto(ItemBattery.getFullBattery(ModItems.battery_potatos), new Object[] { ItemBattery.getFullBattery(ModItems.battery_potato), ModItems.turret_chip, REDSTONE.dust() }); @@ -626,7 +593,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.fluid_barrel_empty, 2), new Object[] { "121", "1G1", "121", '1', STEEL.plate(), '2', AL.plate(), 'G', KEY_ANYPANE }); if(!GeneralConfig.enable528) { - addRecipeAuto(new ItemStack(ModItems.inf_water, 1), new Object[] { "222", "131", "222", '1', Items.water_bucket, '2', AL.plate(), '3', DIAMOND.gem() }); + addRecipeAuto(new ItemStack(ModItems.inf_water, 1), new Object[] { "222", "131", "222", '1', Fluids.WATER.getDict(1_000), '2', AL.plate(), '3', DIAMOND.gem() }); addRecipeAuto(new ItemStack(ModItems.inf_water_mk2, 1), new Object[] { "BPB", "PTP", "BPB", 'B', ModItems.inf_water, 'P', STEEL.pipe(), 'T', STEEL.shell() }); } @@ -638,7 +605,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.ams_core_sing, 1), new Object[] { "EAE", "ASA", "EAE", 'E', ModItems.plate_euphemium, 'A', ModItems.cell_anti_schrabidium, 'S', ModItems.singularity }); addRecipeAuto(new ItemStack(ModItems.ams_core_wormhole, 1), new Object[] { "DPD", "PSP", "DPD", 'D', ModItems.plate_dineutronium, 'P', ModItems.powder_spark_mix, 'S', ModItems.singularity }); addRecipeAuto(new ItemStack(ModItems.ams_core_eyeofharmony, 1), new Object[] { "ALA", "LSL", "ALA", 'A', ModItems.plate_dalekanium, 'L', new ItemStack(ModItems.fluid_barrel_full, 1, Fluids.LAVA.getID()), 'S', ModItems.black_hole }); - addRecipeAuto(new ItemStack(ModItems.ams_core_thingy), new Object[] { "NSN", "NGN", "G G", 'N', GOLD.nugget(), 'G', GOLD.ingot(), 'S', ModItems.battery_spark_cell_10000 }); + addRecipeAuto(new ItemStack(ModItems.ams_core_thingy), new Object[] { "NSN", "NGN", "G G", 'N', GOLD.nugget(), 'G', GOLD.ingot(), 'S', new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_QUANTUM.ordinal()) }); addRecipeAuto(new ItemStack(ModItems.photo_panel), new Object[] { " G ", "IPI", " C ", 'G', KEY_ANYPANE, 'I', ModItems.plate_polymer, 'P', NETHERQUARTZ.dust(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.PCB) }); addRecipeAuto(new ItemStack(ModBlocks.machine_satlinker), new Object[] { "PSP", "SCS", "PSP", 'P', STEEL.plate(), 'S', STAR.ingot(), 'C', ModItems.sat_chip }); addRecipeAuto(new ItemStack(ModBlocks.machine_keyforge), new Object[] { "PCP", "WSW", "WSW", 'P', STEEL.plate(), 'S', W.ingot(), 'C', ModItems.padlock, 'W', KEY_PLANKS }); @@ -1044,9 +1011,9 @@ public class CraftingManager { } if(!GeneralConfig.enable528) { - addRecipeAuto(new ItemStack(ModBlocks.struct_launcher_core, 1), new Object[] { "SCS", "SIS", "BEB", 'S', ModBlocks.steel_scaffold, 'I', Blocks.iron_bars, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'B', ModBlocks.struct_launcher, 'E', ModBlocks.machine_battery }); - addRecipeAuto(new ItemStack(ModBlocks.struct_launcher_core_large, 1), new Object[] { "SIS", "ICI", "BEB", 'S', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'I', Blocks.iron_bars, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'B', ModBlocks.struct_launcher, 'E', ModBlocks.machine_battery }); - addRecipeAuto(new ItemStack(ModBlocks.struct_soyuz_core, 1), new Object[] { "CUC", "TST", "TBT", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'U', ModItems.upgrade_power_3, 'T', ModBlocks.barrel_steel, 'S', ModBlocks.steel_scaffold, 'B', ModBlocks.machine_lithium_battery }); + addRecipeAuto(new ItemStack(ModBlocks.struct_launcher_core, 1), new Object[] { "SCS", "SIS", "BEB", 'S', ModBlocks.steel_scaffold, 'I', Blocks.iron_bars, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'B', ModBlocks.struct_launcher, 'E', new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LEAD.ordinal()) }); + addRecipeAuto(new ItemStack(ModBlocks.struct_launcher_core_large, 1), new Object[] { "SIS", "ICI", "BEB", 'S', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'I', Blocks.iron_bars, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'B', ModBlocks.struct_launcher, 'E', new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LEAD.ordinal()) }); + addRecipeAuto(new ItemStack(ModBlocks.struct_soyuz_core, 1), new Object[] { "CUC", "TST", "TBT", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'U', ModItems.upgrade_power_3, 'T', ModBlocks.barrel_steel, 'S', ModBlocks.steel_scaffold, 'B', new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LITHIUM.ordinal()) }); addRecipeAuto(new ItemStack(ModItems.reactor_sensor, 1), new Object[] { "WPW", "CMC", "PPP", 'W', W.wireFine(), 'P', PB.plate(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'M', ModItems.magnetron }); addRecipeAuto(new ItemStack(ModBlocks.rbmk_console, 1), new Object[] { "BBB", "DGD", "DCD", 'B', B.ingot(), 'D', ModBlocks.deco_rbmk, 'G', KEY_ANYPANE, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG) }); addRecipeAuto(new ItemStack(ModBlocks.rbmk_crane_console, 1), new Object[] { "BCD", "DDD", 'B', B.ingot(), 'D', ModBlocks.deco_rbmk, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG) }); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 7080fc9d2..3046a25cd 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -664,6 +664,7 @@ public class MainRegistry { event.registerServerCommand(new CommandReloadServer()); event.registerServerCommand(new CommandLocate()); event.registerServerCommand(new CommandCustomize()); + event.registerServerCommand(new CommandReapNetworks()); ArcFurnaceRecipes.registerFurnaceSmeltables(); // because we have to wait for other mods to take their merry ass time to register recipes } diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index a0f97f3b6..b89556fb4 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -271,6 +271,7 @@ public class ResourceManager { //FENSU public static final IModelCustom battery_socket = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/battery.obj")).asVBO(); + public static final IModelCustom battery_redd = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/fensu2.obj")).asVBO(); public static final IModelCustom fensu = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/fensu.obj")).asVBO(); //Radar @@ -739,6 +740,7 @@ public class ResourceManager { //FENSU public static final ResourceLocation battery_socket_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/battery_socket.png"); + public static final ResourceLocation battery_redd_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/fensu2.png"); public static final ResourceLocation fensu_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/fensu.png"); //Radar diff --git a/src/main/java/com/hbm/render/item/ItemRenderBatteryPack.java b/src/main/java/com/hbm/render/item/ItemRenderBatteryPack.java index bde3cbeac..1351bdb2d 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderBatteryPack.java +++ b/src/main/java/com/hbm/render/item/ItemRenderBatteryPack.java @@ -22,7 +22,7 @@ public class ItemRenderBatteryPack extends ItemRenderBase { EnumBatteryPack pack = EnumUtil.grabEnumSafely(EnumBatteryPack.class, item.getItemDamage()); GL11.glShadeModel(GL11.GL_SMOOTH); Minecraft.getMinecraft().getTextureManager().bindTexture(pack.texture); - ResourceManager.battery_socket.renderPart("Battery"); + ResourceManager.battery_socket.renderPart(pack.isCapacitor() ? "Capacitor" : "Battery"); GL11.glShadeModel(GL11.GL_FLAT); } } diff --git a/src/main/java/com/hbm/render/tileentity/RenderBatteryREDD.java b/src/main/java/com/hbm/render/tileentity/RenderBatteryREDD.java new file mode 100644 index 000000000..b0080da6d --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderBatteryREDD.java @@ -0,0 +1,264 @@ +package com.hbm.render.tileentity; + +import java.util.Random; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.ModBlocks; +import com.hbm.main.MainRegistry; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.render.util.BeamPronter; +import com.hbm.render.util.BeamPronter.EnumBeamType; +import com.hbm.render.util.BeamPronter.EnumWaveType; +import com.hbm.tileentity.machine.storage.TileEntityBatteryREDD; +import com.hbm.util.BobMathUtil; +import com.hbm.util.Clock; +import com.hbm.util.Vec3NT; + +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Vec3; +import net.minecraftforge.client.IItemRenderer; + +public class RenderBatteryREDD extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + switch(tile.getBlockMetadata() - 10) { + case 2: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(0, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(180, 0F, 1F, 0F); break; + } + + GL11.glShadeModel(GL11.GL_SMOOTH); + + bindTexture(ResourceManager.battery_redd_tex); + ResourceManager.battery_redd.renderPart("Base"); + + GL11.glPushMatrix(); + + GL11.glTranslated(0, 5.5, 0); + TileEntityBatteryREDD redd = (TileEntityBatteryREDD) tile; + float speed = redd.getSpeed(); + double rot = redd.prevRotation + (redd.rotation - redd.prevRotation) * interp; + GL11.glRotated(rot, 1, 0, 0); + GL11.glTranslated(0, -5.5, 0); + + ResourceManager.battery_redd.renderPart("Wheel"); + + RenderArcFurnace.fullbright(true); + ResourceManager.battery_redd.renderPart("Lights"); + + RenderArcFurnace.fullbright(false); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 5.5, 0); + + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glDisable(GL11.GL_TEXTURE_2D); + + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + GL11.glDisable(GL11.GL_ALPHA_TEST); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); + GL11.glDepthMask(false); + + Vec3NT vec = new Vec3NT(0, 0, 4); + + Tessellator tess = Tessellator.instance; + tess.startDrawingQuads(); + + double len = 4.25D; + double width = 0.125D; + double span = speed * 0.75; + + if(span > 0) for(int j = -1; j <= 1; j += 2) { + for(int i = 0; i < 8; i++) { + double xOffset = 0.8125 * j; + vec.setComponents(0, 1, 0); + vec.rotateAroundXDeg(i * 45D); + + tess.setColorRGBA_F(1F, 1F, 0F, 0.75F); + tess.addVertex(xOffset, vec.yCoord * len - vec.yCoord * width, vec.zCoord * len - vec.zCoord * width); + tess.addVertex(xOffset, vec.yCoord * len + vec.yCoord * width, vec.zCoord * len + vec.zCoord * width); + vec.rotateAroundXDeg(span); + tess.setColorRGBA_F(1F, 1F, 0F, 0.5F); + tess.addVertex(xOffset, vec.yCoord * len + vec.yCoord * width, vec.zCoord * len + vec.zCoord * width); + tess.addVertex(xOffset, vec.yCoord * len - vec.yCoord * width, vec.zCoord * len - vec.zCoord * width); + + tess.setColorRGBA_F(1F, 1F, 0F, 0.5F); + tess.addVertex(xOffset, vec.yCoord * len - vec.yCoord * width, vec.zCoord * len - vec.zCoord * width); + tess.addVertex(xOffset, vec.yCoord * len + vec.yCoord * width, vec.zCoord * len + vec.zCoord * width); + vec.rotateAroundXDeg(span); + tess.setColorRGBA_F(1F, 1F, 0F, 0.25F); + tess.addVertex(xOffset, vec.yCoord * len + vec.yCoord * width, vec.zCoord * len + vec.zCoord * width); + tess.addVertex(xOffset, vec.yCoord * len - vec.yCoord * width, vec.zCoord * len - vec.zCoord * width); + + tess.setColorRGBA_F(1F, 1F, 0F, 0.25F); + tess.addVertex(xOffset, vec.yCoord * len - vec.yCoord * width, vec.zCoord * len - vec.zCoord * width); + tess.addVertex(xOffset, vec.yCoord * len + vec.yCoord * width, vec.zCoord * len + vec.zCoord * width); + vec.rotateAroundXDeg(span); + tess.setColorRGBA_F(1F, 1F, 0F, 0F); + tess.addVertex(xOffset, vec.yCoord * len + vec.yCoord * width, vec.zCoord * len + vec.zCoord * width); + tess.addVertex(xOffset, vec.yCoord * len - vec.yCoord * width, vec.zCoord * len - vec.zCoord * width); + } + } + tess.draw(); + + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glDisable(GL11.GL_BLEND); + GL11.glDepthMask(true); + GL11.glPopAttrib(); + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glEnable(GL11.GL_TEXTURE_2D); + + GL11.glPopMatrix(); + + renderSparkle(tile); + + GL11.glPopMatrix(); + + if(speed > 0) renderZaps(tile); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + } + + protected void renderSparkle(TileEntity tile) { + TileEntityBatteryREDD redd = (TileEntityBatteryREDD) tile; + + long time = Clock.get_ms(); + float alpha = 0.45F + (float) (Math.sin(time / 1000D) * 0.15F); + float alphaMult = redd.getSpeed() / 15F; + float r = 1.0F; + float g = 0.25F; + float b = 0.75F; + + double mainOsc = BobMathUtil.sps(time / 1000D) % 1D; + double sparkleSpin = time / 250D * -1 % 1D; + double sparkleOsc = Math.sin(time / 1000D) * 0.5D % 1D; + + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + GL11.glDisable(GL11.GL_CULL_FACE); + + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + GL11.glDisable(GL11.GL_ALPHA_TEST); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); + GL11.glDepthMask(false); + + GL11.glColor4f(r, g, b, alpha * alphaMult); + + GL11.glMatrixMode(GL11.GL_TEXTURE); + GL11.glLoadIdentity(); + bindTexture(ResourceManager.fusion_plasma_tex); + GL11.glTranslated(0, mainOsc, 0); + ResourceManager.battery_redd.renderPart("Plasma"); + GL11.glMatrixMode(GL11.GL_TEXTURE); + GL11.glLoadIdentity(); + GL11.glMatrixMode(GL11.GL_MODELVIEW); + + // cost-cutting measure, don't render extra layers from more than 100m away + if(MainRegistry.proxy.me().getDistanceSq(tile.xCoord + 0.5, tile.yCoord + 2.5, tile.zCoord + 0.5) < 100 * 100) { + + GL11.glColor4f(r * 2, g * 2, b * 2, 0.75F * alphaMult); + + GL11.glMatrixMode(GL11.GL_TEXTURE); + GL11.glLoadIdentity(); + bindTexture(ResourceManager.fusion_plasma_sparkle_tex); + GL11.glTranslated(sparkleSpin, sparkleOsc, 0); + ResourceManager.battery_redd.renderPart("Plasma"); + GL11.glMatrixMode(GL11.GL_TEXTURE); + GL11.glLoadIdentity(); + GL11.glMatrixMode(GL11.GL_MODELVIEW); + } + + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glDisable(GL11.GL_BLEND); + GL11.glDepthMask(true); + GL11.glPopAttrib(); + + GL11.glEnable(GL11.GL_CULL_FACE); + } + + protected void renderZaps(TileEntity tile) { + + Random rand = new Random(tile.getWorldObj().getTotalWorldTime() / 5); + rand.nextBoolean(); + + if(rand.nextBoolean()) { + GL11.glPushMatrix(); + GL11.glTranslated(3.125, 5.5, 0); + BeamPronter.prontBeam(Vec3.createVectorHelper(-1.375, -2.625, 3.75), EnumWaveType.RANDOM, EnumBeamType.SOLID, 0x404040, 0x002040, (int)(System.currentTimeMillis() % 1000) / 50, 15, 0.25F, 3, 0.0625F); + BeamPronter.prontBeam(Vec3.createVectorHelper(-1.375, -2.625, 3.75), EnumWaveType.RANDOM, EnumBeamType.SOLID, 0x404040, 0x002040, (int)(System.currentTimeMillis() % 1000) / 50, 1, 0, 3, 0.0625F); + GL11.glPopMatrix(); + } + + if(rand.nextBoolean()) { + GL11.glPushMatrix(); + GL11.glTranslated(-3.125, 5.5, 0); + BeamPronter.prontBeam(Vec3.createVectorHelper(1.375, -2.625, 3.75), EnumWaveType.RANDOM, EnumBeamType.SOLID, 0x404040, 0x002040, (int)(System.currentTimeMillis() % 1000) / 50, 15, 0.25F, 3, 0.0625F); + BeamPronter.prontBeam(Vec3.createVectorHelper(1.375, -2.625, 3.75), EnumWaveType.RANDOM, EnumBeamType.SOLID, 0x404040, 0x002040, (int)(System.currentTimeMillis() % 1000) / 50, 1, 0, 3, 0.0625F); + GL11.glPopMatrix(); + } + + if(rand.nextBoolean()) { + GL11.glPushMatrix(); + GL11.glTranslated(3.125, 5.5, 0); + BeamPronter.prontBeam(Vec3.createVectorHelper(-1.375, -2.625, -3.75), EnumWaveType.RANDOM, EnumBeamType.SOLID, 0x404040, 0x002040, (int)(System.currentTimeMillis() % 1000) / 50, 15, 0.25F, 3, 0.0625F); + BeamPronter.prontBeam(Vec3.createVectorHelper(-1.375, -2.625, -3.75), EnumWaveType.RANDOM, EnumBeamType.SOLID, 0x404040, 0x002040, (int)(System.currentTimeMillis() % 1000) / 50, 1, 0, 3, 0.0625F); + GL11.glPopMatrix(); + } + + if(rand.nextBoolean()) { + GL11.glPushMatrix(); + GL11.glTranslated(-3.125, 5.5, 0); + BeamPronter.prontBeam(Vec3.createVectorHelper(1.375, -2.625, -3.75), EnumWaveType.RANDOM, EnumBeamType.SOLID, 0x404040, 0x002040, (int)(System.currentTimeMillis() % 1000) / 50, 15, 0.25F, 3, 0.0625F); + BeamPronter.prontBeam(Vec3.createVectorHelper(1.375, -2.625, -3.75), EnumWaveType.RANDOM, EnumBeamType.SOLID, 0x404040, 0x002040, (int)(System.currentTimeMillis() % 1000) / 50, 1, 0, 3, 0.0625F); + GL11.glPopMatrix(); + } + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_battery_redd); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -3, 0); + GL11.glScaled(2.5, 2.5, 2.5); + } + public void renderCommon() { + GL11.glRotated(-90, 0, 1, 0); + GL11.glScaled(0.5, 0.5, 0.5); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.battery_redd_tex); + ResourceManager.battery_redd.renderPart("Base"); + ResourceManager.battery_redd.renderPart("Wheel"); + GL11.glDisable(GL11.GL_LIGHTING); + ResourceManager.battery_redd.renderPart("Lights"); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glShadeModel(GL11.GL_FLAT); + }}; + } + +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderBatterySocket.java b/src/main/java/com/hbm/render/tileentity/RenderBatterySocket.java index 66a69928d..20a63dbf1 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderBatterySocket.java +++ b/src/main/java/com/hbm/render/tileentity/RenderBatterySocket.java @@ -41,7 +41,7 @@ public class RenderBatterySocket extends TileEntitySpecialRenderer implements II if(socket.renderPack >= 0) { EnumBatteryPack pack = EnumUtil.grabEnumSafely(EnumBatteryPack.class, socket.renderPack); bindTexture(pack.texture); - ResourceManager.battery_socket.renderPart("Battery"); + ResourceManager.battery_socket.renderPart(pack.isCapacitor() ? "Capacitor" : "Battery"); } GL11.glShadeModel(GL11.GL_FLAT); diff --git a/src/main/java/com/hbm/render/util/BeamPronter.java b/src/main/java/com/hbm/render/util/BeamPronter.java index 27a065534..c13b90d7c 100644 --- a/src/main/java/com/hbm/render/util/BeamPronter.java +++ b/src/main/java/com/hbm/render/util/BeamPronter.java @@ -9,6 +9,8 @@ import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; public class BeamPronter { + + public static Random rand = new Random(); public static enum EnumWaveType { RANDOM, SPIRAL @@ -51,7 +53,7 @@ public class BeamPronter { Tessellator tessellator = Tessellator.instance; Vec3 unit = Vec3.createVectorHelper(0, 1, 0); - Random rand = new Random(start); + rand.setSeed(start); double length = skeleton.lengthVector(); double segLength = length / segments; double lastX = 0; diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index cf5ce3cac..629fb59cb 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -82,6 +82,7 @@ public class TileMappings { put(TileEntityDecoPoleSatelliteReceiver.class, "tileentity_satellitereceicer"); put(TileEntityMachineBattery.class, "tileentity_battery"); put(TileEntityBatterySocket.class, "tileentity_battery_socket"); + put(TileEntityBatteryREDD.class, "tileentity_battery_redd"); put(TileEntityCapacitor.class, "tileentity_capacitor"); put(TileEntityMachineWoodBurner.class, "tileentity_wood_burner"); put(TileEntityRedBarrel.class, "tileentity_barrel"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java index c19a88a9d..46e10928f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java @@ -122,6 +122,7 @@ public class TileEntityCrucible extends TileEntityMachineBase implements IGUIPro if(stack.stackSize == 1) { slots[i] = stack.copy(); item.setDead(); + item.delayBeforeCanPickup = 60; break; } else { slots[i] = stack.copy(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java index b15835f7e..7eff4e854 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java @@ -662,6 +662,7 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements if(stack.stackSize <= 0) { item.setDead(); + item.delayBeforeCanPickup = 60; // seems fucking stupid, but prevents frame-perfect dupe exploit continue outer; } } @@ -676,6 +677,7 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements slots[i] = stack.copy(); item.setDead(); + item.delayBeforeCanPickup = 60; break; } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java index b9cf87f7f..c270b3828 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java @@ -28,8 +28,6 @@ import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.util.fauxpointtwelve.DirPos; import com.hbm.util.i18n.I18nUtil; -import api.hbm.block.IDrillInteraction; -import api.hbm.block.IMiningDrill; import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardSender; import cpw.mods.fml.relauncher.Side; @@ -53,7 +51,7 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineMiningLaser extends TileEntityMachineBase implements IEnergyReceiverMK2, IMiningDrill, IFluidStandardSender, IGUIProvider, IUpgradeInfoProvider { +public class TileEntityMachineMiningLaser extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardSender, IGUIProvider, IUpgradeInfoProvider { public long power; public int age = 0; @@ -325,17 +323,6 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen } } - if(normal && b instanceof IDrillInteraction) { - IDrillInteraction in = (IDrillInteraction) b; - ItemStack drop = in.extractResource(worldObj, targetX, targetY, targetZ, meta, this); - - if(drop != null) { - worldObj.spawnEntityInWorld(new EntityItem(worldObj, targetX + 0.5, targetY + 0.5, targetZ + 0.5, drop.copy())); - } - - doesBreak = in.canBreak(worldObj, targetX, targetY, targetZ, meta, this); - } - if(doesBreak) { if(normal) b.dropBlockAsItem(worldObj, targetX, targetY, targetZ, meta, fortune); worldObj.func_147480_a(targetX, targetY, targetZ, false); @@ -386,6 +373,7 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen if(nullifier && bad.contains(item.getEntityItem().getItem())) { item.setDead(); + item.delayBeforeCanPickup = 60; continue; } @@ -398,15 +386,18 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen tank.setFill(tank.getMaxFill()); item.setDead(); + item.delayBeforeCanPickup = 60; continue; } ItemStack stack = InventoryUtil.tryAddItemToInventory(slots, 9, 29, item.getEntityItem().copy()); - if(stack == null) + if(stack == null) { item.setDead(); - else + item.delayBeforeCanPickup = 60; + } else { item.setEntityItemStack(stack.copy()); //copy is not necessary but i'm paranoid due to the kerfuffle of the old drill + } } List mobs = worldObj.getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox( @@ -460,106 +451,68 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen } public int getRange() { - int range = 1; - for(int i = 1; i < 9; i++) { - if(slots[i] != null) { - - if(slots[i].getItem() == ModItems.upgrade_effect_1) - range += 2; - else if(slots[i].getItem() == ModItems.upgrade_effect_2) - range += 4; - else if(slots[i].getItem() == ModItems.upgrade_effect_3) - range += 6; + if(slots[i].getItem() == ModItems.upgrade_effect_1) range += 2; + else if(slots[i].getItem() == ModItems.upgrade_effect_2) range += 4; + else if(slots[i].getItem() == ModItems.upgrade_effect_3) range += 6; } } - return Math.min(range, 25); } public boolean hasNullifier() { - for(int i = 1; i < 9; i++) { - if(slots[i] != null) { - - if(slots[i].getItem() == ModItems.upgrade_nullifier) - return true; + if(slots[i].getItem() == ModItems.upgrade_nullifier) return true; } } - return false; } public boolean hasSmelter() { - for(int i = 1; i < 9; i++) { - if(slots[i] != null) { - - if(slots[i].getItem() == ModItems.upgrade_smelter) - return true; + if(slots[i].getItem() == ModItems.upgrade_smelter) return true; } } - return false; } public boolean hasShredder() { - for(int i = 1; i < 9; i++) { - if(slots[i] != null) { - - if(slots[i].getItem() == ModItems.upgrade_shredder) - return true; + if(slots[i].getItem() == ModItems.upgrade_shredder) return true; } } - return false; } public boolean hasCentrifuge() { - for(int i = 1; i < 9; i++) { - if(slots[i] != null) { - - if(slots[i].getItem() == ModItems.upgrade_centrifuge) - return true; + if(slots[i].getItem() == ModItems.upgrade_centrifuge) return true; } } - return false; } public boolean hasCrystallizer() { - for(int i = 1; i < 9; i++) { - if(slots[i] != null) { - - if(slots[i].getItem() == ModItems.upgrade_crystallizer) - return true; + if(slots[i].getItem() == ModItems.upgrade_crystallizer) return true; } } - return false; } public boolean doesScream() { - for(int i = 1; i < 9; i++) { - if(slots[i] != null) { - - if(slots[i].getItem() == ModItems.upgrade_screm) - return true; + if(slots[i].getItem() == ModItems.upgrade_screm) return true; } } - return false; } @@ -642,6 +595,7 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen super.readFromNBT(nbt); tank.readFromNBT(nbt, "oil"); + power = nbt.getLong("power"); isOn = nbt.getBoolean("isOn"); redstonePowered = false; } @@ -651,19 +605,10 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen super.writeToNBT(nbt); tank.writeToNBT(nbt, "oil"); + nbt.setLong("power", power); nbt.setBoolean("isOn", isOn); } - @Override - public DrillType getDrillTier() { - return DrillType.HITECH; - } - - @Override - public int getDrillRating() { - return 100; - } - @Override public FluidTank[] getSendingTanks() { return new FluidTank[] { tank }; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java index 1cff1e6e5..3ddd3b986 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java @@ -582,7 +582,7 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getHeat(Context context, Arguments args) { - return new Object[] {coreHeat, hullHeat}; + return new Object[] {coreHeat, hullHeat, coreHeatCapacity, hullHeatCapacityBase}; } @Callback(direct = true) @@ -612,7 +612,7 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { - return new Object[] {coreHeat, hullHeat, flux, rodTarget, rodLevel, amountLoaded, progress, processTime, tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill()}; + return new Object[] {coreHeat, hullHeat, coreHeatCapacity, hullHeatCapacityBase, flux, rodTarget, rodLevel, amountLoaded, progress, processTime, tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill()}; } @Callback(direct = true, limit = 4) 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 3965ea170..dd355a829 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java @@ -68,9 +68,13 @@ public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements I feed.setFill(feed.getFill() - step.amountReq * ops); steam.setFill(steam.getFill() + step.amountProduced * ops); this.heat -= (step.heatReq * ops / TU_PER_DEGREE) * trait.getEfficiency(HeatingType.HEATEXCHANGER); + } else { + feed.setTankType(Fluids.NONE); + steam.setTankType(Fluids.NONE); } } else { + feed.setTankType(Fluids.NONE); steam.setTankType(Fluids.NONE); } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBatteryBase.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBatteryBase.java new file mode 100644 index 000000000..34976ac9d --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBatteryBase.java @@ -0,0 +1,184 @@ +package com.hbm.tileentity.machine.storage; + +import com.hbm.interfaces.IControlReceiver; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.uninos.UniNodespace; +import com.hbm.util.EnumUtil; +import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.energymk2.IBatteryItem; +import api.hbm.energymk2.IEnergyConductorMK2; +import api.hbm.energymk2.IEnergyProviderMK2; +import api.hbm.energymk2.IEnergyReceiverMK2; +import api.hbm.energymk2.Nodespace; +import api.hbm.energymk2.Nodespace.PowerNode; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; + +public abstract class TileEntityBatteryBase extends TileEntityMachineBase implements IEnergyConductorMK2, IEnergyProviderMK2, IEnergyReceiverMK2, IControlReceiver, IGUIProvider { + + public byte lastRedstone = 0; + public long prevPowerState = 0; + + public static final int mode_input = 0; + public static final int mode_buffer = 1; + public static final int mode_output = 2; + public static final int mode_none = 3; + public short redLow = 0; + public short redHigh = 2; + public ConnectionPriority priority = ConnectionPriority.LOW; + + protected PowerNode node; + + public TileEntityBatteryBase(int slotCount) { + super(slotCount); + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(priority == null || priority.ordinal() == 0 || priority.ordinal() == 4) { + priority = ConnectionPriority.LOW; + } + + if(this.node == null || this.node.expired) { + this.node = (PowerNode) UniNodespace.getNode(worldObj, xCoord, yCoord, zCoord, Nodespace.THE_POWER_PROVIDER); + + if(this.node == null || this.node.expired) { + this.node = this.createNode(); + UniNodespace.createNode(worldObj, this.node); + } + } + + if(this.node != null && this.node.hasValidNet()) switch(this.getRelevantMode(false)) { + case mode_input: this.node.net.removeProvider(this); this.node.net.addReceiver(this); break; + case mode_output: this.node.net.addProvider(this); this.node.net.removeReceiver(this); break; + case mode_buffer: this.node.net.addProvider(this); this.node.net.addReceiver(this); break; + case mode_none: this.node.net.removeProvider(this); this.node.net.removeReceiver(this); break; + } + + byte comp = this.getComparatorPower(); + if(comp != this.lastRedstone) this.markDirty(); + this.lastRedstone = comp; + + prevPowerState = this.getPower(); + + this.networkPackNT(100); + } + } + + public byte getComparatorPower() { + double frac = (double) this.getPower() / (double) this.getMaxPower() * 15D; + return (byte) (MathHelper.clamp_int((int) frac + 1, 0, 15)); //to combat eventual rounding errors with the FEnSU's stupid maxPower + } + + @Override + public PowerNode createNode() { + return new PowerNode(this.getPortPos()).setConnections(this.getConPos()); + } + + @Override + public void invalidate() { + super.invalidate(); + + if(!worldObj.isRemote) { + if(this.node != null) { + UniNodespace.destroyNode(worldObj, xCoord, yCoord, zCoord, Nodespace.THE_POWER_PROVIDER); + } + } + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack stack) { + return stack.getItem() instanceof IBatteryItem; + } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + + buf.writeShort(redLow); + buf.writeShort(redHigh); + buf.writeByte(priority.ordinal()); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + + redLow = buf.readShort(); + redHigh = buf.readShort(); + priority = EnumUtil.grabEnumSafely(ConnectionPriority.class, buf.readByte()); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + this.redLow = nbt.getShort("redLow"); + this.redHigh = nbt.getShort("redHigh"); + this.lastRedstone = nbt.getByte("lastRedstone"); + this.priority = EnumUtil.grabEnumSafely(ConnectionPriority.class, nbt.getByte("priority")); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setShort("redLow", redLow); + nbt.setShort("redHigh", redHigh); + nbt.setByte("lastRedstone", lastRedstone); + nbt.setByte("priority", (byte) this.priority.ordinal()); + } + + @Override public boolean allowDirectProvision() { return false; } + @Override public ConnectionPriority getPriority() { return this.priority; } + + public abstract BlockPos[] getPortPos(); + public abstract DirPos[] getConPos(); + + private short modeCache = 0; + + public short getRelevantMode(boolean useCache) { + if(useCache) return this.modeCache; + boolean powered = false; + for(BlockPos pos : getPortPos()) if(worldObj.isBlockIndirectlyGettingPowered(pos.getX(), pos.getY(), pos.getZ())) { powered = true; break; } + this.modeCache = powered ? this.redHigh : this.redLow; + return this.modeCache; + } + + @Override public boolean hasPermission(EntityPlayer player) { return this.isUseableByPlayer(player); } + + @Override + public void receiveControl(NBTTagCompound data) { + if(data.hasKey("low")) { + this.redLow++; + if(this.redLow > 3) this.redLow = 0; + } + if(data.hasKey("high")) { + this.redHigh++; + if(this.redHigh > 3) this.redHigh = 0; + } + if(data.hasKey("priority")) { + int ordinal = this.priority.ordinal(); + ordinal++; + if(ordinal > ConnectionPriority.HIGH.ordinal()) ordinal = ConnectionPriority.LOW.ordinal(); + this.priority = EnumUtil.grabEnumSafely(ConnectionPriority.class, ordinal); + } + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBatteryREDD.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBatteryREDD.java new file mode 100644 index 000000000..06f3d8a8d --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBatteryREDD.java @@ -0,0 +1,219 @@ +package com.hbm.tileentity.machine.storage; + +import java.math.BigInteger; + +import com.hbm.inventory.container.ContainerBatteryREDD; +import com.hbm.inventory.gui.GUIBatteryREDD; +import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; +import com.hbm.sound.AudioWrapper; +import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.fauxpointtwelve.DirPos; + +import io.netty.buffer.ByteBuf; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityBatteryREDD extends TileEntityBatteryBase { + + public float prevRotation = 0F; + public float rotation = 0F; + + public BigInteger[] log = new BigInteger[20]; + public BigInteger delta = BigInteger.valueOf(0); + + public BigInteger power = BigInteger.valueOf(0); + + private AudioWrapper audio; + + public TileEntityBatteryREDD() { + super(2); + } + + @Override public String getName() { return "container.batteryREDD"; } + + @Override + public void updateEntity() { + BigInteger prevPower = new BigInteger(power.toByteArray()); + + super.updateEntity(); + + if(!worldObj.isRemote) { + + long toAdd = Library.chargeTEFromItems(slots, 0, 0, this.getMaxPower()); + if(toAdd > 0) this.power = this.power.add(BigInteger.valueOf(toAdd)); + + long toRemove = this.getPower() - Library.chargeItemsFromTE(slots, 1, this.getPower(), this.getMaxPower()); + if(toRemove > 0)this.power = this.power.subtract(BigInteger.valueOf(toRemove)); + + // same implementation as for batteries, however retooled to use bigints because fuck + BigInteger avg = this.power.add(prevPower).divide(BigInteger.valueOf(2)); + this.delta = avg.subtract(this.log[0] == null ? BigInteger.ZERO : this.log[0]); + + for(int i = 1; i < this.log.length; i++) { + this.log[i - 1] = this.log[i]; + } + + this.log[19] = avg; + + } else { + this.prevRotation = this.rotation; + this.rotation += this.getSpeed(); + + if(rotation >= 360) { + rotation -= 360; + prevRotation -= 360; + } + + float pitch = 0.5F + this.getSpeed() / 15F * 1.5F; + + if(this.prevRotation != this.rotation && MainRegistry.proxy.me().getDistanceSq(xCoord + 0.5, yCoord + 5.5, zCoord + 0.5) < 50 * 50) { + if(this.audio == null || !this.audio.isPlaying()) { + this.audio = MainRegistry.proxy.getLoopedSound("hbm:block.fensuHum", xCoord, yCoord, zCoord, this.getVolume(1.5F), 25F, pitch, 5); + this.audio.startSound(); + } + this.audio.updatePitch(pitch); + this.audio.keepAlive(); + + } else { + if(this.audio != null) { + this.audio.stopSound(); + this.audio = null; + } + } + } + } + + public float getSpeed() { + return (float) Math.min(Math.pow(Math.log(this.power.doubleValue() * 0.05 + 1) * 0.05F, 5), 15F); + } + + @Override + public void onChunkUnload() { + super.onChunkUnload(); + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + @Override + public void invalidate() { + super.invalidate(); + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + + byte[] array0 = this.power.toByteArray(); + buf.writeInt(array0.length); + for(byte b : array0) buf.writeByte(b); + + byte[] array1 = this.delta.toByteArray(); + buf.writeInt(array1.length); + for(byte b : array1) buf.writeByte(b); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + + byte[] array0 = new byte[buf.readInt()]; + for(int i = 0 ; i < array0.length; i++) array0[i] = buf.readByte(); + this.power = new BigInteger(array0); + + byte[] array1 = new byte[buf.readInt()]; + for(int i = 0 ; i < array1.length; i++) array1[i] = buf.readByte(); + this.delta = new BigInteger(array1); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + this.power = new BigInteger(nbt.getByteArray("power")); + + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setByteArray("power", this.power.toByteArray()); + + } + + @Override + public BlockPos[] getPortPos() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + return new BlockPos[] { + new BlockPos(xCoord + dir.offsetX * 2 + rot.offsetX * 2, yCoord, zCoord + dir.offsetZ * 2 + rot.offsetZ * 2), + new BlockPos(xCoord + dir.offsetX * 2 - rot.offsetX * 2, yCoord, zCoord + dir.offsetZ * 2 - rot.offsetZ * 2), + new BlockPos(xCoord - dir.offsetX * 2 + rot.offsetX * 2, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ * 2), + new BlockPos(xCoord - dir.offsetX * 2 - rot.offsetX * 2, yCoord, zCoord - dir.offsetZ * 2 - rot.offsetZ * 2), + new BlockPos(xCoord + rot.offsetX * 4, yCoord, zCoord + rot.offsetZ * 4), + new BlockPos(xCoord - rot.offsetX * 4, yCoord, zCoord - rot.offsetZ * 4), + }; + } + + @Override + public DirPos[] getConPos() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + return new DirPos[] { + new DirPos(xCoord + dir.offsetX * 3 + rot.offsetX * 2, yCoord, zCoord + dir.offsetZ * 3 + rot.offsetZ * 2, dir), + new DirPos(xCoord + dir.offsetX * 3 - rot.offsetX * 2, yCoord, zCoord + dir.offsetZ * 3 - rot.offsetZ * 2, dir), + new DirPos(xCoord - dir.offsetX * 3 + rot.offsetX * 2, yCoord, zCoord - dir.offsetZ * 3 + rot.offsetZ * 2, dir.getOpposite()), + new DirPos(xCoord - dir.offsetX * 3 - rot.offsetX * 2, yCoord, zCoord - dir.offsetZ * 3 - rot.offsetZ * 2, dir.getOpposite()), + new DirPos(xCoord + rot.offsetX * 5, yCoord, zCoord + rot.offsetZ * 5, rot), + new DirPos(xCoord - rot.offsetX * 5, yCoord, zCoord - rot.offsetZ * 5, rot.getOpposite()), + }; + } + + @Override + public void usePower(long power) { + this.power = this.power.subtract(BigInteger.valueOf(power)); + } + + @Override + public long transferPower(long power) { + this.power = this.power.add(BigInteger.valueOf(power)); + return 0L; + } + + @Override public long getPower() { return this.power.min(BigInteger.valueOf(getMaxPower() / 2)).longValue(); } // for provision + @Override public void setPower(long power) { } // not needed since we use transferPower and usePower directly + @Override public long getMaxPower() { return Long.MAX_VALUE / 100L; } // for connection speed + + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerBatteryREDD(player.inventory, this); } + @Override public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIBatteryREDD(player.inventory, this); } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 4, + yCoord, + zCoord - 4, + xCoord + 5, + yCoord + 10, + zCoord + 5 + ); + } + + return bb; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBatterySocket.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBatterySocket.java index f354405f6..329391fc3 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBatterySocket.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBatterySocket.java @@ -1,49 +1,26 @@ package com.hbm.tileentity.machine.storage; -import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.container.ContainerBatterySocket; import com.hbm.inventory.gui.GUIBatterySocket; import com.hbm.items.ModItems; -import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityMachineBase; -import com.hbm.uninos.UniNodespace; -import com.hbm.util.EnumUtil; import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energymk2.IBatteryItem; -import api.hbm.energymk2.IEnergyConductorMK2; -import api.hbm.energymk2.IEnergyProviderMK2; -import api.hbm.energymk2.IEnergyReceiverMK2; -import api.hbm.energymk2.Nodespace; -import api.hbm.energymk2.Nodespace.PowerNode; import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.MathHelper; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityBatterySocket extends TileEntityMachineBase implements IEnergyConductorMK2, IEnergyProviderMK2, IEnergyReceiverMK2, IControlReceiver, IGUIProvider { +public class TileEntityBatterySocket extends TileEntityBatteryBase { public long[] log = new long[20]; public long delta = 0; - public byte lastRedstone = 0; - public long prevPowerState = 0; - - public static final int mode_input = 0; - public static final int mode_buffer = 1; - public static final int mode_output = 2; - public static final int mode_none = 3; - public short redLow = 0; - public short redHigh = 2; - public ConnectionPriority priority = ConnectionPriority.LOW; public int renderPack = -1; - - protected PowerNode node; public TileEntityBatterySocket() { super(1); @@ -53,36 +30,12 @@ public class TileEntityBatterySocket extends TileEntityMachineBase implements IE @Override public void updateEntity() { + long prevPower = this.getPower(); + + super.updateEntity(); if(!worldObj.isRemote) { - if(priority == null || priority.ordinal() == 0 || priority.ordinal() == 4) { - priority = ConnectionPriority.LOW; - } - - long prevPower = this.getPower(); - - if(this.node == null || this.node.expired) { - - this.node = (PowerNode) UniNodespace.getNode(worldObj, xCoord, yCoord, zCoord, Nodespace.THE_POWER_PROVIDER); - - if(this.node == null || this.node.expired) { - this.node = this.createNode(); - UniNodespace.createNode(worldObj, this.node); - } - } - - if(this.node != null && this.node.hasValidNet()) switch(this.getRelevantMode(false)) { - case mode_input: this.node.net.removeProvider(this); this.node.net.addReceiver(this); break; - case mode_output: this.node.net.addProvider(this); this.node.net.removeReceiver(this); break; - case mode_buffer: this.node.net.addProvider(this); this.node.net.addReceiver(this); break; - case mode_none: this.node.net.removeProvider(this); this.node.net.removeReceiver(this); break; - } - - byte comp = this.getComparatorPower(); - if(comp != this.lastRedstone) this.markDirty(); - this.lastRedstone = comp; - long avg = (this.getPower() + prevPower) / 2; this.delta = avg - this.log[0]; @@ -91,31 +44,6 @@ public class TileEntityBatterySocket extends TileEntityMachineBase implements IE } this.log[19] = avg; - - prevPowerState = this.getPower(); - - this.networkPackNT(100); - } - } - - @Override - public PowerNode createNode() { - return new PowerNode(this.getPortPos()).setConnections(this.getConPos()); - } - - public byte getComparatorPower() { - double frac = (double) this.getPower() / (double) this.getMaxPower() * 15D; - return (byte) (MathHelper.clamp_int((int) frac + 1, 0, 15)); //to combat eventual rounding errors with the FEnSU's stupid maxPower - } - - @Override - public void invalidate() { - super.invalidate(); - - if(!worldObj.isRemote) { - if(this.node != null) { - UniNodespace.destroyNode(worldObj, xCoord, yCoord, zCoord, Nodespace.THE_POWER_PROVIDER); - } } } @@ -127,43 +55,15 @@ public class TileEntityBatterySocket extends TileEntityMachineBase implements IE if(slots[0] != null && slots[0].getItem() == ModItems.battery_pack) { renderPack = slots[0].getItemDamage(); } - buf.writeInt(renderPack); buf.writeLong(delta); - buf.writeShort(redLow); - buf.writeShort(redHigh); - buf.writeByte(priority.ordinal()); } @Override public void deserialize(ByteBuf buf) { super.deserialize(buf); - renderPack = buf.readInt(); delta = buf.readLong(); - redLow = buf.readShort(); - redHigh = buf.readShort(); - priority = EnumUtil.grabEnumSafely(ConnectionPriority.class, buf.readByte()); - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - - this.redLow = nbt.getShort("redLow"); - this.redHigh = nbt.getShort("redHigh"); - this.lastRedstone = nbt.getByte("lastRedstone"); - this.priority = EnumUtil.grabEnumSafely(ConnectionPriority.class, nbt.getByte("priority")); - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - - nbt.setShort("redLow", redLow); - nbt.setShort("redHigh", redHigh); - nbt.setByte("lastRedstone", lastRedstone); - nbt.setByte("priority", (byte) this.priority.ordinal()); } @Override @@ -175,11 +75,6 @@ public class TileEntityBatterySocket extends TileEntityMachineBase implements IE return false; } - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - return stack.getItem() instanceof IBatteryItem; - } - @Override public int[] getAccessibleSlotsFromSide(int side) { return new int[] {0}; } @Override @@ -200,9 +95,6 @@ public class TileEntityBatterySocket extends TileEntityMachineBase implements IE return ((IBatteryItem) slots[0].getItem()).getMaxCharge(slots[0]); } - @Override public boolean allowDirectProvision() { return false; } - @Override public ConnectionPriority getPriority() { return this.priority; } - @Override public long getProviderSpeed() { if(slots[0] == null || !(slots[0].getItem() instanceof IBatteryItem)) return 0; int mode = this.getRelevantMode(true); @@ -214,7 +106,8 @@ public class TileEntityBatterySocket extends TileEntityMachineBase implements IE int mode = this.getRelevantMode(true); return mode == mode_input || mode == mode_buffer ? ((IBatteryItem) slots[0].getItem()).getChargeRate(slots[0]) : 0; } - + + @Override public BlockPos[] getPortPos() { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); @@ -226,6 +119,7 @@ public class TileEntityBatterySocket extends TileEntityMachineBase implements IE }; } + @Override public DirPos[] getConPos() { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); @@ -244,36 +138,25 @@ public class TileEntityBatterySocket extends TileEntityMachineBase implements IE }; } - private short modeCache = 0; - - public short getRelevantMode(boolean useCache) { - if(useCache) return this.modeCache; - boolean powered = false; - for(BlockPos pos : getPortPos()) if(worldObj.isBlockIndirectlyGettingPowered(pos.getX(), pos.getY(), pos.getZ())) { powered = true; break; } - this.modeCache = powered ? this.redHigh : this.redLow; - return this.modeCache; - } - @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerBatterySocket(player.inventory, this); } @Override public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIBatterySocket(player.inventory, this); } - - @Override public boolean hasPermission(EntityPlayer player) { return this.isUseableByPlayer(player); } - + + AxisAlignedBB bb = null; + @Override - public void receiveControl(NBTTagCompound data) { - if(data.hasKey("low")) { - this.redLow++; - if(this.redLow > 3) this.redLow = 0; - } - if(data.hasKey("high")) { - this.redHigh++; - if(this.redHigh > 3) this.redHigh = 0; - } - if(data.hasKey("priority")) { - int ordinal = this.priority.ordinal(); - ordinal++; - if(ordinal > ConnectionPriority.HIGH.ordinal()) ordinal = ConnectionPriority.LOW.ordinal(); - this.priority = EnumUtil.grabEnumSafely(ConnectionPriority.class, ordinal); + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 2, + zCoord + 2 + ); } + + return bb; } } diff --git a/src/main/java/com/hbm/uninos/UniNodespace.java b/src/main/java/com/hbm/uninos/UniNodespace.java index 35daa8856..2f8e1faf2 100644 --- a/src/main/java/com/hbm/uninos/UniNodespace.java +++ b/src/main/java/com/hbm/uninos/UniNodespace.java @@ -3,6 +3,7 @@ package com.hbm.uninos; import java.util.HashMap; import java.util.HashSet; import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.Map.Entry; @@ -23,7 +24,7 @@ import net.minecraft.world.World; */ public class UniNodespace { - public static HashMap worlds = new HashMap(); + public static Map worlds = new HashMap(); public static Set activeNodeNets = new HashSet(); public static GenNode getNode(World world, int x, int y, int z, INetworkProvider type) { @@ -54,6 +55,7 @@ public class UniNodespace { } } + private static int reapTimer = 0; public static void updateNodespace() { for(World world : MinecraftServer.getServer().worldServers) { @@ -72,12 +74,23 @@ public class UniNodespace { } updateNetworks(); + updateReapTimer(); } private static void updateNetworks() { for(NodeNet net : activeNodeNets) net.resetTrackers(); //reset has to be done before everything else for(NodeNet net : activeNodeNets) net.update(); + + if(reapTimer <= 0) { + activeNodeNets.forEach((net) -> { net.links.removeIf((link) -> { return ((GenNode) link).expired; }); }); + activeNodeNets.removeIf((net) -> { return net.links.size() <= 0; }); // reap empty networks + } + } + + private static void updateReapTimer() { + if(reapTimer <= 0) reapTimer = 5 * 60 * 20; // 5 minutes is more than plenty + else reapTimer--; } /** Goes over each connection point of the given node, tries to find neighbor nodes and to join networks with them */ diff --git a/src/main/java/com/hbm/util/Tuple.java b/src/main/java/com/hbm/util/Tuple.java index f2276386e..22f750185 100644 --- a/src/main/java/com/hbm/util/Tuple.java +++ b/src/main/java/com/hbm/util/Tuple.java @@ -194,6 +194,17 @@ public class Tuple { public Z getZ() { return this.z; } + + /// flavor town /// + public void mangle(W w, X x, Y y, Z z) { + this.w = w; + this.x = x; + this.y = y; + this.z = z; + } + public Quartet clone() { + return new Quartet(w, x, y, z); + } } public static class Quintet { diff --git a/src/main/java/com/hbm/world/dungeon/DesertAtom001.java b/src/main/java/com/hbm/world/dungeon/DesertAtom001.java index 02d2bee28..4cfcf89e7 100644 --- a/src/main/java/com/hbm/world/dungeon/DesertAtom001.java +++ b/src/main/java/com/hbm/world/dungeon/DesertAtom001.java @@ -22,31 +22,7 @@ public class DesertAtom001 extends WorldGenerator Block Block2 = ModBlocks.yellow_barrel; Block Block3 = ModBlocks.reinforced_sand; Block Block4 = ModBlocks.crashed_balefire; - Block Block5 = ModBlocks.deco_steel; - Block Block6 = ModBlocks.brick_light; Block Block7 = ModBlocks.deco_tungsten; - Block Block8 = ModBlocks.steel_poles; - Block Block9 = ModBlocks.tape_recorder; - Block Block10 = ModBlocks.machine_rtg_furnace_off; - Block Block11 = ModBlocks.reinforced_glass; - Block Block12 = ModBlocks.reinforced_lamp_off; - Block Block13 = ModBlocks.pole_satellite_receiver; - Block Block14 = ModBlocks.pwr_fuel; - Block Block15 = ModBlocks.deco_titanium; - Block Block16 = ModBlocks.block_lead; - Block Block17 = ModBlocks.ore_schrabidium; - Block Block18 = ModBlocks.waste_planks; - Block Block19 = ModBlocks.machine_centrifuge; - Block Block20 = ModBlocks.machine_uf6_tank; - Block Block21 = ModBlocks.machine_puf6_tank; - Block Block22 = ModBlocks.reinforced_brick; - Block Block23 = ModBlocks.waste_earth; - Block Block24 = ModBlocks.deco_lead; - Block Block25 = ModBlocks.red_wire_coated; - Block Block26 = ModBlocks.block_uranium; - Block Block27 = ModBlocks.pole_top; - Block Block28 = ModBlocks.machine_battery; - Block Block29 = ModBlocks.machine_electric_furnace_off; protected Block[] GetValidSpawnBlocks() { diff --git a/src/main/java/com/hbm/world/dungeon/DesertAtom002.java b/src/main/java/com/hbm/world/dungeon/DesertAtom002.java index 47b4e4f20..0ce58ea95 100644 --- a/src/main/java/com/hbm/world/dungeon/DesertAtom002.java +++ b/src/main/java/com/hbm/world/dungeon/DesertAtom002.java @@ -21,7 +21,6 @@ public class DesertAtom002 { Block Block2 = ModBlocks.yellow_barrel; Block Block3 = ModBlocks.reinforced_sand; - Block Block4 = ModBlocks.nuke_man; Block Block5 = ModBlocks.deco_steel; Block Block6 = ModBlocks.brick_light; Block Block7 = ModBlocks.deco_tungsten; @@ -35,18 +34,6 @@ public class DesertAtom002 Block Block15 = ModBlocks.deco_titanium; Block Block16 = ModBlocks.block_lead; Block Block17 = ModBlocks.ore_nether_plutonium; - Block Block18 = ModBlocks.waste_planks; - Block Block19 = ModBlocks.machine_centrifuge; - Block Block20 = ModBlocks.machine_uf6_tank; - Block Block21 = ModBlocks.machine_puf6_tank; - Block Block22 = ModBlocks.reinforced_brick; - Block Block23 = ModBlocks.waste_earth; - Block Block24 = ModBlocks.deco_lead; - Block Block25 = ModBlocks.red_wire_coated; - Block Block26 = ModBlocks.block_uranium; - Block Block27 = ModBlocks.pole_top; - Block Block28 = ModBlocks.machine_battery; - Block Block29 = ModBlocks.machine_electric_furnace_off; public boolean generate_r00(World world, Random rand, int x, int y, int z) { diff --git a/src/main/java/com/hbm/world/dungeon/DesertAtom003.java b/src/main/java/com/hbm/world/dungeon/DesertAtom003.java index eb20e3309..32e135806 100644 --- a/src/main/java/com/hbm/world/dungeon/DesertAtom003.java +++ b/src/main/java/com/hbm/world/dungeon/DesertAtom003.java @@ -48,7 +48,7 @@ public class DesertAtom003 Block Block25 = ModBlocks.red_wire_coated; Block Block26 = ModBlocks.block_uranium; Block Block27 = ModBlocks.pole_top; - Block Block28 = ModBlocks.machine_battery; + Block Block28 = ModBlocks.capacitor_copper; Block Block29 = ModBlocks.machine_electric_furnace_off; public boolean generate_r00(World world, Random rand, int x, int y, int z) @@ -1424,10 +1424,10 @@ public class DesertAtom003 world.setBlock(x + 19, y + 8, z + 9, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 23, y + 8, z + 9, Block25, 0, 3); world.setBlock(x + 24, y + 8, z + 9, Block25, 0, 3); - world.setBlock(x + 25, y + 8, z + 9, Block28, 3, 3); + world.setBlock(x + 25, y + 8, z + 9, Block28, 0, 3); world.setBlock(x + 26, y + 8, z + 9, Block25, 0, 3); world.setBlock(x + 27, y + 8, z + 9, Block25, 0, 3); - world.setBlock(x + 28, y + 8, z + 9, Block28, 3, 3); + world.setBlock(x + 28, y + 8, z + 9, Block28, 0, 3); world.setBlock(x + 29, y + 8, z + 9, Block25, 0, 3); world.setBlock(x + 30, y + 8, z + 9, Block25, 0, 3); world.setBlock(x + 31, y + 8, z + 9, Block29, 3, 3); diff --git a/src/main/java/com/hbm/world/dungeon/Relay.java b/src/main/java/com/hbm/world/dungeon/Relay.java index de4920fc9..cb7347f28 100644 --- a/src/main/java/com/hbm/world/dungeon/Relay.java +++ b/src/main/java/com/hbm/world/dungeon/Relay.java @@ -779,16 +779,15 @@ public class Relay extends WorldGenerator world.setBlock(x + 10, y + 1, z + 9, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 0, y + 1, z + 10, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 4, y + 1, z + 10, Block5, 0, 3); - world.setBlock(x + 7, y + 1, z + 10, ModBlocks.machine_battery, 4, 3); + world.setBlock(x + 7, y + 1, z + 10, ModBlocks.capacitor_copper, 0, 3); world.setBlock(x + 8, y + 1, z + 10, ModBlocks.red_wire_coated, 0, 3); world.setBlock(x + 10, y + 1, z + 10, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 4, y + 1, z + 11, Blocks.brick_block, 0, 3); - world.setBlock(x + 7, y + 1, z + 11, ModBlocks.machine_battery, 4, 3); + world.setBlock(x + 7, y + 1, z + 11, ModBlocks.capacitor_copper, 0, 3); world.setBlock(x + 8, y + 1, z + 11, ModBlocks.red_wire_coated, 0, 3); world.setBlock(x + 10, y + 1, z + 11, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 0, y + 1, z + 12, Library.getRandomConcrete(), 0, 3); - //world.setBlock(x + 4, y + 1, z + 12, Blocks.iron_door, 8, 3); - world.setBlock(x + 7, y + 1, z + 12, ModBlocks.machine_battery, 4, 3); + world.setBlock(x + 7, y + 1, z + 12, ModBlocks.capacitor_copper, 0, 3); world.setBlock(x + 8, y + 1, z + 12, ModBlocks.red_wire_coated, 0, 3); world.setBlock(x + 10, y + 1, z + 12, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 0, y + 1, z + 13, ModBlocks.fence_metal, 0, 3); diff --git a/src/main/java/com/hbm/world/dungeon/Spaceship.java b/src/main/java/com/hbm/world/dungeon/Spaceship.java index c07dbc600..bd831ffc6 100644 --- a/src/main/java/com/hbm/world/dungeon/Spaceship.java +++ b/src/main/java/com/hbm/world/dungeon/Spaceship.java @@ -592,10 +592,10 @@ public class Spaceship extends WorldGenerator world.setBlock(x + 2, y + -2, z + 35, Blocks.air, 0, 3); world.setBlock(x + 3, y + -2, z + 35, Block4, 0, 3); world.setBlock(x + 4, y + -2, z + 35, Block3, 0, 3); - world.setBlock(x + 5, y + -2, z + 35, ModBlocks.machine_battery, 5, 3); + world.setBlock(x + 5, y + -2, z + 35, ModBlocks.capacitor_copper, 0, 3); world.setBlock(x + 6, y + -2, z + 35, Blocks.air, 0, 3); world.setBlock(x + 7, y + -2, z + 35, Blocks.air, 0, 3); - world.setBlock(x + 8, y + -2, z + 35, ModBlocks.machine_battery, 4, 3); + world.setBlock(x + 8, y + -2, z + 35, ModBlocks.capacitor_copper, 0, 3); world.setBlock(x + 9, y + -2, z + 35, Block3, 0, 3); world.setBlock(x + 10, y + -2, z + 35, Block4, 0, 3); world.setBlock(x + 11, y + -2, z + 35, Blocks.air, 0, 3); 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 3ae448a03..9ce9ed900 100644 --- a/src/main/java/com/hbm/world/gen/component/BunkerComponents.java +++ b/src/main/java/com/hbm/world/gen/component/BunkerComponents.java @@ -884,7 +884,7 @@ public class BunkerComponents { fillWithMetadataBlocks(world, box, 1, 3, 1, 1, 3, 5, ModBlocks.concrete_smooth_stairs, stairMetaW); placeBlockAtCurrentPosition(world, ModBlocks.machine_transformer, 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.capacitor_copper, 0, 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 diff --git a/src/main/resources/assets/hbm/disks/pwrangler/usr/bin/PWRangler.lua b/src/main/resources/assets/hbm/disks/pwrangler/usr/bin/PWRangler.lua index 09fe901aa..d564b9ed4 100644 --- a/src/main/resources/assets/hbm/disks/pwrangler/usr/bin/PWRangler.lua +++ b/src/main/resources/assets/hbm/disks/pwrangler/usr/bin/PWRangler.lua @@ -22,7 +22,12 @@ local mt = { } setmetatable(const, mt) -const.fullCoreHeatMAX = 9000000 +for address, _ in component.list("ntm_pwr_control") do + pwrController = address +end + +_, _, const.coreHeatCapacity = call(pwrController, "getHeat") +const.fullCoreHeatMAX = const.coreHeatCapacity * 0.9 const.coldCoolantLevelMIN = 10000 const.hotCoolantLevelMAX = 0.5 @@ -88,10 +93,6 @@ buttons[9] = newButton(94, 9, 12, 2, 0x00FF00, 0x00AA00, function() coolantLossE buttons[10] = newButton(107, 8, 5, 3, 0xFF0000, 0xAA0000, function() runSig = false end) -for address, _ in component.list("ntm_pwr_control") do - pwrController = address -end - gpu.setForeground(0xAAAAAA) --Control rods @@ -203,7 +204,7 @@ while (runSig == true) do rodLevel = call(pwrController, "getLevel") coreHeat, _ = call(pwrController, "getHeat") - coreHeat = coreHeat//1000000 + coreHeat = coreHeat // (const.coreHeatCapacity / 10) for _, b in pairs(buttons) do drawButton(b, b.colorUp) @@ -243,7 +244,7 @@ while (runSig == true) do fullCoreHeat, fullHullHeat = call(pwrController, "getHeat") coldCoolantLevel, _, hotCoolantLevel, maxHotCoolantLevel = call(pwrController, "getCoolantInfo") - + coldCoolantOutflow = coldCoolantLevel - prevCoolantFlow hotCoolantOutflow = hotCoolantLevel - prevHotCoolantFlow diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 77b08a69e..f1c8ed61e 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -322,6 +322,8 @@ container.autocrafter=Automatische Werkbank container.barrel=Fass container.bat9000=Big-Ass Tank 9000 container.battery=Energiespeicher +container.batteryREDD=FEnSU +container.batterySocket=Batteriesockel container.bombMulti=Mehrzweckbombe container.casingBag=Hülsentasche container.catalyticReformer=Katalytischer Reformer @@ -1315,6 +1317,18 @@ item.battery_lithium.name=Lithium-Ionen-Batterie item.battery_lithium_cell.name=Lithium-Ionen-Energiezelle item.battery_lithium_cell_3.name=Dreifache Lithium-Ionen-Energiezelle item.battery_lithium_cell_6.name=Sechsfache Lithium-Ionen-Energiezelle +item.battery_pack.battery_lead.name=Bleisäure-Akku +item.battery_pack.battery_lithium.name=Lithium-Ionen-Akku +item.battery_pack.battery_quantum.name=Quantenakku +item.battery_pack.battery_redstone.name=Redstoneakku +item.battery_pack.battery_schrabidium.name=Schrabidiumakku +item.battery_pack.battery_sodium.name=Natrium-Eisen-Akku +item.battery_pack.capacitor_bismuth.name=Bismutkondensator +item.battery_pack.capacitor_copper.name=Kupferkondensator +item.battery_pack.capacitor_gold.name=Goldkondensator +item.battery_pack.capacitor_niobium.name=Niobkondensator +item.battery_pack.capacitor_spark.name=Spark-Kondensator +item.battery_pack.capacitor_tantalum.name=Tantalkondensator item.battery_potato.name=Katoffelbatterie item.battery_potatos.name=PotatOS item.battery_red_cell.name=Redstone-Energiezelle @@ -4043,13 +4057,13 @@ 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.name=Kondensator-Bus (LEGACY) 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_schrabidate.name=Schrabidatkondensator -tile.capacitor_tantalium.name=Tantalkondensator +tile.capacitor_copper.name=Alter Kondensator +tile.capacitor_gold.name=Goldkondensator (LEGACY) +tile.capacitor_niobium.name=Niobkondensator (LEGACY) +tile.capacitor_schrabidate.name=Schrabidatkondensator (LEGACY) +tile.capacitor_tantalium.name=Tantalkondensator (LEGACY) tile.capacitor.desc=Input: Oben$Output: Unten, über Kondensator-Bus tile.charge_c4.name=Abrissladung tile.charge_dynamite.name=Zeitbombe @@ -4456,8 +4470,10 @@ tile.machine_autosaw.name=Automatische Kreissäge tile.machine_autosaw.desc=Schneidet Pflanzen nieder, pflanzt Bäume nach$Akzeptiert:$-Holzöl$-Ethanol$-Fischöl$-Schweröl tile.machine_autosaw.suspended=Angehalten tile.machine_bat9000.name=Big-Ass Tank 9000 -tile.machine_battery.name=Energiespeicherblock -tile.machine_battery_potato.name=Kartoffelbatterieblock +tile.machine_battery.name=Energiespeicherblock (LEGACY) +tile.machine_battery_potato.name=Kartoffelbatterieblock (LEGACY) +tile.machine_battery_redd.name=FEnSU +tile.machine_battery_socket.name=Batteriesockel tile.machine_boiler.name=Boiler tile.machine_boiler.desc=Großer Boiler zum Verdampfen von Wasser oder$Erhitzen von Öl. Benötigt externe Hitzequelle.$Wärmestransferrate: ΔT*0.01 TU/t tile.machine_boiler_electric_off.name=Elektrischer Ölwärmer @@ -4499,7 +4515,7 @@ tile.machine_difurnace_off.name=Hochofen tile.machine_difurnace_on.name=Hochofen tile.machine_difurnace_rtg_off.name=Atomarer Hochofen tile.machine_difurnace_rtg_on.name=Atomarer Hochofen -tile.machine_dineutronium_battery.name=Spark Energiespeicherblock +tile.machine_dineutronium_battery.name=Spark Energiespeicherblock (LEGACY) tile.machine_drain.name=Ausgussrohr tile.machine_drill.name=Automatischer Minenbohrer tile.machine_electric_furnace_off.name=Elektrischer Ofen @@ -4509,7 +4525,7 @@ tile.machine_epress.name=Hydraulische Presse tile.machine_exposure_chamber.name=Bestrahlungskammer tile.machine_excavator.name=Großer Minenbohrer tile.machine_fel.name=FEL -tile.machine_fensu.name=FEnSU +tile.machine_fensu.name=FEnSU (LEGACY) tile.machine_flare.name=Abfackelturm tile.machine_fluidtank.name=Tank tile.machine_forcefield.name=Kraftfeldgenerator @@ -4529,7 +4545,7 @@ tile.machine_intake.name=Lufteinlass tile.machine_keyforge.name=Schlossertisch tile.machine_large_turbine.name=Industrielle Dampfturbine tile.machine_large_turbine.desc=Effizienz: 100%% -tile.machine_lithium_battery.name=Li-Ion-Energiespeicherblock +tile.machine_lithium_battery.name=Li-Ion-Energiespeicherblock (LEGACY) tile.machine_microwave.name=Mikrowelle tile.machine_mining_laser.name=Bergbaulaser tile.machine_minirtg.name=Radioisotopenzelle @@ -4569,7 +4585,7 @@ tile.machine_rtg_yellow.name=Australium Supergenerator tile.machine_satlinker.name=Satelliten-ID-Manager tile.machine_sawmill.name=Stirling-Sägemühle tile.machine_sawmill.desc=Benötigt externe Hitzequelle.$Wärmestransferrate: T*0.1 TU/t$Minimalaufnahme: 100 TU/t, Maximalaufnahme: 300 TU/t -tile.machine_schrabidium_battery.name=Schrabidium-Energiespeicherblock +tile.machine_schrabidium_battery.name=Schrabidium-Energiespeicherblock (LEGACY) tile.machine_schrabidium_transmutator.name=Schrabidium-Transmutationsgerät (LEGACY) tile.machine_selenium.name=Hochleistungs-Sternmotor tile.machine_shredder.name=Brecher diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index ba4501b3e..80b1fc2f7 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -308,7 +308,7 @@ book.starter.page15=Finally, you can create your first §oreal§r source of ener 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.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 Heads' §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 @@ -339,7 +339,7 @@ book.starter.page18=vær is just a guy who has been trapped in the grey void fea #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 effectiveness of neutrons depends on the type, most fuels §lsplit best with slow neutrons§r. #book.rbmk.title16=Meltdown #book.rbmk.page16=§4§lAvoid. @@ -727,6 +727,8 @@ container.autocrafter=Automatic Crafting Table container.barrel=Barrel container.bat9000=Big-Ass Tank 9000 container.battery=Energy Storage +container.batteryREDD=FEnSU +container.batterySocket=Battery Socket container.bombMulti=Multi Purpose Bomb container.casingBag=Bullet Casing Bag container.catalyticReformer=Catalytic Reformer @@ -2073,6 +2075,18 @@ item.battery_lithium.name=Lithium-Ion Battery item.battery_lithium_cell.name=Lithium-Ion Power Cell item.battery_lithium_cell_3.name=Triple Lithium-Ion Power Cell item.battery_lithium_cell_6.name=Sixfold Lithium-Ion Power Cell +item.battery_pack.battery_lead.name=Lead-Acid Battery +item.battery_pack.battery_lithium.name=Lithium-Ion Battery +item.battery_pack.battery_quantum.name=Quantum Battery +item.battery_pack.battery_redstone.name=Redstone Battery +item.battery_pack.battery_schrabidium.name=Schrabidium Battery +item.battery_pack.battery_sodium.name=Sodium-Iron Battery +item.battery_pack.capacitor_bismuth.name=Bismuth Capacitor +item.battery_pack.capacitor_copper.name=Copper Capacitor +item.battery_pack.capacitor_gold.name=Gold Capacitor +item.battery_pack.capacitor_niobium.name=Niobium Capacitor +item.battery_pack.capacitor_spark.name=Spark Capacitor +item.battery_pack.capacitor_tantalum.name=Tantalum Capacitor item.battery_potato.name=Potato Battery item.battery_potatos.name=PotatOS item.battery_red_cell.name=Redstone Power Cell @@ -5259,13 +5273,13 @@ 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.name=Capacitor Bus (LEGACY) 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_schrabidate.name=Schrabidate Capacitor -tile.capacitor_tantalium.name=Tantalum Capacitor +tile.capacitor_copper.name=Old Capacitor +tile.capacitor_gold.name=Golden Capacitor (LEGACY) +tile.capacitor_niobium.name=Niobium Capacitor (LEGACY) +tile.capacitor_schrabidate.name=Schrabidate Capacitor (LEGACY) +tile.capacitor_tantalium.name=Tantalum Capacitor (LEGACY) tile.capacitor.desc=Input: Top$Output: Bottom, via Capacitor Bus tile.charge_c4.name=Demolition Charge tile.charge_dynamite.name=Time Bomb @@ -5719,8 +5733,10 @@ tile.machine_autosaw.name=Automatic Buzz Saw tile.machine_autosaw.desc=Cuts down nearby plants, re-plants trees$Accepts:$-Wood oil$-Ethanol$-Fish oil$-Heavy oil tile.machine_autosaw.suspended=Suspended 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_battery.name=Energy Storage Block (LEGACY) +tile.machine_battery_potato.name=Potato Battery Block (LEGACY) +tile.machine_battery_redd.name=FEnSU +tile.machine_battery_socket.name=Battery Socket 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_electric_off.name=Electric Oil Heater @@ -5763,7 +5779,7 @@ tile.machine_difurnace_off.name=Blast Furnace tile.machine_difurnace_on.name=Blast Furnace tile.machine_difurnace_rtg_off.name=Nuclear Blast Furnace tile.machine_difurnace_rtg_on.name=Nuclear Blast Furnace -tile.machine_dineutronium_battery.name=Spark Energy Storage Block +tile.machine_dineutronium_battery.name=Spark Energy Storage Block (LEGACY) tile.machine_drain.name=Drainage Pipe tile.machine_drill.name=Automatic Mining Drill tile.machine_electric_furnace_off.name=Electric Furnace @@ -5773,7 +5789,7 @@ tile.machine_epress.name=Electric Press tile.machine_excavator.name=Large Mining Drill tile.machine_exposure_chamber.name=Exposure Chamber tile.machine_fel.name=FEL -tile.machine_fensu.name=FEnSU +tile.machine_fensu.name=FEnSU (LEGACY) tile.machine_flare.name=Flare Stack tile.machine_fluidtank.name=Tank tile.machine_forcefield.name=Forcefield Emitter @@ -5796,7 +5812,7 @@ tile.machine_large_turbine.name=Industrial Steam Turbine tile.machine_large_turbine.desc=Efficiency: 100%% tile.machine_liquefactor.name=Industrial Liquefaction Machine tile.machine_liquefactor.desc=Powerful universal machine to turn items into fluids.$Comes with versatile catalytic components, heating elements$and a built-in hydrator for petrochemical liquefaction. -tile.machine_lithium_battery.name=Li-Ion Energy Storage Block +tile.machine_lithium_battery.name=Li-Ion Energy Storage Block (LEGACY) tile.machine_microwave.name=Microwave tile.machine_mining_laser.name=Mining Laser tile.machine_minirtg.name=Radio Isotope Cell @@ -5836,7 +5852,7 @@ tile.machine_rtg_yellow.name=Australium Superfuel Reactor tile.machine_satlinker.name=Satellite ID Manager tile.machine_sawmill.name=Stirling Sawmill tile.machine_sawmill.desc=Requires external heat source.$Heat transfer rate: T*0.1 TU/t$Min intake: 100 TU/t, Max intake: 300 TU/t -tile.machine_schrabidium_battery.name=Schrabidium Energy Storage Block +tile.machine_schrabidium_battery.name=Schrabidium Energy Storage Block (LEGACY) tile.machine_schrabidium_transmutator.name=Schrabidium Transmutation Device (LEGACY) tile.machine_selenium.name=Radial Performance Engine tile.machine_shredder.name=Shredder diff --git a/src/main/resources/assets/hbm/lang/it_IT.lang b/src/main/resources/assets/hbm/lang/it_IT.lang index 15b1138a4..5461f533f 100644 --- a/src/main/resources/assets/hbm/lang/it_IT.lang +++ b/src/main/resources/assets/hbm/lang/it_IT.lang @@ -238,40 +238,40 @@ book.error.page8=§lName:§r "ERROR_DIODE_COLLISION" §lDescription:§r The part 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.rbmk.cover=Il mio primo RBMK:$Basi per$costruire un$reattore +book.rbmk.cover=HOW 2 RBMK:$Aspetti Fondamentali$ della Costruzione $Dei Reattori book.rbmk.title1=Introduzione -book.rbmk.page1=§lRBMK§r è un reattore nucleare completamente modulare. A differenza degli altri reattori, non c'è nessun nucleo o limite di costruzione, piuttosto il comportamento e l'efficienza e data da com'è costruito il reattore e come interagiscono le parti tra loro. +book.rbmk.page1=L'§lRBMK§r è un reattore nucleare modulare. Ciò che lo contraddistingue dagli altri reattori è l'assenza di un vero e proprio "nocciolo" e la mancanza di restrizioni delle dimensioni. L'efficienza ed il comportamento del reattore deriva dunque dalla costruzione e dalle interazioni dei vari componenti. book.rbmk.title2=Calore -book.rbmk.page2=Come il reattore va, tende a generare §lcalore§r. Il calore si diffonderà tra le parti, diminuendo lentamente nel processo di fissione. L'obiettivo è quello di generare più calore possibile senza fondere il reattore, e trasferire esso nelle caldaie per raffreddate il reattore e produrre vapore. -book.rbmk.title3=Barre di combustibile -book.rbmk.page3=Le §lbarre di combustibile§r tendono a catturare il flusso di neutroni, causando al combustibile di reagire, rilasciando neutroni nel processo. I neutroni sono rilasciati in tutte e 4 le principali vie per un massimo di 5 blocchi. Il quantitativo di neutroni rilasciati, dipende dal combustibile usato. -book.rbmk.title4=Barre di regolazione -book.rbmk.page4=Le §lbarre di regolazione§r tendono a ridurre il numero di neutroni durante il passaggio. Quando sono completamente inserite, bloccano il passaggio di neutroni; Quando sono le barre sono parzialmente inserite, ne bloccano la metà di essi. Le barre di controllo sono un metodo per regolare i neutroni e anche per spengere il reattore. -book.rbmk.title5=Barre di regolazione - Usi -book.rbmk.title5.scale=0.9 -book.rbmk.page5=La barra attualmente inserita verrà visualizzata al centro della GUI. I bottoni colorati, alla sinistra della barra di controllo, gli daranno il gruppo di quel colore, e ciò può tornare utile quando si devono selezionare le barre, apparteneti a un certo gruppo, del §lRBMK§r dalla console di comando. I bottoni a destra permettono di inserire manualmente le barre con un incrementi del 25%%. -book.rbmk.title6=Barre di controllo automatiche -book.rbmk.page6=§lLe barre di controllo automatiche§r sono quasi identiche a quelle normali, ma non possono essere aggiustate manualmente, infatti si aggiusteranno da sole in base alla temperatura. Innanzitutto è necessario determinare quale funzione utilizzare, a quale profondità inserirla e a quale temperatura. -book.rbmk.title7=Caldaie -book.rbmk.page7=Le §lcaldaie§r è lu'unica parte attiva per il raffreddamento del reattore. Se il componente è al di sopra della temperature di ebollizione richiesta dal tipo di vapore, consumerà il quantitativo d'acqua necessario per portare la temperatura al di sotto di quella di ebollizione. -book.rbmk.title8=Riflettore di neutroni -book.rbmk.page8=il §lriflettore di neutroni§r bloccherà il passaggio di neutroni, di fatto verranno riflessi indietro, dalla barra di combustibile da cui provenivano. Può tornare molto utile per non sprecare neutroni inutilmente. -book.rbmk.title9=Assorbitore di neutroni -book.rbmk.page9=L'§lassorbitore di neutroni§r blocca i neutroni. I neutroni assorbiti non genereranno calore e saranno distrutti efficientemente. Questa funzionalità è utile per evitare di far reagire i neutroni con gli atomi del combustibile. -book.rbmk.title10=Ritardante in grafite -book.rbmk.page10=Il §lmoderatore in grafite§r converte i neutroni veloci in lenti quando essi ci passano attraverso. Molti conbustibili nucleari tendono a rilasciare neutroni veloci, mentre i neutroni lenti sono quelli necessari per la fissione, quindi l'uso di moderatori è altamente consigliato. -book.rbmk.title11=Colonne strutturali -book.rbmk.page11=Le §lcolonne strutturali§r non fanno nulla ai neutroni e non hanno nessun effetto speciale. E' raccomandato di riempire le parti vuote del reattore con le colonne strutturali, siccome possono trasferire il calore. -book.rbmk.title12=Console di comando -book.rbmk.page12=La §lconsole di comando§r del RBMK permette di controllare il reattore a distanza. Usando il §ldispositivo per connettere la console§r su una parte del RBMK e successivamente alla console, il reattore sarà collegato ad esso. La console di comando può controllare fino ad un massimo di 15x15 (per reattori più grandi dovrai usare più console). -book.rbmk.title13=Usi della console -book.rbmk.page13=Cliccare sulle parti del reattore permette di selezionare o deselezionare essa. Con i bottoni colorati potrai selezionare velocemente tutte le barre di controllo apparteneti a quel gruppo colorato. Il bottone "A" selezionerà tutte le barre di controllo, invece la "X" le deselezionerà. -book.rbmk.page14=Inserendo un numero da 0 a 100 innalzera tutte le barre di controllo selezionate a quella percentuale. Il bottone "AZ-5" inserirà tutte le barre, fino a raggiungere lo 0%%. -book.rbmk.title15=Combustibile nucleare -book.rbmk.page15=La risposta del §lcombustibile nucleare§r dipende da molti fattori. Alcuni dei pricipali sono la §lfortificazione§r, §ll'avvelenamento da xenon§r e il numero di §lneutrons§r in arrivo. Lo xenon tende a formarsi quando il combustibile non ha abbastanza neutroni e durante le normali operazioni, esso brucia. L'efficenza dei neutroni dipende dal combustibile, molti combustibili §lsi scissionano meglio con§r i §lneutroni lenti§r. +book.rbmk.page2=Durante l’operazione del reattore, verrà generato del §lcalore§r. Il calore si propagherà attraverso i componenti del reattore, decrementando nel contempo. L’obiettivo è di produrre la maggior quantità di calore possibile senza fondere il reattore e di spostare tale calore verso dei §lcanali per vapore§r, componente che raffredda il reattore e produce vapore. +book.rbmk.title3=Carburante +book.rbmk.page3=Le §lbarre di carburante§r cattureranno il flusso di neutroni, causando una reazione fissile all’interno della barra che a sua volta rilascerà neutroni. I neutroni vengono irradiati in tutte e quattro le direzioni cardinali con una distanza massima di 5 blocchi. La quantità totale di neutroni rilasciati dipende dal tipo di §lcarburante§r utilizzato. +book.rbmk.title4=Barre di Controllo +book.rbmk.page4=Le §lbarre di controllo§r decrementeranno la quantità di neutroni che vi passa attraverso. Se inserite pienamente, bloccheranno tutti i neutroni, se inserite a metà bloccherà il flusso della metà dei neutroni. Le barre di controllo vengono usate per regolare la reattività o per spegnere il reattore. +book.rbmk.title5=Barre di Controllo +book.rbmk.page5=In mezzo all’interfaccia c’è l’indicatore dell’inserimento attuale delle barre. I pulsanti colorati a sinistra aggiungeranno la barra ad un gruppo, per poter selezionare le barre in gruppo nella §lconsole RBMK§r. I pulsanti a destra permettono di inserire le barre manualmente ad incrementi del 25%. +book.rbmk.title6=Barre Automatiche +book.rbmk.page6=Le §lbarre di controllo automatiche§r funzionano in maniera quasi identica alla loro controparte normale, tuttavia si regoleranno automaticamente e non manualmente in base alla temperatura attuale. Prima va definita la funzione da utilizzare per determinare l’inserimento e la profondità da raggiungere. +book.rbmk.title7=Canali per Vapore +book.rbmk.page7=I §lcanali per vapore§r sono l’unico componente che riduce attivamente la temperatura del reattore. Se la temperatura raggiunge il punto di ebollizione del tipo di vapore selezionato, il canale agirà come un bollitore e tenterà di consumare abbastanza acqua per poter tornare a temperature inferiori, producendo vapore. +book.rbmk.title8=Riflettore Neutronico +book.rbmk.page8=Il §lriflettore neutronico§r bloccherà i neutroni che vi passano attraverso, riflettendoli verso la loro direzione d’arrivo. Sono utili per utilizzare flussi che altrimenti verrebbero sprecati. +book.rbmk.title9=Catturatore di Neutroni +book.rbmk.page9=Il §lcatturatore di neutroni§r assorbisce i neutroni, incredibilmente. I neutroni assorbiti non genereranno calore. Questo è utile per separare barre di carburante che altrimenti sarebbero a contatto. +book.rbmk.title10=Moderatori di Grafite +book.rbmk.page10=I §lmoderatori di grafite§r convertono flussi di di neutroni veloci in flussi lenti. La maggior parte dei carburanti si scindono in neutroni veloci e richiedono flussi lenti per scindersi, rendendo i moderatori fondamentali. +book.rbmk.title11=Colonna Strutturale +book.rbmk.page11=Le §lcolonne strutturali§r non trasferiscono calore né interagiscono con i neutroni. Non ha usi speciali, e può soltanto condurre calore, pertanto conviene utilizzarle per riempire i reattori. +book.rbmk.title12=Console +book.rbmk.page12=La §lconsole RBMK§r permette di controllare il reattore da lontano. Utilizzando l’§laccoppiatore di console RBMK§r su un componente di un RBMK e poi sulla console si può collegare i due dispositivi. La console può gestire solo segmenti di 15x15 componenti, tuttavia è possibile usare più console per controllare reattori più grandi. +book.rbmk.title13=Utilizzare la Console +book.rbmk.page13=Cliccare sulle parti per selezionarle/deselezionarle. Utilizzando i pulsanti colorati si può selezionare il gruppo corrispondente e controllare il gruppo simultaneamente. Il pulsante ‘A’ seleziona ogni barra di controllo, ‘X’ deseleziona tutto. +book.rbmk.page14=Inserendo un numero da 0 a 100 nel riquadro verde e premendo il pulsante adiacente si può impostare il livello di inserimento delle barre. Il pulsante ‘AZ-5’ causa l’inserimento totale di tutte le barre. +book.rbmk.title15=Carburante +book.rbmk.page15=La reattività del §lcarburante§r dipende da diversi fattori e supercazzole. Quelli principali sono l’§larricchimento§r, §lavvelenamento da xeno§r ed il §lflusso di neutroni§r. Lo xeno si accumula quando il carburante riceve pochi neutroni e viene bruciato durante l’operazione normale. L’efficacia dei neutroni dipende dal tipo, la maggior parte dei carburanti si §lscinde in neutroni lenti§r. book.rbmk.title16=Fusione -book.rbmk.page16=§4§lEVITALA. +book.rbmk.page16=§4§lAò, non lo fare, te scongiuro... +#TODO: Riscrivere sta merda book.starter.cover=$Guida su come ricostruore$una società industrializzata book.starter.title1=Introduzione book.starter.page1=Se stai leggendo questo libro, significa che molto probabilmente, in un modo o in un altro, la società è collassata. Governi, paesi e autorità sono concetti del passato - insieme ai servizi della vita civilizzata. Questa guida ti insegnerà a ricostruire la società e tutti la tecnologia e le macchine che ti cambieranno la vita. @@ -280,7 +280,7 @@ book.starter.page2=Mentre è impossibile definire lo stato del mondo in un tempo book.starter.title3=Incudini e presse book.starter.page3=La quintessenza per iniziare a revitalizzare l'industria, è un §lincudine§r e una §lpressa§r. L'incudine ti permette di creare machinnari iniziali come ad esempio l'asseblatore, mentre la pressa ti permette di creare piastre, fili e circuitit che non puoi assemblarli nell'incudine. book.starter.title4=Modelli -book.starter.page4=In ordine per stampare i metalli in forme utili, assemblare macchinari ed eseguire reazioni chimiche, avrai bisogno di creare una §lcartella per modelli macchina§r per creare vari stampi e modelli. +book.starter.page4=Per poter stampare i metalli in forme utili, assemblare macchinari ed eseguire reazioni chimiche, avrai bisogno di creare una §lcartella per modelli macchina§r per creare vari stampi e modelli. book.starter.title5=Scavo book.starter.page5=A seconda di quanto grave sia stato l'evento apocalittico iniziale per le strutture preesistenti del mondo, c'è una buona probabilità che pezzi e macchine possono essere riparati o salvati. Leghe metalliche come l'acciaio, parti come circuiti, e anche materiali fissili da centrali nucleari ti aspettano. Tuttavia, attenzione ad alcune rovine, ci puo essere un eccesso di pericolo come ad esempio un serpente nell'erba; pronto a mandarti K.O. con le radiazioni, trappole, o orrori indescrivibili... book.starter.title6=Primi macchinari @@ -302,92 +302,17 @@ book.starter.page12a=§oIl resto del libro involverà materiali riguardanti le book.starter.page12b=Un alta esposizione alle radiazioni può e ti causera danni corporei. Il primo passo per la prevenzione; è di assicurarsi di limitare l'esposizione ed indossare indumenti protettivi, come la §lTuta hazmat§r, o applicare §lRivestimenti§r sui vestiti o armature; puoi anche prendere il §lRad-X§r per limitare assunzione. Grazie alla medicina moderna, il secondo step può essere rimosso in caso di necessità; per esempio, un §lDecontaminatore del §lplayer§r riduce lentamente le radiazioni assorbite dal tuo corpo. §lRad-Away§r può essere utilizzato anche come profilassi post-esposizione, riduce velocemente ed effettivamente il danno da esposizione da radiazioni. book.starter.title13=Arricchimento dell'uranio book.starter.page13=Ci sono alcuni metodi facili per alimentare un reattore nucleare; ad esempio, l'§luranio naturale§r o il §lcombustibile al torio§r. Tuttavia, se stai cercando per qualcosa di più potente, puoi creare una cascata di arricchimento di due §lcentrifughe a gas§r per produrre §lcombustibile all'uranio§r con uno scarto di §lUranio-238§r. Dovrai trasmutare l'uranio in §lpangaillo§r, poi in §lesafluoruro di §luranio§r. -book.starter.title14=La pila Chicago -book.starter.page14=Alternativamente, puoi generare il §lplutonio di grado reattore§r, un combustibile più potente, dall'uranio naturale usando la §lpila Chicago§r. Sovrapponendo blocchi di grafite e trivellandoli, puoi inserire barre di combustibile da riproduzione per generare plutonio e fonti di neutroni, come il §lRadio-Berillio§r, per iniziare la reazione. Assicurati di testare i tuoi design; potrebbe essere necessario distanziare o limitare la quantità di blocchi per evitare il surriscaldamento. +book.starter.title14=La Chicago Pile +book.starter.page14=Alternativamente, puoi generare il §lplutonio di grado reattore§r, un combustibile più potente, dall'uranio naturale usando la §lChicago Pile§r. Sovrapponendo blocchi di grafite e trivellandoli, puoi inserire barre di combustibile da riproduzione per generare plutonio e fonti di neutroni, come il §lRadio-Berillio§r, per iniziare la reazione. Assicurati di testare i tuoi design; potrebbe essere necessario distanziare o limitare la quantità di blocchi per evitare il surriscaldamento. book.starter.title15=ZIRNOX GCR book.starter.page15=Finalmente, puoi creare la tua prima §overa§r fonte di energia: Il reattore nucleare §lZIRNOX§r. I reattori nucleari richiedono una sistemazione maggiore rispetto alle altre fonti di energia; per primo, avrai bisogno di una buona risorsa d'aqua, come il §lSerbatoio dell'acqua infinito pesante§r. Per rimuovere calore da reattore e per far bollire l'acqua, avrai bisogno di §lmonossido di carbonio§r. Dovrai creare una forte pressione, ma non §otroppa§r. Avrai anche bisogno di 3 turbine a vapore per produrre energia dal vapore prodotto; le §lturbine a vapore§r o le §lturbine a vapore industriali§r saranno ottime. Infine, un §lCondensatore§r o una §ltorre di raffreddamento ausiliaria§r servirà per condensare il vapore rimasto in acqua, dove può essere eliminato o riciclato in un circuito di raffreddamento. book.starter.title16=Conclusione book.starter.page16=Se sei arrivato così lontano, sei sulla strada per la ricostruzione della civilizzazione. Hai ricreato macchinari avanzati pre-apocalittici - con energia nucleare, prodotti petrolchimici e di più. Non posso sapere §ocome§r utilizzerai questi nuovi vantaggi, ma è mia personale speranza che tu li usi per il bene tuo e degli altri - o almeno per legittima difesa. Au revoir! book.starter.title18=Qualcosa sull'autore -book.starter.page18=vær è solo un ragazzo rimasto intrappolato nel vuoto grigio presente nei Talking Head §oUna volta nella vita§r molto a lungo. Una volta trovò la porta di uno studio, ma con suo sgomento scoprì che era un ritaglio di cartone. -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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.starter.page18=vær è solo un ragazzo rimasto intrappolato nel vuoto grigio del video musicale de §oOnce in a Lifetime§r dei Talking Heads molto a lungo. Una volta trovò la porta di uno studio, ma con suo sgomento scoprì che era un ritaglio di cartone. +#TODO: Rivedere, correggere errori di battitura book_lore.author=Di %s -book_lore.test.name=questo libro non funziona... -book_lore.test.author=io ti ho trollato eheh :3c -book_lore.test.page.0=>ciao anonimi, prima di iniziare vorrei chiarire che non sono gay. >Sii me >Questa notte >18 > Uscendo con il mio migliore amico senza i miei genitori per alcuni giornis >Siamo migliori amici ormai da un anno >Abbiamo bevuto un po', giocato a molti videogiochi e ordinato una pizza >Ci stavamo divertendo molto >A un certo punto della notte, verso le 9:00, fa una cosa davvero divertente battuta che non ricordo ma so che ci ha fatto ridere tantissimo tutti e due > Senza pensarci passo la mano destra tra i suoi capelli neri semiricci e lo chiamo ragazzo simpatico > Lui arrossisce > Mi rendo conto che mi sento agitato >Siamo abbastanza vicini >All'improvviso lui mi bacia e per qualche motivo io lo bacio >Facciamo l'amore >Ci coccoliamo insieme e ci addormentiamo >Svegliarsi nel cuore della notte con la sua testa rannicchiata sul mio petto e zona del collo >È stato bello ma non sono omosessuale. -book_lore.test.page.1=Lo scrivo mentre lui dorme tra le mie braccia. Come posso deludere bene il mio migliore amico? Non voglio essere un [censurato] /b/ -book_lore.author=By %s 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 @@ -1777,139 +1702,140 @@ hbmpseudofluid.pf6=Plutonium Hexafluoride hbmpseudofluid.mud_heavy=Heavy Sludge Fraction hbmpseudofluid.mud=Poisonous Sludge Gas -hbmmat.actinium227=Actinium-227 -hbmmat.advancedalloy=Advanced Alloy -hbmmat.aluminum=Aluminium -hbmmat.americiumrg=Reactor-Grade Americium -hbmmat.americium241=Americium-241 -hbmmat.americium242=Americium-242 -hbmmat.arsenic=Arsenic -hbmmat.arsenicbronze=Arsenic Bronze -hbmmat.asbestos=Asbestos +#TODO: Translate all this +hbmmat.actinium227=Attinio-227 +hbmmat.advancedalloy=Lega Avanzata +hbmmat.aluminum=Alluminio +hbmmat.americiumrg=Americio da Reattore +hbmmat.americium241=Americio-241 +hbmmat.americium242=Americio-242 +hbmmat.arsenic=Arsenico +hbmmat.arsenicbronze=Bronzo Arsenicale +hbmmat.asbestos=Amianto hbmmat.bakelite=Bakelite -hbmmat.beryllium=Beryllium -hbmmat.bismuth=Bismuth -hbmmat.bismuthbronze=Bismuth Bronze -hbmmat.borax=Borax -hbmmat.boron=Boron -hbmmat.cadmium=Cadmium -hbmmat.calcium=Calcium -hbmmat.carbon=Carbon -hbmmat.cdalloy=Cadmium Steel -hbmmat.cinnabar=Cinnabar -hbmmat.cmbsteel=Combine Steel -hbmmat.coal=Coal -hbmmat.coalcoke=Coal Coke -hbmmat.cobalt=Cobalt -hbmmat.cobalt60=Cobalt-60 +hbmmat.beryllium=Berillio +hbmmat.bismuth=Bismuto +hbmmat.bismuthbronze=Bronzo di Bismuto +hbmmat.borax=Borace +hbmmat.boron=Boro +hbmmat.cadmium=Cadmio +hbmmat.calcium=Calcio +hbmmat.carbon=Carbonio +hbmmat.cdalloy=Acciaio di Cadmio +hbmmat.cinnabar=Cinabro +hbmmat.cmbsteel=Acciaio Combine +hbmmat.coal=Carbone +hbmmat.coalcoke=Coke di Carbone +hbmmat.cobalt=Cobalto +hbmmat.cobalt60=Cobalto-60 hbmmat.coltan=Coltan -hbmmat.copper=Copper +hbmmat.copper=Rame hbmmat.desh=Desh -hbmmat.dineutronium=Dineutronium -hbmmat.durasteel=High-Speed Steel -hbmmat.euphemium=Euphemium -hbmmat.ferrouranium=Ferrouranium -hbmmat.fiberglass=Fiberglass +hbmmat.dineutronium=Dineutronio +hbmmat.durasteel=Acciaio Super Rapido +hbmmat.euphemium=Euphemio +hbmmat.ferrouranium=Ferrouranio +hbmmat.fiberglass=Vetroresina hbmmat.fluorite=Fluorite -hbmmat.flux=Flux -hbmmat.ghiorsium336=Ghiorsium-336 -hbmmat.gold=Gold -hbmmat.gold198=Gold-198 -hbmmat.graphene=Graphene -hbmmat.graphite=Graphite -hbmmat.hematite=Hematite -hbmmat.iron=Iron -hbmmat.lapis=Lapis Lazuli -hbmmat.lead=Lead -hbmmat.lead209=Lead-209 -hbmmat.lignitecoke=Lignite Coke +hbmmat.flux=Flussante +hbmmat.ghiorsium336=Ghiorsio-336 +hbmmat.gold=Oro +hbmmat.gold198=Oro-198 +hbmmat.graphene=Grafene +hbmmat.graphite=Grafite +hbmmat.hematite=Ematite +hbmmat.iron=Ferro +hbmmat.lapis=Lapis Lazulo +hbmmat.lead=Piombo +hbmmat.lead209=Piombo-209 +hbmmat.lignitecoke=Coke di Lignite hbmmat.lignite=Lignite -hbmmat.lithium=Lithium -hbmmat.magnetizedtungsten=Magnetized Tungsten +hbmmat.lithium=Litio +hbmmat.magnetizedtungsten=Tungsteno Magnetizzato hbmmat.malachite=Malachite -hbmmat.meteoriciron=Meteoric Iron -hbmmat.mingrade=Minecraft Grade Copper -hbmmat.neodymium=Neodymium -hbmmat.neptunium237=Neptunium-237 -hbmmat.niobium=Niobium -hbmmat.obsidian=Obsidian -hbmmat.osmiridium=Osmiridium -hbmmat.petcoke=Petroleum Coke -hbmmat.pigiron=Pig Iron -hbmmat.plutonium=Plutonium -hbmmat.plutonium238=Plutonium-238 -hbmmat.plutonium239=Plutonium-239 -hbmmat.plutonium240=Plutonium-240 -hbmmat.plutonium241=Plutonium-241 -hbmmat.plutoniumrg=Reactor-Grade Plutonium -hbmmat.polonium210=Polonium-210 -hbmmat.polymer=Polymer -hbmmat.radium226=Radium-226 -hbmmat.redphosphorus=Red Phosphorus -hbmmat.redstone=Redstone -hbmmat.rubber=Rubber -hbmmat.saltpeter=Niter +hbmmat.meteoriciron=Ferro Meteorico +hbmmat.mingrade=Rame Minecraft-Grade +hbmmat.neodymium=Neodimio +hbmmat.neptunium237=Nettunio-237 +hbmmat.niobium=Niobio +hbmmat.obsidian=Ossidiana +hbmmat.osmiridium=Osmiridio +hbmmat.petcoke=Coke di Petrolio +hbmmat.pigiron=Ferro del Porco +hbmmat.plutonium=Plutonio +hbmmat.plutonium238=Plutonio-238 +hbmmat.plutonium239=Plutonio-239 +hbmmat.plutonium240=Plutonio-240 +hbmmat.plutonium241=Plutonio-241 +hbmmat.plutoniumrg=Plutonio da Reattore +hbmmat.polonium210=Polonio-210 +hbmmat.polymer=Polimero +hbmmat.radium226=Radio-226 +hbmmat.redphosphorus=Fosforo Rosso +hbmmat.redstone=Pietrarossa +hbmmat.rubber=Gomma +hbmmat.saltpeter=Salnitro hbmmat.saturnite=Saturnite -hbmmat.schrabidate=Ferric Schrabidate -hbmmat.schrabidium=Schrabidium -hbmmat.schraranium=Schraranium -hbmmat.silicon=Silicon -hbmmat.slag=Slag -hbmmat.sodium=Sodium -hbmmat.solinium=Solinium +hbmmat.schrabidate=Schrabidio Ferrico +hbmmat.schrabidium=Schrabidio +hbmmat.schraranium=Schraranio +hbmmat.silicon=Silicio +hbmmat.slag=Scorie +hbmmat.sodium=Sodio +hbmmat.solinium=Solinio hbmmat.starmetal=Starmetal -hbmmat.steel=Steel -hbmmat.stone=Stone -hbmmat.sulfur=Sulfur -hbmmat.tantalum=Tantalum -hbmmat.tcalloy=Technetium Steel -hbmmat.technetium99=Technetium-99 -hbmmat.titanium=Titanium -hbmmat.thorium232=Thorium-232 -hbmmat.tungsten=Tungsten -hbmmat.uranium=Uranium -hbmmat.uranium233=Uranium-233 -hbmmat.uranium235=Uranium-235 -hbmmat.uranium238=Uranium-238 -hbmmat.watzmud=Poisonous Mud -hbmmat.whitephosphorus=White Phosphorus +hbmmat.steel=Acciaio +hbmmat.stone=Pietra +hbmmat.sulfur=Zolfo +hbmmat.tantalum=Tantalio +hbmmat.tcalloy=Acciaio di Tecnezio +hbmmat.technetium99=Tecnezio-99 +hbmmat.titanium=Titanio +hbmmat.thorium232=Torio-232 +hbmmat.tungsten=Tungsteno +hbmmat.uranium=Uranio +hbmmat.uranium233=Uranio-233 +hbmmat.uranium235=Uranio-235 +hbmmat.uranium238=Uranio-238 +hbmmat.watzmud=Fango Tossico +hbmmat.whitephosphorus=Fosforo Bianco hbmmat.workersalloy=Desh -hbmmat.wroughtiron=Wroght Iron -hbmmat.zirconium=Zirconium +hbmmat.wroughtiron=Ferro Battuto +hbmmat.zirconium=Zirconio -matshape.block=%s Block -matshape.blocks=%s Blocks -matshape.ingot=%s Ingot -matshape.ingots=%s Ingots -matshape.nugget=%s Nugget -matshape.nuggets=%s Nuggets -matshape.quantum=%s Quantum -matshape.quanta=%s Quanta +matshape.block=%s Blocco +matshape.blocks=%s Blocchi +matshape.ingot=%s Lingotto +matshape.ingots=%s Lingotti +matshape.nugget=%s Pepita +matshape.nuggets=%s Pepite +matshape.quantum=%s Quanto +matshape.quanta=%s Quanti -icffuel.beryllium=Beryllium -icffuel.boron=Boron -icffuel.carbon=Carbon -icffuel.calcium=Calcium -icffuel.chlorine=Chlorine -icffuel.deuterium=Deuterium -icffuel.helium3=Helium-3 -icffuel.helium4=Helium-4 -icffuel.hydrogen=Hydrogen -icffuel.lithium=Lithium -icffuel.oxygen=Oxygen -icffuel.sodium=Sodium -icffuel.tritium=Tritium +icffuel.beryllium=Berillio +icffuel.boron=Boro +icffuel.carbon=Carbonio +icffuel.calcium=Calcio +icffuel.chlorine=Cloro +icffuel.deuterium=Deuterio +icffuel.helium3=Elio-3 +icffuel.helium4=Elio-4 +icffuel.hydrogen=Idrogeno +icffuel.lithium=Litio +icffuel.oxygen=Ossigeno +icffuel.sodium=Sodio +icffuel.tritium=Trizio -info.asbestos=My lungs are burning. -info.coaldust=It's hard to breathe here. -info.coil=Coil Strength -info.templatefolder=Created with %s +info.asbestos=I miei polmoni bruciano. +info.coaldust=È faticoso respirare qua. +info.coil=Potenza Bobina +info.templatefolder=Creato con %s info.template_in=Input: -info.template_in_p=Inputs: +info.template_in_p=Input: info.template_out=Output: -info.template_out_p=Outputs: -info.template_seconds=seconds -info.template_time=Production Time: +info.template_out_p=Output: +info.template_seconds=secondi +info.template_time=Tempo di Produzione: item.acetylene_torch.name=Acetylene Welding Torch item.ajr_boots.name=Steel Ranger Boots diff --git a/src/main/resources/assets/hbm/manual/fluids/crude_oil.json b/src/main/resources/assets/hbm/manual/fluids/crude_oil.json new file mode 100644 index 000000000..dfc1f77ab --- /dev/null +++ b/src/main/resources/assets/hbm/manual/fluids/crude_oil.json @@ -0,0 +1,15 @@ +{ + "name": "Crude Oil", + "icon": ["hbm:item.fluid_icon", 1, 10], + "trigger": [], + "title": { + "en_US": "Crude Oil", + "ru_RU": "сырая нефть", + "zh_CN": "原油" + }, + "content": { + "en_US": "Fluid obtained after extracting [[oil deposits|Oil Collection]]. Used as the base material for all oil products, it must first be [[heated|Boiler]] and [[processed|Oil Refinery]] to obtain products such as:
[[Heavy Oil]]
[[Naphtha]]
[[Light Oil]]
[[Petroleum Gas]]

It is also used to obtain [[Cracked Oil]] and related byproducts through processing with a [[cracking tower|Catalytic Cracking Tower]]. Other methods of processing include [[vacuum refining|Vacuum Refinery]], [[radiolysis|Radiolysis]], [[hydrotreating|Hydrotreater]] and [[solidification|Solidification]].

See also:
[[Basic Oil Processing]]
[[Advanced Oil Processing]]
[[Vacuum Oil Processing]]", + "ru_RU": "Жидкость, получаемая после добычи [[нефтяных месторождений|Oil Collection]]. Используется в качестве базового сырья для всех нефтепродуктов и перед применением должна быть [[нагретой|Boiler]] и [[переработанной|Oil Refinery]] для получения таких продуктов, как:
[[Тяжёлая нефть|Heavy Oil]]
[[Нафта|Naphtha]]
[[Лёгкая нефть|Light Oil]]
[[Нефтяной газ|Petroleum Gas]]

Также используется для получения [[крекированной нефти|Cracked Oil]] и связанных побочных продуктов при переработке в [[установке крекинга|Catalytic Cracking Tower]]. Другие методы переработки включают [[вакуумную переработку|Vacuum Refinery]], [[радиолиз|Radiolysis]], [[гидроочистку|Hydrotreater]] и [[твёрдофазную обработку|Solidification]].

См. также:
[[Базовая нефтепереработка|Basic Oil Processing]]
[[Продвинутая нефтепереработка|Advanced Oil Processing]]
[[Вакуумная нефтепереработка|Vacuum Oil Processing]]", + "zh_CN": "从[[油田开采|Oil Collection]]中获得的流体。作为所有石油产品的基础原料,在使用前必须先经过[[加热|Boiler]]和[[精炼|Oil Refinery]],以获得以下产品:
[[重油|Heavy Oil]]
[[石脑油|Naphtha]]
[[轻油|Light Oil]]
[[石油气|Petroleum Gas]]

还可以通过[[裂化塔|Catalytic Cracking Tower]]的处理获得[[裂化油|Cracked Oil]]及其相关副产品。其他处理方式包括[[真空精炼|Vacuum Refinery]]、[[辐解|Radiolysis]]、[[加氢处理|Hydrotreater]]以及[[固化|Solidification]]。

另见:
[[基础石油处理|Basic Oil Processing]]
[[高级石油处理|Advanced Oil Processing]]
[[真空石油处理|Vacuum Oil Processing]]" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/machines/battery.obj b/src/main/resources/assets/hbm/models/machines/battery.obj index c37a7ffbc..932762be7 100644 --- a/src/main/resources/assets/hbm/models/machines/battery.obj +++ b/src/main/resources/assets/hbm/models/machines/battery.obj @@ -1,5 +1,121 @@ # Blender v2.79 (sub 0) OBJ File: 'battery.blend' # www.blender.org +o Capacitor +v -0.875000 0.125000 0.875000 +v 0.875000 0.125000 0.875000 +v -0.875000 0.125000 -0.875000 +v 0.875000 0.125000 -0.875000 +v -0.875000 1.875000 -0.875000 +v -0.875000 1.875000 0.875000 +v 0.875000 1.875000 0.875000 +v 0.875000 1.875000 -0.875000 +v -0.750000 0.250000 0.750000 +v 0.750000 0.250000 0.750000 +v -0.750000 0.250000 -0.750000 +v 0.750000 0.250000 -0.750000 +v -0.750000 1.750000 -0.750000 +v -0.750000 1.750000 0.750000 +v 0.750000 1.750000 0.750000 +v 0.750000 1.750000 -0.750000 +v -0.875000 0.125000 0.875000 +v 0.875000 0.125000 0.875000 +v -0.875000 0.125000 -0.875000 +v 0.875000 0.125000 -0.875000 +v -0.875000 1.875000 -0.875000 +v -0.875000 1.875000 0.875000 +v 0.875000 1.875000 0.875000 +v 0.875000 1.875000 -0.875000 +vt 0.269231 0.000000 +vt 0.000000 0.333333 +vt 0.000000 0.000000 +vt 0.000000 0.666667 +vt 0.269231 1.000000 +vt 0.000000 1.000000 +vt 0.269231 0.333333 +vt -0.000000 0.666667 +vt -0.000000 0.333333 +vt 0.538462 0.333333 +vt 0.269231 0.666667 +vt 0.269231 0.333333 +vt 0.538462 0.333333 +vt 0.269231 0.666667 +vt 0.769231 -0.000000 +vt 0.538462 0.285714 +vt 0.538462 -0.000000 +vt 0.538462 0.571429 +vt 0.769231 0.857143 +vt 0.538462 0.857143 +vt 0.769231 0.285714 +vt 0.769231 0.285714 +vt 0.538462 0.571429 +vt 0.538462 0.285714 +vt 1.000000 0.285714 +vt 0.769231 0.571429 +vt 1.000000 0.285714 +vt 0.769231 0.571429 +vt 0.000000 0.333333 +vt 0.269231 0.000000 +vt 0.000000 0.000000 +vt 0.269231 1.000000 +vt 0.000000 0.666667 +vt 0.000000 1.000000 +vt -0.000000 0.666667 +vt 0.269231 0.333333 +vt -0.000000 0.333333 +vt 0.269231 0.666667 +vt 0.538462 0.333333 +vt 0.269231 0.333333 +vt 0.269231 0.666667 +vt 0.538462 0.333333 +vt 0.538462 0.666667 +vt 0.538462 0.666667 +vt 1.000000 0.571429 +vt 1.000000 0.571429 +vt 0.538462 0.666667 +vt 0.538462 0.666667 +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 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +s off +f 3/1/1 2/2/1 1/3/1 +f 7/4/2 5/5/2 6/6/2 +f 1/7/3 5/8/3 3/9/3 +f 3/10/4 8/11/4 4/12/4 +f 2/13/5 6/14/5 1/7/5 +f 4/12/6 7/4/6 2/2/6 +f 11/15/1 10/16/1 9/17/1 +f 15/18/2 13/19/2 14/20/2 +f 12/21/6 15/18/6 10/16/6 +f 9/22/3 13/23/3 11/24/3 +f 11/25/4 16/26/4 12/21/4 +f 10/27/5 14/28/5 9/22/5 +f 18/29/2 19/30/2 17/31/2 +f 21/32/1 23/33/1 22/34/1 +f 21/35/6 17/36/6 19/37/6 +f 24/38/5 19/39/5 20/40/5 +f 22/41/4 18/42/4 17/36/4 +f 23/33/3 20/40/3 18/29/3 +f 3/1/1 4/12/1 2/2/1 +f 7/4/2 8/11/2 5/5/2 +f 1/7/3 6/14/3 5/8/3 +f 3/10/4 5/43/4 8/11/4 +f 2/13/5 7/44/5 6/14/5 +f 4/12/6 8/11/6 7/4/6 +f 11/15/1 12/21/1 10/16/1 +f 15/18/2 16/26/2 13/19/2 +f 12/21/6 16/26/6 15/18/6 +f 9/22/3 14/28/3 13/23/3 +f 11/25/4 13/45/4 16/26/4 +f 10/27/5 15/46/5 14/28/5 +f 18/29/2 20/40/2 19/30/2 +f 21/32/1 24/38/1 23/33/1 +f 21/35/6 22/41/6 17/36/6 +f 24/38/5 21/47/5 19/39/5 +f 22/41/4 23/48/4 18/42/4 +f 23/33/3 24/38/3 20/40/3 o Battery v 0.687500 1.875000 -0.875000 v 0.875000 1.875000 -0.687500 @@ -268,158 +384,158 @@ vn 1.0000 0.0000 0.0000 vn 0.0000 0.0000 -1.0000 vn -1.0000 0.0000 0.0000 s off -f 8/1/1 14/2/1 22/3/1 -f 35/4/2 26/5/2 3/6/2 -f 20/7/3 3/8/3 26/9/3 -f 20/10/4 16/11/4 10/12/4 -f 24/13/4 15/14/4 26/15/4 -f 10/16/5 12/17/5 17/18/5 -f 10/16/2 8/1/2 7/19/2 -f 12/20/3 18/21/3 17/22/3 -f 22/23/6 20/24/6 19/25/6 -f 14/26/7 16/11/7 15/27/7 -f 16/11/8 8/1/8 9/28/8 -f 27/29/7 25/30/7 30/31/7 -f 29/32/9 23/33/9 28/34/9 -f 15/35/2 6/36/2 14/37/2 -f 27/29/4 36/38/4 44/39/4 -f 14/40/1 2/41/1 29/42/1 -f 42/43/10 38/44/10 33/45/10 -f 30/46/6 28/34/6 27/47/6 -f 1/48/7 24/13/7 23/33/7 -f 24/13/8 6/36/8 5/49/8 -f 40/50/3 4/51/3 44/52/3 -f 11/53/2 32/54/2 18/55/2 -f 32/54/5 34/56/5 37/57/5 -f 35/58/1 30/31/1 47/59/1 -f 34/60/3 38/44/3 37/61/3 -f 42/43/6 40/62/6 39/63/6 -f 19/64/7 35/65/7 22/66/7 -f 37/67/4 39/68/4 36/69/4 -f 48/70/10 44/52/10 4/51/10 -f 47/71/9 43/72/9 46/73/9 -f 41/74/1 33/75/1 31/76/1 -f 48/70/6 46/73/6 45/77/6 -f 60/78/9 56/79/9 57/80/9 -f 52/81/1 56/79/1 54/82/1 -f 60/83/4 58/84/4 62/85/4 -f 64/86/10 54/82/10 59/87/10 -f 58/84/8 52/81/8 61/88/8 -f 58/84/7 56/89/7 55/90/7 -f 54/91/6 60/78/6 59/92/6 -f 64/86/3 50/93/3 49/94/3 -f 52/95/2 62/96/2 61/97/2 -f 62/96/5 50/98/5 63/99/5 -f 76/100/9 72/101/9 73/102/9 -f 68/103/1 72/101/1 70/104/1 -f 76/105/4 74/106/4 78/107/4 -f 80/108/10 70/104/10 75/109/10 -f 74/106/8 68/103/8 77/110/8 -f 74/106/7 72/111/7 71/112/7 -f 70/113/6 76/100/6 75/114/6 -f 80/108/3 66/115/3 65/116/3 -f 68/117/2 78/118/2 77/119/2 -f 78/118/5 66/120/5 79/121/5 -f 22/3/1 11/122/1 12/123/1 -f 12/123/1 7/124/1 8/1/1 -f 8/1/1 13/125/1 14/2/1 -f 14/2/1 21/126/1 22/3/1 -f 22/3/1 12/123/1 8/1/1 -f 35/4/2 36/127/2 26/5/2 -f 20/7/3 21/128/3 3/8/3 -f 10/12/4 17/129/4 18/130/4 -f 18/130/4 19/131/4 20/10/4 -f 20/10/4 15/132/4 16/11/4 -f 16/11/4 9/28/4 10/12/4 -f 10/12/4 18/130/4 20/10/4 -f 26/15/4 27/133/4 28/134/4 -f 28/134/4 23/135/4 24/13/4 -f 24/13/4 5/49/4 15/14/4 -f 15/14/4 20/136/4 26/15/4 -f 26/15/4 28/134/4 24/13/4 -f 10/16/5 7/19/5 12/17/5 -f 10/16/2 9/28/2 8/1/2 -f 12/20/3 11/137/3 18/21/3 -f 22/23/6 21/138/6 20/24/6 -f 14/26/7 13/125/7 16/11/7 -f 16/11/8 13/125/8 8/1/8 -f 27/29/7 43/72/7 25/30/7 -f 29/32/9 1/48/9 23/33/9 -f 15/35/2 5/49/2 6/36/2 -f 44/39/4 45/139/4 46/140/4 -f 46/140/4 43/141/4 27/29/4 -f 27/29/4 26/5/4 36/38/4 -f 36/38/4 40/142/4 44/39/4 -f 44/39/4 46/140/4 27/29/4 -f 29/42/1 30/143/1 3/144/1 -f 3/144/1 21/145/1 14/40/1 -f 14/40/1 6/36/1 2/41/1 -f 2/41/1 1/146/1 29/42/1 -f 29/42/1 3/144/1 14/40/1 -f 42/43/10 39/63/10 38/44/10 -f 30/46/6 29/32/6 28/34/6 -f 1/48/7 2/41/7 24/13/7 -f 24/13/8 2/41/8 6/36/8 -f 40/50/3 41/147/3 4/51/3 -f 11/53/2 31/148/2 32/54/2 -f 32/54/5 31/148/5 34/56/5 -f 47/59/1 48/149/1 4/150/1 -f 4/150/1 41/151/1 35/58/1 -f 35/58/1 3/6/1 30/31/1 -f 30/31/1 25/152/1 47/59/1 -f 47/59/1 4/150/1 35/58/1 -f 34/60/3 33/45/3 38/44/3 -f 42/43/6 41/153/6 40/62/6 -f 19/64/7 36/154/7 35/65/7 -f 36/69/4 19/64/4 18/55/4 -f 18/55/4 32/155/4 37/67/4 -f 37/67/4 38/156/4 39/68/4 -f 39/68/4 40/157/4 36/69/4 -f 36/69/4 18/55/4 37/67/4 -f 48/70/10 45/77/10 44/52/10 -f 47/71/9 25/30/9 43/72/9 -f 31/76/1 11/53/1 22/66/1 -f 22/66/1 35/158/1 41/74/1 -f 41/74/1 42/159/1 33/75/1 -f 33/75/1 34/160/1 31/76/1 -f 31/76/1 22/66/1 41/74/1 -f 48/70/6 47/71/6 46/73/6 -f 60/78/9 53/161/9 56/79/9 -f 54/82/1 49/94/1 50/98/1 -f 50/98/1 51/162/1 52/81/1 -f 52/81/1 55/90/1 56/79/1 -f 56/79/1 53/161/1 54/82/1 -f 54/82/1 50/98/1 52/81/1 -f 62/85/4 63/163/4 64/164/4 -f 64/164/4 59/165/4 60/83/4 -f 60/83/4 57/166/4 58/84/4 -f 58/84/4 61/88/4 62/85/4 -f 62/85/4 64/164/4 60/83/4 -f 64/86/10 49/94/10 54/82/10 -f 58/84/8 55/90/8 52/81/8 -f 58/84/7 57/167/7 56/89/7 -f 54/91/6 53/161/6 60/78/6 -f 64/86/3 63/168/3 50/93/3 -f 52/95/2 51/162/2 62/96/2 -f 62/96/5 51/162/5 50/98/5 -f 76/100/9 69/169/9 72/101/9 -f 70/104/1 65/116/1 66/120/1 -f 66/120/1 67/170/1 68/103/1 -f 68/103/1 71/112/1 72/101/1 -f 72/101/1 69/169/1 70/104/1 -f 70/104/1 66/120/1 68/103/1 -f 78/107/4 79/171/4 80/172/4 -f 80/172/4 75/173/4 76/105/4 -f 76/105/4 73/174/4 74/106/4 -f 74/106/4 77/110/4 78/107/4 -f 78/107/4 80/172/4 76/105/4 -f 80/108/10 65/116/10 70/104/10 -f 74/106/8 71/112/8 68/103/8 -f 74/106/7 73/175/7 72/111/7 -f 70/113/6 69/169/6 76/100/6 -f 80/108/3 79/176/3 66/115/3 -f 68/117/2 67/170/2 78/118/2 -f 78/118/5 67/170/5 66/120/5 +f 32/49/7 38/50/7 46/51/7 +f 59/52/8 50/53/8 27/54/8 +f 44/55/9 27/56/9 50/57/9 +f 44/58/10 40/59/10 34/60/10 +f 48/61/10 39/62/10 50/63/10 +f 34/64/11 36/65/11 41/66/11 +f 34/64/8 32/49/8 31/67/8 +f 36/68/9 42/69/9 41/70/9 +f 46/71/12 44/72/12 43/73/12 +f 38/74/13 40/59/13 39/75/13 +f 40/59/14 32/49/14 33/76/14 +f 51/77/13 49/78/13 54/79/13 +f 53/80/15 47/81/15 52/82/15 +f 39/83/8 30/84/8 38/85/8 +f 51/77/10 60/86/10 68/87/10 +f 38/88/7 26/89/7 53/90/7 +f 66/91/16 62/92/16 57/93/16 +f 54/94/12 52/82/12 51/95/12 +f 25/96/13 48/61/13 47/81/13 +f 48/61/14 30/84/14 29/97/14 +f 64/98/9 28/99/9 68/100/9 +f 35/101/8 56/102/8 42/103/8 +f 56/102/11 58/104/11 61/105/11 +f 59/106/7 54/79/7 71/107/7 +f 58/108/9 62/92/9 61/109/9 +f 66/91/12 64/110/12 63/111/12 +f 43/112/13 59/113/13 46/114/13 +f 61/115/10 63/116/10 60/117/10 +f 72/118/16 68/100/16 28/99/16 +f 71/119/15 67/120/15 70/121/15 +f 65/122/7 57/123/7 55/124/7 +f 72/118/12 70/121/12 69/125/12 +f 84/126/15 80/127/15 81/128/15 +f 76/129/7 80/127/7 78/130/7 +f 84/131/10 82/132/10 86/133/10 +f 88/134/16 78/130/16 83/135/16 +f 82/132/14 76/129/14 85/136/14 +f 82/132/13 80/137/13 79/138/13 +f 78/139/12 84/126/12 83/140/12 +f 88/134/9 74/141/9 73/142/9 +f 76/143/8 86/144/8 85/145/8 +f 86/144/11 74/146/11 87/147/11 +f 100/148/15 96/149/15 97/150/15 +f 92/151/7 96/149/7 94/152/7 +f 100/153/10 98/154/10 102/155/10 +f 104/156/16 94/152/16 99/157/16 +f 98/154/14 92/151/14 101/158/14 +f 98/154/13 96/159/13 95/160/13 +f 94/161/12 100/148/12 99/162/12 +f 104/156/9 90/163/9 89/164/9 +f 92/165/8 102/166/8 101/167/8 +f 102/166/11 90/168/11 103/169/11 +f 46/51/7 35/170/7 36/171/7 +f 36/171/7 31/172/7 32/49/7 +f 32/49/7 37/173/7 38/50/7 +f 38/50/7 45/174/7 46/51/7 +f 46/51/7 36/171/7 32/49/7 +f 59/52/8 60/175/8 50/53/8 +f 44/55/9 45/176/9 27/56/9 +f 34/60/10 41/177/10 42/178/10 +f 42/178/10 43/179/10 44/58/10 +f 44/58/10 39/180/10 40/59/10 +f 40/59/10 33/76/10 34/60/10 +f 34/60/10 42/178/10 44/58/10 +f 50/63/10 51/181/10 52/182/10 +f 52/182/10 47/183/10 48/61/10 +f 48/61/10 29/97/10 39/62/10 +f 39/62/10 44/184/10 50/63/10 +f 50/63/10 52/182/10 48/61/10 +f 34/64/11 31/67/11 36/65/11 +f 34/64/8 33/76/8 32/49/8 +f 36/68/9 35/185/9 42/69/9 +f 46/71/12 45/186/12 44/72/12 +f 38/74/13 37/173/13 40/59/13 +f 40/59/14 37/173/14 32/49/14 +f 51/77/13 67/120/13 49/78/13 +f 53/80/15 25/96/15 47/81/15 +f 39/83/8 29/97/8 30/84/8 +f 68/87/10 69/187/10 70/188/10 +f 70/188/10 67/189/10 51/77/10 +f 51/77/10 50/53/10 60/86/10 +f 60/86/10 64/190/10 68/87/10 +f 68/87/10 70/188/10 51/77/10 +f 53/90/7 54/191/7 27/192/7 +f 27/192/7 45/193/7 38/88/7 +f 38/88/7 30/84/7 26/89/7 +f 26/89/7 25/194/7 53/90/7 +f 53/90/7 27/192/7 38/88/7 +f 66/91/16 63/111/16 62/92/16 +f 54/94/12 53/80/12 52/82/12 +f 25/96/13 26/89/13 48/61/13 +f 48/61/14 26/89/14 30/84/14 +f 64/98/9 65/195/9 28/99/9 +f 35/101/8 55/196/8 56/102/8 +f 56/102/11 55/196/11 58/104/11 +f 71/107/7 72/197/7 28/198/7 +f 28/198/7 65/199/7 59/106/7 +f 59/106/7 27/54/7 54/79/7 +f 54/79/7 49/200/7 71/107/7 +f 71/107/7 28/198/7 59/106/7 +f 58/108/9 57/93/9 62/92/9 +f 66/91/12 65/201/12 64/110/12 +f 43/112/13 60/202/13 59/113/13 +f 60/117/10 43/112/10 42/103/10 +f 42/103/10 56/203/10 61/115/10 +f 61/115/10 62/204/10 63/116/10 +f 63/116/10 64/205/10 60/117/10 +f 60/117/10 42/103/10 61/115/10 +f 72/118/16 69/125/16 68/100/16 +f 71/119/15 49/78/15 67/120/15 +f 55/124/7 35/101/7 46/114/7 +f 46/114/7 59/206/7 65/122/7 +f 65/122/7 66/207/7 57/123/7 +f 57/123/7 58/208/7 55/124/7 +f 55/124/7 46/114/7 65/122/7 +f 72/118/12 71/119/12 70/121/12 +f 84/126/15 77/209/15 80/127/15 +f 78/130/7 73/142/7 74/146/7 +f 74/146/7 75/210/7 76/129/7 +f 76/129/7 79/138/7 80/127/7 +f 80/127/7 77/209/7 78/130/7 +f 78/130/7 74/146/7 76/129/7 +f 86/133/10 87/211/10 88/212/10 +f 88/212/10 83/213/10 84/131/10 +f 84/131/10 81/214/10 82/132/10 +f 82/132/10 85/136/10 86/133/10 +f 86/133/10 88/212/10 84/131/10 +f 88/134/16 73/142/16 78/130/16 +f 82/132/14 79/138/14 76/129/14 +f 82/132/13 81/215/13 80/137/13 +f 78/139/12 77/209/12 84/126/12 +f 88/134/9 87/216/9 74/141/9 +f 76/143/8 75/210/8 86/144/8 +f 86/144/11 75/210/11 74/146/11 +f 100/148/15 93/217/15 96/149/15 +f 94/152/7 89/164/7 90/168/7 +f 90/168/7 91/218/7 92/151/7 +f 92/151/7 95/160/7 96/149/7 +f 96/149/7 93/217/7 94/152/7 +f 94/152/7 90/168/7 92/151/7 +f 102/155/10 103/219/10 104/220/10 +f 104/220/10 99/221/10 100/153/10 +f 100/153/10 97/222/10 98/154/10 +f 98/154/10 101/158/10 102/155/10 +f 102/155/10 104/220/10 100/153/10 +f 104/156/16 89/164/16 94/152/16 +f 98/154/14 95/160/14 92/151/14 +f 98/154/13 97/223/13 96/159/13 +f 94/161/12 93/217/12 100/148/12 +f 104/156/9 103/224/9 90/163/9 +f 92/165/8 91/218/8 102/166/8 +f 102/166/11 91/218/11 90/168/11 o Socket v -1.000000 0.000000 1.000000 v 1.000000 0.000000 1.000000 @@ -822,199 +938,199 @@ vn -0.7099 0.7043 0.0000 vn 0.7099 -0.7043 0.0000 vn -0.7071 -0.7071 0.0000 s off -f 83/177/11 82/178/11 81/179/11 -f 88/180/12 103/181/12 86/182/12 -f 83/177/13 92/183/13 84/184/13 -f 82/178/14 90/185/14 81/179/14 -f 84/184/15 91/186/15 82/178/15 -f 81/179/12 89/187/12 83/177/12 -f 87/188/16 90/189/16 85/190/16 -f 85/190/16 91/186/16 86/191/16 -f 86/191/16 92/192/16 88/193/16 -f 88/193/16 89/194/16 87/188/16 -f 94/195/15 95/196/15 93/197/15 -f 97/198/12 99/199/12 98/200/12 -f 103/181/16 101/201/16 102/202/16 -f 95/196/16 98/200/16 93/197/16 -f 96/203/13 97/198/13 95/196/13 -f 93/197/14 99/204/14 94/205/14 -f 85/206/15 101/201/15 87/207/15 -f 87/208/14 104/209/14 88/210/14 -f 86/211/13 102/202/13 85/212/13 -f 106/213/15 107/214/15 105/215/15 -f 109/216/12 111/217/12 110/218/12 -f 107/214/16 110/218/16 105/215/16 -f 108/219/13 109/216/13 107/214/13 -f 105/215/14 111/220/14 106/221/14 -f 114/222/12 115/223/12 113/224/12 -f 117/225/15 119/226/15 118/227/15 -f 115/223/16 118/227/16 113/224/16 -f 116/228/14 117/225/14 115/223/14 -f 113/224/13 119/229/13 114/230/13 -f 122/231/12 123/232/12 121/233/12 -f 125/234/15 127/235/15 126/236/15 -f 123/232/16 126/236/16 121/233/16 -f 124/237/14 125/234/14 123/232/14 -f 121/233/13 127/238/13 122/239/13 -f 130/240/13 131/241/13 129/242/13 -f 133/243/14 135/244/14 134/245/14 -f 131/241/16 134/245/16 129/242/16 -f 132/246/12 133/243/12 131/241/12 -f 129/242/15 135/247/15 130/248/15 -f 138/249/13 139/250/13 137/251/13 -f 141/252/14 143/253/14 142/254/14 -f 139/250/16 142/254/16 137/251/16 -f 140/255/12 141/252/12 139/250/12 -f 137/251/15 143/256/15 138/257/15 -f 146/258/14 147/259/14 145/260/14 -f 149/261/13 151/262/13 150/263/13 -f 147/259/16 150/263/16 145/260/16 -f 148/264/15 149/261/15 147/259/15 -f 145/260/12 151/265/12 146/266/12 -f 154/267/14 155/268/14 153/269/14 -f 157/270/13 159/271/13 158/272/13 -f 155/268/16 158/272/16 153/269/16 -f 156/273/15 157/270/15 155/268/15 -f 153/269/12 159/274/12 154/275/12 -f 162/276/13 177/277/13 161/278/13 -f 176/279/16 174/280/16 175/281/16 -f 172/282/16 170/283/16 171/284/16 -f 168/285/13 173/286/13 169/287/13 -f 167/288/14 171/289/14 166/290/14 -f 169/287/15 172/282/15 167/288/15 -f 166/291/12 170/292/12 168/285/12 -f 163/293/14 175/294/14 164/295/14 -f 161/278/15 176/279/15 163/293/15 -f 164/296/12 174/297/12 162/276/12 -f 179/298/13 193/299/13 178/300/13 -f 192/301/16 190/302/16 191/303/16 -f 188/304/16 186/305/16 187/306/16 -f 184/307/13 189/308/13 185/309/13 -f 183/310/14 187/311/14 182/312/14 -f 185/309/15 188/304/15 183/310/15 -f 182/313/12 186/314/12 184/307/12 -f 180/315/14 191/316/14 181/317/14 -f 178/300/15 192/301/15 180/315/15 -f 181/318/12 190/319/12 179/298/12 -f 194/320/16 195/321/16 165/322/16 -f 194/320/17 198/323/17 196/324/17 -f 197/325/15 200/326/15 198/323/15 -f 195/321/18 201/327/18 165/322/18 -f 202/328/12 203/329/12 201/327/12 -f 206/330/16 207/331/16 205/332/16 -f 206/330/17 210/333/17 208/334/17 -f 209/335/15 212/336/15 210/333/15 -f 207/331/18 213/337/18 205/332/18 -f 214/338/12 215/339/12 213/337/12 -f 169/287/11 166/340/11 168/341/11 -f 185/309/11 182/342/11 184/343/11 -f 180/315/11 179/344/11 178/300/11 -f 163/293/11 162/345/11 161/278/11 -f 218/346/15 219/347/15 220/348/15 -f 220/348/19 226/349/19 228/350/19 -f 221/351/12 224/352/12 223/353/12 -f 223/353/20 227/354/20 225/355/20 -f 226/349/11 227/354/11 228/350/11 -f 230/356/15 231/357/15 232/358/15 -f 232/358/19 238/359/19 240/360/19 -f 233/361/12 236/362/12 235/363/12 -f 235/363/20 239/364/20 237/365/20 -f 238/359/11 239/364/11 240/360/11 -f 83/177/11 84/184/11 82/178/11 -f 88/180/12 104/209/12 103/181/12 -f 83/177/13 89/366/13 92/183/13 -f 82/178/14 91/367/14 90/185/14 -f 84/184/15 92/192/15 91/186/15 -f 81/179/12 90/368/12 89/187/12 -f 87/188/16 89/194/16 90/189/16 -f 85/190/16 90/189/16 91/186/16 -f 86/191/16 91/186/16 92/192/16 -f 88/193/16 92/192/16 89/194/16 -f 94/195/15 96/369/15 95/196/15 -f 97/198/12 100/370/12 99/199/12 -f 103/181/16 104/209/16 101/201/16 -f 95/196/16 97/198/16 98/200/16 -f 96/203/13 100/371/13 97/198/13 -f 93/197/14 98/200/14 99/204/14 -f 85/206/15 102/202/15 101/201/15 -f 87/208/14 101/201/14 104/209/14 -f 86/211/13 103/181/13 102/202/13 -f 106/213/15 108/372/15 107/214/15 -f 109/216/12 112/373/12 111/217/12 -f 107/214/16 109/216/16 110/218/16 -f 108/219/13 112/374/13 109/216/13 -f 105/215/14 110/218/14 111/220/14 -f 114/222/12 116/375/12 115/223/12 -f 117/225/15 120/376/15 119/226/15 -f 115/223/16 117/225/16 118/227/16 -f 116/228/14 120/377/14 117/225/14 -f 113/224/13 118/227/13 119/229/13 -f 122/231/12 124/378/12 123/232/12 -f 125/234/15 128/379/15 127/235/15 -f 123/232/16 125/234/16 126/236/16 -f 124/237/14 128/380/14 125/234/14 -f 121/233/13 126/236/13 127/238/13 -f 130/240/13 132/381/13 131/241/13 -f 133/243/14 136/382/14 135/244/14 -f 131/241/16 133/243/16 134/245/16 -f 132/246/12 136/383/12 133/243/12 -f 129/242/15 134/245/15 135/247/15 -f 138/249/13 140/384/13 139/250/13 -f 141/252/14 144/385/14 143/253/14 -f 139/250/16 141/252/16 142/254/16 -f 140/255/12 144/386/12 141/252/12 -f 137/251/15 142/254/15 143/256/15 -f 146/258/14 148/387/14 147/259/14 -f 149/261/13 152/388/13 151/262/13 -f 147/259/16 149/261/16 150/263/16 -f 148/264/15 152/389/15 149/261/15 -f 145/260/12 150/263/12 151/265/12 -f 154/267/14 156/390/14 155/268/14 -f 157/270/13 160/391/13 159/271/13 -f 155/268/16 157/270/16 158/272/16 -f 156/273/15 160/392/15 157/270/15 -f 153/269/12 158/272/12 159/274/12 -f 162/276/13 174/297/13 177/277/13 -f 176/279/16 177/277/16 174/280/16 -f 172/282/16 173/286/16 170/283/16 -f 168/285/13 170/292/13 173/286/13 -f 167/288/14 172/282/14 171/289/14 -f 169/287/15 173/286/15 172/282/15 -f 166/291/12 171/393/12 170/292/12 -f 163/293/14 176/279/14 175/294/14 -f 161/278/15 177/277/15 176/279/15 -f 164/296/12 175/394/12 174/297/12 -f 179/298/13 190/319/13 193/299/13 -f 192/301/16 193/299/16 190/302/16 -f 188/304/16 189/308/16 186/305/16 -f 184/307/13 186/314/13 189/308/13 -f 183/310/14 188/304/14 187/311/14 -f 185/309/15 189/308/15 188/304/15 -f 182/313/12 187/395/12 186/314/12 -f 180/315/14 192/301/14 191/316/14 -f 178/300/15 193/299/15 192/301/15 -f 181/318/12 191/396/12 190/319/12 -f 194/320/16 196/324/16 195/321/16 -f 194/320/17 197/325/17 198/323/17 -f 197/325/15 199/397/15 200/326/15 -f 195/321/18 202/328/18 201/327/18 -f 202/328/12 204/398/12 203/329/12 -f 206/330/16 208/334/16 207/331/16 -f 206/330/17 209/335/17 210/333/17 -f 209/335/15 211/399/15 212/336/15 -f 207/331/18 214/338/18 213/337/18 -f 214/338/12 216/400/12 215/339/12 -f 169/287/11 167/288/11 166/340/11 -f 185/309/11 183/310/11 182/342/11 -f 180/315/11 181/401/11 179/344/11 -f 163/293/11 164/402/11 162/345/11 -f 218/346/15 217/403/15 219/347/15 -f 220/348/19 219/347/19 226/349/19 -f 221/351/12 222/404/12 224/352/12 -f 223/353/20 224/352/20 227/354/20 -f 226/349/11 225/355/11 227/354/11 -f 230/356/15 229/405/15 231/357/15 -f 232/358/19 231/357/19 238/359/19 -f 233/361/12 234/406/12 236/362/12 -f 235/363/20 236/362/20 239/364/20 -f 238/359/11 237/365/11 239/364/11 +f 107/225/17 106/226/17 105/227/17 +f 112/228/18 127/229/18 110/230/18 +f 107/225/19 116/231/19 108/232/19 +f 106/226/20 114/233/20 105/227/20 +f 108/232/21 115/234/21 106/226/21 +f 105/227/18 113/235/18 107/225/18 +f 111/236/22 114/237/22 109/238/22 +f 109/238/22 115/234/22 110/239/22 +f 110/239/22 116/240/22 112/241/22 +f 112/241/22 113/242/22 111/236/22 +f 118/243/21 119/244/21 117/245/21 +f 121/246/18 123/247/18 122/248/18 +f 127/229/22 125/249/22 126/250/22 +f 119/244/22 122/248/22 117/245/22 +f 120/251/19 121/246/19 119/244/19 +f 117/245/20 123/252/20 118/253/20 +f 109/254/21 125/249/21 111/255/21 +f 111/256/20 128/257/20 112/258/20 +f 110/259/19 126/250/19 109/260/19 +f 130/261/21 131/262/21 129/263/21 +f 133/264/18 135/265/18 134/266/18 +f 131/262/22 134/266/22 129/263/22 +f 132/267/19 133/264/19 131/262/19 +f 129/263/20 135/268/20 130/269/20 +f 138/270/18 139/271/18 137/272/18 +f 141/273/21 143/274/21 142/275/21 +f 139/271/22 142/275/22 137/272/22 +f 140/276/20 141/273/20 139/271/20 +f 137/272/19 143/277/19 138/278/19 +f 146/279/18 147/280/18 145/281/18 +f 149/282/21 151/283/21 150/284/21 +f 147/280/22 150/284/22 145/281/22 +f 148/285/20 149/282/20 147/280/20 +f 145/281/19 151/286/19 146/287/19 +f 154/288/19 155/289/19 153/290/19 +f 157/291/20 159/292/20 158/293/20 +f 155/289/22 158/293/22 153/290/22 +f 156/294/18 157/291/18 155/289/18 +f 153/290/21 159/295/21 154/296/21 +f 162/297/19 163/298/19 161/299/19 +f 165/300/20 167/301/20 166/302/20 +f 163/298/22 166/302/22 161/299/22 +f 164/303/18 165/300/18 163/298/18 +f 161/299/21 167/304/21 162/305/21 +f 170/306/20 171/307/20 169/308/20 +f 173/309/19 175/310/19 174/311/19 +f 171/307/22 174/311/22 169/308/22 +f 172/312/21 173/309/21 171/307/21 +f 169/308/18 175/313/18 170/314/18 +f 178/315/20 179/316/20 177/317/20 +f 181/318/19 183/319/19 182/320/19 +f 179/316/22 182/320/22 177/317/22 +f 180/321/21 181/318/21 179/316/21 +f 177/317/18 183/322/18 178/323/18 +f 186/324/19 201/325/19 185/326/19 +f 200/327/22 198/328/22 199/329/22 +f 196/330/22 194/331/22 195/332/22 +f 192/333/19 197/334/19 193/335/19 +f 191/336/20 195/337/20 190/338/20 +f 193/335/21 196/330/21 191/336/21 +f 190/339/18 194/340/18 192/333/18 +f 187/341/20 199/342/20 188/343/20 +f 185/326/21 200/327/21 187/341/21 +f 188/344/18 198/345/18 186/324/18 +f 203/346/19 217/347/19 202/348/19 +f 216/349/22 214/350/22 215/351/22 +f 212/352/22 210/353/22 211/354/22 +f 208/355/19 213/356/19 209/357/19 +f 207/358/20 211/359/20 206/360/20 +f 209/357/21 212/352/21 207/358/21 +f 206/361/18 210/362/18 208/355/18 +f 204/363/20 215/364/20 205/365/20 +f 202/348/21 216/349/21 204/363/21 +f 205/366/18 214/367/18 203/346/18 +f 218/368/22 219/369/22 189/370/22 +f 218/368/23 222/371/23 220/372/23 +f 221/373/21 224/374/21 222/371/21 +f 219/369/24 225/375/24 189/370/24 +f 226/376/18 227/377/18 225/375/18 +f 230/378/22 231/379/22 229/380/22 +f 230/378/23 234/381/23 232/382/23 +f 233/383/21 236/384/21 234/381/21 +f 231/379/24 237/385/24 229/380/24 +f 238/386/18 239/387/18 237/385/18 +f 193/335/17 190/388/17 192/389/17 +f 209/357/17 206/390/17 208/391/17 +f 204/363/17 203/392/17 202/348/17 +f 187/341/17 186/393/17 185/326/17 +f 242/394/21 243/395/21 244/396/21 +f 244/396/25 250/397/25 252/398/25 +f 245/399/18 248/400/18 247/401/18 +f 247/401/26 251/402/26 249/403/26 +f 250/397/17 251/402/17 252/398/17 +f 254/404/21 255/405/21 256/406/21 +f 256/406/25 262/407/25 264/408/25 +f 257/409/18 260/410/18 259/411/18 +f 259/411/26 263/412/26 261/413/26 +f 262/407/17 263/412/17 264/408/17 +f 107/225/17 108/232/17 106/226/17 +f 112/228/18 128/257/18 127/229/18 +f 107/225/19 113/414/19 116/231/19 +f 106/226/20 115/415/20 114/233/20 +f 108/232/21 116/240/21 115/234/21 +f 105/227/18 114/416/18 113/235/18 +f 111/236/22 113/242/22 114/237/22 +f 109/238/22 114/237/22 115/234/22 +f 110/239/22 115/234/22 116/240/22 +f 112/241/22 116/240/22 113/242/22 +f 118/243/21 120/417/21 119/244/21 +f 121/246/18 124/418/18 123/247/18 +f 127/229/22 128/257/22 125/249/22 +f 119/244/22 121/246/22 122/248/22 +f 120/251/19 124/419/19 121/246/19 +f 117/245/20 122/248/20 123/252/20 +f 109/254/21 126/250/21 125/249/21 +f 111/256/20 125/249/20 128/257/20 +f 110/259/19 127/229/19 126/250/19 +f 130/261/21 132/420/21 131/262/21 +f 133/264/18 136/421/18 135/265/18 +f 131/262/22 133/264/22 134/266/22 +f 132/267/19 136/422/19 133/264/19 +f 129/263/20 134/266/20 135/268/20 +f 138/270/18 140/423/18 139/271/18 +f 141/273/21 144/424/21 143/274/21 +f 139/271/22 141/273/22 142/275/22 +f 140/276/20 144/425/20 141/273/20 +f 137/272/19 142/275/19 143/277/19 +f 146/279/18 148/426/18 147/280/18 +f 149/282/21 152/427/21 151/283/21 +f 147/280/22 149/282/22 150/284/22 +f 148/285/20 152/428/20 149/282/20 +f 145/281/19 150/284/19 151/286/19 +f 154/288/19 156/429/19 155/289/19 +f 157/291/20 160/430/20 159/292/20 +f 155/289/22 157/291/22 158/293/22 +f 156/294/18 160/431/18 157/291/18 +f 153/290/21 158/293/21 159/295/21 +f 162/297/19 164/432/19 163/298/19 +f 165/300/20 168/433/20 167/301/20 +f 163/298/22 165/300/22 166/302/22 +f 164/303/18 168/434/18 165/300/18 +f 161/299/21 166/302/21 167/304/21 +f 170/306/20 172/435/20 171/307/20 +f 173/309/19 176/436/19 175/310/19 +f 171/307/22 173/309/22 174/311/22 +f 172/312/21 176/437/21 173/309/21 +f 169/308/18 174/311/18 175/313/18 +f 178/315/20 180/438/20 179/316/20 +f 181/318/19 184/439/19 183/319/19 +f 179/316/22 181/318/22 182/320/22 +f 180/321/21 184/440/21 181/318/21 +f 177/317/18 182/320/18 183/322/18 +f 186/324/19 198/345/19 201/325/19 +f 200/327/22 201/325/22 198/328/22 +f 196/330/22 197/334/22 194/331/22 +f 192/333/19 194/340/19 197/334/19 +f 191/336/20 196/330/20 195/337/20 +f 193/335/21 197/334/21 196/330/21 +f 190/339/18 195/441/18 194/340/18 +f 187/341/20 200/327/20 199/342/20 +f 185/326/21 201/325/21 200/327/21 +f 188/344/18 199/442/18 198/345/18 +f 203/346/19 214/367/19 217/347/19 +f 216/349/22 217/347/22 214/350/22 +f 212/352/22 213/356/22 210/353/22 +f 208/355/19 210/362/19 213/356/19 +f 207/358/20 212/352/20 211/359/20 +f 209/357/21 213/356/21 212/352/21 +f 206/361/18 211/443/18 210/362/18 +f 204/363/20 216/349/20 215/364/20 +f 202/348/21 217/347/21 216/349/21 +f 205/366/18 215/444/18 214/367/18 +f 218/368/22 220/372/22 219/369/22 +f 218/368/23 221/373/23 222/371/23 +f 221/373/21 223/445/21 224/374/21 +f 219/369/24 226/376/24 225/375/24 +f 226/376/18 228/446/18 227/377/18 +f 230/378/22 232/382/22 231/379/22 +f 230/378/23 233/383/23 234/381/23 +f 233/383/21 235/447/21 236/384/21 +f 231/379/24 238/386/24 237/385/24 +f 238/386/18 240/448/18 239/387/18 +f 193/335/17 191/336/17 190/388/17 +f 209/357/17 207/358/17 206/390/17 +f 204/363/17 205/449/17 203/392/17 +f 187/341/17 188/450/17 186/393/17 +f 242/394/21 241/451/21 243/395/21 +f 244/396/25 243/395/25 250/397/25 +f 245/399/18 246/452/18 248/400/18 +f 247/401/26 248/400/26 251/402/26 +f 250/397/17 249/403/17 251/402/17 +f 254/404/21 253/453/21 255/405/21 +f 256/406/25 255/405/25 262/407/25 +f 257/409/18 258/454/18 260/410/18 +f 259/411/26 260/410/26 263/412/26 +f 262/407/17 261/413/17 263/412/17 diff --git a/src/main/resources/assets/hbm/models/machines/fensu2.obj b/src/main/resources/assets/hbm/models/machines/fensu2.obj new file mode 100644 index 000000000..2d6ace3c3 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/fensu2.obj @@ -0,0 +1,6193 @@ +# Blender v2.79 (sub 0) OBJ File: 'fensu2.blend' +# www.blender.org +o Wheel +v 0.500000 5.500000 -4.499998 +v 0.500000 6.377907 -4.413532 +v 0.500000 7.222075 -4.157456 +v 0.500000 8.000065 -3.741611 +v 0.500000 8.681980 -3.181979 +v 0.500000 9.241613 -2.500065 +v 0.500000 9.657457 -1.722075 +v 0.500000 9.913532 -0.877905 +v 0.500000 10.000000 0.000001 +v 0.500000 9.913532 0.877907 +v 0.500000 9.657457 1.722075 +v 0.500000 9.241613 2.500067 +v 0.500000 8.681980 3.181981 +v 0.500000 8.000065 3.741614 +v 0.500000 7.222075 4.157459 +v 0.500000 6.377905 4.413535 +v 0.500000 5.499998 4.500000 +v 0.500000 4.622091 4.413535 +v 0.500000 3.777922 4.157458 +v 0.500000 2.999931 3.741612 +v 0.500000 2.318017 3.181979 +v 0.500000 1.758385 2.500064 +v 0.500000 1.342541 1.722074 +v 0.500000 1.086465 0.877904 +v 0.500000 1.000000 -0.000003 +v 0.500000 1.086467 -0.877910 +v 0.500000 1.342544 -1.722078 +v 0.500000 1.758389 -2.500070 +v 0.500000 2.318023 -3.181983 +v 0.500000 2.999939 -3.741615 +v 0.500000 3.777930 -4.157459 +v 0.500000 4.622100 -4.413533 +v -0.500000 5.500000 -4.499998 +v -0.500000 6.377907 -4.413532 +v -0.500000 7.222075 -4.157456 +v -0.500000 8.000065 -3.741611 +v -0.500000 8.681980 -3.181979 +v -0.500000 9.241613 -2.500065 +v -0.500000 9.657457 -1.722075 +v -0.500000 9.913532 -0.877905 +v -0.500000 10.000000 0.000001 +v -0.500000 9.913532 0.877907 +v -0.500000 9.657457 1.722075 +v -0.500000 9.241613 2.500067 +v -0.500000 8.681980 3.181981 +v -0.500000 8.000065 3.741614 +v -0.500000 7.222075 4.157459 +v -0.500000 6.377905 4.413535 +v -0.500000 5.499998 4.500000 +v -0.500000 4.622091 4.413535 +v -0.500000 3.777922 4.157458 +v -0.500000 2.999931 3.741612 +v -0.500000 2.318017 3.181979 +v -0.500000 1.758385 2.500064 +v -0.500000 1.342541 1.722074 +v -0.500000 1.086465 0.877904 +v -0.500000 1.000000 -0.000003 +v -0.500000 1.086467 -0.877910 +v -0.500000 1.342544 -1.722078 +v -0.500000 1.758389 -2.500070 +v -0.500000 2.318023 -3.181983 +v -0.500000 2.999939 -3.741615 +v -0.500000 3.777930 -4.157459 +v -0.500000 4.622100 -4.413533 +v 0.750000 5.500000 -3.749999 +v 0.750000 6.231590 -3.677944 +v 0.750000 6.935064 -3.464547 +v 0.750000 7.583389 -3.118011 +v 0.750000 8.151649 -2.651649 +v 0.750000 8.618011 -2.083387 +v 0.750000 8.964550 -1.435062 +v 0.750000 9.177946 -0.731588 +v 0.750000 9.250000 0.000000 +v 0.750000 9.177946 0.731588 +v 0.750000 8.964550 1.435062 +v 0.750000 8.618011 2.083388 +v 0.750000 8.151649 2.651650 +v 0.750000 7.583385 3.118011 +v 0.750000 6.935061 3.464549 +v 0.750000 6.231590 3.677945 +v 0.750000 5.500000 3.750000 +v 0.750000 4.768408 3.677945 +v 0.750000 4.064937 3.464548 +v 0.750000 3.416611 3.118011 +v 0.750000 2.848347 2.651649 +v 0.750000 2.381987 2.083386 +v 0.750000 2.035452 1.435061 +v 0.750000 1.822056 0.731586 +v 0.750000 1.750000 -0.000003 +v 0.750000 1.822056 -0.731592 +v 0.750000 2.035452 -1.435066 +v 0.750000 2.381993 -2.083391 +v 0.750000 2.848354 -2.651653 +v 0.750000 3.416615 -3.118013 +v 0.750000 4.064943 -3.464550 +v 0.750000 4.768415 -3.677945 +v 1.250000 5.500000 -3.749999 +v 1.250000 6.231590 -3.677944 +v 1.250000 6.935064 -3.464547 +v 1.250000 7.583389 -3.118011 +v 1.250000 8.151649 -2.651649 +v 1.250000 8.618011 -2.083387 +v 1.250000 8.964550 -1.435062 +v 1.250000 9.177946 -0.731588 +v 1.250000 9.250000 0.000000 +v 1.250000 9.177946 0.731588 +v 1.250000 8.964550 1.435062 +v 1.250000 8.618011 2.083388 +v 1.250000 8.151649 2.651650 +v 1.250000 7.583385 3.118011 +v 1.250000 6.935061 3.464549 +v 1.250000 6.231590 3.677945 +v 1.250000 5.500000 3.750000 +v 1.250000 4.768408 3.677945 +v 1.250000 4.064937 3.464548 +v 1.250000 3.416611 3.118011 +v 1.250000 2.848347 2.651649 +v 1.250000 2.381987 2.083386 +v 1.250000 2.035452 1.435061 +v 1.250000 1.822056 0.731586 +v 1.250000 1.750000 -0.000003 +v 1.250000 1.822056 -0.731592 +v 1.250000 2.035452 -1.435066 +v 1.250000 2.381993 -2.083391 +v 1.250000 2.848354 -2.651653 +v 1.250000 3.416615 -3.118013 +v 1.250000 4.064943 -3.464550 +v 1.250000 4.768415 -3.677945 +v 1.500000 5.500000 -1.000000 +v 1.500000 5.695091 -0.980785 +v 1.500000 5.882685 -0.923880 +v 1.500000 6.055571 -0.831470 +v 1.500000 6.207108 -0.707108 +v 1.500000 6.331470 -0.555571 +v 1.500000 6.423880 -0.382684 +v 1.500000 6.480785 -0.195091 +v 1.500000 6.500000 -0.000001 +v 1.500000 6.480785 0.195089 +v 1.500000 6.423880 0.382683 +v 1.500000 6.331470 0.555570 +v 1.500000 6.207108 0.707107 +v 1.500000 6.055571 0.831469 +v 1.500000 5.882683 0.923879 +v 1.500000 5.695091 0.980784 +v 1.500000 5.500000 0.999999 +v 1.500000 5.304909 0.980784 +v 1.500000 5.117317 0.923879 +v 1.500000 4.944429 0.831469 +v 1.500000 4.792892 0.707106 +v 1.500000 4.668530 0.555569 +v 1.500000 4.576120 0.382682 +v 1.500000 4.519215 0.195089 +v 1.500000 4.500000 -0.000002 +v 1.500000 4.519215 -0.195092 +v 1.500000 4.576120 -0.382685 +v 1.500000 4.668531 -0.555572 +v 1.500000 4.792894 -0.707108 +v 1.500000 4.944431 -0.831470 +v 1.500000 5.117319 -0.923881 +v 1.500000 5.304911 -0.980786 +v -0.750000 5.500000 -3.749999 +v -0.750000 6.231590 -3.677944 +v -0.750000 6.935064 -3.464547 +v -0.750000 7.583389 -3.118011 +v -0.750000 8.151649 -2.651649 +v -0.750000 8.618011 -2.083387 +v -0.750000 8.964550 -1.435062 +v -0.750000 9.177946 -0.731588 +v -0.750000 9.250000 0.000000 +v -0.750000 9.177946 0.731588 +v -0.750000 8.964550 1.435062 +v -0.750000 8.618011 2.083388 +v -0.750000 8.151649 2.651650 +v -0.750000 7.583385 3.118011 +v -0.750000 6.935061 3.464549 +v -0.750000 6.231590 3.677945 +v -0.750000 5.500000 3.750000 +v -0.750000 4.768408 3.677945 +v -0.750000 4.064937 3.464548 +v -0.750000 3.416611 3.118011 +v -0.750000 2.848347 2.651649 +v -0.750000 2.381987 2.083386 +v -0.750000 2.035452 1.435061 +v -0.750000 1.822056 0.731586 +v -0.750000 1.750000 -0.000003 +v -0.750000 1.822056 -0.731592 +v -0.750000 2.035452 -1.435066 +v -0.750000 2.381993 -2.083391 +v -0.750000 2.848354 -2.651653 +v -0.750000 3.416615 -3.118013 +v -0.750000 4.064943 -3.464550 +v -0.750000 4.768415 -3.677945 +v -1.250000 5.500000 -3.749999 +v -1.250000 6.231590 -3.677944 +v -1.250000 6.935064 -3.464547 +v -1.250000 7.583389 -3.118011 +v -1.250000 8.151649 -2.651649 +v -1.250000 8.618011 -2.083387 +v -1.250000 8.964550 -1.435062 +v -1.250000 9.177946 -0.731588 +v -1.250000 9.250000 0.000000 +v -1.250000 9.177946 0.731588 +v -1.250000 8.964550 1.435062 +v -1.250000 8.618011 2.083388 +v -1.250000 8.151649 2.651650 +v -1.250000 7.583385 3.118011 +v -1.250000 6.935061 3.464549 +v -1.250000 6.231590 3.677945 +v -1.250000 5.500000 3.750000 +v -1.250000 4.768408 3.677945 +v -1.250000 4.064937 3.464548 +v -1.250000 3.416611 3.118011 +v -1.250000 2.848347 2.651649 +v -1.250000 2.381987 2.083386 +v -1.250000 2.035452 1.435061 +v -1.250000 1.822056 0.731586 +v -1.250000 1.750000 -0.000003 +v -1.250000 1.822056 -0.731592 +v -1.250000 2.035452 -1.435066 +v -1.250000 2.381993 -2.083391 +v -1.250000 2.848354 -2.651653 +v -1.250000 3.416615 -3.118013 +v -1.250000 4.064943 -3.464550 +v -1.250000 4.768415 -3.677945 +v -1.500000 5.500000 -1.000000 +v -1.500000 5.695091 -0.980785 +v -1.500000 5.882685 -0.923880 +v -1.500000 6.055571 -0.831470 +v -1.500000 6.207108 -0.707108 +v -1.500000 6.331470 -0.555571 +v -1.500000 6.423880 -0.382684 +v -1.500000 6.480785 -0.195091 +v -1.500000 6.500000 -0.000001 +v -1.500000 6.480785 0.195089 +v -1.500000 6.423880 0.382683 +v -1.500000 6.331470 0.555570 +v -1.500000 6.207108 0.707107 +v -1.500000 6.055571 0.831469 +v -1.500000 5.882683 0.923879 +v -1.500000 5.695091 0.980784 +v -1.500000 5.500000 0.999999 +v -1.500000 5.304909 0.980784 +v -1.500000 5.117317 0.923879 +v -1.500000 4.944429 0.831469 +v -1.500000 4.792892 0.707106 +v -1.500000 4.668530 0.555569 +v -1.500000 4.576120 0.382682 +v -1.500000 4.519215 0.195089 +v -1.500000 4.500000 -0.000002 +v -1.500000 4.519215 -0.195092 +v -1.500000 4.576120 -0.382685 +v -1.500000 4.668531 -0.555572 +v -1.500000 4.792894 -0.707108 +v -1.500000 4.944431 -0.831470 +v -1.500000 5.117319 -0.923881 +v -1.500000 5.304911 -0.980786 +v 0.250000 5.500000 -4.499998 +v 0.250000 6.377907 -4.413532 +v 0.250000 7.222075 -4.157456 +v 0.250000 8.000065 -3.741611 +v 0.250000 8.681980 -3.181979 +v 0.250000 9.241613 -2.500065 +v 0.250000 9.657457 -1.722075 +v 0.250000 9.913532 -0.877905 +v 0.250000 10.000000 0.000001 +v 0.250000 9.913532 0.877907 +v 0.250000 9.657457 1.722075 +v 0.250000 9.241613 2.500067 +v 0.250000 8.681980 3.181981 +v 0.250000 8.000065 3.741614 +v 0.250000 7.222075 4.157459 +v 0.250000 6.377905 4.413535 +v 0.250000 5.499998 4.500000 +v 0.250000 4.622091 4.413535 +v 0.250000 3.777922 4.157458 +v 0.250000 2.999931 3.741612 +v 0.250000 2.318017 3.181979 +v 0.250000 1.758385 2.500064 +v 0.250000 1.342541 1.722074 +v 0.250000 1.086465 0.877904 +v 0.250000 1.000000 -0.000003 +v 0.250000 1.086467 -0.877910 +v 0.250000 1.342544 -1.722078 +v 0.250000 1.758389 -2.500070 +v 0.250000 2.318023 -3.181983 +v 0.250000 2.999939 -3.741615 +v 0.250000 3.777930 -4.157459 +v 0.250000 4.622100 -4.413533 +v -0.250000 5.500000 -4.499998 +v -0.250000 6.377907 -4.413532 +v -0.250000 7.222075 -4.157456 +v -0.250000 8.000065 -3.741611 +v -0.250000 8.681980 -3.181979 +v -0.250000 9.241613 -2.500065 +v -0.250000 9.657457 -1.722075 +v -0.250000 9.913532 -0.877905 +v -0.250000 10.000000 0.000001 +v -0.250000 9.913532 0.877907 +v -0.250000 9.657457 1.722075 +v -0.250000 9.241613 2.500067 +v -0.250000 8.681980 3.181981 +v -0.250000 8.000065 3.741614 +v -0.250000 7.222075 4.157459 +v -0.250000 6.377905 4.413535 +v -0.250000 5.499998 4.500000 +v -0.250000 4.622091 4.413535 +v -0.250000 3.777922 4.157458 +v -0.250000 2.999931 3.741612 +v -0.250000 2.318017 3.181979 +v -0.250000 1.758385 2.500064 +v -0.250000 1.342541 1.722074 +v -0.250000 1.086465 0.877904 +v -0.250000 1.000000 -0.000003 +v -0.250000 1.086467 -0.877910 +v -0.250000 1.342544 -1.722078 +v -0.250000 1.758389 -2.500070 +v -0.250000 2.318023 -3.181983 +v -0.250000 2.999939 -3.741615 +v -0.250000 3.777930 -4.157459 +v -0.250000 4.622100 -4.413533 +v 0.249999 5.500000 -3.999999 +v 0.249999 6.280361 -3.923140 +v 0.249999 7.030735 -3.695517 +v 0.249999 7.722279 -3.325878 +v 0.249999 8.328426 -2.828426 +v 0.249999 8.825878 -2.222281 +v 0.249999 9.195518 -1.530733 +v 0.249999 9.423141 -0.780361 +v 0.249999 9.500000 0.000000 +v 0.249999 9.423141 0.780361 +v 0.249999 9.195518 1.530734 +v 0.249999 8.825878 2.222281 +v 0.249999 8.328426 2.828427 +v 0.249999 7.722279 3.325879 +v 0.249999 7.030731 3.695519 +v 0.249999 6.280361 3.923141 +v 0.249999 5.500000 4.000000 +v 0.249999 4.719635 3.923141 +v 0.249999 3.969265 3.695518 +v 0.249999 3.277718 3.325878 +v 0.249999 2.671570 2.828426 +v 0.249999 2.174118 2.222279 +v 0.249999 1.804482 1.530731 +v 0.249999 1.576859 0.780358 +v 0.249999 1.500000 -0.000003 +v 0.249999 1.576859 -0.780365 +v 0.249999 1.804485 -1.530737 +v 0.249999 2.174122 -2.222284 +v 0.249999 2.671577 -2.828430 +v 0.249999 3.277721 -3.325880 +v 0.249999 3.969273 -3.695519 +v 0.249999 4.719643 -3.923141 +v -0.250001 5.500000 -3.999999 +v -0.250001 6.280361 -3.923140 +v -0.250001 7.030735 -3.695517 +v -0.250001 7.722279 -3.325878 +v -0.250001 8.328426 -2.828426 +v -0.250001 8.825878 -2.222281 +v -0.250001 9.195518 -1.530733 +v -0.250001 9.423141 -0.780361 +v -0.250001 9.500000 0.000000 +v -0.250001 9.423141 0.780361 +v -0.250001 9.195518 1.530734 +v -0.250001 8.825878 2.222281 +v -0.250001 8.328426 2.828427 +v -0.250001 7.722279 3.325879 +v -0.250001 7.030731 3.695519 +v -0.250001 6.280361 3.923141 +v -0.250001 5.500000 4.000000 +v -0.250001 4.719635 3.923141 +v -0.250001 3.969265 3.695518 +v -0.250001 3.277718 3.325878 +v -0.250001 2.671570 2.828426 +v -0.250001 2.174118 2.222279 +v -0.250001 1.804482 1.530731 +v -0.250001 1.576859 0.780358 +v -0.250001 1.500000 -0.000003 +v -0.250001 1.576859 -0.780365 +v -0.250001 1.804485 -1.530737 +v -0.250001 2.174122 -2.222284 +v -0.250001 2.671577 -2.828430 +v -0.250001 3.277721 -3.325880 +v -0.250001 3.969273 -3.695519 +v -0.250001 4.719643 -3.923141 +v -0.500000 5.750001 3.625001 +v -0.500000 5.250002 3.625001 +v -0.500000 5.750001 4.375002 +v -0.500000 5.250002 4.375002 +v -1.000000 5.750001 3.625001 +v -1.000000 5.250001 3.625001 +v -1.000000 5.750001 4.125002 +v -1.000000 5.250001 4.125002 +v -1.000000 5.750001 -4.125000 +v -1.000000 5.250001 -4.125000 +v -1.000000 5.750001 -3.624999 +v -1.000000 5.250001 -3.624999 +v -0.500000 5.750000 -4.375000 +v -0.500000 5.250001 -4.375000 +v -0.500000 5.750000 -3.624999 +v -0.500000 5.250001 -3.624999 +v -0.500000 1.875001 0.250001 +v -0.500000 1.875001 -0.249998 +v -0.500000 1.125000 0.250001 +v -0.500000 1.125000 -0.249998 +v -1.000000 1.875001 0.250001 +v -1.000000 1.875001 -0.249999 +v -1.000000 1.375000 0.250001 +v -1.000000 1.375000 -0.249999 +v -1.000000 9.625002 0.250001 +v -1.000000 9.625002 -0.249999 +v -1.000000 9.125001 0.250001 +v -1.000000 9.125001 -0.249999 +v -0.500000 9.875002 0.250000 +v -0.500000 9.875002 -0.249999 +v -0.500000 9.125001 0.250000 +v -0.500000 9.125001 -0.249999 +v -0.250000 9.937502 0.062502 +v -0.250000 9.937502 -0.062498 +v -0.250000 9.812502 0.062502 +v -0.250000 9.812502 -0.062498 +v 0.250000 9.937502 0.062502 +v 0.250000 9.937502 -0.062498 +v 0.250000 9.812502 0.062502 +v 0.250000 9.812502 -0.062498 +v -0.250000 1.062499 -0.062500 +v -0.250000 1.062499 0.062500 +v -0.250000 1.187499 -0.062500 +v -0.250000 1.187499 0.062500 +v 0.250000 1.062499 -0.062500 +v 0.250000 1.062499 0.062500 +v 0.250000 1.187499 -0.062500 +v 0.250000 1.187499 0.062500 +v -0.250000 5.437500 4.437502 +v -0.250000 5.562500 4.437502 +v -0.250000 5.437500 4.312502 +v -0.250000 5.562500 4.312502 +v 0.250000 5.437500 4.437502 +v 0.250000 5.562500 4.437502 +v 0.250000 5.437500 4.312502 +v 0.250000 5.562500 4.312502 +v -0.250000 5.562502 -4.437500 +v -0.250000 5.437502 -4.437500 +v -0.250000 5.562502 -4.312500 +v -0.250000 5.437502 -4.312500 +v 0.250000 5.562502 -4.437500 +v 0.250000 5.437502 -4.437500 +v 0.250000 5.562502 -4.312500 +v 0.250000 5.437502 -4.312500 +v -0.250000 8.593593 3.181983 +v -0.250000 8.681981 3.093595 +v -0.250000 8.505204 3.093595 +v -0.250000 8.593593 3.005206 +v 0.250000 8.593593 3.181983 +v 0.250000 8.681981 3.093595 +v 0.250000 8.505204 3.093595 +v 0.250000 8.593593 3.005206 +v -0.250000 2.406408 -3.181982 +v -0.250000 2.318020 -3.093593 +v -0.250000 2.494797 -3.093593 +v -0.250000 2.406408 -3.005205 +v 0.250000 2.406408 -3.181982 +v 0.250000 2.318020 -3.093593 +v 0.250000 2.494797 -3.093593 +v 0.250000 2.406408 -3.005205 +v -0.250000 2.318018 3.093593 +v -0.250000 2.406407 3.181982 +v -0.250000 2.406407 3.005205 +v -0.250000 2.494795 3.093593 +v 0.250000 2.318018 3.093593 +v 0.250000 2.406407 3.181982 +v 0.250000 2.406407 3.005205 +v 0.250000 2.494795 3.093593 +v -0.250000 8.681983 -3.093591 +v -0.250000 8.593595 -3.181980 +v -0.250000 8.593595 -3.005203 +v -0.250000 8.505206 -3.093591 +v 0.250000 8.681983 -3.093591 +v 0.250000 8.593595 -3.181980 +v 0.250000 8.593595 -3.005203 +v 0.250000 8.505206 -3.093591 +v -0.250000 7.140415 4.123636 +v -0.250000 7.255900 4.075800 +v -0.250000 7.092579 4.008151 +v -0.250000 7.208065 3.960315 +v 0.250000 7.140415 4.123636 +v 0.250000 7.255900 4.075800 +v 0.250000 7.092579 4.008151 +v 0.250000 7.208065 3.960315 +v -0.250000 3.859586 -4.123634 +v -0.250000 3.744101 -4.075799 +v -0.250000 3.907422 -4.008149 +v -0.250000 3.791937 -3.960313 +v 0.250000 3.859586 -4.123634 +v 0.250000 3.744101 -4.075799 +v 0.250000 3.907422 -4.008149 +v 0.250000 3.791937 -3.960313 +v -0.250000 1.376366 1.640416 +v -0.250000 1.424201 1.755901 +v -0.250000 1.491850 1.592580 +v -0.250000 1.539686 1.708065 +v 0.250000 1.376366 1.640416 +v 0.250000 1.424201 1.755901 +v 0.250000 1.491850 1.592580 +v 0.250000 1.539686 1.708065 +v -0.250000 9.623635 -1.640413 +v -0.250000 9.575800 -1.755898 +v -0.250000 9.508150 -1.592578 +v -0.250000 9.460315 -1.708063 +v 0.250000 9.623635 -1.640413 +v 0.250000 9.575800 -1.755898 +v 0.250000 9.508150 -1.592578 +v 0.250000 9.460315 -1.708063 +v -0.250000 3.744098 4.075799 +v -0.250000 3.859583 4.123635 +v -0.250000 3.791934 3.960314 +v -0.250000 3.907419 4.008150 +v 0.250000 3.744098 4.075799 +v 0.250000 3.859583 4.123635 +v 0.250000 3.791934 3.960314 +v 0.250000 3.907419 4.008150 +v -0.250000 7.255903 -4.075797 +v -0.250000 7.140418 -4.123633 +v -0.250000 7.208067 -3.960312 +v -0.250000 7.092582 -4.008147 +v 0.250000 7.255903 -4.075797 +v 0.250000 7.140418 -4.123633 +v 0.250000 7.208067 -3.960312 +v 0.250000 7.092582 -4.008147 +v -0.250000 1.424202 -1.755901 +v -0.250000 1.376367 -1.640416 +v -0.250000 1.539687 -1.708066 +v -0.250000 1.491852 -1.592580 +v 0.250000 1.424202 -1.755901 +v 0.250000 1.376367 -1.640416 +v 0.250000 1.539687 -1.708066 +v 0.250000 1.491852 -1.592580 +v -0.250000 9.575798 1.755903 +v -0.250000 9.623634 1.640418 +v -0.250000 9.460314 1.708067 +v -0.250000 9.508148 1.592582 +v 0.250000 9.575798 1.755903 +v 0.250000 9.623634 1.640418 +v 0.250000 9.460314 1.708067 +v 0.250000 9.508148 1.592582 +v -0.500000 3.113516 2.740040 +v -0.500000 2.759963 2.386487 +v -0.500000 2.583185 3.270370 +v -0.500000 2.229632 2.916818 +v -1.000000 3.113516 2.740040 +v -1.000000 2.759962 2.386486 +v -1.000000 2.759962 3.093594 +v -1.000000 2.406408 2.740040 +v -1.000000 8.593594 -2.740038 +v -1.000000 8.240041 -3.093591 +v -1.000000 8.240040 -2.386484 +v -1.000000 7.886487 -2.740037 +v -0.500000 8.770370 -2.916816 +v -0.500000 8.416818 -3.270368 +v -0.500000 8.240040 -2.386485 +v -0.500000 7.886487 -2.740037 +v -0.500000 2.759963 -2.386485 +v -0.500000 3.113515 -2.740037 +v -0.500000 2.229632 -2.916816 +v -0.500000 2.583184 -3.270368 +v -1.000000 2.759963 -2.386485 +v -1.000000 3.113516 -2.740038 +v -1.000000 2.406409 -2.740039 +v -1.000000 2.759962 -3.093592 +v -1.000000 8.240040 3.093594 +v -1.000000 8.593594 2.740040 +v -1.000000 7.886486 2.740040 +v -1.000000 8.240040 2.386486 +v -0.500000 8.416818 3.270370 +v -0.500000 8.770370 2.916817 +v -0.500000 7.886487 2.740039 +v -0.500000 8.240040 2.386486 +v 0.500000 5.750001 -3.625001 +v 0.500000 5.250002 -3.625001 +v 0.500000 5.750001 -4.375002 +v 0.500000 5.250002 -4.375002 +v 1.000000 5.750001 -3.625001 +v 1.000000 5.250001 -3.625001 +v 1.000000 5.750001 -4.125002 +v 1.000000 5.250001 -4.125002 +v 1.000000 5.750001 4.125000 +v 1.000000 5.250001 4.125000 +v 1.000000 5.750001 3.624999 +v 1.000000 5.250001 3.624999 +v 0.500000 5.750000 4.375000 +v 0.500000 5.250001 4.375000 +v 0.500000 5.750000 3.624999 +v 0.500000 5.250001 3.624999 +v 0.500000 1.875001 -0.250001 +v 0.500000 1.875001 0.249998 +v 0.500000 1.125000 -0.250001 +v 0.500000 1.125000 0.249998 +v 1.000000 1.875001 -0.250001 +v 1.000000 1.875001 0.249999 +v 1.000000 1.375000 -0.250001 +v 1.000000 1.375000 0.249999 +v 1.000000 9.625002 -0.250001 +v 1.000000 9.625002 0.249999 +v 1.000000 9.125001 -0.250001 +v 1.000000 9.125001 0.249999 +v 0.500000 9.875002 -0.250000 +v 0.500000 9.875002 0.249999 +v 0.500000 9.125001 -0.250000 +v 0.500000 9.125001 0.249999 +v 0.500000 3.113516 -2.740040 +v 0.500000 2.759963 -2.386487 +v 0.500000 2.583185 -3.270370 +v 0.500000 2.229632 -2.916818 +v 1.000000 3.113516 -2.740040 +v 1.000000 2.759962 -2.386486 +v 1.000000 2.759962 -3.093594 +v 1.000000 2.406408 -2.740040 +v 1.000000 8.593594 2.740038 +v 1.000000 8.240041 3.093591 +v 1.000000 8.240040 2.386484 +v 1.000000 7.886487 2.740037 +v 0.500000 8.770370 2.916816 +v 0.500000 8.416818 3.270368 +v 0.500000 8.240040 2.386485 +v 0.500000 7.886487 2.740037 +v 0.500000 2.759963 2.386485 +v 0.500000 3.113515 2.740037 +v 0.500000 2.229632 2.916816 +v 0.500000 2.583184 3.270368 +v 1.000000 2.759963 2.386485 +v 1.000000 3.113516 2.740038 +v 1.000000 2.406409 2.740039 +v 1.000000 2.759962 3.093592 +v 1.000000 8.240040 -3.093594 +v 1.000000 8.593594 -2.740040 +v 1.000000 7.886486 -2.740040 +v 1.000000 8.240040 -2.386486 +v 0.499999 8.416818 -3.270370 +v 0.500000 8.770370 -2.916817 +v 0.500000 7.886487 -2.740039 +v 0.500000 8.240040 -2.386486 +vt 0.446429 0.611940 +vt 0.428571 0.641791 +vt 0.428571 0.611940 +vt 0.410714 0.641791 +vt 0.392857 0.611940 +vt 0.410714 0.611940 +vt 0.428571 0.671642 +vt 0.410714 0.671642 +vt 0.410714 0.641791 +vt 0.428571 0.611940 +vt 0.428571 0.641791 +vt 0.428571 0.671642 +vt 0.410714 0.671642 +vt 0.392857 0.611940 +vt 0.410714 0.611940 +vt 0.446429 0.611940 +vt 0.446429 0.611940 +vt 0.428571 0.641791 +vt 0.428571 0.611940 +vt 0.410714 0.641791 +vt 0.392857 0.611940 +vt 0.410714 0.611940 +vt 0.428571 0.671642 +vt 0.410714 0.671642 +vt 0.410714 0.641791 +vt 0.428571 0.611940 +vt 0.428571 0.641791 +vt 0.428571 0.671642 +vt 0.410714 0.671642 +vt 0.392857 0.611940 +vt 0.410714 0.611940 +vt 0.446429 0.611940 +vt 0.375000 0.582090 +vt 0.370536 0.611940 +vt 0.370536 0.582090 +vt 0.361607 0.611940 +vt 0.366071 0.582090 +vt 0.366071 0.611940 +vt 0.357143 0.582090 +vt 0.357143 0.611940 +vt 0.375000 0.582090 +vt 0.370536 0.611940 +vt 0.370536 0.582090 +vt 0.361607 0.611940 +vt 0.366071 0.582090 +vt 0.366071 0.611940 +vt 0.357143 0.582090 +vt 0.357143 0.611940 +vt 0.375000 0.582090 +vt 0.370536 0.611940 +vt 0.370536 0.582090 +vt 0.361607 0.611940 +vt 0.366071 0.582090 +vt 0.366071 0.611940 +vt 0.357143 0.582090 +vt 0.357143 0.611940 +vt 0.375000 0.582090 +vt 0.370536 0.611940 +vt 0.370536 0.582090 +vt 0.361607 0.611940 +vt 0.366071 0.582090 +vt 0.366071 0.611940 +vt 0.357143 0.582090 +vt 0.357143 0.611940 +vt 0.375000 0.582090 +vt 0.370536 0.611940 +vt 0.370536 0.582090 +vt 0.361607 0.611940 +vt 0.366071 0.582090 +vt 0.366071 0.611940 +vt 0.357143 0.582090 +vt 0.357143 0.611940 +vt 0.375000 0.582090 +vt 0.370536 0.611940 +vt 0.370536 0.582090 +vt 0.361607 0.611940 +vt 0.366071 0.582090 +vt 0.366071 0.611940 +vt 0.357143 0.582090 +vt 0.357143 0.611940 +vt 0.375000 0.582090 +vt 0.370536 0.611940 +vt 0.370536 0.582090 +vt 0.361607 0.611940 +vt 0.366071 0.582090 +vt 0.366071 0.611940 +vt 0.357143 0.582090 +vt 0.357143 0.611940 +vt 0.375000 0.582090 +vt 0.370536 0.611940 +vt 0.370536 0.582090 +vt 0.361607 0.611940 +vt 0.366071 0.582090 +vt 0.366071 0.611940 +vt 0.357143 0.582090 +vt 0.357143 0.611940 +vt 0.375000 0.582090 +vt 0.370536 0.611940 +vt 0.370536 0.582090 +vt 0.361607 0.611940 +vt 0.366071 0.582090 +vt 0.366071 0.611940 +vt 0.357143 0.582090 +vt 0.357143 0.611940 +vt 0.375000 0.582090 +vt 0.370536 0.611940 +vt 0.370536 0.582090 +vt 0.361607 0.611940 +vt 0.366071 0.582090 +vt 0.366071 0.611940 +vt 0.357143 0.582090 +vt 0.357143 0.611940 +vt 0.375000 0.582090 +vt 0.370536 0.611940 +vt 0.370536 0.582090 +vt 0.361607 0.611940 +vt 0.366071 0.582090 +vt 0.366071 0.611940 +vt 0.357143 0.582090 +vt 0.357143 0.611940 +vt 0.375000 0.582090 +vt 0.370536 0.611940 +vt 0.370536 0.582090 +vt 0.361607 0.611940 +vt 0.366071 0.582090 +vt 0.366071 0.611940 +vt 0.357143 0.582090 +vt 0.357143 0.611940 +vt 0.375000 0.582090 +vt 0.370536 0.611940 +vt 0.370536 0.582090 +vt 0.361607 0.611940 +vt 0.366071 0.582090 +vt 0.366071 0.611940 +vt 0.357143 0.582090 +vt 0.357143 0.611940 +vt 0.375000 0.582090 +vt 0.370536 0.611940 +vt 0.370536 0.582090 +vt 0.361607 0.611940 +vt 0.366071 0.582090 +vt 0.366071 0.611940 +vt 0.357143 0.582090 +vt 0.357143 0.611940 +vt 0.375000 0.582090 +vt 0.370536 0.611940 +vt 0.370536 0.582090 +vt 0.361607 0.611940 +vt 0.366071 0.582090 +vt 0.366071 0.611940 +vt 0.357143 0.582090 +vt 0.357143 0.611940 +vt 0.375000 0.582090 +vt 0.370536 0.611940 +vt 0.370536 0.582090 +vt 0.361607 0.611940 +vt 0.366071 0.582090 +vt 0.366071 0.611940 +vt 0.357143 0.582090 +vt 0.357143 0.611940 +vt 0.446429 0.611940 +vt 0.428571 0.641791 +vt 0.428571 0.611940 +vt 0.410714 0.641791 +vt 0.392857 0.611940 +vt 0.410714 0.611940 +vt 0.428571 0.671642 +vt 0.410714 0.671642 +vt 0.428571 0.641791 +vt 0.410714 0.611940 +vt 0.428571 0.611940 +vt 0.410714 0.671642 +vt 0.410714 0.641791 +vt 0.392857 0.611940 +vt 0.446429 0.611940 +vt 0.446429 0.611940 +vt 0.428571 0.641791 +vt 0.428571 0.611940 +vt 0.410714 0.641791 +vt 0.392857 0.611940 +vt 0.410714 0.611940 +vt 0.428571 0.671642 +vt 0.410714 0.671642 +vt 0.428571 0.641791 +vt 0.410714 0.611940 +vt 0.428571 0.611940 +vt 0.410714 0.641791 +vt 0.428571 0.671642 +vt 0.410714 0.671642 +vt 0.392857 0.611940 +vt 0.446429 0.611940 +vt 0.446429 0.611940 +vt 0.428571 0.641791 +vt 0.428571 0.611940 +vt 0.410714 0.641791 +vt 0.392857 0.611940 +vt 0.410714 0.611940 +vt 0.428571 0.671642 +vt 0.410714 0.671642 +vt 0.410714 0.641791 +vt 0.428571 0.611940 +vt 0.428571 0.641791 +vt 0.428571 0.671642 +vt 0.410714 0.671642 +vt 0.392857 0.611940 +vt 0.410714 0.611940 +vt 0.446429 0.611940 +vt 0.446429 0.611940 +vt 0.428571 0.641791 +vt 0.428571 0.611940 +vt 0.410714 0.641791 +vt 0.392857 0.611940 +vt 0.410714 0.611940 +vt 0.428571 0.671642 +vt 0.410714 0.671642 +vt 0.410714 0.641791 +vt 0.428571 0.611940 +vt 0.428571 0.641791 +vt 0.428571 0.671642 +vt 0.410714 0.671642 +vt 0.392857 0.611940 +vt 0.410714 0.611940 +vt 0.446429 0.611940 +vt 0.446429 0.611940 +vt 0.428571 0.641791 +vt 0.428571 0.611940 +vt 0.410714 0.641791 +vt 0.392857 0.611940 +vt 0.410714 0.611940 +vt 0.428571 0.671642 +vt 0.410714 0.671642 +vt 0.428571 0.641791 +vt 0.410714 0.611940 +vt 0.428571 0.611940 +vt 0.410714 0.641791 +vt 0.428571 0.671642 +vt 0.410714 0.671642 +vt 0.392857 0.611940 +vt 0.446429 0.611940 +vt 0.446429 0.611940 +vt 0.428571 0.641791 +vt 0.428571 0.611940 +vt 0.410714 0.641791 +vt 0.392857 0.611940 +vt 0.410714 0.611940 +vt 0.428571 0.671642 +vt 0.410714 0.671642 +vt 0.428571 0.641791 +vt 0.410714 0.611940 +vt 0.428571 0.611940 +vt 0.410714 0.641791 +vt 0.428571 0.671642 +vt 0.410714 0.671642 +vt 0.392857 0.611940 +vt 0.446429 0.611940 +vt 0.446429 0.656716 +vt 0.392857 0.656716 +vt 0.392857 0.656716 +vt 0.446429 0.656716 +vt 0.446429 0.656716 +vt 0.392857 0.656716 +vt 0.392857 0.656716 +vt 0.446429 0.656716 +vt 0.375000 0.611940 +vt 0.361607 0.582090 +vt 0.375000 0.611940 +vt 0.361607 0.582090 +vt 0.375000 0.611940 +vt 0.361607 0.582090 +vt 0.375000 0.611940 +vt 0.361607 0.582090 +vt 0.375000 0.611940 +vt 0.361607 0.582090 +vt 0.375000 0.611940 +vt 0.361607 0.582090 +vt 0.375000 0.611940 +vt 0.361607 0.582090 +vt 0.375000 0.611940 +vt 0.361607 0.582090 +vt 0.375000 0.611940 +vt 0.361607 0.582090 +vt 0.375000 0.611940 +vt 0.361607 0.582090 +vt 0.375000 0.611940 +vt 0.361607 0.582090 +vt 0.375000 0.611940 +vt 0.361607 0.582090 +vt 0.375000 0.611940 +vt 0.361607 0.582090 +vt 0.375000 0.611940 +vt 0.361607 0.582090 +vt 0.375000 0.611940 +vt 0.361607 0.582090 +vt 0.375000 0.611940 +vt 0.361607 0.582090 +vt 0.446429 0.656716 +vt 0.392857 0.656716 +vt 0.428571 0.671642 +vt 0.392857 0.656716 +vt 0.446429 0.656716 +vt 0.446429 0.656716 +vt 0.392857 0.656716 +vt 0.392857 0.656716 +vt 0.446429 0.656716 +vt 0.446429 0.656716 +vt 0.392857 0.656716 +vt 0.392857 0.656716 +vt 0.446429 0.656716 +vt 0.446429 0.656716 +vt 0.392857 0.656716 +vt 0.392857 0.656716 +vt 0.446429 0.656716 +vt 0.446429 0.656716 +vt 0.392857 0.656716 +vt 0.392857 0.656716 +vt 0.446429 0.656716 +vt 0.446429 0.656716 +vt 0.392857 0.656716 +vt 0.392857 0.656716 +vt 0.446429 0.656716 +vt 0.687500 0.238806 +vt 0.656250 0.253731 +vt 0.656250 0.238806 +vt 0.281250 0.238806 +vt 0.250000 0.253731 +vt 0.250000 0.238806 +vt 0.125000 0.238806 +vt 0.093750 0.253731 +vt 0.093750 0.238806 +vt 0.718750 0.238806 +vt 0.687500 0.253731 +vt 0.312500 0.238806 +vt 0.281250 0.253731 +vt 0.156250 0.238806 +vt 0.125000 0.253731 +vt 0.750000 0.253731 +vt 0.718750 0.253731 +vt 0.343750 0.253731 +vt 0.312500 0.253731 +vt 0.187500 0.253731 +vt 0.156250 0.253731 +vt 0.750000 0.238806 +vt 0.781250 0.253731 +vt 0.375000 0.238806 +vt 0.343750 0.238806 +vt 0.218750 0.238806 +vt 0.187500 0.238806 +vt 0.812500 0.238806 +vt 0.781250 0.238806 +vt 0.406250 0.238806 +vt 0.375000 0.253731 +vt 0.218750 0.253731 +vt 0.843750 0.238806 +vt 0.812500 0.253731 +vt 0.437500 0.238806 +vt 0.406250 0.253731 +vt 0.875000 0.238806 +vt 0.843750 0.253731 +vt 0.468750 0.238806 +vt 0.437500 0.253731 +vt 0.906250 0.238806 +vt 0.875000 0.253731 +vt 0.500000 0.238806 +vt 0.468750 0.253731 +vt 0.937500 0.238806 +vt 0.906250 0.253731 +vt 0.531250 0.238806 +vt 0.500000 0.253731 +vt 0.968750 0.238806 +vt 0.937500 0.253731 +vt 0.562500 0.238806 +vt 0.531250 0.253731 +vt 1.000000 0.238806 +vt 0.968750 0.253731 +vt 0.593750 0.238806 +vt 0.562500 0.253731 +vt 0.031250 0.238806 +vt 0.000000 0.253731 +vt 0.000000 0.238806 +vt 0.625000 0.238806 +vt 0.593750 0.253731 +vt 0.062500 0.238806 +vt 0.031250 0.253731 +vt 0.625000 0.253731 +vt 0.062500 0.253731 +vt 0.218750 0.194030 +vt 0.183036 0.194030 +vt 0.156250 0.194030 +vt 0.093750 0.194030 +vt 0.120536 0.194030 +vt 0.058036 0.194030 +vt 0.004464 0.194030 +vt 0.031250 0.194030 +vt 0.968750 0.194030 +vt 0.995536 0.194030 +vt 0.941964 0.194030 +vt 0.906250 0.194030 +vt 0.933036 0.194030 +vt 0.870536 0.194030 +vt 0.843750 0.194030 +vt 0.781250 0.194030 +vt 0.808036 0.194030 +vt 0.754464 0.194030 +vt 0.745536 0.194030 +vt 0.718750 0.194030 +vt 0.656250 0.194030 +vt 0.683036 0.194030 +vt 0.629464 0.194030 +vt 0.620536 0.194030 +vt 0.593750 0.194030 +vt 0.531250 0.194030 +vt 0.558036 0.194030 +vt 0.504464 0.194030 +vt 0.495536 0.194030 +vt 0.468750 0.194030 +vt 0.433036 0.194030 +vt 0.406250 0.194030 +vt 0.370536 0.194030 +vt 0.343750 0.194030 +vt 0.308036 0.194030 +vt 0.254464 0.194030 +vt 0.281250 0.194030 +vt 0.245536 0.194030 +vt 0.745536 0.164179 +vt 0.129464 0.194030 +vt 0.156250 0.164179 +vt 0.308036 0.164179 +vt 0.691964 0.194030 +vt 0.718750 0.164179 +vt 0.120536 0.164179 +vt 0.281250 0.164179 +vt 0.683036 0.164179 +vt 0.066964 0.194030 +vt 0.093750 0.164179 +vt 0.629464 0.164179 +vt 0.656250 0.164179 +vt 0.058036 0.164179 +vt 0.620536 0.164179 +vt 0.031250 0.164179 +vt 0.566964 0.194030 +vt 0.593750 0.164179 +vt 0.995536 0.164179 +vt 0.558036 0.164179 +vt 0.968750 0.164179 +vt 0.531250 0.164179 +vt 0.933036 0.164179 +vt 0.495536 0.164179 +vt 0.879464 0.194030 +vt 0.906250 0.164179 +vt 0.441964 0.194030 +vt 0.468750 0.164179 +vt 0.843750 0.164179 +vt 0.870536 0.164179 +vt 0.433036 0.164179 +vt 0.816964 0.194030 +vt 0.245536 0.164179 +vt 0.379464 0.194030 +vt 0.406250 0.164179 +vt 0.808036 0.164179 +vt 0.191964 0.194030 +vt 0.218750 0.164179 +vt 0.370536 0.164179 +vt 0.781250 0.164179 +vt 0.183036 0.164179 +vt 0.316964 0.194030 +vt 0.343750 0.164179 +vt 0.191964 0.164179 +vt 0.218750 0.000000 +vt 0.156250 0.000000 +vt 0.162946 -0.000000 +vt 0.129464 0.164179 +vt 0.100446 -0.000000 +vt 0.087054 -0.000000 +vt 0.093750 0.000000 +vt 0.031250 -0.000000 +vt 0.037946 -0.000000 +vt 0.004464 0.164179 +vt 0.968750 0.000000 +vt 0.975446 0.000000 +vt 0.941964 0.164179 +vt 0.906250 -0.000000 +vt 0.912946 -0.000000 +vt 0.899554 -0.000000 +vt 0.850446 0.000000 +vt 0.837054 0.000000 +vt 0.843750 0.000000 +vt 0.781250 0.000000 +vt 0.787946 -0.000000 +vt 0.774554 -0.000000 +vt 0.718750 0.000000 +vt 0.725446 -0.000000 +vt 0.691964 0.164179 +vt 0.656250 -0.000000 +vt 0.662946 -0.000000 +vt 0.649554 -0.000000 +vt 0.600446 0.000000 +vt 0.566964 0.164179 +vt 0.593750 -0.000000 +vt 0.531250 0.000000 +vt 0.537946 -0.000000 +vt 0.504464 0.164179 +vt 0.468750 0.000000 +vt 0.475446 -0.000000 +vt 0.462054 -0.000000 +vt 0.412946 0.000000 +vt 0.399554 -0.000000 +vt 0.406250 -0.000000 +vt 0.343750 0.000000 +vt 0.350446 -0.000000 +vt 0.316964 0.164179 +vt 0.281250 0.000000 +vt 0.287946 -0.000000 +vt 0.254464 0.164179 +vt 0.225446 -0.000000 +vt 0.062500 0.238806 +vt 0.093750 0.194030 +vt 0.093750 0.238806 +vt 0.031250 0.238806 +vt 0.058036 0.194030 +vt -0.000000 0.238806 +vt 0.031250 0.194030 +vt 0.968750 0.238806 +vt 0.995536 0.194030 +vt 1.000000 0.238806 +vt 0.941964 0.194030 +vt 0.937500 0.238806 +vt 0.906250 0.238806 +vt 0.933036 0.194030 +vt 0.875000 0.238806 +vt 0.906250 0.194030 +vt 0.843750 0.194030 +vt 0.843750 0.238806 +vt 0.816964 0.194030 +vt 0.812500 0.238806 +vt 0.781250 0.194030 +vt 0.781250 0.238806 +vt 0.754464 0.194030 +vt 0.750000 0.238806 +vt 0.718750 0.238806 +vt 0.745536 0.194030 +vt 0.691964 0.194030 +vt 0.687500 0.238806 +vt 0.656250 0.194030 +vt 0.656250 0.238806 +vt 0.629464 0.194030 +vt 0.625000 0.238806 +vt 0.593750 0.194030 +vt 0.593750 0.238806 +vt 0.566964 0.194030 +vt 0.562500 0.238806 +vt 0.531250 0.194030 +vt 0.531250 0.238806 +vt 0.504464 0.194030 +vt 0.500000 0.238806 +vt 0.468750 0.238806 +vt 0.495536 0.194030 +vt 0.441964 0.194030 +vt 0.437500 0.238806 +vt 0.406250 0.194030 +vt 0.406250 0.238806 +vt 0.379464 0.194030 +vt 0.375000 0.238806 +vt 0.343750 0.238806 +vt 0.370536 0.194030 +vt 0.312500 0.238806 +vt 0.343750 0.194030 +vt 0.281250 0.194030 +vt 0.281250 0.238806 +vt 0.250000 0.238806 +vt 0.218750 0.238806 +vt 0.245536 0.194030 +vt 0.187500 0.238806 +vt 0.218750 0.194030 +vt 0.156250 0.194030 +vt 0.156250 0.238806 +vt 0.131315 0.193995 +vt 0.125000 0.238806 +vt 0.066964 0.164179 +vt 0.066964 0.194030 +vt 0.093750 0.164179 +vt 0.120536 0.194030 +vt 0.129464 0.164179 +vt 0.156250 0.164179 +vt 0.183036 0.194030 +vt 0.191964 0.164179 +vt 0.191964 0.194030 +vt 0.218750 0.164179 +vt 0.254464 0.164179 +vt 0.254464 0.194030 +vt 0.281250 0.164179 +vt 0.308036 0.194030 +vt 0.316964 0.164179 +vt 0.316964 0.194030 +vt 0.343750 0.164179 +vt 0.379464 0.164179 +vt 0.406250 0.164179 +vt 0.433036 0.194030 +vt 0.441964 0.164179 +vt 0.468750 0.194030 +vt 0.468750 0.164179 +vt 0.504464 0.164179 +vt 0.531250 0.164179 +vt 0.558036 0.194030 +vt 0.566964 0.164179 +vt 0.593750 0.164179 +vt 0.620536 0.194030 +vt 0.656250 0.164179 +vt 0.683036 0.194030 +vt 0.691964 0.164179 +vt 0.718750 0.194030 +vt 0.718750 0.164179 +vt 0.754464 0.164179 +vt 0.781250 0.164179 +vt 0.808036 0.194030 +vt 0.816964 0.164179 +vt 0.870536 0.164179 +vt 0.870536 0.194030 +vt 0.879464 0.164179 +vt 0.879464 0.194030 +vt 0.906250 0.164179 +vt 0.941964 0.164179 +vt 0.968750 0.194030 +vt 0.968750 0.164179 +vt 0.004464 0.164179 +vt 0.004464 0.194030 +vt 0.031250 0.164179 +vt 0.462054 -0.000000 +vt 0.406250 0.000000 +vt 0.433036 0.164179 +vt 0.350446 -0.000000 +vt 0.370536 0.164179 +vt 0.337054 0.000000 +vt 0.281250 0.000000 +vt 0.308036 0.164179 +vt 0.274554 -0.000000 +vt 0.218750 -0.000000 +vt 0.245536 0.164179 +vt 0.162946 -0.000000 +vt 0.183036 0.164179 +vt 0.149554 0.000000 +vt 0.093750 0.000000 +vt 0.120536 0.164179 +vt 0.031250 -0.000000 +vt 0.058036 0.164179 +vt 0.968750 -0.000000 +vt 0.995536 0.164179 +vt 0.962054 -0.000000 +vt 0.912946 -0.000000 +vt 0.933036 0.164179 +vt 0.899554 -0.000000 +vt 0.843750 0.000000 +vt 0.843750 0.164179 +vt 0.781250 0.000000 +vt 0.808036 0.164179 +vt 0.774554 -0.000000 +vt 0.718750 0.000000 +vt 0.745536 0.164179 +vt 0.656250 0.000000 +vt 0.683036 0.164179 +vt 0.649554 -0.000000 +vt 0.629464 0.164179 +vt 0.593750 -0.000000 +vt 0.620536 0.164179 +vt 0.587054 -0.000000 +vt 0.537946 0.000000 +vt 0.558036 0.164179 +vt 0.531250 0.000000 +vt 0.468750 -0.000000 +vt 0.495536 0.164179 +vt 0.156250 0.253731 +vt 0.750000 0.253731 +vt 0.593750 0.253731 +vt 0.218750 0.253731 +vt 0.187500 0.253731 +vt 0.781250 0.253731 +vt 0.625000 0.253731 +vt 0.843750 0.253731 +vt 0.812500 0.253731 +vt 0.687500 0.253731 +vt 0.656250 0.253731 +vt 0.281250 0.253731 +vt 0.250000 0.253731 +vt 0.875000 0.253731 +vt 0.718750 0.253731 +vt 0.312500 0.253731 +vt 0.906250 0.253731 +vt 0.375000 0.253731 +vt 0.343750 0.253731 +vt 0.937500 0.253731 +vt 0.968750 0.253731 +vt 0.406250 0.253731 +vt -0.000000 0.253731 +vt 0.437500 0.253731 +vt 0.031250 0.253731 +vt 0.468750 0.253731 +vt 0.062500 0.253731 +vt 0.500000 0.253731 +vt 0.093750 0.253731 +vt 0.531250 0.253731 +vt 0.125000 0.253731 +vt 0.562500 0.253731 +vt 0.093750 0.283582 +vt 0.066964 0.283582 +vt 0.031250 0.283582 +vt 0.004464 0.283582 +vt 1.000000 0.253731 +vt 0.968750 0.283582 +vt 0.941964 0.283582 +vt 0.933036 0.283582 +vt 0.906250 0.283582 +vt 0.870536 0.283582 +vt 0.843750 0.283582 +vt 0.781250 0.283582 +vt 0.754464 0.283582 +vt 0.718750 0.283582 +vt 0.656250 0.283582 +vt 0.629464 0.283582 +vt 0.620536 0.283582 +vt 0.593750 0.283582 +vt 0.558036 0.283582 +vt 0.531250 0.283582 +vt 0.495536 0.283582 +vt 0.468750 0.283582 +vt 0.406250 0.283582 +vt 0.343750 0.283582 +vt 0.281250 0.283582 +vt 0.254464 0.283582 +vt 0.218750 0.283582 +vt 0.183036 0.283582 +vt 0.129464 0.283582 +vt 0.919643 0.373134 +vt 0.946429 0.343284 +vt 0.946429 0.373134 +vt 0.973214 0.373134 +vt 1.000000 0.343284 +vt 1.000000 0.373134 +vt 0.973214 0.343284 +vt 0.973214 0.373134 +vt 0.892857 0.373134 +vt 0.919643 0.343284 +vt 0.919643 0.373134 +vt 1.000000 0.343284 +vt 1.000000 0.373134 +vt 0.946429 0.343284 +vt 0.946429 0.373134 +vt 0.892857 0.373134 +vt 0.919643 0.343284 +vt 0.919643 0.373134 +vt 0.973214 0.343284 +vt 0.973214 0.373134 +vt 0.946429 0.343284 +vt 0.946429 0.373134 +vt 1.000000 0.343284 +vt 1.000000 0.373134 +vt 0.973214 0.343284 +vt 0.973214 0.373134 +vt 0.892857 0.373134 +vt 0.919643 0.343284 +vt 0.919643 0.373134 +vt 1.000000 0.343284 +vt 1.000000 0.373134 +vt 0.946429 0.343284 +vt 0.946429 0.373134 +vt 0.892857 0.373134 +vt 0.919643 0.343284 +vt 0.919643 0.373134 +vt 0.973214 0.343284 +vt 0.973214 0.373134 +vt 0.946429 0.343284 +vt 0.946429 0.373134 +vt 0.892857 0.373134 +vt 0.919643 0.343284 +vt 0.919643 0.373134 +vt 1.000000 0.343284 +vt 1.000000 0.373134 +vt 0.973214 0.373134 +vt 0.973214 0.343284 +vt 0.946429 0.343284 +vt 0.946429 0.373134 +vt 0.892857 0.373134 +vt 0.919643 0.343284 +vt 0.919643 0.373134 +vt 1.000000 0.343284 +vt 1.000000 0.373134 +vt 0.973214 0.343284 +vt 0.973214 0.373134 +vt 0.946429 0.343284 +vt 0.946429 0.373134 +vt 0.892857 0.373134 +vt 0.919643 0.343284 +vt 0.919643 0.373134 +vt 1.000000 0.343284 +vt 1.000000 0.373134 +vt 0.973214 0.343284 +vt 0.973214 0.373134 +vt 0.946429 0.343284 +vt 0.946429 0.373134 +vt 0.892857 0.373134 +vt 0.919643 0.343284 +vt 1.000000 0.343284 +vt 1.000000 0.373134 +vt 0.973214 0.343284 +vt 0.906250 0.283582 +vt 0.879464 0.283582 +vt 0.933036 0.283582 +vt 0.968750 0.283582 +vt 0.941964 0.283582 +vt 0.995536 0.283582 +vt 0.031250 0.283582 +vt 0.004464 0.283582 +vt 0.058036 0.283582 +vt 0.093750 0.283582 +vt 0.066964 0.283582 +vt 0.129464 0.283582 +vt 0.156250 0.283582 +vt 0.191964 0.283582 +vt 0.245536 0.283582 +vt 0.218750 0.283582 +vt 0.281250 0.283582 +vt 0.254464 0.283582 +vt 0.343750 0.283582 +vt 0.316964 0.283582 +vt 0.370536 0.283582 +vt 0.379464 0.283582 +vt 0.406250 0.283582 +vt 0.441964 0.283582 +vt 0.468750 0.283582 +vt 0.504464 0.283582 +vt 0.531250 0.283582 +vt 0.593750 0.283582 +vt 0.566964 0.283582 +vt 0.656250 0.283582 +vt 0.629464 0.283582 +vt 0.718750 0.283582 +vt 0.691964 0.283582 +vt 0.745536 0.283582 +vt 0.781250 0.283582 +vt 0.754464 0.283582 +vt 0.816964 0.283582 +vt 0.870536 0.283582 +vt 0.843750 0.283582 +vt 0.066964 0.164179 +vt 0.879464 0.164179 +vt 0.441964 0.164179 +vt 0.816964 0.164179 +vt 0.379464 0.164179 +vt 0.754464 0.164179 +vt 0.212054 0.000000 +vt 0.149554 -0.000000 +vt 0.024554 -0.000000 +vt 0.962054 -0.000000 +vt 0.712054 -0.000000 +vt 0.587054 -0.000000 +vt 0.524554 -0.000000 +vt 0.337054 -0.000000 +vt 0.274554 -0.000000 +vt 0.412946 -0.000000 +vt 0.399554 -0.000000 +vt 0.343750 0.000000 +vt 0.287946 -0.000000 +vt 0.225446 -0.000000 +vt 0.212054 0.000000 +vt 0.156250 0.000000 +vt 0.100446 0.000000 +vt 0.087054 -0.000000 +vt 0.037946 0.000000 +vt 0.024554 -0.000000 +vt 0.975446 -0.000000 +vt 0.906250 0.000000 +vt 0.850446 -0.000000 +vt 0.837054 -0.000000 +vt 0.787946 0.000000 +vt 0.725446 0.000000 +vt 0.712054 0.000000 +vt 0.662946 -0.000000 +vt 0.600446 0.000000 +vt 0.524554 0.000000 +vt 0.475446 -0.000000 +vt 1.000000 0.253731 +vt 0.120536 0.283582 +vt 0.058036 0.283582 +vt 0.995536 0.283582 +vt 0.879464 0.283582 +vt 0.816964 0.283582 +vt 0.808036 0.283582 +vt 0.745536 0.283582 +vt 0.691964 0.283582 +vt 0.683036 0.283582 +vt 0.566964 0.283582 +vt 0.504464 0.283582 +vt 0.441964 0.283582 +vt 0.433036 0.283582 +vt 0.379464 0.283582 +vt 0.370536 0.283582 +vt 0.316964 0.283582 +vt 0.308036 0.283582 +vt 0.245536 0.283582 +vt 0.191964 0.283582 +vt 0.156250 0.283582 +vt 0.892857 0.343284 +vt 0.892857 0.343284 +vt 0.892857 0.343284 +vt 0.892857 0.343284 +vt 0.892857 0.343284 +vt 0.892857 0.343284 +vt 0.892857 0.343284 +vt 0.892857 0.343284 +vt 0.120536 0.283582 +vt 0.183036 0.283582 +vt 0.308036 0.283582 +vt 0.433036 0.283582 +vt 0.495536 0.283582 +vt 0.558036 0.283582 +vt 0.620536 0.283582 +vt 0.683036 0.283582 +vt 0.808036 0.283582 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.4472 0.0000 0.8944 +vn -1.0000 0.0000 0.0000 +vn -0.4472 0.0000 -0.8944 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.0000 1.0000 +vn -0.4472 -0.8944 0.0000 +vn -0.4472 0.8944 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +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.0000 -0.3827 0.9239 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 0.9239 0.3827 +vn -0.4472 -0.6325 0.6325 +vn -0.4472 0.6325 -0.6325 +vn -0.4472 -0.6325 -0.6325 +vn -0.4472 0.6325 0.6325 +vn 0.4472 0.0000 -0.8944 +vn 1.0000 0.0000 -0.0000 +vn 0.4472 0.0000 0.8944 +vn 0.4472 -0.8944 0.0000 +vn 0.4472 0.8944 0.0000 +vn 0.4472 -0.6325 -0.6325 +vn 0.4472 0.6325 0.6325 +vn 0.4472 -0.6325 0.6325 +vn 0.4472 0.6325 -0.6325 +vn 0.0000 -0.5556 0.8315 +vn 0.0000 -0.1951 -0.9808 +vn 0.0000 0.8315 -0.5556 +vn 0.0000 -0.1951 0.9808 +vn 0.0000 0.5556 -0.8315 +vn 0.0000 -0.5556 -0.8315 +vn 0.0000 0.1951 0.9808 +vn 0.0000 0.1951 -0.9808 +vn 0.0000 -0.8315 -0.5556 +vn 0.0000 0.5556 0.8315 +vn 0.0000 -0.9808 -0.1951 +vn 0.0000 0.8315 0.5556 +vn 0.0000 -0.9808 0.1951 +vn 0.0000 0.9808 0.1951 +vn 0.0000 -0.8315 0.5556 +vn 0.0000 0.9808 -0.1951 +vn 0.9487 0.1210 -0.2922 +vn 0.9487 0.0617 -0.3102 +vn 0.9487 0.1757 -0.2629 +vn 0.9487 0.2236 -0.2236 +vn 0.9487 0.2629 -0.1757 +vn 0.9487 0.2922 -0.1210 +vn 0.9487 0.3102 -0.0617 +vn 0.9487 0.3162 -0.0000 +vn 0.9487 0.3102 0.0617 +vn 0.9487 0.2922 0.1210 +vn 0.9487 0.2629 0.1757 +vn 0.9487 0.2236 0.2236 +vn 0.9487 0.1757 0.2629 +vn 0.9487 0.1210 0.2922 +vn 0.9487 0.0617 0.3102 +vn 0.9487 -0.0000 0.3162 +vn 0.9487 -0.0617 0.3102 +vn 0.9487 -0.1210 0.2922 +vn 0.9487 -0.1757 0.2629 +vn 0.9487 -0.2236 0.2236 +vn 0.9487 -0.2629 0.1757 +vn 0.9487 -0.2922 0.1210 +vn 0.9487 -0.3102 0.0617 +vn 0.9487 -0.3162 -0.0000 +vn 0.9487 -0.3102 -0.0617 +vn 0.9487 -0.2922 -0.1210 +vn 0.9487 -0.2629 -0.1757 +vn 0.9487 -0.2236 -0.2236 +vn 0.9487 -0.1757 -0.2629 +vn 0.9487 -0.1210 -0.2922 +vn 0.9487 -0.0617 -0.3102 +vn 0.9487 0.0000 -0.3162 +vn 0.9959 0.0346 -0.0836 +vn 0.9959 0.0177 -0.0888 +vn 0.9959 0.0503 -0.0753 +vn 0.9959 0.0640 -0.0640 +vn 0.9959 0.0753 -0.0503 +vn 0.9959 0.0836 -0.0346 +vn 0.9959 0.0888 -0.0177 +vn 0.9959 0.0905 0.0000 +vn 0.9959 0.0888 0.0177 +vn 0.9959 0.0836 0.0346 +vn 0.9959 0.0753 0.0503 +vn 0.9959 0.0640 0.0640 +vn 0.9959 0.0503 0.0753 +vn 0.9959 0.0346 0.0836 +vn 0.9959 0.0177 0.0888 +vn 0.9959 0.0000 0.0905 +vn 0.9959 -0.0177 0.0888 +vn 0.9959 -0.0346 0.0836 +vn 0.9959 -0.0503 0.0753 +vn 0.9959 -0.0640 0.0640 +vn 0.9959 -0.0753 0.0503 +vn 0.9959 -0.0836 0.0346 +vn 0.9959 -0.0888 0.0177 +vn 0.9959 -0.0905 0.0000 +vn 0.9959 -0.0888 -0.0177 +vn 0.9959 -0.0836 -0.0346 +vn 0.9959 -0.0753 -0.0503 +vn 0.9959 -0.0640 -0.0640 +vn 0.9959 -0.0503 -0.0753 +vn 0.9959 -0.0346 -0.0836 +vn 0.9959 -0.0177 -0.0888 +vn 0.9959 -0.0000 -0.0905 +vn -0.9487 0.2922 0.1210 +vn -0.9487 0.2629 0.1757 +vn -0.9487 0.3102 0.0617 +vn -0.9487 0.3162 -0.0000 +vn -0.9487 0.3102 -0.0617 +vn -0.9487 0.2922 -0.1210 +vn -0.9487 0.2629 -0.1757 +vn -0.9487 0.2236 -0.2236 +vn -0.9487 0.1757 -0.2629 +vn -0.9487 0.1210 -0.2922 +vn -0.9487 0.0617 -0.3102 +vn -0.9487 0.0000 -0.3162 +vn -0.9487 -0.0617 -0.3102 +vn -0.9487 -0.1210 -0.2922 +vn -0.9487 -0.1757 -0.2629 +vn -0.9487 -0.2236 -0.2236 +vn -0.9487 -0.2629 -0.1757 +vn -0.9487 -0.2922 -0.1210 +vn -0.9487 -0.3102 -0.0617 +vn -0.9487 -0.3162 -0.0000 +vn -0.9487 -0.3102 0.0617 +vn -0.9487 -0.2922 0.1210 +vn -0.9487 -0.2629 0.1757 +vn -0.9487 -0.2236 0.2236 +vn -0.9487 -0.1757 0.2629 +vn -0.9487 -0.1210 0.2922 +vn -0.9487 -0.0617 0.3102 +vn -0.9487 -0.0000 0.3162 +vn -0.9487 0.0617 0.3102 +vn -0.9487 0.1210 0.2922 +vn -0.9487 0.1757 0.2629 +vn -0.9487 0.2236 0.2236 +vn -0.9959 -0.0836 0.0346 +vn -0.9959 -0.0888 0.0177 +vn -0.9959 -0.0753 0.0503 +vn -0.9959 -0.0640 0.0640 +vn -0.9959 -0.0503 0.0753 +vn -0.9959 -0.0346 0.0836 +vn -0.9959 -0.0177 0.0888 +vn -0.9959 -0.0000 0.0905 +vn -0.9959 0.0177 0.0888 +vn -0.9959 0.0346 0.0836 +vn -0.9959 0.0503 0.0753 +vn -0.9959 0.0640 0.0640 +vn -0.9959 0.0753 0.0503 +vn -0.9959 0.0836 0.0346 +vn -0.9959 0.0888 0.0177 +vn -0.9959 0.0905 0.0000 +vn -0.9959 0.0888 -0.0177 +vn -0.9959 0.0836 -0.0346 +vn -0.9959 0.0753 -0.0503 +vn -0.9959 0.0640 -0.0640 +vn -0.9959 0.0503 -0.0753 +vn -0.9959 0.0346 -0.0836 +vn -0.9959 0.0177 -0.0888 +vn -0.9959 -0.0000 -0.0905 +vn -0.9959 -0.0177 -0.0888 +vn -0.9959 -0.0346 -0.0836 +vn -0.9959 -0.0503 -0.0753 +vn -0.9959 -0.0640 -0.0640 +vn -0.9959 -0.0753 -0.0503 +vn -0.9959 -0.0836 -0.0346 +vn -0.9959 -0.0888 -0.0177 +vn -0.9959 -0.0905 0.0000 +s off +f 386/1/1 392/2/1 390/3/1 +f 391/4/2 385/5/2 389/6/2 +f 391/4/3 388/7/3 387/8/3 +f 391/4/4 390/3/4 392/2/4 +f 394/9/4 395/10/4 393/11/4 +f 394/9/5 397/12/5 398/13/5 +f 394/9/1 400/14/1 396/15/1 +f 399/16/2 393/11/2 395/10/2 +f 402/17/6 408/18/6 406/19/6 +f 407/20/7 401/21/7 405/22/7 +f 407/20/8 404/23/8 403/24/8 +f 407/20/4 406/19/4 408/18/4 +f 410/25/4 411/26/4 409/27/4 +f 410/25/9 413/28/9 414/29/9 +f 410/25/6 416/30/6 412/31/6 +f 415/32/7 409/27/7 411/26/7 +f 420/33/1 423/34/1 419/35/1 +f 422/36/2 417/37/2 421/38/2 +f 423/34/7 417/37/7 419/35/7 +f 420/39/6 422/36/6 424/40/6 +f 428/41/2 431/42/2 427/43/2 +f 430/44/1 425/45/1 429/46/1 +f 431/42/6 425/45/6 427/43/6 +f 428/47/7 430/44/7 432/48/7 +f 436/49/6 439/50/6 435/51/6 +f 438/52/7 433/53/7 437/54/7 +f 439/50/1 433/53/1 435/51/1 +f 436/55/2 438/52/2 440/56/2 +f 444/57/7 447/58/7 443/59/7 +f 446/60/6 441/61/6 445/62/6 +f 447/58/2 441/61/2 443/59/2 +f 444/63/1 446/60/1 448/64/1 +f 452/65/10 455/66/10 451/67/10 +f 454/68/11 449/69/11 453/70/11 +f 455/66/12 449/69/12 451/67/12 +f 452/71/13 454/68/13 456/72/13 +f 460/73/11 463/74/11 459/75/11 +f 462/76/10 457/77/10 461/78/10 +f 463/74/13 457/77/13 459/75/13 +f 460/79/12 462/76/12 464/80/12 +f 468/81/13 471/82/13 467/83/13 +f 470/84/12 465/85/12 469/86/12 +f 471/82/10 465/85/10 467/83/10 +f 468/87/11 470/84/11 472/88/11 +f 476/89/12 479/90/12 475/91/12 +f 478/92/13 473/93/13 477/94/13 +f 479/90/11 473/93/11 475/91/11 +f 476/95/10 478/92/10 480/96/10 +f 484/97/14 487/98/14 483/99/14 +f 486/100/15 481/101/15 485/102/15 +f 487/98/16 481/101/16 483/99/16 +f 484/103/17 486/100/17 488/104/17 +f 492/105/15 495/106/15 491/107/15 +f 494/108/14 489/109/14 493/110/14 +f 495/106/17 489/109/17 491/107/17 +f 492/111/16 494/108/16 496/112/16 +f 500/113/17 503/114/17 499/115/17 +f 502/116/16 497/117/16 501/118/16 +f 503/114/14 497/117/14 499/115/14 +f 500/119/15 502/116/15 504/120/15 +f 508/121/16 511/122/16 507/123/16 +f 510/124/17 505/125/17 509/126/17 +f 511/122/15 505/125/15 507/123/15 +f 508/127/14 510/124/14 512/128/14 +f 516/129/18 519/130/18 515/131/18 +f 518/132/19 513/133/19 517/134/19 +f 519/130/20 513/133/20 515/131/20 +f 516/135/21 518/132/21 520/136/21 +f 524/137/19 527/138/19 523/139/19 +f 526/140/18 521/141/18 525/142/18 +f 527/138/21 521/141/21 523/139/21 +f 524/143/20 526/140/20 528/144/20 +f 532/145/21 535/146/21 531/147/21 +f 534/148/20 529/149/20 533/150/20 +f 535/146/18 529/149/18 531/147/18 +f 532/151/19 534/148/19 536/152/19 +f 540/153/20 543/154/20 539/155/20 +f 542/156/21 537/157/21 541/158/21 +f 543/154/19 537/157/19 539/155/19 +f 540/159/18 542/156/18 544/160/18 +f 546/161/10 552/162/10 550/163/10 +f 551/164/11 545/165/11 549/166/11 +f 551/164/22 548/167/22 547/168/22 +f 551/164/4 550/163/4 552/162/4 +f 553/169/4 556/170/4 555/171/4 +f 553/169/23 558/172/23 554/173/23 +f 554/173/10 560/174/10 556/170/10 +f 559/175/11 553/169/11 555/171/11 +f 562/176/13 568/177/13 566/178/13 +f 567/179/12 561/180/12 565/181/12 +f 567/179/24 564/182/24 563/183/24 +f 567/179/4 566/178/4 568/177/4 +f 569/184/4 572/185/4 571/186/4 +f 570/187/25 573/188/25 574/189/25 +f 570/187/13 576/190/13 572/185/13 +f 575/191/12 569/184/12 571/186/12 +f 578/192/1 584/193/1 582/194/1 +f 583/195/2 577/196/2 581/197/2 +f 583/195/26 580/198/26 579/199/26 +f 583/195/27 582/194/27 584/193/27 +f 586/200/27 587/201/27 585/202/27 +f 586/200/28 589/203/28 590/204/28 +f 586/200/1 592/205/1 588/206/1 +f 591/207/2 585/202/2 587/201/2 +f 594/208/7 600/209/7 598/210/7 +f 599/211/6 593/212/6 597/213/6 +f 599/211/29 596/214/29 595/215/29 +f 599/211/27 598/210/27 600/209/27 +f 602/216/27 603/217/27 601/218/27 +f 602/216/30 605/219/30 606/220/30 +f 602/216/7 608/221/7 604/222/7 +f 607/223/6 601/218/6 603/217/6 +f 610/224/12 616/225/12 614/226/12 +f 615/227/13 609/228/13 613/229/13 +f 615/227/31 612/230/31 611/231/31 +f 615/227/27 614/226/27 616/225/27 +f 617/232/27 620/233/27 619/234/27 +f 618/235/32 621/236/32 622/237/32 +f 618/235/12 624/238/12 620/233/12 +f 623/239/13 617/232/13 619/234/13 +f 626/240/11 632/241/11 630/242/11 +f 631/243/10 625/244/10 629/245/10 +f 631/243/33 628/246/33 627/247/33 +f 631/243/27 630/242/27 632/241/27 +f 633/248/27 636/249/27 635/250/27 +f 634/251/34 637/252/34 638/253/34 +f 634/251/11 640/254/11 636/249/11 +f 639/255/10 633/248/10 635/250/10 +f 386/1/1 388/256/1 392/2/1 +f 391/4/2 387/257/2 385/5/2 +f 391/4/3 392/2/3 388/7/3 +f 391/4/4 389/6/4 390/3/4 +f 394/9/4 396/15/4 395/10/4 +f 394/9/5 393/11/5 397/12/5 +f 394/9/1 398/258/1 400/14/1 +f 399/16/2 397/259/2 393/11/2 +f 402/17/6 404/260/6 408/18/6 +f 407/20/7 403/261/7 401/21/7 +f 407/20/8 408/18/8 404/23/8 +f 407/20/4 405/22/4 406/19/4 +f 410/25/4 412/31/4 411/26/4 +f 410/25/9 409/27/9 413/28/9 +f 410/25/6 414/262/6 416/30/6 +f 415/32/7 413/263/7 409/27/7 +f 420/33/1 424/264/1 423/34/1 +f 422/36/2 418/265/2 417/37/2 +f 423/34/7 421/38/7 417/37/7 +f 420/39/6 418/265/6 422/36/6 +f 428/41/2 432/266/2 431/42/2 +f 430/44/1 426/267/1 425/45/1 +f 431/42/6 429/46/6 425/45/6 +f 428/47/7 426/267/7 430/44/7 +f 436/49/6 440/268/6 439/50/6 +f 438/52/7 434/269/7 433/53/7 +f 439/50/1 437/54/1 433/53/1 +f 436/55/2 434/269/2 438/52/2 +f 444/57/7 448/270/7 447/58/7 +f 446/60/6 442/271/6 441/61/6 +f 447/58/2 445/62/2 441/61/2 +f 444/63/1 442/271/1 446/60/1 +f 452/65/10 456/272/10 455/66/10 +f 454/68/11 450/273/11 449/69/11 +f 455/66/12 453/70/12 449/69/12 +f 452/71/13 450/273/13 454/68/13 +f 460/73/11 464/274/11 463/74/11 +f 462/76/10 458/275/10 457/77/10 +f 463/74/13 461/78/13 457/77/13 +f 460/79/12 458/275/12 462/76/12 +f 468/81/13 472/276/13 471/82/13 +f 470/84/12 466/277/12 465/85/12 +f 471/82/10 469/86/10 465/85/10 +f 468/87/11 466/277/11 470/84/11 +f 476/89/12 480/278/12 479/90/12 +f 478/92/13 474/279/13 473/93/13 +f 479/90/11 477/94/11 473/93/11 +f 476/95/10 474/279/10 478/92/10 +f 484/97/14 488/280/14 487/98/14 +f 486/100/15 482/281/15 481/101/15 +f 487/98/16 485/102/16 481/101/16 +f 484/103/17 482/281/17 486/100/17 +f 492/105/15 496/282/15 495/106/15 +f 494/108/14 490/283/14 489/109/14 +f 495/106/17 493/110/17 489/109/17 +f 492/111/16 490/283/16 494/108/16 +f 500/113/17 504/284/17 503/114/17 +f 502/116/16 498/285/16 497/117/16 +f 503/114/14 501/118/14 497/117/14 +f 500/119/15 498/285/15 502/116/15 +f 508/121/16 512/286/16 511/122/16 +f 510/124/17 506/287/17 505/125/17 +f 511/122/15 509/126/15 505/125/15 +f 508/127/14 506/287/14 510/124/14 +f 516/129/18 520/288/18 519/130/18 +f 518/132/19 514/289/19 513/133/19 +f 519/130/20 517/134/20 513/133/20 +f 516/135/21 514/289/21 518/132/21 +f 524/137/19 528/290/19 527/138/19 +f 526/140/18 522/291/18 521/141/18 +f 527/138/21 525/142/21 521/141/21 +f 524/143/20 522/291/20 526/140/20 +f 532/145/21 536/292/21 535/146/21 +f 534/148/20 530/293/20 529/149/20 +f 535/146/18 533/150/18 529/149/18 +f 532/151/19 530/293/19 534/148/19 +f 540/153/20 544/294/20 543/154/20 +f 542/156/21 538/295/21 537/157/21 +f 543/154/19 541/158/19 537/157/19 +f 540/159/18 538/295/18 542/156/18 +f 546/161/10 548/296/10 552/162/10 +f 551/164/11 547/297/11 545/165/11 +f 551/164/22 552/162/22 548/167/22 +f 551/164/4 549/166/4 550/163/4 +f 553/169/4 554/173/4 556/170/4 +f 553/169/23 557/298/23 558/172/23 +f 554/173/10 558/299/10 560/174/10 +f 559/175/11 557/300/11 553/169/11 +f 562/176/13 564/301/13 568/177/13 +f 567/179/12 563/302/12 561/180/12 +f 567/179/24 568/177/24 564/182/24 +f 567/179/4 565/181/4 566/178/4 +f 569/184/4 570/187/4 572/185/4 +f 570/187/25 569/184/25 573/188/25 +f 570/187/13 574/303/13 576/190/13 +f 575/191/12 573/304/12 569/184/12 +f 578/192/1 580/305/1 584/193/1 +f 583/195/2 579/306/2 577/196/2 +f 583/195/26 584/193/26 580/198/26 +f 583/195/27 581/197/27 582/194/27 +f 586/200/27 588/206/27 587/201/27 +f 586/200/28 585/202/28 589/203/28 +f 586/200/1 590/307/1 592/205/1 +f 591/207/2 589/308/2 585/202/2 +f 594/208/7 596/309/7 600/209/7 +f 599/211/6 595/310/6 593/212/6 +f 599/211/29 600/209/29 596/214/29 +f 599/211/27 597/213/27 598/210/27 +f 602/216/27 604/222/27 603/217/27 +f 602/216/30 601/218/30 605/219/30 +f 602/216/7 606/311/7 608/221/7 +f 607/223/6 605/312/6 601/218/6 +f 610/224/12 612/313/12 616/225/12 +f 615/227/13 611/314/13 609/228/13 +f 615/227/31 616/225/31 612/230/31 +f 615/227/27 613/229/27 614/226/27 +f 617/232/27 618/235/27 620/233/27 +f 618/235/32 617/232/32 621/236/32 +f 618/235/12 622/315/12 624/238/12 +f 623/239/13 621/316/13 617/232/13 +f 626/240/11 628/317/11 632/241/11 +f 631/243/10 627/318/10 625/244/10 +f 631/243/33 632/241/33 628/246/33 +f 631/243/27 629/245/27 630/242/27 +f 633/248/27 634/251/27 636/249/27 +f 634/251/34 633/248/34 637/252/34 +f 634/251/11 638/319/11 640/254/11 +f 639/255/10 637/320/10 633/248/10 +s 1 +f 19/321/19 276/322/35 20/323/35 +f 32/324/36 257/325/6 1/326/6 +f 5/327/13 262/328/37 6/329/37 +f 18/330/38 275/331/19 19/321/19 +f 31/332/14 288/333/36 32/324/36 +f 4/334/39 261/335/13 5/327/13 +f 18/330/38 273/336/7 274/337/38 +f 31/332/14 286/338/40 287/339/14 +f 4/334/39 259/340/18 260/341/39 +f 17/342/7 272/343/41 273/336/7 +f 29/344/10 286/338/40 30/345/40 +f 2/346/42 259/340/18 3/347/18 +f 15/348/15 272/343/41 16/349/41 +f 28/350/43 285/351/10 29/344/10 +f 2/346/42 257/325/6 258/352/42 +f 14/353/44 271/354/15 15/348/15 +f 27/355/20 284/356/43 28/350/43 +f 13/357/11 270/358/44 14/353/44 +f 26/359/45 283/360/20 27/355/20 +f 12/361/46 269/362/11 13/357/11 +f 25/363/1 282/364/45 26/359/45 +f 11/365/21 268/366/46 12/361/46 +f 24/367/47 281/368/1 25/363/1 +f 10/369/48 267/370/21 11/365/21 +f 23/371/16 280/372/47 24/367/47 +f 9/373/2 266/374/48 10/369/48 +f 22/375/49 279/376/16 23/371/16 +f 8/377/50 265/378/2 9/379/2 +f 21/380/12 278/381/49 22/375/49 +f 7/382/17 264/383/50 8/377/50 +f 21/380/12 276/322/35 277/384/12 +f 6/329/37 263/385/17 7/382/17 +f 3/347/51 66/386/52 2/346/52 +f 4/334/53 67/387/51 3/347/51 +f 5/327/54 68/388/53 4/334/53 +f 5/327/54 70/389/55 69/390/54 +f 7/382/56 70/389/55 6/329/55 +f 8/377/57 71/391/56 7/382/56 +f 8/377/57 73/392/58 72/393/57 +f 9/373/58 74/394/59 73/395/58 +f 10/369/59 75/396/60 74/394/59 +f 11/365/60 76/397/61 75/398/60 +f 13/357/62 76/397/61 12/361/61 +f 14/353/63 77/399/62 13/357/62 +f 15/348/64 78/400/63 14/353/63 +f 15/348/64 80/401/65 79/402/64 +f 16/349/65 81/403/66 80/401/65 +f 18/330/67 81/404/66 17/342/66 +f 19/321/68 82/405/67 18/330/67 +f 19/321/68 84/406/69 83/407/68 +f 20/323/69 85/408/70 84/406/69 +f 22/375/71 85/409/70 21/380/70 +f 23/371/72 86/410/71 22/375/71 +f 23/371/72 88/411/73 87/412/72 +f 24/367/73 89/413/74 88/411/73 +f 26/359/75 89/414/74 25/363/74 +f 27/355/76 90/415/75 26/359/75 +f 28/350/77 91/416/76 27/355/76 +f 29/344/78 92/417/77 28/350/77 +f 30/345/79 93/418/78 29/344/78 +f 31/332/80 94/419/79 30/345/79 +f 32/324/81 95/420/80 31/332/80 +f 32/324/81 65/421/82 96/422/81 +f 2/346/52 65/423/82 1/326/82 +f 82/405/38 113/424/7 81/404/7 +f 69/425/13 100/426/39 68/388/39 +f 96/422/36 127/427/14 95/420/14 +f 83/428/19 114/429/38 82/405/38 +f 70/389/37 101/430/13 69/390/13 +f 65/421/6 128/431/36 96/422/36 +f 84/406/35 115/432/19 83/407/19 +f 71/433/17 102/434/37 70/389/37 +f 84/406/35 117/435/12 116/436/35 +f 72/393/50 103/437/17 71/391/17 +f 86/410/49 117/438/12 85/409/12 +f 73/392/2 104/439/50 72/393/50 +f 87/440/16 118/441/49 86/410/49 +f 74/394/48 105/442/2 73/395/2 +f 88/411/47 119/443/16 87/412/16 +f 75/396/21 106/444/48 74/394/48 +f 89/413/1 120/445/47 88/411/47 +f 76/397/46 107/446/21 75/398/21 +f 90/415/45 121/447/1 89/414/1 +f 77/448/11 108/449/46 76/397/46 +f 91/450/20 122/451/45 90/415/45 +f 77/399/11 110/452/44 109/453/11 +f 92/417/43 123/454/20 91/416/20 +f 79/455/15 110/452/44 78/400/44 +f 66/386/42 97/456/6 65/423/6 +f 93/457/10 124/458/43 92/417/43 +f 80/401/41 111/459/15 79/402/15 +f 67/460/18 98/461/42 66/386/42 +f 94/419/40 125/462/10 93/418/10 +f 81/403/7 112/463/41 80/401/41 +f 68/388/39 99/464/18 67/387/18 +f 95/465/14 126/466/40 94/419/40 +f 99/467/83 130/468/84 98/461/84 +f 99/464/83 132/469/85 131/470/83 +f 101/471/86 132/469/85 100/426/85 +f 102/434/87 133/472/86 101/430/86 +f 102/434/87 135/473/88 134/474/87 +f 103/437/88 136/475/89 135/476/88 +f 105/477/90 136/475/89 104/439/89 +f 105/442/90 138/478/91 137/479/90 +f 107/480/92 138/478/91 106/444/91 +f 107/446/92 140/481/93 139/482/92 +f 108/449/93 141/483/94 140/481/93 +f 110/452/95 141/484/94 109/453/94 +f 110/452/95 143/485/96 142/486/95 +f 111/459/96 144/487/97 143/488/96 +f 112/463/97 145/489/98 144/487/97 +f 113/424/98 146/490/99 145/491/98 +f 115/492/100 146/490/99 114/429/99 +f 115/432/100 148/493/101 147/494/100 +f 116/436/101 149/495/102 148/493/101 +f 118/441/103 149/496/102 117/438/102 +f 119/497/104 150/498/103 118/441/103 +f 119/443/104 152/499/105 151/500/104 +f 121/501/106 152/499/105 120/445/105 +f 121/447/106 154/502/107 153/503/106 +f 122/451/107 155/504/108 154/502/107 +f 124/458/109 155/505/108 123/454/108 +f 124/458/109 157/506/110 156/507/109 +f 125/462/110 158/508/111 157/509/110 +f 127/510/112 158/508/111 126/466/111 +f 127/427/112 160/511/113 159/512/112 +f 97/513/114 160/511/113 128/431/113 +f 97/456/114 130/468/84 129/514/114 +f 43/515/115 172/516/116 44/517/116 +f 42/518/117 171/519/115 43/515/115 +f 41/520/118 170/521/117 42/518/117 +f 40/522/119 169/523/118 41/524/118 +f 167/525/120 40/522/119 39/526/120 +f 38/527/121 167/528/120 39/526/120 +f 37/529/122 166/530/121 38/527/121 +f 164/531/123 37/529/122 36/532/123 +f 163/533/124 36/532/123 35/534/124 +f 162/535/125 35/534/124 34/536/125 +f 161/537/126 34/536/125 33/538/126 +f 64/539/127 161/540/126 33/538/126 +f 191/541/128 64/539/127 63/542/128 +f 190/543/129 63/542/128 62/544/129 +f 189/545/130 62/544/129 61/546/130 +f 188/547/131 61/546/130 60/548/131 +f 187/549/132 60/548/131 59/550/132 +f 186/551/133 59/550/132 58/552/133 +f 185/553/134 58/552/133 57/554/134 +f 56/555/135 185/556/134 57/554/134 +f 183/557/136 56/555/135 55/558/136 +f 182/559/137 55/558/136 54/560/137 +f 181/561/138 54/560/137 53/562/138 +f 52/563/139 181/564/138 53/562/138 +f 51/565/140 180/566/139 52/563/139 +f 178/567/141 51/565/140 50/568/141 +f 49/569/142 178/567/141 50/568/141 +f 48/570/143 177/571/142 49/569/142 +f 47/572/144 176/573/143 48/570/143 +f 174/574/145 47/572/144 46/575/145 +f 173/576/146 46/575/145 45/577/146 +f 172/516/116 45/577/146 44/517/116 +f 203/578/21 172/516/46 171/579/21 +f 204/580/46 173/581/11 172/516/46 +f 205/582/11 174/574/44 173/576/11 +f 206/583/44 175/584/15 174/574/44 +f 207/585/15 176/573/41 175/586/15 +f 208/587/41 177/571/7 176/573/41 +f 209/588/7 178/567/38 177/589/7 +f 210/590/38 179/591/19 178/567/38 +f 211/592/19 180/566/35 179/593/19 +f 212/594/35 181/564/12 180/566/35 +f 213/595/12 182/559/49 181/561/12 +f 214/596/49 183/597/16 182/559/49 +f 215/598/16 184/599/47 183/557/16 +f 216/600/47 185/556/1 184/599/47 +f 217/601/1 186/551/45 185/553/1 +f 218/602/45 187/603/20 186/551/45 +f 219/604/20 188/547/43 187/549/20 +f 220/605/43 189/606/10 188/547/43 +f 189/545/10 222/607/40 190/543/40 +f 222/607/40 191/608/14 190/543/40 +f 223/609/14 192/610/36 191/541/14 +f 224/611/36 161/540/6 192/610/36 +f 193/612/6 162/535/42 161/537/6 +f 194/613/42 163/614/18 162/535/42 +f 195/615/18 164/531/39 163/533/18 +f 164/531/39 197/616/13 165/617/13 +f 197/618/13 166/530/37 165/619/13 +f 198/620/37 167/528/17 166/530/37 +f 199/621/17 168/622/50 167/525/17 +f 200/623/50 169/523/2 168/622/50 +f 201/624/2 170/521/48 169/625/2 +f 202/626/48 171/519/21 170/521/48 +f 247/627/147 216/600/148 215/598/147 +f 246/628/149 215/629/147 214/596/149 +f 213/595/150 246/628/149 214/596/149 +f 212/594/151 245/630/150 213/631/150 +f 243/632/152 212/594/151 211/592/152 +f 242/633/153 211/634/152 210/590/153 +f 241/635/154 210/590/153 209/588/154 +f 240/636/155 209/637/154 208/587/155 +f 207/585/156 240/636/155 208/587/155 +f 206/583/157 239/638/156 207/639/156 +f 237/640/158 206/583/157 205/582/158 +f 236/641/159 205/642/158 204/580/159 +f 203/578/160 236/641/159 204/580/159 +f 234/643/161 203/644/160 202/626/161 +f 201/624/162 234/643/161 202/626/161 +f 232/645/163 201/646/162 200/623/163 +f 231/647/164 200/623/163 199/621/164 +f 198/620/165 231/648/164 199/649/164 +f 229/650/166 198/620/165 197/618/166 +f 228/651/167 197/616/166 196/652/167 +f 195/615/168 228/651/167 196/652/167 +f 226/653/169 195/654/168 194/613/169 +f 225/655/170 194/613/169 193/612/170 +f 256/656/171 193/657/170 224/611/171 +f 223/609/172 256/656/171 224/611/171 +f 254/658/173 223/659/172 222/607/173 +f 253/660/174 222/607/173 221/661/174 +f 252/662/175 221/663/174 220/605/175 +f 251/664/176 220/605/175 219/604/176 +f 218/602/177 251/665/176 219/666/176 +f 217/601/178 250/667/177 218/602/177 +f 248/668/148 217/669/178 216/600/148 +f 47/572/15 302/670/44 46/575/44 +f 34/536/42 289/671/6 33/538/6 +f 61/546/10 316/672/43 60/548/43 +f 47/572/15 304/673/41 303/674/15 +f 35/534/18 290/675/42 34/536/42 +f 62/544/40 317/676/10 61/546/10 +f 49/569/7 304/673/41 48/570/41 +f 35/534/18 292/677/39 291/678/18 +f 62/544/40 319/679/14 318/680/40 +f 49/569/7 306/681/38 305/682/7 +f 37/529/13 292/677/39 36/532/39 +f 64/539/36 319/679/14 63/542/14 +f 51/565/19 306/681/38 50/568/38 +f 38/527/37 293/683/13 37/529/13 +f 33/538/6 320/684/36 64/539/36 +f 52/563/35 307/685/19 51/565/19 +f 39/526/17 294/686/37 38/527/37 +f 52/563/35 309/687/12 308/688/35 +f 40/522/50 295/689/17 39/526/17 +f 54/560/49 309/687/12 53/562/12 +f 41/524/2 296/690/50 40/522/50 +f 55/558/16 310/691/49 54/560/49 +f 42/518/48 297/692/2 41/520/2 +f 56/555/47 311/693/16 55/558/16 +f 43/515/21 298/694/48 42/518/48 +f 57/554/1 312/695/47 56/555/47 +f 44/517/46 299/696/21 43/515/21 +f 58/552/45 313/697/1 57/554/1 +f 45/577/11 300/698/46 44/517/46 +f 59/550/20 314/699/45 58/552/45 +f 46/575/44 301/700/11 45/577/11 +f 60/548/43 315/701/20 59/550/20 +f 261/335/4 326/702/4 262/328/4 +f 262/328/4 327/703/4 263/385/4 +f 263/385/4 328/704/4 264/383/4 +f 264/383/4 329/705/4 265/378/4 +f 265/706/4 330/707/4 266/374/4 +f 266/374/4 331/708/4 267/370/4 +f 331/709/4 268/366/4 267/370/4 +f 332/710/4 269/362/4 268/366/4 +f 333/711/4 270/358/4 269/362/4 +f 334/712/4 271/354/4 270/358/4 +f 271/354/4 336/713/4 272/343/4 +f 272/343/4 337/714/4 273/336/4 +f 273/336/4 338/715/4 274/337/4 +f 338/715/4 275/331/4 274/337/4 +f 275/331/4 340/716/4 276/322/4 +f 276/322/4 341/717/4 277/384/4 +f 341/718/4 278/381/4 277/384/4 +f 342/719/4 279/376/4 278/381/4 +f 343/720/4 280/372/4 279/376/4 +f 344/721/4 281/368/4 280/372/4 +f 345/722/4 282/364/4 281/368/4 +f 346/723/4 283/360/4 282/364/4 +f 283/360/4 348/724/4 284/356/4 +f 348/724/4 285/351/4 284/356/4 +f 285/351/4 350/725/4 286/338/4 +f 350/725/4 287/339/4 286/338/4 +f 287/339/4 352/726/4 288/333/4 +f 288/333/4 321/727/4 257/325/4 +f 257/325/4 322/728/4 258/352/4 +f 322/728/4 259/340/4 258/352/4 +f 323/729/4 260/341/4 259/340/4 +f 260/341/4 325/730/4 261/335/4 +f 326/731/37 359/732/17 327/733/17 +f 340/734/35 373/735/12 341/736/12 +f 327/733/17 360/737/50 328/738/50 +f 341/739/12 374/740/49 342/741/49 +f 328/738/50 361/742/2 329/743/2 +f 342/741/49 375/744/16 343/745/16 +f 329/746/2 362/747/48 330/748/48 +f 343/745/16 376/749/47 344/750/47 +f 330/748/48 363/751/21 331/752/21 +f 344/750/47 377/753/1 345/754/1 +f 331/752/21 364/755/46 332/756/46 +f 345/757/1 378/758/45 346/759/45 +f 332/756/46 365/760/11 333/761/11 +f 346/759/45 379/762/20 347/763/20 +f 333/764/11 366/765/44 334/766/44 +f 347/763/20 380/767/43 348/768/43 +f 334/766/44 367/769/15 335/770/15 +f 321/771/6 354/772/42 322/773/42 +f 348/768/43 381/774/10 349/775/10 +f 336/776/41 367/769/15 368/777/41 +f 322/773/42 355/778/18 323/779/18 +f 349/780/10 382/781/40 350/782/40 +f 336/776/41 369/783/7 337/784/7 +f 323/779/18 356/785/39 324/786/39 +f 350/782/40 383/787/14 351/788/14 +f 337/789/7 370/790/38 338/791/38 +f 324/786/39 357/792/13 325/793/13 +f 351/788/14 384/794/36 352/795/36 +f 338/791/38 371/796/19 339/797/19 +f 325/798/13 358/799/37 326/731/37 +f 352/795/36 353/800/6 321/801/6 +f 339/797/19 372/802/35 340/734/35 +f 293/683/27 358/803/27 357/804/27 +f 294/686/27 359/805/27 358/803/27 +f 295/689/27 360/806/27 359/807/27 +f 296/690/27 361/808/27 360/806/27 +f 297/692/27 362/809/27 361/810/27 +f 298/694/27 363/811/27 362/809/27 +f 299/696/27 364/812/27 363/813/27 +f 301/700/27 364/812/27 300/698/27 +f 302/670/27 365/814/27 301/700/27 +f 303/674/27 366/815/27 302/670/27 +f 304/673/27 367/816/27 303/674/27 +f 304/673/27 369/817/27 368/818/27 +f 305/682/27 370/819/27 369/820/27 +f 307/685/27 370/819/27 306/681/27 +f 307/685/27 372/821/27 371/822/27 +f 308/688/27 373/823/27 372/821/27 +f 310/691/27 373/824/27 309/687/27 +f 311/693/27 374/825/27 310/691/27 +f 312/695/27 375/826/27 311/693/27 +f 313/697/27 376/827/27 312/695/27 +f 314/699/27 377/828/27 313/697/27 +f 315/701/27 378/829/27 314/699/27 +f 315/701/27 380/830/27 379/831/27 +f 317/676/27 380/830/27 316/672/27 +f 317/676/27 382/832/27 381/833/27 +f 319/679/27 382/832/27 318/680/27 +f 319/679/27 384/834/27 383/835/27 +f 320/684/27 353/836/27 384/834/27 +f 289/671/27 354/837/27 353/838/27 +f 291/678/27 354/837/27 290/675/27 +f 292/677/27 355/839/27 291/678/27 +f 292/677/27 357/840/27 356/841/27 +f 19/321/19 275/331/19 276/322/35 +f 32/324/36 288/333/36 257/325/6 +f 5/327/13 261/335/13 262/328/37 +f 18/330/38 274/337/38 275/331/19 +f 31/332/14 287/339/14 288/333/36 +f 4/334/39 260/341/39 261/335/13 +f 18/330/38 17/342/7 273/336/7 +f 31/332/14 30/345/40 286/338/40 +f 4/334/39 3/347/18 259/340/18 +f 17/342/7 16/349/41 272/343/41 +f 29/344/10 285/351/10 286/338/40 +f 2/346/42 258/352/42 259/340/18 +f 15/348/15 271/354/15 272/343/41 +f 28/350/43 284/356/43 285/351/10 +f 2/346/42 1/326/6 257/325/6 +f 14/353/44 270/358/44 271/354/15 +f 27/355/20 283/360/20 284/356/43 +f 13/357/11 269/362/11 270/358/44 +f 26/359/45 282/364/45 283/360/20 +f 12/361/46 268/366/46 269/362/11 +f 25/363/1 281/368/1 282/364/45 +f 11/365/21 267/370/21 268/366/46 +f 24/367/47 280/372/47 281/368/1 +f 10/369/48 266/374/48 267/370/21 +f 23/371/16 279/376/16 280/372/47 +f 9/373/2 265/706/2 266/374/48 +f 22/375/49 278/381/49 279/376/16 +f 8/377/50 264/383/50 265/378/2 +f 21/380/12 277/384/12 278/381/49 +f 7/382/17 263/385/17 264/383/50 +f 21/380/12 20/323/35 276/322/35 +f 6/329/37 262/328/37 263/385/17 +f 3/347/51 67/460/51 66/386/52 +f 4/334/53 68/388/53 67/387/51 +f 5/327/54 69/425/54 68/388/53 +f 5/327/54 6/329/55 70/389/55 +f 7/382/56 71/433/56 70/389/55 +f 8/377/57 72/393/57 71/391/56 +f 8/377/57 9/379/58 73/392/58 +f 9/373/58 10/369/59 74/394/59 +f 10/369/59 11/365/60 75/396/60 +f 11/365/60 12/361/61 76/397/61 +f 13/357/62 77/448/62 76/397/61 +f 14/353/63 78/400/63 77/399/62 +f 15/348/64 79/455/64 78/400/63 +f 15/348/64 16/349/65 80/401/65 +f 16/349/65 17/342/66 81/403/66 +f 18/330/67 82/405/67 81/404/66 +f 19/321/68 83/428/68 82/405/67 +f 19/321/68 20/323/69 84/406/69 +f 20/323/69 21/380/70 85/408/70 +f 22/375/71 86/410/71 85/409/70 +f 23/371/72 87/440/72 86/410/71 +f 23/371/72 24/367/73 88/411/73 +f 24/367/73 25/363/74 89/413/74 +f 26/359/75 90/415/75 89/414/74 +f 27/355/76 91/450/76 90/415/75 +f 28/350/77 92/417/77 91/416/76 +f 29/344/78 93/457/78 92/417/77 +f 30/345/79 94/419/79 93/418/78 +f 31/332/80 95/465/80 94/419/79 +f 32/324/81 96/422/81 95/420/80 +f 32/324/81 1/326/82 65/421/82 +f 2/346/52 66/386/52 65/423/82 +f 82/405/38 114/429/38 113/424/7 +f 69/425/13 101/471/13 100/426/39 +f 96/422/36 128/431/36 127/427/14 +f 83/428/19 115/492/19 114/429/38 +f 70/389/37 102/434/37 101/430/13 +f 65/421/6 97/513/6 128/431/36 +f 84/406/35 116/436/35 115/432/19 +f 71/433/17 103/842/17 102/434/37 +f 84/406/35 85/408/12 117/435/12 +f 72/393/50 104/439/50 103/437/17 +f 86/410/49 118/441/49 117/438/12 +f 73/392/2 105/477/2 104/439/50 +f 87/440/16 119/497/16 118/441/49 +f 74/394/48 106/444/48 105/442/2 +f 88/411/47 120/445/47 119/443/16 +f 75/396/21 107/480/21 106/444/48 +f 89/413/1 121/501/1 120/445/47 +f 76/397/46 108/449/46 107/446/21 +f 90/415/45 122/451/45 121/447/1 +f 77/448/11 109/843/11 108/449/46 +f 91/450/20 123/844/20 122/451/45 +f 77/399/11 78/400/44 110/452/44 +f 92/417/43 124/458/43 123/454/20 +f 79/455/15 111/845/15 110/452/44 +f 66/386/42 98/461/42 97/456/6 +f 93/457/10 125/846/10 124/458/43 +f 80/401/41 112/463/41 111/459/15 +f 67/460/18 99/467/18 98/461/42 +f 94/419/40 126/466/40 125/462/10 +f 81/403/7 113/847/7 112/463/41 +f 68/388/39 100/426/39 99/464/18 +f 95/465/14 127/510/14 126/466/40 +f 99/467/83 131/848/83 130/468/84 +f 99/464/83 100/426/85 132/469/85 +f 101/471/86 133/849/86 132/469/85 +f 102/434/87 134/474/87 133/472/86 +f 102/434/87 103/842/88 135/473/88 +f 103/437/88 104/439/89 136/475/89 +f 105/477/90 137/850/90 136/475/89 +f 105/442/90 106/444/91 138/478/91 +f 107/480/92 139/851/92 138/478/91 +f 107/446/92 108/449/93 140/481/93 +f 108/449/93 109/843/94 141/483/94 +f 110/452/95 142/486/95 141/484/94 +f 110/452/95 111/845/96 143/485/96 +f 111/459/96 112/463/97 144/487/97 +f 112/463/97 113/847/98 145/489/98 +f 113/424/98 114/429/99 146/490/99 +f 115/492/100 147/852/100 146/490/99 +f 115/432/100 116/436/101 148/493/101 +f 116/436/101 117/435/102 149/495/102 +f 118/441/103 150/498/103 149/496/102 +f 119/497/104 151/853/104 150/498/103 +f 119/443/104 120/445/105 152/499/105 +f 121/501/106 153/854/106 152/499/105 +f 121/447/106 122/451/107 154/502/107 +f 122/451/107 123/844/108 155/504/108 +f 124/458/109 156/507/109 155/505/108 +f 124/458/109 125/846/110 157/506/110 +f 125/462/110 126/466/111 158/508/111 +f 127/510/112 159/855/112 158/508/111 +f 127/427/112 128/431/113 160/511/113 +f 97/513/114 129/856/114 160/511/113 +f 97/456/114 98/461/84 130/468/84 +f 43/515/115 171/579/115 172/516/116 +f 42/518/117 170/521/117 171/519/115 +f 41/520/118 169/625/118 170/521/117 +f 40/522/119 168/622/119 169/523/118 +f 167/525/120 168/622/119 40/522/119 +f 38/527/121 166/530/121 167/528/120 +f 37/529/122 165/619/122 166/530/121 +f 164/531/123 165/617/122 37/529/122 +f 163/533/124 164/531/123 36/532/123 +f 162/535/125 163/614/124 35/534/124 +f 161/537/126 162/535/125 34/536/125 +f 64/539/127 192/610/127 161/540/126 +f 191/541/128 192/610/127 64/539/127 +f 190/543/129 191/608/128 63/542/128 +f 189/545/130 190/543/129 62/544/129 +f 188/547/131 189/606/130 61/546/130 +f 187/549/132 188/547/131 60/548/131 +f 186/551/133 187/603/132 59/550/132 +f 185/553/134 186/551/133 58/552/133 +f 56/555/135 184/599/135 185/556/134 +f 183/557/136 184/599/135 56/555/135 +f 182/559/137 183/597/136 55/558/136 +f 181/561/138 182/559/137 54/560/137 +f 52/563/139 180/566/139 181/564/138 +f 51/565/140 179/593/140 180/566/139 +f 178/567/141 179/591/140 51/565/140 +f 49/569/142 177/589/142 178/567/141 +f 48/570/143 176/573/143 177/571/142 +f 47/572/144 175/586/144 176/573/143 +f 174/574/145 175/584/144 47/572/144 +f 173/576/146 174/574/145 46/575/145 +f 172/516/116 173/581/146 45/577/146 +f 203/578/21 204/580/46 172/516/46 +f 204/580/46 205/642/11 173/581/11 +f 205/582/11 206/583/44 174/574/44 +f 206/583/44 207/639/15 175/584/15 +f 207/585/15 208/587/41 176/573/41 +f 208/587/41 209/637/7 177/571/7 +f 209/588/7 210/590/38 178/567/38 +f 210/590/38 211/634/19 179/591/19 +f 211/592/19 212/594/35 180/566/35 +f 212/594/35 213/631/12 181/564/12 +f 213/595/12 214/596/49 182/559/49 +f 214/596/49 215/629/16 183/597/16 +f 215/598/16 216/600/47 184/599/47 +f 216/600/47 217/669/1 185/556/1 +f 217/601/1 218/602/45 186/551/45 +f 218/602/45 219/666/20 187/603/20 +f 219/604/20 220/605/43 188/547/43 +f 220/605/43 221/663/10 189/606/10 +f 189/545/10 221/661/10 222/607/40 +f 222/607/40 223/659/14 191/608/14 +f 223/609/14 224/611/36 192/610/36 +f 224/611/36 193/657/6 161/540/6 +f 193/612/6 194/613/42 162/535/42 +f 194/613/42 195/654/18 163/614/18 +f 195/615/18 196/652/39 164/531/39 +f 164/531/39 196/652/39 197/616/13 +f 197/618/13 198/620/37 166/530/37 +f 198/620/37 199/649/17 167/528/17 +f 199/621/17 200/623/50 168/622/50 +f 200/623/50 201/646/2 169/523/2 +f 201/624/2 202/626/48 170/521/48 +f 202/626/48 203/644/21 171/519/21 +f 247/627/147 248/668/148 216/600/148 +f 246/628/149 247/857/147 215/629/147 +f 213/595/150 245/858/150 246/628/149 +f 212/594/151 244/859/151 245/630/150 +f 243/632/152 244/859/151 212/594/151 +f 242/633/153 243/860/152 211/634/152 +f 241/635/154 242/633/153 210/590/153 +f 240/636/155 241/861/154 209/637/154 +f 207/585/156 239/862/156 240/636/155 +f 206/583/157 238/863/157 239/638/156 +f 237/640/158 238/863/157 206/583/157 +f 236/641/159 237/864/158 205/642/158 +f 203/578/160 235/865/160 236/641/159 +f 234/643/161 235/866/160 203/644/160 +f 201/624/162 233/867/162 234/643/161 +f 232/645/163 233/868/162 201/646/162 +f 231/647/164 232/645/163 200/623/163 +f 198/620/165 230/869/165 231/648/164 +f 229/650/166 230/869/165 198/620/165 +f 228/651/167 229/870/166 197/616/166 +f 195/615/168 227/871/168 228/651/167 +f 226/653/169 227/872/168 195/654/168 +f 225/655/170 226/653/169 194/613/169 +f 256/656/171 225/873/170 193/657/170 +f 223/609/172 255/874/172 256/656/171 +f 254/658/173 255/875/172 223/659/172 +f 253/660/174 254/658/173 222/607/173 +f 252/662/175 253/876/174 221/663/174 +f 251/664/176 252/662/175 220/605/175 +f 218/602/177 250/667/177 251/665/176 +f 217/601/178 249/877/178 250/667/177 +f 248/668/148 249/878/178 217/669/178 +f 47/572/15 303/674/15 302/670/44 +f 34/536/42 290/675/42 289/671/6 +f 61/546/10 317/676/10 316/672/43 +f 47/572/15 48/570/41 304/673/41 +f 35/534/18 291/678/18 290/675/42 +f 62/544/40 318/680/40 317/676/10 +f 49/569/7 305/682/7 304/673/41 +f 35/534/18 36/532/39 292/677/39 +f 62/544/40 63/542/14 319/679/14 +f 49/569/7 50/568/38 306/681/38 +f 37/529/13 293/683/13 292/677/39 +f 64/539/36 320/684/36 319/679/14 +f 51/565/19 307/685/19 306/681/38 +f 38/527/37 294/686/37 293/683/13 +f 33/538/6 289/671/6 320/684/36 +f 52/563/35 308/688/35 307/685/19 +f 39/526/17 295/689/17 294/686/37 +f 52/563/35 53/562/12 309/687/12 +f 40/522/50 296/690/50 295/689/17 +f 54/560/49 310/691/49 309/687/12 +f 41/524/2 297/879/2 296/690/50 +f 55/558/16 311/693/16 310/691/49 +f 42/518/48 298/694/48 297/692/2 +f 56/555/47 312/695/47 311/693/16 +f 43/515/21 299/696/21 298/694/48 +f 57/554/1 313/697/1 312/695/47 +f 44/517/46 300/698/46 299/696/21 +f 58/552/45 314/699/45 313/697/1 +f 45/577/11 301/700/11 300/698/46 +f 59/550/20 315/701/20 314/699/45 +f 46/575/44 302/670/44 301/700/11 +f 60/548/43 316/672/43 315/701/20 +f 261/335/4 325/880/4 326/702/4 +f 262/328/4 326/702/4 327/703/4 +f 263/385/4 327/881/4 328/704/4 +f 264/383/4 328/704/4 329/705/4 +f 265/706/4 329/882/4 330/707/4 +f 266/374/4 330/707/4 331/708/4 +f 331/709/4 332/710/4 268/366/4 +f 332/710/4 333/883/4 269/362/4 +f 333/711/4 334/712/4 270/358/4 +f 334/712/4 335/884/4 271/354/4 +f 271/354/4 335/885/4 336/713/4 +f 272/343/4 336/713/4 337/714/4 +f 273/336/4 337/886/4 338/715/4 +f 338/715/4 339/887/4 275/331/4 +f 275/331/4 339/888/4 340/716/4 +f 276/322/4 340/716/4 341/717/4 +f 341/718/4 342/719/4 278/381/4 +f 342/719/4 343/889/4 279/376/4 +f 343/720/4 344/721/4 280/372/4 +f 344/721/4 345/890/4 281/368/4 +f 345/722/4 346/723/4 282/364/4 +f 346/723/4 347/891/4 283/360/4 +f 283/360/4 347/892/4 348/724/4 +f 348/724/4 349/893/4 285/351/4 +f 285/351/4 349/894/4 350/725/4 +f 350/725/4 351/895/4 287/339/4 +f 287/339/4 351/896/4 352/726/4 +f 288/333/4 352/726/4 321/727/4 +f 257/325/4 321/897/4 322/728/4 +f 322/728/4 323/898/4 259/340/4 +f 323/729/4 324/899/4 260/341/4 +f 260/341/4 324/899/4 325/730/4 +f 326/731/37 358/799/37 359/732/17 +f 340/734/35 372/802/35 373/735/12 +f 327/733/17 359/732/17 360/737/50 +f 341/739/12 373/900/12 374/740/49 +f 328/738/50 360/737/50 361/742/2 +f 342/741/49 374/740/49 375/744/16 +f 329/746/2 361/901/2 362/747/48 +f 343/745/16 375/744/16 376/749/47 +f 330/748/48 362/747/48 363/751/21 +f 344/750/47 376/749/47 377/753/1 +f 331/752/21 363/751/21 364/755/46 +f 345/757/1 377/902/1 378/758/45 +f 332/756/46 364/755/46 365/760/11 +f 346/759/45 378/758/45 379/762/20 +f 333/764/11 365/903/11 366/765/44 +f 347/763/20 379/762/20 380/767/43 +f 334/766/44 366/765/44 367/769/15 +f 321/771/6 353/904/6 354/772/42 +f 348/768/43 380/767/43 381/774/10 +f 336/776/41 335/770/15 367/769/15 +f 322/773/42 354/772/42 355/778/18 +f 349/780/10 381/905/10 382/781/40 +f 336/776/41 368/777/41 369/783/7 +f 323/779/18 355/778/18 356/785/39 +f 350/782/40 382/781/40 383/787/14 +f 337/789/7 369/906/7 370/790/38 +f 324/786/39 356/785/39 357/792/13 +f 351/788/14 383/787/14 384/794/36 +f 338/791/38 370/790/38 371/796/19 +f 325/798/13 357/907/13 358/799/37 +f 352/795/36 384/794/36 353/800/6 +f 339/797/19 371/796/19 372/802/35 +f 293/683/27 294/686/27 358/803/27 +f 294/686/27 295/689/27 359/805/27 +f 295/689/27 296/690/27 360/806/27 +f 296/690/27 297/879/27 361/808/27 +f 297/692/27 298/694/27 362/809/27 +f 298/694/27 299/696/27 363/811/27 +f 299/696/27 300/698/27 364/812/27 +f 301/700/27 365/908/27 364/812/27 +f 302/670/27 366/815/27 365/814/27 +f 303/674/27 367/909/27 366/815/27 +f 304/673/27 368/818/27 367/816/27 +f 304/673/27 305/682/27 369/817/27 +f 305/682/27 306/681/27 370/819/27 +f 307/685/27 371/910/27 370/819/27 +f 307/685/27 308/688/27 372/821/27 +f 308/688/27 309/687/27 373/823/27 +f 310/691/27 374/825/27 373/824/27 +f 311/693/27 375/911/27 374/825/27 +f 312/695/27 376/827/27 375/826/27 +f 313/697/27 377/912/27 376/827/27 +f 314/699/27 378/829/27 377/828/27 +f 315/701/27 379/913/27 378/829/27 +f 315/701/27 316/672/27 380/830/27 +f 317/676/27 381/914/27 380/830/27 +f 317/676/27 318/680/27 382/832/27 +f 319/679/27 383/915/27 382/832/27 +f 319/679/27 320/684/27 384/834/27 +f 320/684/27 289/671/27 353/836/27 +f 289/671/27 290/675/27 354/837/27 +f 291/678/27 355/916/27 354/837/27 +f 292/677/27 356/841/27 355/839/27 +f 292/677/27 293/683/27 357/840/27 +o Lights +v -0.937500 2.494797 3.181982 +v -0.937500 2.318020 3.005205 +v -0.937500 2.671573 3.005205 +v -0.937500 2.494797 2.828429 +v -0.937500 5.375001 4.125002 +v -0.937500 5.625001 4.125002 +v -0.937500 5.375001 4.375002 +v -0.937500 5.625001 4.375002 +v -0.687500 5.375001 4.125002 +v -0.687500 5.625001 4.125002 +v -0.687500 5.375001 4.375002 +v -0.687500 5.625001 4.375002 +v -0.687500 5.375001 -4.375000 +v -0.687500 5.625001 -4.375000 +v -0.687500 5.375001 -4.125000 +v -0.687500 5.625001 -4.125000 +v -0.937500 5.375001 -4.375000 +v -0.937500 5.625001 -4.375000 +v -0.937500 5.375001 -4.125000 +v -0.937500 5.625001 -4.125000 +v -0.937500 1.375000 -0.124999 +v -0.937500 1.375000 0.125001 +v -0.937500 1.125000 -0.124999 +v -0.937500 1.125000 0.125001 +v -0.687500 1.375000 -0.124999 +v -0.687500 1.375000 0.125001 +v -0.687500 1.125000 -0.124999 +v -0.687500 1.125000 0.125001 +v -0.687500 9.875002 -0.124999 +v -0.687500 9.875002 0.125001 +v -0.687500 9.625002 -0.124999 +v -0.687500 9.625002 0.125001 +v -0.937500 9.875002 -0.124999 +v -0.937500 9.875002 0.125001 +v -0.937500 9.625002 -0.124999 +v -0.937500 9.625002 0.125001 +v -0.687500 2.494797 2.828429 +v -0.687500 2.671573 3.005205 +v -0.687500 2.318020 3.005205 +v -0.687500 2.494797 3.181982 +v -0.687500 8.505206 -3.181980 +v -0.687500 8.681982 -3.005203 +v -0.687500 8.328429 -3.005203 +v -0.687500 8.505205 -2.828426 +v -0.937500 8.505206 -3.181980 +v -0.937500 8.681982 -3.005203 +v -0.937500 8.328429 -3.005203 +v -0.937500 8.505205 -2.828426 +v -0.937500 2.671574 -3.005204 +v -0.937500 2.494797 -2.828427 +v -0.937500 2.494797 -3.181981 +v -0.937500 2.318020 -3.005204 +v -0.687500 2.671574 -3.005204 +v -0.687500 2.494797 -2.828427 +v -0.687500 2.494797 -3.181981 +v -0.687500 2.318020 -3.005204 +v -0.687500 8.681982 3.005205 +v -0.687500 8.505205 3.181982 +v -0.687500 8.505205 2.828429 +v -0.687500 8.328428 3.005205 +v -0.937500 8.681982 3.005205 +v -0.937500 8.505205 3.181982 +v -0.937500 8.505205 2.828429 +v -0.937500 8.328428 3.005205 +v 0.937500 2.494797 -3.181982 +v 0.937500 2.318020 -3.005205 +v 0.937500 2.671573 -3.005205 +v 0.937500 2.494797 -2.828429 +v 0.937500 5.375001 -4.125002 +v 0.937500 5.625001 -4.125002 +v 0.937500 5.375001 -4.375002 +v 0.937500 5.625001 -4.375002 +v 0.687500 5.375001 -4.125002 +v 0.687500 5.625001 -4.125002 +v 0.687500 5.375001 -4.375002 +v 0.687500 5.625001 -4.375002 +v 0.687500 5.375001 4.375000 +v 0.687500 5.625001 4.375000 +v 0.687500 5.375001 4.125000 +v 0.687500 5.625001 4.125000 +v 0.937500 5.375001 4.375000 +v 0.937500 5.625001 4.375000 +v 0.937500 5.375001 4.125000 +v 0.937500 5.625001 4.125000 +v 0.937500 1.375000 0.124999 +v 0.937500 1.375000 -0.125001 +v 0.937500 1.125000 0.124999 +v 0.937500 1.125000 -0.125001 +v 0.687500 1.375000 0.124999 +v 0.687500 1.375000 -0.125001 +v 0.687500 1.125000 0.124999 +v 0.687500 1.125000 -0.125001 +v 0.687500 9.875002 0.124999 +v 0.687500 9.875002 -0.125001 +v 0.687500 9.625002 0.124999 +v 0.687500 9.625002 -0.125001 +v 0.937500 9.875002 0.124999 +v 0.937500 9.875002 -0.125001 +v 0.937500 9.625002 0.124999 +v 0.937500 9.625002 -0.125001 +v 0.687500 2.494797 -2.828429 +v 0.687500 2.671573 -3.005205 +v 0.687500 2.318020 -3.005205 +v 0.687500 2.494797 -3.181982 +v 0.687500 8.505206 3.181980 +v 0.687500 8.681982 3.005203 +v 0.687500 8.328429 3.005203 +v 0.687500 8.505205 2.828426 +v 0.937500 8.505206 3.181980 +v 0.937500 8.681982 3.005203 +v 0.937500 8.328429 3.005203 +v 0.937500 8.505205 2.828426 +v 0.937500 2.671574 3.005204 +v 0.937500 2.494797 2.828427 +v 0.937500 2.494797 3.181981 +v 0.937500 2.318020 3.005204 +v 0.687500 2.671574 3.005204 +v 0.687500 2.494797 2.828427 +v 0.687500 2.494797 3.181981 +v 0.687500 2.318020 3.005204 +v 0.687500 8.681982 -3.005205 +v 0.687500 8.505205 -3.181982 +v 0.687500 8.505205 -2.828429 +v 0.687500 8.328428 -3.005205 +v 0.937500 8.681982 -3.005205 +v 0.937500 8.505205 -3.181982 +v 0.937500 8.505205 -2.828429 +v 0.937500 8.328428 -3.005205 +vt 0.473214 0.641791 +vt 0.464286 0.626866 +vt 0.473214 0.626866 +vt 0.446429 0.626866 +vt 0.455357 0.641791 +vt 0.446429 0.641791 +vt 0.455357 0.626866 +vt 0.464286 0.611940 +vt 0.455357 0.611940 +vt 0.464286 0.641791 +vt 0.455357 0.656716 +vt 0.464286 0.641791 +vt 0.455357 0.656716 +vt 0.455357 0.641791 +vt 0.464286 0.611940 +vt 0.455357 0.626866 +vt 0.455357 0.611940 +vt 0.464286 0.626866 +vt 0.446429 0.626866 +vt 0.446429 0.641791 +vt 0.473214 0.641791 +vt 0.473214 0.626866 +vt 0.473214 0.641791 +vt 0.464286 0.626866 +vt 0.473214 0.626866 +vt 0.446429 0.626866 +vt 0.455357 0.641791 +vt 0.446429 0.641791 +vt 0.455357 0.626866 +vt 0.464286 0.611940 +vt 0.455357 0.611940 +vt 0.464286 0.656716 +vt 0.455357 0.656716 +vt 0.464286 0.641791 +vt 0.455357 0.656716 +vt 0.455357 0.641791 +vt 0.464286 0.611940 +vt 0.455357 0.626866 +vt 0.455357 0.611940 +vt 0.464286 0.626866 +vt 0.446429 0.626866 +vt 0.446429 0.641791 +vt 0.473214 0.641791 +vt 0.473214 0.626866 +vt 0.473214 0.641791 +vt 0.464286 0.626866 +vt 0.473214 0.626866 +vt 0.446429 0.626866 +vt 0.455357 0.641791 +vt 0.446429 0.641791 +vt 0.455357 0.626866 +vt 0.464286 0.611940 +vt 0.455357 0.611940 +vt 0.464286 0.641791 +vt 0.455357 0.656716 +vt 0.464286 0.641791 +vt 0.455357 0.656716 +vt 0.455357 0.641791 +vt 0.455357 0.611940 +vt 0.464286 0.626866 +vt 0.455357 0.626866 +vt 0.446429 0.626866 +vt 0.446429 0.641791 +vt 0.473214 0.641791 +vt 0.473214 0.626866 +vt 0.473214 0.641791 +vt 0.464286 0.626866 +vt 0.473214 0.626866 +vt 0.446429 0.626866 +vt 0.455357 0.641791 +vt 0.446429 0.641791 +vt 0.455357 0.626866 +vt 0.464286 0.611940 +vt 0.455357 0.611940 +vt 0.464286 0.656716 +vt 0.455357 0.656716 +vt 0.464286 0.641791 +vt 0.455357 0.656716 +vt 0.455357 0.641791 +vt 0.464286 0.611940 +vt 0.455357 0.626866 +vt 0.455357 0.611940 +vt 0.464286 0.626866 +vt 0.446429 0.626866 +vt 0.446429 0.641791 +vt 0.473214 0.641791 +vt 0.473214 0.626866 +vt 0.473214 0.641791 +vt 0.464286 0.626866 +vt 0.473214 0.626866 +vt 0.446429 0.626866 +vt 0.455357 0.641791 +vt 0.446429 0.641791 +vt 0.455357 0.626866 +vt 0.464286 0.611940 +vt 0.455357 0.611940 +vt 0.464286 0.641791 +vt 0.455357 0.656716 +vt 0.464286 0.641791 +vt 0.455357 0.656716 +vt 0.455357 0.641791 +vt 0.464286 0.611940 +vt 0.455357 0.626866 +vt 0.455357 0.611940 +vt 0.464286 0.626866 +vt 0.446429 0.626866 +vt 0.446429 0.641791 +vt 0.473214 0.641791 +vt 0.473214 0.626866 +vt 0.473214 0.641791 +vt 0.464286 0.626866 +vt 0.473214 0.626866 +vt 0.446429 0.626866 +vt 0.455357 0.641791 +vt 0.446429 0.641791 +vt 0.455357 0.626866 +vt 0.464286 0.611940 +vt 0.455357 0.611940 +vt 0.464286 0.656716 +vt 0.455357 0.656716 +vt 0.464286 0.641791 +vt 0.455357 0.656716 +vt 0.455357 0.641791 +vt 0.464286 0.611940 +vt 0.455357 0.626866 +vt 0.455357 0.611940 +vt 0.464286 0.626866 +vt 0.446429 0.626866 +vt 0.446429 0.641791 +vt 0.473214 0.641791 +vt 0.473214 0.626866 +vt 0.473214 0.641791 +vt 0.464286 0.626866 +vt 0.473214 0.626866 +vt 0.446429 0.626866 +vt 0.455357 0.641791 +vt 0.446429 0.641791 +vt 0.455357 0.626866 +vt 0.464286 0.611940 +vt 0.455357 0.611940 +vt 0.464286 0.641791 +vt 0.455357 0.656716 +vt 0.464286 0.641791 +vt 0.455357 0.656716 +vt 0.455357 0.641791 +vt 0.455357 0.611940 +vt 0.464286 0.626866 +vt 0.455357 0.626866 +vt 0.446429 0.626866 +vt 0.446429 0.641791 +vt 0.473214 0.641791 +vt 0.473214 0.626866 +vt 0.473214 0.641791 +vt 0.464286 0.626866 +vt 0.473214 0.626866 +vt 0.446429 0.626866 +vt 0.455357 0.641791 +vt 0.446429 0.641791 +vt 0.455357 0.626866 +vt 0.464286 0.611940 +vt 0.455357 0.611940 +vt 0.464286 0.656716 +vt 0.455357 0.656716 +vt 0.464286 0.641791 +vt 0.455357 0.656716 +vt 0.455357 0.641791 +vt 0.464286 0.611940 +vt 0.455357 0.626866 +vt 0.455357 0.611940 +vt 0.464286 0.626866 +vt 0.446429 0.626866 +vt 0.446429 0.641791 +vt 0.473214 0.641791 +vt 0.473214 0.626866 +vt 0.464286 0.656716 +vt 0.464286 0.656716 +vt 0.464286 0.641791 +vt 0.464286 0.656716 +vt 0.464286 0.656716 +vt 0.464286 0.656716 +vt 0.464286 0.611940 +vt 0.464286 0.641791 +vt 0.464286 0.656716 +vt 0.464286 0.656716 +vt 0.464286 0.656716 +vt 0.464286 0.641791 +vt 0.464286 0.656716 +vt 0.464286 0.656716 +vt 0.464286 0.656716 +vt 0.464286 0.611940 +vt 0.464286 0.641791 +vt 0.464286 0.656716 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.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.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +s off +f 649/917/179 647/918/179 645/919/179 +f 646/920/180 652/921/180 650/922/180 +f 647/918/181 652/921/181 648/923/181 +f 645/924/182 648/923/182 646/925/182 +f 651/926/183 650/927/183 652/921/183 +f 654/928/183 655/929/183 653/930/183 +f 660/931/182 657/932/182 659/933/182 +f 658/934/184 653/930/184 657/932/184 +f 659/935/179 653/930/179 655/936/179 +f 656/937/180 658/934/180 660/938/180 +f 665/939/184 663/940/184 661/941/184 +f 662/942/181 668/943/181 666/944/181 +f 663/940/179 668/943/179 664/945/179 +f 661/946/182 664/945/182 662/947/182 +f 668/943/183 665/948/183 666/949/183 +f 670/950/183 671/951/183 669/952/183 +f 676/953/182 673/954/182 675/955/182 +f 674/956/180 669/952/180 673/954/180 +f 675/957/184 669/952/184 671/958/184 +f 672/959/181 674/956/181 676/960/181 +f 677/961/185 642/962/185 644/963/185 +f 643/964/186 680/965/186 678/966/186 +f 642/962/187 680/965/187 641/967/187 +f 644/968/182 641/967/182 643/969/182 +f 679/970/183 678/971/183 680/965/183 +f 682/972/183 683/973/183 681/974/183 +f 687/975/182 686/976/182 685/977/182 +f 686/976/188 681/974/188 685/977/188 +f 687/978/185 681/974/185 683/979/185 +f 684/980/186 686/976/186 688/981/186 +f 693/982/188 691/983/188 689/984/188 +f 690/985/187 696/986/187 694/987/187 +f 691/983/185 696/986/185 692/988/185 +f 689/989/182 692/988/182 690/990/182 +f 696/986/183 693/991/183 694/992/183 +f 698/993/183 699/994/183 697/995/183 +f 704/996/182 701/997/182 703/998/182 +f 702/999/186 697/995/186 701/997/186 +f 703/1000/188 697/995/188 699/1001/188 +f 700/1002/187 702/999/187 704/1003/187 +f 713/1004/179 711/1005/179 709/1006/179 +f 710/1007/180 716/1008/180 714/1009/180 +f 711/1005/184 716/1008/184 712/1010/184 +f 709/1011/183 712/1010/183 710/1012/183 +f 715/1013/182 714/1014/182 716/1008/182 +f 718/1015/182 719/1016/182 717/1017/182 +f 724/1018/183 721/1019/183 723/1020/183 +f 722/1021/181 717/1017/181 721/1019/181 +f 723/1022/179 717/1017/179 719/1023/179 +f 720/1024/180 722/1021/180 724/1025/180 +f 729/1026/181 727/1027/181 725/1028/181 +f 726/1029/184 732/1030/184 730/1031/184 +f 727/1027/179 732/1030/179 728/1032/179 +f 725/1033/183 728/1032/183 726/1034/183 +f 732/1030/182 729/1035/182 730/1036/182 +f 734/1037/182 735/1038/182 733/1039/182 +f 740/1040/183 737/1041/183 739/1042/183 +f 738/1043/180 733/1039/180 737/1041/180 +f 739/1044/181 733/1039/181 735/1045/181 +f 736/1046/184 738/1043/184 740/1047/184 +f 741/1048/187 706/1049/187 708/1050/187 +f 707/1051/188 744/1052/188 742/1053/188 +f 706/1049/185 744/1052/185 705/1054/185 +f 708/1055/183 705/1054/183 707/1056/183 +f 743/1057/182 742/1058/182 744/1052/182 +f 746/1059/182 747/1060/182 745/1061/182 +f 751/1062/183 750/1063/183 749/1064/183 +f 750/1063/186 745/1061/186 749/1064/186 +f 751/1065/187 745/1061/187 747/1066/187 +f 748/1067/188 750/1063/188 752/1068/188 +f 757/1069/186 755/1070/186 753/1071/186 +f 754/1072/185 760/1073/185 758/1074/185 +f 755/1070/187 760/1073/187 756/1075/187 +f 753/1076/183 756/1075/183 754/1077/183 +f 760/1073/182 757/1078/182 758/1079/182 +f 762/1080/182 763/1081/182 761/1082/182 +f 768/1083/183 765/1084/183 767/1085/183 +f 766/1086/188 761/1082/188 765/1084/188 +f 767/1087/186 761/1082/186 763/1088/186 +f 764/1089/185 766/1086/185 768/1090/185 +f 649/917/179 651/926/179 647/918/179 +f 646/920/180 648/923/180 652/921/180 +f 647/918/181 651/926/181 652/921/181 +f 645/924/182 647/918/182 648/923/182 +f 651/926/183 649/1091/183 650/927/183 +f 654/928/183 656/1092/183 655/929/183 +f 660/931/182 658/934/182 657/932/182 +f 658/934/184 654/928/184 653/930/184 +f 659/935/179 657/932/179 653/930/179 +f 656/937/180 654/928/180 658/934/180 +f 665/939/184 667/1093/184 663/940/184 +f 662/942/181 664/945/181 668/943/181 +f 663/940/179 667/1093/179 668/943/179 +f 661/946/182 663/940/182 664/945/182 +f 668/943/183 667/1093/183 665/948/183 +f 670/950/183 672/1094/183 671/951/183 +f 676/953/182 674/956/182 673/954/182 +f 674/956/180 670/950/180 669/952/180 +f 675/957/184 673/954/184 669/952/184 +f 672/959/181 670/950/181 674/956/181 +f 677/961/185 679/970/185 642/962/185 +f 643/964/186 641/967/186 680/965/186 +f 642/962/187 679/970/187 680/965/187 +f 644/968/182 642/962/182 641/967/182 +f 679/970/183 677/1095/183 678/971/183 +f 682/972/183 684/1096/183 683/973/183 +f 687/975/182 688/1097/182 686/976/182 +f 686/976/188 682/972/188 681/974/188 +f 687/978/185 685/977/185 681/974/185 +f 684/980/186 682/972/186 686/976/186 +f 693/982/188 695/1098/188 691/983/188 +f 690/985/187 692/988/187 696/986/187 +f 691/983/185 695/1098/185 696/986/185 +f 689/989/182 691/983/182 692/988/182 +f 696/986/183 695/1098/183 693/991/183 +f 698/993/183 700/1099/183 699/994/183 +f 704/996/182 702/999/182 701/997/182 +f 702/999/186 698/993/186 697/995/186 +f 703/1000/188 701/997/188 697/995/188 +f 700/1002/187 698/993/187 702/999/187 +f 713/1004/179 715/1013/179 711/1005/179 +f 710/1007/180 712/1010/180 716/1008/180 +f 711/1005/184 715/1013/184 716/1008/184 +f 709/1011/183 711/1005/183 712/1010/183 +f 715/1013/182 713/1100/182 714/1014/182 +f 718/1015/182 720/1101/182 719/1016/182 +f 724/1018/183 722/1021/183 721/1019/183 +f 722/1021/181 718/1015/181 717/1017/181 +f 723/1022/179 721/1019/179 717/1017/179 +f 720/1024/180 718/1015/180 722/1021/180 +f 729/1026/181 731/1102/181 727/1027/181 +f 726/1029/184 728/1032/184 732/1030/184 +f 727/1027/179 731/1102/179 732/1030/179 +f 725/1033/183 727/1027/183 728/1032/183 +f 732/1030/182 731/1102/182 729/1035/182 +f 734/1037/182 736/1103/182 735/1038/182 +f 740/1040/183 738/1043/183 737/1041/183 +f 738/1043/180 734/1037/180 733/1039/180 +f 739/1044/181 737/1041/181 733/1039/181 +f 736/1046/184 734/1037/184 738/1043/184 +f 741/1048/187 743/1057/187 706/1049/187 +f 707/1051/188 705/1054/188 744/1052/188 +f 706/1049/185 743/1057/185 744/1052/185 +f 708/1055/183 706/1049/183 705/1054/183 +f 743/1057/182 741/1104/182 742/1058/182 +f 746/1059/182 748/1105/182 747/1060/182 +f 751/1062/183 752/1106/183 750/1063/183 +f 750/1063/186 746/1059/186 745/1061/186 +f 751/1065/187 749/1064/187 745/1061/187 +f 748/1067/188 746/1059/188 750/1063/188 +f 757/1069/186 759/1107/186 755/1070/186 +f 754/1072/185 756/1075/185 760/1073/185 +f 755/1070/187 759/1107/187 760/1073/187 +f 753/1076/183 755/1070/183 756/1075/183 +f 760/1073/182 759/1107/182 757/1078/182 +f 762/1080/182 764/1108/182 763/1081/182 +f 768/1083/183 766/1086/183 765/1084/183 +f 766/1086/188 762/1080/188 761/1082/188 +f 767/1087/186 765/1084/186 761/1082/186 +f 764/1089/185 762/1080/185 766/1086/185 +o Plasma +v -0.250000 5.500000 -4.250000 +v -0.250000 6.329134 -4.168337 +v -0.249999 7.126407 -3.926488 +v -0.250000 7.861172 -3.533745 +v -0.250000 8.505203 -3.005203 +v -0.250000 9.033746 -2.361173 +v -0.250000 9.426489 -1.626404 +v -0.250000 9.668339 -0.829134 +v -0.250000 9.750000 0.000000 +v -0.250000 9.668339 0.829134 +v -0.250000 9.426489 1.626404 +v -0.250000 9.033746 2.361174 +v -0.250000 8.505203 3.005203 +v -0.250000 7.861172 3.533746 +v -0.249999 7.126402 3.926488 +v -0.250000 6.329134 4.168338 +v -0.250000 5.500000 4.250000 +v -0.250000 4.670863 4.168337 +v -0.250000 3.873595 3.926487 +v -0.250000 3.138825 3.533745 +v -0.250000 2.494793 3.005201 +v -0.250000 1.966251 2.361171 +v -0.250000 1.573512 1.626402 +v -0.250000 1.331663 0.829130 +v -0.250000 1.250000 -0.000004 +v -0.250000 1.331663 -0.829138 +v -0.250000 1.573512 -1.626409 +v -0.250000 1.966255 -2.361177 +v -0.250000 2.494802 -3.005207 +v -0.250000 3.138829 -3.533749 +v -0.250000 3.873603 -3.926490 +v -0.250000 4.670871 -4.168338 +v 0.250000 5.500000 -4.250000 +v 0.250000 6.329134 -4.168337 +v 0.250001 7.126407 -3.926488 +v 0.250000 7.861172 -3.533745 +v 0.250000 8.505203 -3.005203 +v 0.250000 9.033746 -2.361173 +v 0.250000 9.426489 -1.626404 +v 0.250000 9.668339 -0.829134 +v 0.250000 9.750000 0.000000 +v 0.250000 9.668339 0.829134 +v 0.250000 9.426489 1.626404 +v 0.250000 9.033746 2.361174 +v 0.250000 8.505203 3.005203 +v 0.250000 7.861172 3.533746 +v 0.250001 7.126402 3.926488 +v 0.250000 6.329134 4.168338 +v 0.250000 5.500000 4.250000 +v 0.250000 4.670863 4.168337 +v 0.250000 3.873595 3.926487 +v 0.250000 3.138825 3.533745 +v 0.250000 2.494793 3.005201 +v 0.250000 1.966251 2.361171 +v 0.250000 1.573512 1.626402 +v 0.250000 1.331663 0.829130 +v 0.250000 1.250000 -0.000004 +v 0.250000 1.331663 -0.829138 +v 0.250000 1.573512 -1.626409 +v 0.250000 1.966255 -2.361177 +v 0.250000 2.494802 -3.005207 +v 0.250000 3.138829 -3.533749 +v 0.250000 3.873603 -3.926490 +v 0.250000 4.670871 -4.168338 +vt 0.500000 0.249958 +vt 0.000000 0.749958 +vt 0.000000 0.249958 +vt 0.500000 0.249958 +vt 0.000000 0.749958 +vt 0.000000 0.249958 +vt 1.000000 0.249958 +vt 0.500000 0.749958 +vt 1.000000 0.249958 +vt 0.500000 0.749958 +vt 0.500000 0.249958 +vt 0.000000 0.749958 +vt 0.000000 0.249958 +vt 0.500000 0.249958 +vt 0.000000 0.749958 +vt 0.000000 0.249958 +vt 1.000000 0.249958 +vt 0.500000 0.749958 +vt 1.000000 0.249958 +vt 0.500000 0.749958 +vt 0.500000 0.249958 +vt 0.000000 0.749958 +vt 0.000000 0.249958 +vt 0.000000 0.249958 +vt 0.500000 0.749958 +vt 0.000000 0.749958 +vt 1.000000 0.249958 +vt 0.500000 0.749958 +vt 1.000000 0.249958 +vt 0.500000 0.249958 +vt 0.500000 0.249958 +vt 0.000000 0.749958 +vt 0.000000 0.249958 +vt 0.500000 0.249958 +vt 0.000000 0.749958 +vt 0.000000 0.249958 +vt 1.000000 0.249958 +vt 0.500000 0.749958 +vt 0.500000 0.249958 +vt 0.000000 0.749958 +vt 0.000000 0.249958 +vt 1.000000 0.249958 +vt 0.500000 0.749958 +vt 0.000000 0.249958 +vt 0.500000 0.749958 +vt 0.000000 0.749958 +vt 1.000000 0.249958 +vt 0.500000 0.749958 +vt 0.000000 0.249958 +vt 0.500000 0.749958 +vt 0.000000 0.749958 +vt 1.000000 0.249958 +vt 0.500000 0.249958 +vt 0.500000 0.249958 +vt 0.000000 0.749958 +vt 0.000000 0.249958 +vt 1.000000 0.249958 +vt 0.500000 0.249958 +vt 0.500000 0.249958 +vt 0.000000 0.749958 +vt 0.000000 0.249958 +vt 1.000000 0.249958 +vt 0.500000 0.749958 +vt 0.500000 0.249958 +vt 0.000000 0.749958 +vt 0.000000 0.249958 +vt 1.000000 0.249958 +vt 0.500000 0.749958 +vt 0.500000 0.249958 +vt 0.000000 0.749958 +vt 0.000000 0.249958 +vt 1.000000 0.249958 +vt 0.500000 0.749958 +vt 0.500000 0.249958 +vt 0.000000 0.749958 +vt 0.000000 0.249958 +vt 1.000000 0.249958 +vt 0.500000 0.749958 +vt 1.000000 0.749958 +vt 0.500000 0.749958 +vt 1.000000 0.749958 +vt 1.000000 0.749958 +vt 1.000000 0.749958 +vt 1.000000 0.749958 +vt 1.000000 0.749958 +vt 1.000000 0.749958 +vt 1.000000 0.749958 +vt 1.000000 0.749958 +vt 1.000000 0.749958 +vt 1.000000 0.749958 +vt 1.000000 0.749958 +vt 1.000000 0.749958 +vt 1.000000 0.749958 +vt 1.000000 0.749958 +vt 1.000000 0.749958 +vt 1.000000 0.249958 +vn 0.0000 0.9808 -0.1951 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 -0.8315 0.5556 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 0.9808 0.1951 +vn 0.0000 -0.9808 0.1951 +vn 0.0000 0.9239 0.3827 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.8315 0.5556 +vn 0.0000 -0.9808 -0.1951 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 0.5556 0.8315 +vn 0.0000 -0.8315 -0.5556 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.1951 -0.9808 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 0.1951 0.9808 +vn 0.0000 0.3827 -0.9239 +vn 0.0000 -0.5556 -0.8315 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 0.5556 -0.8315 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 -0.1951 0.9808 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 -0.1951 -0.9808 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.8315 -0.5556 +vn 0.0000 -0.5556 0.8315 +s 1 +f 776/1109/189 807/1110/190 775/1111/190 +f 790/1112/191 821/1113/192 789/1114/192 +f 777/1115/193 808/1116/189 776/1109/189 +f 791/1117/194 822/1118/191 790/1112/191 +f 778/1119/195 809/1120/193 777/1121/193 +f 792/1122/196 823/1123/194 791/1124/194 +f 779/1125/197 810/1126/195 778/1119/195 +f 793/1127/198 824/1128/196 792/1122/196 +f 780/1129/199 811/1130/197 779/1131/197 +f 793/1132/198 826/1133/200 825/1134/198 +f 781/1135/201 812/1136/199 780/1129/199 +f 795/1137/202 826/1133/200 794/1138/200 +f 782/1139/203 813/1140/201 781/1141/201 +f 796/1142/204 827/1143/202 795/1144/202 +f 783/1145/205 814/1146/203 782/1139/203 +f 770/1147/206 801/1148/207 769/1149/207 +f 797/1150/208 828/1151/204 796/1142/204 +f 783/1152/205 816/1153/209 815/1154/205 +f 771/1155/210 802/1156/206 770/1147/206 +f 797/1157/208 830/1158/211 829/1159/208 +f 785/1160/212 816/1153/209 784/1161/209 +f 772/1162/213 803/1163/210 771/1164/210 +f 799/1165/214 830/1158/211 798/1166/211 +f 786/1167/215 817/1168/212 785/1169/212 +f 773/1170/216 804/1171/213 772/1162/213 +f 800/1172/217 831/1173/214 799/1174/214 +f 787/1175/218 818/1176/215 786/1167/215 +f 774/1177/219 805/1178/216 773/1179/216 +f 769/1180/207 832/1181/217 800/1172/217 +f 788/1182/220 819/1183/218 787/1184/218 +f 775/1185/190 806/1186/219 774/1177/219 +f 788/1182/220 821/1187/192 820/1188/220 +f 776/1109/189 808/1116/189 807/1110/190 +f 790/1112/191 822/1118/191 821/1113/192 +f 777/1115/193 809/1189/193 808/1116/189 +f 791/1117/194 823/1190/194 822/1118/191 +f 778/1119/195 810/1126/195 809/1120/193 +f 792/1122/196 824/1128/196 823/1123/194 +f 779/1125/197 811/1191/197 810/1126/195 +f 793/1127/198 825/1192/198 824/1128/196 +f 780/1129/199 812/1136/199 811/1130/197 +f 793/1132/198 794/1138/200 826/1133/200 +f 781/1135/201 813/1193/201 812/1136/199 +f 795/1137/202 827/1194/202 826/1133/200 +f 782/1139/203 814/1146/203 813/1140/201 +f 796/1142/204 828/1151/204 827/1143/202 +f 783/1145/205 815/1195/205 814/1146/203 +f 770/1147/206 802/1156/206 801/1148/207 +f 797/1150/208 829/1196/208 828/1151/204 +f 783/1152/205 784/1161/209 816/1153/209 +f 771/1155/210 803/1197/210 802/1156/206 +f 797/1157/208 798/1166/211 830/1158/211 +f 785/1160/212 817/1198/212 816/1153/209 +f 772/1162/213 804/1171/213 803/1163/210 +f 799/1165/214 831/1199/214 830/1158/211 +f 786/1167/215 818/1176/215 817/1168/212 +f 773/1170/216 805/1200/216 804/1171/213 +f 800/1172/217 832/1181/217 831/1173/214 +f 787/1175/218 819/1201/218 818/1176/215 +f 774/1177/219 806/1186/219 805/1178/216 +f 769/1180/207 801/1202/207 832/1181/217 +f 788/1182/220 820/1188/220 819/1183/218 +f 775/1185/190 807/1203/190 806/1186/219 +f 788/1182/220 789/1204/192 821/1187/192 +o Base +v -2.500000 0.000000 4.500000 +v 2.500000 0.000000 4.500000 +v -2.500000 0.000000 -4.500000 +v 2.500000 0.000000 -4.500000 +v 1.750000 9.750000 -0.499999 +v 1.250000 10.250000 -0.499999 +v 1.250000 10.250000 0.500001 +v 1.750000 9.750000 0.500001 +v -1.250000 10.250000 -0.499999 +v -1.750000 9.750000 -0.499999 +v -1.750000 9.750000 0.500001 +v -1.250000 10.250000 0.500001 +v 1.750000 6.500000 -0.499999 +v 1.750000 6.500000 0.500001 +v -1.750000 6.500000 -0.499999 +v -1.750000 6.500000 0.500001 +v -2.500000 1.000000 -4.500000 +v -2.500000 1.000000 4.500000 +v 2.500000 1.000000 4.500000 +v 2.500000 1.000000 -4.500000 +v -2.000000 2.000000 0.500000 +v -1.500000 2.000000 0.500000 +v -2.000000 2.000000 -0.500000 +v -1.500000 2.000000 -0.500000 +v -2.000000 4.500000 -0.500000 +v -2.000000 4.500000 0.500000 +v -1.500000 4.500000 0.500000 +v -1.500000 4.500000 -0.500000 +v -2.500000 1.000000 0.500000 +v -1.000000 1.000000 0.500000 +v -2.500000 1.000000 -0.500000 +v -1.000000 1.000000 -0.500000 +v -1.250000 5.500000 1.250001 +v -1.250000 5.978355 1.154850 +v -1.250000 6.383883 0.883884 +v -1.250000 6.654850 0.478355 +v -1.250000 6.750000 0.000001 +v -1.250000 6.654850 -0.478354 +v -1.250000 6.383883 -0.883883 +v -1.250000 5.978355 -1.154848 +v -1.250000 5.500000 -1.249999 +v -1.250000 5.021646 -1.154849 +v -1.250000 4.616117 -0.883883 +v -1.250000 4.345151 -0.478354 +v -1.250000 4.250000 0.000001 +v -1.250000 4.345151 0.478355 +v -1.250000 4.616117 0.883884 +v -1.250000 5.021647 1.154850 +v -2.250000 5.500000 1.250001 +v -2.250000 5.978355 1.154850 +v -2.250000 6.383883 0.883884 +v -2.250000 6.654850 0.478355 +v -2.250000 6.750000 0.000001 +v -2.250000 6.654850 -0.478354 +v -2.250000 6.383883 -0.883883 +v -2.250000 5.978355 -1.154848 +v -2.250000 5.500000 -1.249999 +v -2.250000 5.021646 -1.154848 +v -2.250000 4.616117 -0.883883 +v -2.250000 4.345151 -0.478354 +v -2.250000 4.250000 0.000001 +v -2.250000 4.345151 0.478355 +v -2.250000 4.616117 0.883884 +v -2.250000 5.021647 1.154850 +v -2.250000 5.500001 1.000001 +v -2.250000 5.882684 0.923881 +v -2.250000 6.207108 0.707108 +v -2.250000 6.423881 0.382685 +v -2.250000 6.500001 0.000001 +v -2.250000 6.423881 -0.382683 +v -2.250000 6.207108 -0.707106 +v -2.250000 5.882684 -0.923879 +v -2.250000 5.500001 -0.999999 +v -2.250000 5.117317 -0.923879 +v -2.250000 4.792893 -0.707106 +v -2.250000 4.576121 -0.382683 +v -2.250000 4.500001 0.000001 +v -2.250000 4.576121 0.382685 +v -2.250000 4.792893 0.707108 +v -2.250000 5.117318 0.923881 +v -2.250000 5.500000 0.750001 +v -2.250000 5.787013 0.692910 +v -2.250000 6.030331 0.530331 +v -2.250000 6.192910 0.287013 +v -2.250000 6.250000 0.000001 +v -2.250000 6.192910 -0.287012 +v -2.250000 6.030331 -0.530329 +v -2.250000 5.787013 -0.692909 +v -2.250000 5.500000 -0.749999 +v -2.250000 5.212988 -0.692909 +v -2.250000 4.969670 -0.530330 +v -2.250000 4.807091 -0.287012 +v -2.250000 4.750000 0.000001 +v -2.250000 4.807091 0.287013 +v -2.250000 4.969670 0.530331 +v -2.250000 5.212988 0.692910 +v -2.000000 5.882684 0.923881 +v -2.000000 5.500001 1.000001 +v -2.000000 6.207108 0.707108 +v -2.000000 6.423881 0.382685 +v -2.000000 6.500001 0.000001 +v -2.000000 6.423881 -0.382683 +v -2.000000 6.207108 -0.707106 +v -2.000000 5.882684 -0.923879 +v -2.000000 5.500001 -0.999999 +v -2.000000 5.117317 -0.923879 +v -2.000000 4.792893 -0.707106 +v -2.000000 4.576121 -0.382683 +v -2.000000 4.500001 0.000001 +v -2.000000 4.576121 0.382685 +v -2.000000 4.792893 0.707108 +v -2.000000 5.117318 0.923881 +v -2.000000 5.787013 0.692910 +v -2.000000 5.500000 0.750001 +v -2.000000 6.030331 0.530331 +v -2.000000 6.192910 0.287013 +v -2.000000 6.250000 0.000001 +v -2.000000 6.192910 -0.287012 +v -2.000000 6.030331 -0.530329 +v -2.000000 5.787013 -0.692909 +v -2.000000 5.500000 -0.749999 +v -2.000000 5.212988 -0.692909 +v -2.000000 4.969670 -0.530330 +v -2.000000 4.807091 -0.287012 +v -2.000000 4.750000 0.000001 +v -2.000000 4.807091 0.287013 +v -2.000000 4.969670 0.530331 +v -2.000000 5.212988 0.692910 +v -1.250000 1.000000 -4.250000 +v -2.250000 1.000000 -4.250000 +v -1.250000 1.000000 -2.250000 +v -2.250000 1.000000 -2.250000 +v -1.250000 2.000000 -2.250000 +v -1.250000 2.000000 -4.250000 +v -2.250000 2.000000 -4.250000 +v -2.250000 2.000000 -2.250000 +v -1.500000 2.000000 -4.000000 +v -2.000000 2.000000 -4.000000 +v -1.500000 2.000000 -3.500000 +v -2.000000 2.000000 -3.500000 +v -1.500000 2.125000 -3.500000 +v -1.500000 2.125000 -4.000000 +v -2.000000 2.125000 -4.000000 +v -2.000000 2.125000 -3.500000 +v -1.625000 2.250000 -3.625000 +v -1.625000 2.250000 -3.875000 +v -1.875000 2.250000 -3.875000 +v -1.875000 2.250000 -3.625000 +v -1.875000 3.125000 -3.625000 +v -2.000000 3.000000 -3.625000 +v -1.875000 3.000000 -3.500000 +v -1.875000 2.625000 -3.625000 +v -1.875000 2.750000 -3.500000 +v -2.000000 2.750000 -3.625000 +v -1.875000 3.125000 -3.875000 +v -1.875000 3.000000 -4.000000 +v -2.000000 3.000000 -3.875000 +v -1.875000 2.625000 -3.875000 +v -2.000000 2.750000 -3.875000 +v -1.875000 2.750000 -4.000000 +v -1.625000 3.125000 -3.625000 +v -1.625000 3.000000 -3.500000 +v -1.500000 3.000000 -3.625000 +v -1.625000 2.625000 -3.625000 +v -1.500000 2.750000 -3.625000 +v -1.625000 2.750000 -3.500000 +v -1.625000 3.000000 -4.000000 +v -1.625000 3.125000 -3.875000 +v -1.500000 3.000000 -3.875000 +v -1.625000 2.625000 -3.875000 +v -1.625000 2.750000 -4.000000 +v -1.500000 2.750000 -3.875000 +v -2.000000 1.000000 1.000000 +v -1.500000 1.000000 1.000000 +v -2.000000 1.500000 0.500000 +v -1.500000 1.500000 0.500000 +v -2.000000 1.000000 0.500000 +v -1.500000 1.000000 0.500000 +v -1.500000 1.000000 -1.000000 +v -2.000000 1.000000 -1.000000 +v -1.500000 1.500000 -0.500000 +v -2.000000 1.500000 -0.500000 +v -1.500000 1.000000 -0.500000 +v -2.000000 1.000000 -0.500000 +v -1.625000 1.375000 -2.250000 +v -1.875000 1.375000 -2.250000 +v -1.625000 1.625000 -2.250000 +v -1.875000 1.625000 -2.250000 +v -1.625000 2.875000 -0.500000 +v -1.875000 2.875000 -0.500000 +v -1.625000 3.125000 -0.500000 +v -1.875000 3.125000 -0.500000 +v -1.625000 2.500000 -0.937500 +v -1.625000 2.000000 -1.375000 +v -1.625000 1.750000 -1.812500 +v -1.875000 1.750000 -1.812500 +v -1.875000 2.000000 -1.375000 +v -1.875000 2.500000 -0.937500 +v -1.875000 2.250000 -0.937500 +v -1.875000 1.750000 -1.375000 +v -1.875000 1.500000 -1.812500 +v -1.625000 1.500000 -1.812500 +v -1.625000 1.750000 -1.375000 +v -1.625000 2.250000 -0.937500 +v -0.500000 1.000000 -2.250000 +v 0.500000 1.000000 -2.250000 +v -0.500000 1.000000 -4.250000 +v 0.500000 1.000000 -4.250000 +v -0.500000 1.500000 -3.750000 +v -0.500000 1.500000 -2.750000 +v 0.500000 1.500000 -2.750000 +v 0.500000 1.500000 -3.750000 +v -1.750000 6.500000 0.500001 +v -1.750000 6.500000 -0.499999 +v 1.750000 6.500000 0.500001 +v 1.750000 6.500000 -0.499999 +v -1.250000 10.250000 0.500001 +v -1.750000 9.750000 0.500001 +v -1.750000 9.750000 -0.499999 +v -1.250000 10.250000 -0.499999 +v 1.750000 9.750000 0.500001 +v 1.250000 10.250000 0.500001 +v 1.250000 10.250000 -0.499999 +v 1.750000 9.750000 -0.499999 +v 2.000000 2.000000 -0.500000 +v 1.500000 2.000000 -0.500000 +v 2.000000 2.000000 0.500000 +v 1.500000 2.000000 0.500000 +v 2.000000 4.500000 0.500000 +v 2.000000 4.500000 -0.500000 +v 1.500000 4.500000 -0.500000 +v 1.500000 4.500000 0.500000 +v 2.500000 1.000000 -0.500000 +v 1.000000 1.000000 -0.500000 +v 2.500000 1.000000 0.500000 +v 1.000000 1.000000 0.500000 +v 1.250000 5.500000 -1.250001 +v 1.250000 5.978355 -1.154850 +v 1.250000 6.383883 -0.883885 +v 1.250000 6.654850 -0.478356 +v 1.250000 6.750000 -0.000001 +v 1.250000 6.654850 0.478353 +v 1.250000 6.383883 0.883882 +v 1.250000 5.978355 1.154848 +v 1.250000 5.500000 1.249999 +v 1.250000 5.021646 1.154849 +v 1.250000 4.616117 0.883882 +v 1.250000 4.345151 0.478353 +v 1.250000 4.250000 -0.000001 +v 1.250000 4.345151 -0.478356 +v 1.250000 4.616117 -0.883885 +v 1.250000 5.021647 -1.154850 +v 2.250000 5.500000 -1.250001 +v 2.250000 5.978355 -1.154850 +v 2.250000 6.383883 -0.883885 +v 2.250000 6.654850 -0.478356 +v 2.250000 6.750000 -0.000001 +v 2.250000 6.654850 0.478353 +v 2.250000 6.383883 0.883882 +v 2.250000 5.978355 1.154848 +v 2.250000 5.500000 1.249999 +v 2.250000 5.021646 1.154848 +v 2.250000 4.616117 0.883882 +v 2.250000 4.345151 0.478353 +v 2.250000 4.250000 -0.000001 +v 2.250000 4.345151 -0.478356 +v 2.250000 4.616117 -0.883885 +v 2.250000 5.021647 -1.154850 +v 2.250000 5.500001 -1.000001 +v 2.250000 5.882684 -0.923881 +v 2.250000 6.207108 -0.707108 +v 2.250000 6.423881 -0.382685 +v 2.250000 6.500001 -0.000001 +v 2.250000 6.423881 0.382683 +v 2.250000 6.207108 0.707105 +v 2.250000 5.882684 0.923878 +v 2.250000 5.500001 0.999999 +v 2.250000 5.117317 0.923878 +v 2.250000 4.792893 0.707105 +v 2.250000 4.576121 0.382683 +v 2.250000 4.500001 -0.000001 +v 2.250000 4.576121 -0.382685 +v 2.250000 4.792893 -0.707108 +v 2.250000 5.117318 -0.923881 +v 2.250000 5.500000 -0.750001 +v 2.250000 5.787013 -0.692910 +v 2.250000 6.030331 -0.530331 +v 2.250000 6.192910 -0.287013 +v 2.250000 6.250000 -0.000001 +v 2.250000 6.192910 0.287012 +v 2.250000 6.030331 0.530329 +v 2.250000 5.787013 0.692909 +v 2.250000 5.500000 0.749999 +v 2.250000 5.212988 0.692909 +v 2.250000 4.969670 0.530329 +v 2.250000 4.807091 0.287012 +v 2.250000 4.750000 -0.000001 +v 2.250000 4.807091 -0.287013 +v 2.250000 4.969670 -0.530331 +v 2.250000 5.212988 -0.692910 +v 2.000000 5.882684 -0.923881 +v 2.000000 5.500001 -1.000001 +v 2.000000 6.207108 -0.707108 +v 2.000000 6.423881 -0.382685 +v 2.000000 6.500001 -0.000001 +v 2.000000 6.423881 0.382683 +v 2.000000 6.207108 0.707105 +v 2.000000 5.882684 0.923878 +v 2.000000 5.500001 0.999999 +v 2.000000 5.117317 0.923878 +v 2.000000 4.792893 0.707105 +v 2.000000 4.576121 0.382683 +v 2.000000 4.500001 -0.000001 +v 2.000000 4.576121 -0.382685 +v 2.000000 4.792893 -0.707108 +v 2.000000 5.117318 -0.923881 +v 2.000000 5.787013 -0.692910 +v 2.000000 5.500000 -0.750001 +v 2.000000 6.030331 -0.530331 +v 2.000000 6.192910 -0.287013 +v 2.000000 6.250000 -0.000001 +v 2.000000 6.192910 0.287012 +v 2.000000 6.030331 0.530329 +v 2.000000 5.787013 0.692909 +v 2.000000 5.500000 0.749999 +v 2.000000 5.212988 0.692909 +v 2.000000 4.969670 0.530329 +v 2.000000 4.807091 0.287012 +v 2.000000 4.750000 -0.000001 +v 2.000000 4.807091 -0.287013 +v 2.000000 4.969670 -0.530331 +v 2.000000 5.212988 -0.692910 +v 1.250001 1.000000 4.250000 +v 2.250001 1.000000 4.250000 +v 1.250000 1.000000 2.250000 +v 2.250000 1.000000 2.250000 +v 1.250000 2.000000 2.250000 +v 1.250001 2.000000 4.250000 +v 2.250001 2.000000 4.250000 +v 2.250000 2.000000 2.250000 +v 1.500001 2.000000 4.000000 +v 2.000000 2.000000 4.000000 +v 1.500001 2.000000 3.500000 +v 2.000000 2.000000 3.500000 +v 1.500001 2.125000 3.500000 +v 1.500001 2.125000 4.000000 +v 2.000000 2.125000 4.000000 +v 2.000000 2.125000 3.500000 +v 1.625001 2.250000 3.625000 +v 1.625001 2.250000 3.875000 +v 1.875001 2.250000 3.875000 +v 1.875001 2.250000 3.625000 +v 1.875001 3.125000 3.625000 +v 2.000000 3.000000 3.625000 +v 1.875001 3.000000 3.500000 +v 1.875001 2.625000 3.625000 +v 1.875001 2.750000 3.500000 +v 2.000000 2.750000 3.625000 +v 1.875001 3.125000 3.875000 +v 1.875001 3.000000 4.000000 +v 2.000000 3.000000 3.875000 +v 1.875001 2.625000 3.875000 +v 2.000000 2.750000 3.875000 +v 1.875001 2.750000 4.000000 +v 1.625001 3.125000 3.625000 +v 1.625001 3.000000 3.500000 +v 1.500001 3.000000 3.625000 +v 1.625001 2.625000 3.625000 +v 1.500001 2.750000 3.625000 +v 1.625001 2.750000 3.500000 +v 1.625001 3.000000 4.000000 +v 1.625001 3.125000 3.875000 +v 1.500001 3.000000 3.875000 +v 1.625001 2.625000 3.875000 +v 1.625001 2.750000 4.000000 +v 1.500001 2.750000 3.875000 +v 2.000000 1.000000 -1.000000 +v 1.500000 1.000000 -1.000000 +v 2.000000 1.500000 -0.500000 +v 1.500000 1.500000 -0.500000 +v 2.000000 1.000000 -0.500000 +v 1.500000 1.000000 -0.500000 +v 1.500000 1.000000 1.000000 +v 2.000000 1.000000 1.000000 +v 1.500000 1.500000 0.500000 +v 2.000000 1.500000 0.500000 +v 1.500000 1.000000 0.500000 +v 2.000000 1.000000 0.500000 +v 1.625000 1.375000 2.250000 +v 1.875000 1.375000 2.250000 +v 1.625000 1.625000 2.250000 +v 1.875000 1.625000 2.250000 +v 1.625000 2.875000 0.500000 +v 1.875000 2.875000 0.500000 +v 1.625000 3.125000 0.500000 +v 1.875000 3.125000 0.500000 +v 1.625000 2.500000 0.937500 +v 1.625000 2.000000 1.375000 +v 1.625000 1.750000 1.812500 +v 1.875000 1.750000 1.812500 +v 1.875000 2.000000 1.375000 +v 1.875000 2.500000 0.937500 +v 1.875000 2.250000 0.937500 +v 1.875000 1.750000 1.375000 +v 1.875000 1.500000 1.812500 +v 1.625000 1.500000 1.812500 +v 1.625000 1.750000 1.375000 +v 1.625000 2.250000 0.937500 +v 0.500000 1.000000 2.250000 +v -0.500000 1.000000 2.250000 +v 0.500000 1.000000 4.250000 +v -0.500000 1.000000 4.250000 +v 0.500000 1.500000 3.750000 +v 0.500000 1.500000 2.750000 +v -0.500000 1.500000 2.750000 +v -0.500000 1.500000 3.750000 +v 2.250000 1.000000 -4.250000 +v 1.250000 1.000000 -4.250000 +v 2.250000 1.000000 -2.250000 +v 1.250000 1.000000 -2.250000 +v 2.250000 2.000000 -2.250000 +v 2.250000 2.000000 -4.250000 +v 1.250000 2.000000 -4.250000 +v 1.250000 2.000000 -2.250000 +v 2.000000 2.000000 -4.000000 +v 1.500000 2.000000 -4.000000 +v 2.000000 2.000000 -3.500000 +v 1.500000 2.000000 -3.500000 +v 2.000000 2.125000 -3.500000 +v 2.000000 2.125000 -4.000000 +v 1.500000 2.125000 -4.000000 +v 1.500000 2.125000 -3.500000 +v 1.875000 2.250000 -3.625000 +v 1.875000 2.250000 -3.875000 +v 1.625000 2.250000 -3.875000 +v 1.625000 2.250000 -3.625000 +v 1.625000 3.125000 -3.625000 +v 1.500000 3.000000 -3.625000 +v 1.625000 3.000000 -3.500000 +v 1.625000 2.625000 -3.625000 +v 1.625000 2.750000 -3.500000 +v 1.500000 2.750000 -3.625000 +v 1.625000 3.125000 -3.875000 +v 1.625000 3.000000 -4.000000 +v 1.500000 3.000000 -3.875000 +v 1.625000 2.625000 -3.875000 +v 1.500000 2.750000 -3.875000 +v 1.625000 2.750000 -4.000000 +v 1.875000 3.125000 -3.625000 +v 1.875000 3.000000 -3.500000 +v 2.000000 3.000000 -3.625000 +v 1.875000 2.625000 -3.625000 +v 2.000000 2.750000 -3.625000 +v 1.875000 2.750000 -3.500000 +v 1.875000 3.000000 -4.000000 +v 1.875000 3.125000 -3.875000 +v 2.000000 3.000000 -3.875000 +v 1.875000 2.625000 -3.875000 +v 1.875000 2.750000 -4.000000 +v 2.000000 2.750000 -3.875000 +v 1.875000 1.375000 -2.250000 +v 1.625000 1.375000 -2.250000 +v 1.875000 1.625000 -2.250000 +v 1.625000 1.625000 -2.250000 +v 1.875000 2.875000 -0.500000 +v 1.625000 2.875000 -0.500000 +v 1.875000 3.125000 -0.500000 +v 1.625000 3.125000 -0.500000 +v 1.875000 2.500000 -0.937500 +v 1.875000 2.000000 -1.375000 +v 1.875000 1.750000 -1.812500 +v 1.625000 1.750000 -1.812500 +v 1.625000 2.000000 -1.375000 +v 1.625000 2.500000 -0.937500 +v 1.625000 2.250000 -0.937500 +v 1.625000 1.750000 -1.375000 +v 1.625000 1.500000 -1.812500 +v 1.875000 1.500000 -1.812500 +v 1.875000 1.750000 -1.375000 +v 1.875000 2.250000 -0.937500 +v -2.249999 1.000000 4.250000 +v -1.249999 1.000000 4.250000 +v -2.250000 1.000000 2.250000 +v -1.250000 1.000000 2.250000 +v -2.250000 2.000000 2.250000 +v -2.249999 2.000000 4.250000 +v -1.249999 2.000000 4.250000 +v -1.250000 2.000000 2.250000 +v -1.999999 2.000000 4.000000 +v -1.500000 2.000000 4.000000 +v -1.999999 2.000000 3.500000 +v -1.500000 2.000000 3.500000 +v -1.999999 2.125000 3.500000 +v -1.999999 2.125000 4.000000 +v -1.500000 2.125000 4.000000 +v -1.500000 2.125000 3.500000 +v -1.874999 2.250000 3.625000 +v -1.874999 2.250000 3.875000 +v -1.624999 2.250000 3.875000 +v -1.624999 2.250000 3.625000 +v -1.624999 3.125000 3.625000 +v -1.500000 3.000000 3.625000 +v -1.624999 3.000000 3.500000 +v -1.624999 2.625000 3.625000 +v -1.624999 2.750000 3.500000 +v -1.500000 2.750000 3.625000 +v -1.624999 3.125000 3.875000 +v -1.624999 3.000000 4.000000 +v -1.500000 3.000000 3.875000 +v -1.624999 2.625000 3.875000 +v -1.500000 2.750000 3.875000 +v -1.624999 2.750000 4.000000 +v -1.874999 3.125000 3.625000 +v -1.874999 3.000000 3.500000 +v -1.999999 3.000000 3.625000 +v -1.874999 2.625000 3.625000 +v -1.999999 2.750000 3.625000 +v -1.874999 2.750000 3.500000 +v -1.874999 3.000000 4.000000 +v -1.874999 3.125000 3.875000 +v -1.999999 3.000000 3.875000 +v -1.874999 2.625000 3.875000 +v -1.874999 2.750000 4.000000 +v -1.999999 2.750000 3.875000 +v -1.875000 1.375000 2.250000 +v -1.625000 1.375000 2.250000 +v -1.875000 1.625000 2.250000 +v -1.625000 1.625000 2.250000 +v -1.875000 2.875000 0.500000 +v -1.625000 2.875000 0.500000 +v -1.875000 3.125000 0.500000 +v -1.625000 3.125000 0.500000 +v -1.875000 2.500000 0.937500 +v -1.875000 2.000000 1.375000 +v -1.875000 1.750000 1.812500 +v -1.625000 1.750000 1.812500 +v -1.625000 2.000000 1.375000 +v -1.625000 2.500000 0.937500 +v -1.625000 2.250000 0.937500 +v -1.625000 1.750000 1.375000 +v -1.625000 1.500000 1.812500 +v -1.875000 1.500000 1.812500 +v -1.875000 1.750000 1.375000 +v -1.875000 2.250000 0.937500 +v -2.250000 5.750000 -0.250000 +v -2.250000 5.250000 -0.250000 +v -2.250000 5.750000 0.250000 +v -2.250000 5.250000 0.250000 +v -2.375000 5.750000 0.250000 +v -2.375000 5.750000 -0.250000 +v -2.375000 5.250000 -0.250000 +v -2.375000 5.250000 0.250000 +v -2.500000 5.625000 0.125000 +v -2.500000 5.625000 -0.125000 +v -2.500000 5.375000 -0.125000 +v -2.500000 5.375000 0.125000 +v -3.375000 5.375000 0.125000 +v -3.250000 5.250000 0.125000 +v -3.250000 5.375000 0.250000 +v -2.875000 5.375000 0.125000 +v -3.000000 5.375000 0.250000 +v -3.000000 5.250000 0.125000 +v -3.375000 5.375000 -0.125000 +v -3.250000 5.375000 -0.250000 +v -3.250000 5.250000 -0.125000 +v -2.875000 5.375000 -0.125000 +v -3.000000 5.250000 -0.125000 +v -3.000000 5.375000 -0.250000 +v -3.375000 5.625000 0.125000 +v -3.250000 5.625000 0.250000 +v -3.250000 5.750000 0.125000 +v -2.875000 5.625000 0.125000 +v -3.000000 5.750000 0.125000 +v -3.000000 5.625000 0.250000 +v -3.250000 5.625000 -0.250000 +v -3.375000 5.625000 -0.125000 +v -3.250000 5.750000 -0.125000 +v -2.875000 5.625000 -0.125000 +v -3.000000 5.625000 -0.250000 +v -3.000000 5.750000 -0.125000 +v 2.250000 5.750000 0.250000 +v 2.250000 5.250000 0.250000 +v 2.250000 5.750000 -0.250000 +v 2.250000 5.250000 -0.250000 +v 2.375000 5.750000 -0.250000 +v 2.375000 5.750000 0.250000 +v 2.375000 5.250000 0.250000 +v 2.375000 5.250000 -0.250000 +v 2.500000 5.625000 -0.125000 +v 2.500000 5.625000 0.125000 +v 2.500000 5.375000 0.125000 +v 2.500000 5.375000 -0.125000 +v 3.375000 5.375000 -0.125000 +v 3.250000 5.250000 -0.125000 +v 3.250000 5.375000 -0.250000 +v 2.875000 5.375000 -0.125000 +v 3.000000 5.375000 -0.250000 +v 3.000000 5.250000 -0.125000 +v 3.375000 5.375000 0.125000 +v 3.250000 5.375000 0.250000 +v 3.250000 5.250000 0.125000 +v 2.875000 5.375000 0.125000 +v 3.000000 5.250000 0.125000 +v 3.000000 5.375000 0.250000 +v 3.375000 5.625000 -0.125000 +v 3.250000 5.625000 -0.250000 +v 3.250000 5.750000 -0.125000 +v 2.875000 5.625000 -0.125000 +v 3.000000 5.750000 -0.125000 +v 3.000000 5.625000 -0.250000 +v 3.250000 5.625000 0.250000 +v 3.375000 5.625000 0.125000 +v 3.250000 5.750000 0.125000 +v 2.875000 5.625000 0.125000 +v 3.000000 5.625000 0.250000 +v 3.000000 5.750000 0.125000 +vt 0.035714 0.582090 +vt 0.357143 0.283582 +vt 0.357143 0.582090 +vt 0.642857 0.656716 +vt 0.678571 0.507463 +vt 0.642857 0.507463 +vt 0.642857 0.686567 +vt 0.678571 0.656716 +vt 0.678571 0.477612 +vt 0.642857 0.477612 +vt 0.678571 0.283582 +vt 0.642857 0.880597 +vt 0.678571 0.686567 +vt 0.357143 0.940298 +vt 0.035714 0.641791 +vt 0.357143 0.641791 +vt 0.035714 1.000000 +vt 0.357143 1.000000 +vt 0.000000 0.641791 +vt 0.035714 0.940298 +vt -0.000000 0.940298 +vt 0.392857 0.940298 +vt 0.392857 0.641791 +vt 0.428571 0.462687 +vt 0.464286 0.402985 +vt 0.446429 0.462687 +vt 0.517857 0.462687 +vt 0.553571 0.402985 +vt 0.535714 0.462687 +vt 0.428571 0.611940 +vt 0.517857 0.611940 +vt 0.589286 0.462687 +vt 0.553571 0.611940 +vt 0.553571 0.462687 +vt 0.500000 0.462687 +vt 0.464286 0.611940 +vt 0.464286 0.462687 +vt 0.589286 0.402985 +vt 0.500000 0.402985 +vt 0.428571 0.343284 +vt 0.444196 0.358209 +vt 0.430804 0.358209 +vt 0.464286 0.343284 +vt 0.448661 0.358209 +vt 0.446429 0.343284 +vt 0.482143 0.343284 +vt 0.466518 0.358209 +vt 0.500000 0.343284 +vt 0.484375 0.358209 +vt 0.515625 0.358209 +vt 0.502232 0.358209 +vt 0.535714 0.343284 +vt 0.520089 0.358209 +vt 0.517857 0.343284 +vt 0.553571 0.343284 +vt 0.537946 0.358209 +vt 0.571429 0.343284 +vt 0.555804 0.358209 +vt 0.587054 0.358209 +vt 0.573661 0.358209 +vt 0.607143 0.343284 +vt 0.591518 0.358209 +vt 0.589286 0.343284 +vt 0.625000 0.343284 +vt 0.609375 0.358209 +vt 0.640625 0.358209 +vt 0.627232 0.358209 +vt 0.375000 0.343284 +vt 0.359375 0.358209 +vt 0.357143 0.343284 +vt 0.390625 0.358209 +vt 0.377232 0.358209 +vt 0.410714 0.343284 +vt 0.395089 0.358209 +vt 0.392857 0.343284 +vt 0.412946 0.358209 +vt 0.357194 0.447761 +vt 0.383929 0.403071 +vt 0.410663 0.447761 +vt 0.462054 0.373134 +vt 0.450893 0.388060 +vt 0.448661 0.373134 +vt 0.479911 0.373134 +vt 0.468750 0.388060 +vt 0.466518 0.373134 +vt 0.497768 0.373134 +vt 0.486607 0.388060 +vt 0.484375 0.373134 +vt 0.515625 0.373134 +vt 0.504464 0.388060 +vt 0.502232 0.373134 +vt 0.533482 0.373134 +vt 0.522321 0.388060 +vt 0.520089 0.373134 +vt 0.537946 0.373134 +vt 0.549107 0.388060 +vt 0.540179 0.388060 +vt 0.569196 0.373134 +vt 0.558036 0.388060 +vt 0.555804 0.373134 +vt 0.573661 0.373134 +vt 0.584821 0.388060 +vt 0.575893 0.388060 +vt 0.591518 0.373134 +vt 0.602679 0.388060 +vt 0.593750 0.388060 +vt 0.609375 0.373134 +vt 0.620536 0.388060 +vt 0.611607 0.388060 +vt 0.640625 0.373134 +vt 0.629464 0.388060 +vt 0.627232 0.373134 +vt 0.359375 0.373134 +vt 0.370536 0.388060 +vt 0.361607 0.388060 +vt 0.377232 0.373134 +vt 0.388393 0.388060 +vt 0.379464 0.388060 +vt 0.395089 0.373134 +vt 0.406250 0.388060 +vt 0.397321 0.388060 +vt 0.412946 0.373134 +vt 0.424107 0.388060 +vt 0.415179 0.388060 +vt 0.444196 0.373134 +vt 0.433036 0.388060 +vt 0.430804 0.373134 +vt 0.816964 0.440298 +vt 0.808036 0.417910 +vt 0.816964 0.417910 +vt 0.714286 0.343284 +vt 0.785714 0.402985 +vt 0.714286 0.402985 +vt 0.821429 0.402985 +vt 0.785714 0.343284 +vt 0.821429 0.343284 +vt 0.678571 0.343284 +vt 0.678571 0.402985 +vt 0.785714 0.283582 +vt 0.714286 0.283582 +vt 0.714286 0.462687 +vt 0.785714 0.462687 +vt 0.839286 0.410448 +vt 0.825893 0.417910 +vt 0.821429 0.410448 +vt 0.839286 0.402985 +vt 0.821429 0.402985 +vt 0.803571 0.402985 +vt 0.785714 0.410448 +vt 0.785714 0.402985 +vt 0.857143 0.402985 +vt 0.803571 0.410448 +vt 0.790179 0.417910 +vt 0.852679 0.417910 +vt 0.843750 0.417910 +vt 0.799107 0.440298 +vt 0.799107 0.417910 +vt 0.852679 0.440298 +vt 0.834821 0.440298 +vt 0.834821 0.417910 +vt 0.870536 0.425373 +vt 0.861607 0.410448 +vt 0.870536 0.410448 +vt 0.870536 0.425373 +vt 0.861607 0.410448 +vt 0.870536 0.410448 +vt 0.870536 0.425373 +vt 0.861607 0.410448 +vt 0.870536 0.410448 +vt 0.870536 0.447761 +vt 0.861607 0.432836 +vt 0.870536 0.432836 +vt 0.861607 0.432836 +vt 0.857143 0.425373 +vt 0.861607 0.425373 +vt 0.861607 0.402985 +vt 0.857143 0.410448 +vt 0.857143 0.425373 +vt 0.861607 0.425373 +vt 0.861607 0.402985 +vt 0.861607 0.410448 +vt 0.857143 0.410448 +vt 0.861607 0.432836 +vt 0.857143 0.425373 +vt 0.861607 0.425373 +vt 0.861607 0.402985 +vt 0.857143 0.410448 +vt 0.861607 0.425373 +vt 0.861607 0.432836 +vt 0.857143 0.425373 +vt 0.861607 0.402985 +vt 0.857143 0.410448 +vt 0.870536 0.432836 +vt 0.870536 0.402985 +vt 0.870536 0.425373 +vt 0.870536 0.402985 +vt 0.870536 0.432836 +vt 0.870536 0.402985 +vt 0.870536 0.432836 +vt 0.870536 0.402985 +vt 0.870536 0.410448 +vt 0.392857 0.552239 +vt 0.375000 0.522388 +vt 0.392857 0.522388 +vt 0.375000 0.552239 +vt 0.392857 0.582090 +vt 0.375000 0.582090 +vt 0.375000 0.492537 +vt 0.392857 0.492537 +vt 0.357143 0.522388 +vt 0.375000 0.552239 +vt 0.357143 0.552239 +vt 0.375000 0.522388 +vt 0.357143 0.492537 +vt 0.375000 0.492537 +vt 0.375000 0.582090 +vt 0.357143 0.582090 +vt 0.939732 0.313433 +vt 0.955357 0.298507 +vt 0.955357 0.313433 +vt 0.939732 0.328358 +vt 0.955357 0.343284 +vt 0.939732 0.343284 +vt 0.892857 0.328358 +vt 0.908482 0.343284 +vt 0.892857 0.343284 +vt 0.908482 0.328358 +vt 0.924107 0.343284 +vt 0.924107 0.328358 +vt 0.892857 0.313433 +vt 0.908482 0.298507 +vt 0.908482 0.313433 +vt 0.924107 0.298507 +vt 0.924107 0.313433 +vt 0.939732 0.298507 +vt 0.875000 0.373134 +vt 0.839286 0.313433 +vt 0.875000 0.313433 +vt 0.892857 0.283582 +vt 0.821429 0.283582 +vt 0.821429 0.313433 +vt 0.839286 0.373134 +vt 0.821429 0.373134 +vt 0.892857 0.373134 +vt 0.892857 0.313433 +vt 0.821429 0.402985 +vt 0.892857 0.402985 +vt 0.678571 0.686567 +vt 0.642857 0.880597 +vt 0.642857 0.686567 +vt 0.642857 0.477612 +vt 0.678571 0.283582 +vt 0.678571 0.477612 +vt 0.642857 0.507463 +vt 0.678571 0.656716 +vt 0.642857 0.656716 +vt 0.678571 0.507463 +vt 0.428571 0.462687 +vt 0.464286 0.402985 +vt 0.446429 0.462687 +vt 0.517857 0.462687 +vt 0.553571 0.402985 +vt 0.535714 0.462687 +vt 0.428571 0.611940 +vt 0.517857 0.611940 +vt 0.589286 0.462687 +vt 0.553571 0.611940 +vt 0.553571 0.462687 +vt 0.500000 0.462687 +vt 0.464286 0.611940 +vt 0.464286 0.462687 +vt 0.589286 0.402985 +vt 0.500000 0.402985 +vt 0.428571 0.343284 +vt 0.444196 0.358209 +vt 0.430804 0.358209 +vt 0.464286 0.343284 +vt 0.448661 0.358209 +vt 0.446429 0.343284 +vt 0.482143 0.343284 +vt 0.466518 0.358209 +vt 0.500000 0.343284 +vt 0.484375 0.358209 +vt 0.515625 0.358209 +vt 0.502232 0.358209 +vt 0.535714 0.343284 +vt 0.520089 0.358209 +vt 0.517857 0.343284 +vt 0.553571 0.343284 +vt 0.537946 0.358209 +vt 0.571429 0.343284 +vt 0.555804 0.358209 +vt 0.587054 0.358209 +vt 0.573661 0.358209 +vt 0.607143 0.343284 +vt 0.591518 0.358209 +vt 0.589286 0.343284 +vt 0.625000 0.343284 +vt 0.609375 0.358209 +vt 0.640625 0.358209 +vt 0.627232 0.358209 +vt 0.375000 0.343284 +vt 0.359375 0.358209 +vt 0.357143 0.343284 +vt 0.390625 0.358209 +vt 0.377232 0.358209 +vt 0.410714 0.343284 +vt 0.395089 0.358209 +vt 0.392857 0.343284 +vt 0.412946 0.358209 +vt 0.357194 0.447761 +vt 0.383929 0.403071 +vt 0.410663 0.447761 +vt 0.462054 0.373134 +vt 0.450893 0.388060 +vt 0.448661 0.373134 +vt 0.479911 0.373134 +vt 0.468750 0.388060 +vt 0.466518 0.373134 +vt 0.497768 0.373134 +vt 0.486607 0.388060 +vt 0.484375 0.373134 +vt 0.515625 0.373134 +vt 0.504464 0.388060 +vt 0.502232 0.373134 +vt 0.533482 0.373134 +vt 0.522321 0.388060 +vt 0.520089 0.373134 +vt 0.537946 0.373134 +vt 0.549107 0.388060 +vt 0.540179 0.388060 +vt 0.569196 0.373134 +vt 0.558036 0.388060 +vt 0.555804 0.373134 +vt 0.573661 0.373134 +vt 0.584821 0.388060 +vt 0.575893 0.388060 +vt 0.591518 0.373134 +vt 0.602679 0.388060 +vt 0.593750 0.388060 +vt 0.609375 0.373134 +vt 0.620536 0.388060 +vt 0.611607 0.388060 +vt 0.640625 0.373134 +vt 0.629464 0.388060 +vt 0.627232 0.373134 +vt 0.359375 0.373134 +vt 0.370536 0.388060 +vt 0.361607 0.388060 +vt 0.377232 0.373134 +vt 0.388393 0.388060 +vt 0.379464 0.388060 +vt 0.395089 0.373134 +vt 0.406250 0.388060 +vt 0.397321 0.388060 +vt 0.412946 0.373134 +vt 0.424107 0.388060 +vt 0.415179 0.388060 +vt 0.444196 0.373134 +vt 0.433036 0.388060 +vt 0.430804 0.373134 +vt 0.816964 0.440298 +vt 0.808036 0.417910 +vt 0.816964 0.417910 +vt 0.714286 0.402985 +vt 0.785714 0.343284 +vt 0.785714 0.402985 +vt 0.821429 0.402985 +vt 0.821429 0.343284 +vt 0.678571 0.343284 +vt 0.678571 0.402985 +vt 0.785714 0.283582 +vt 0.714286 0.343284 +vt 0.714286 0.283582 +vt 0.714286 0.462687 +vt 0.785714 0.462687 +vt 0.839286 0.410448 +vt 0.825893 0.417910 +vt 0.821429 0.410448 +vt 0.839286 0.402985 +vt 0.821429 0.402985 +vt 0.803571 0.402985 +vt 0.785714 0.410448 +vt 0.785714 0.402985 +vt 0.857143 0.402985 +vt 0.803571 0.410448 +vt 0.790179 0.417910 +vt 0.852679 0.417910 +vt 0.843750 0.417910 +vt 0.799107 0.440298 +vt 0.799107 0.417910 +vt 0.852679 0.440298 +vt 0.834821 0.440298 +vt 0.834821 0.417910 +vt 0.870536 0.425373 +vt 0.861607 0.410448 +vt 0.870536 0.410448 +vt 0.870536 0.425373 +vt 0.861607 0.410448 +vt 0.870536 0.410448 +vt 0.870536 0.425373 +vt 0.861607 0.410448 +vt 0.870536 0.410448 +vt 0.870536 0.447761 +vt 0.861607 0.432836 +vt 0.870536 0.432836 +vt 0.861607 0.432836 +vt 0.857143 0.425373 +vt 0.861607 0.425373 +vt 0.861607 0.402985 +vt 0.857143 0.410448 +vt 0.857143 0.425373 +vt 0.861607 0.425373 +vt 0.861607 0.402985 +vt 0.861607 0.410448 +vt 0.857143 0.410448 +vt 0.861607 0.432836 +vt 0.857143 0.425373 +vt 0.861607 0.425373 +vt 0.861607 0.402985 +vt 0.857143 0.410448 +vt 0.861607 0.425373 +vt 0.861607 0.432836 +vt 0.857143 0.425373 +vt 0.861607 0.402985 +vt 0.857143 0.410448 +vt 0.870536 0.432836 +vt 0.870536 0.402985 +vt 0.870536 0.425373 +vt 0.870536 0.402985 +vt 0.870536 0.432836 +vt 0.870536 0.402985 +vt 0.870536 0.432836 +vt 0.870536 0.402985 +vt 0.870536 0.410448 +vt 0.392857 0.552239 +vt 0.375000 0.522388 +vt 0.392857 0.522388 +vt 0.375000 0.552239 +vt 0.392857 0.582090 +vt 0.375000 0.582090 +vt 0.375000 0.492537 +vt 0.392857 0.492537 +vt 0.357143 0.522388 +vt 0.375000 0.552239 +vt 0.357143 0.552239 +vt 0.375000 0.522388 +vt 0.357143 0.492537 +vt 0.375000 0.492537 +vt 0.375000 0.582090 +vt 0.357143 0.582090 +vt 0.939732 0.313433 +vt 0.955357 0.298507 +vt 0.955357 0.313433 +vt 0.939732 0.328358 +vt 0.955357 0.343284 +vt 0.939732 0.343284 +vt 0.892857 0.328358 +vt 0.908482 0.343284 +vt 0.892857 0.343284 +vt 0.908482 0.328358 +vt 0.924107 0.343284 +vt 0.924107 0.328358 +vt 0.892857 0.313433 +vt 0.908482 0.298507 +vt 0.908482 0.313433 +vt 0.924107 0.298507 +vt 0.924107 0.313433 +vt 0.939732 0.298507 +vt 0.875000 0.313433 +vt 0.839286 0.373134 +vt 0.839286 0.313433 +vt 0.892857 0.283582 +vt 0.821429 0.283582 +vt 0.821429 0.313433 +vt 0.821429 0.373134 +vt 0.892857 0.373134 +vt 0.892857 0.313433 +vt 0.821429 0.402985 +vt 0.875000 0.373134 +vt 0.892857 0.402985 +vt 0.816964 0.440298 +vt 0.808036 0.417910 +vt 0.816964 0.417910 +vt 0.714286 0.343284 +vt 0.785714 0.402985 +vt 0.714286 0.402985 +vt 0.821429 0.402985 +vt 0.785714 0.343284 +vt 0.821429 0.343284 +vt 0.678571 0.343284 +vt 0.678571 0.402985 +vt 0.785714 0.283582 +vt 0.714286 0.283582 +vt 0.714286 0.462687 +vt 0.785714 0.462687 +vt 0.839286 0.410448 +vt 0.825893 0.417910 +vt 0.821429 0.410448 +vt 0.839286 0.402985 +vt 0.821429 0.402985 +vt 0.803571 0.402985 +vt 0.785714 0.410448 +vt 0.785714 0.402985 +vt 0.857143 0.402985 +vt 0.803571 0.410448 +vt 0.790179 0.417910 +vt 0.852679 0.417910 +vt 0.843750 0.417910 +vt 0.799107 0.440298 +vt 0.799107 0.417910 +vt 0.852679 0.440298 +vt 0.834821 0.440298 +vt 0.834821 0.417910 +vt 0.870536 0.425373 +vt 0.861607 0.410448 +vt 0.870536 0.410448 +vt 0.870536 0.425373 +vt 0.861607 0.410448 +vt 0.870536 0.410448 +vt 0.870536 0.425373 +vt 0.861607 0.410448 +vt 0.870536 0.410448 +vt 0.870536 0.447761 +vt 0.861607 0.432836 +vt 0.870536 0.432836 +vt 0.861607 0.432836 +vt 0.857143 0.425373 +vt 0.861607 0.425373 +vt 0.861607 0.402985 +vt 0.857143 0.410448 +vt 0.857143 0.425373 +vt 0.861607 0.425373 +vt 0.861607 0.402985 +vt 0.861607 0.410448 +vt 0.857143 0.410448 +vt 0.861607 0.432836 +vt 0.857143 0.425373 +vt 0.861607 0.425373 +vt 0.861607 0.402985 +vt 0.857143 0.410448 +vt 0.861607 0.425373 +vt 0.861607 0.432836 +vt 0.857143 0.425373 +vt 0.861607 0.402985 +vt 0.857143 0.410448 +vt 0.870536 0.432836 +vt 0.870536 0.402985 +vt 0.870536 0.425373 +vt 0.870536 0.402985 +vt 0.870536 0.432836 +vt 0.870536 0.402985 +vt 0.870536 0.432836 +vt 0.870536 0.402985 +vt 0.870536 0.410448 +vt 0.939732 0.313433 +vt 0.955357 0.298507 +vt 0.955357 0.313433 +vt 0.939732 0.328358 +vt 0.955357 0.343284 +vt 0.939732 0.343284 +vt 0.892857 0.328358 +vt 0.908482 0.343284 +vt 0.892857 0.343284 +vt 0.908482 0.328358 +vt 0.924107 0.343284 +vt 0.924107 0.328358 +vt 0.892857 0.313433 +vt 0.908482 0.298507 +vt 0.908482 0.313433 +vt 0.924107 0.298507 +vt 0.924107 0.313433 +vt 0.939732 0.298507 +vt 0.816964 0.440298 +vt 0.808036 0.417910 +vt 0.816964 0.417910 +vt 0.714286 0.402985 +vt 0.785714 0.343284 +vt 0.785714 0.402985 +vt 0.821429 0.402985 +vt 0.821429 0.343284 +vt 0.678571 0.343284 +vt 0.678571 0.402985 +vt 0.785714 0.283582 +vt 0.714286 0.343284 +vt 0.714286 0.283582 +vt 0.714286 0.462687 +vt 0.785714 0.462687 +vt 0.839286 0.410448 +vt 0.825893 0.417910 +vt 0.821429 0.410448 +vt 0.839286 0.402985 +vt 0.821429 0.402985 +vt 0.803571 0.402985 +vt 0.785714 0.410448 +vt 0.785714 0.402985 +vt 0.857143 0.402985 +vt 0.803571 0.410448 +vt 0.790179 0.417910 +vt 0.852679 0.417910 +vt 0.843750 0.417910 +vt 0.799107 0.440298 +vt 0.799107 0.417910 +vt 0.852679 0.440298 +vt 0.834821 0.440298 +vt 0.834821 0.417910 +vt 0.870536 0.425373 +vt 0.861607 0.410448 +vt 0.870536 0.410448 +vt 0.870536 0.425373 +vt 0.861607 0.410448 +vt 0.870536 0.410448 +vt 0.870536 0.425373 +vt 0.861607 0.410448 +vt 0.870536 0.410448 +vt 0.870536 0.447761 +vt 0.861607 0.432836 +vt 0.870536 0.432836 +vt 0.861607 0.432836 +vt 0.857143 0.425373 +vt 0.861607 0.425373 +vt 0.861607 0.402985 +vt 0.857143 0.410448 +vt 0.857143 0.425373 +vt 0.861607 0.425373 +vt 0.861607 0.402985 +vt 0.861607 0.410448 +vt 0.857143 0.410448 +vt 0.861607 0.432836 +vt 0.857143 0.425373 +vt 0.861607 0.425373 +vt 0.861607 0.402985 +vt 0.857143 0.410448 +vt 0.861607 0.425373 +vt 0.861607 0.432836 +vt 0.857143 0.425373 +vt 0.861607 0.402985 +vt 0.857143 0.410448 +vt 0.870536 0.432836 +vt 0.870536 0.402985 +vt 0.870536 0.425373 +vt 0.870536 0.402985 +vt 0.870536 0.432836 +vt 0.870536 0.402985 +vt 0.870536 0.432836 +vt 0.870536 0.402985 +vt 0.870536 0.410448 +vt 0.939732 0.313433 +vt 0.955357 0.298507 +vt 0.955357 0.313433 +vt 0.939732 0.328358 +vt 0.955357 0.343284 +vt 0.939732 0.343284 +vt 0.892857 0.328358 +vt 0.908482 0.343284 +vt 0.892857 0.343284 +vt 0.908482 0.328358 +vt 0.924107 0.343284 +vt 0.924107 0.328358 +vt 0.892857 0.313433 +vt 0.908482 0.298507 +vt 0.908482 0.313433 +vt 0.924107 0.298507 +vt 0.924107 0.313433 +vt 0.939732 0.298507 +vt 0.816964 0.440298 +vt 0.808036 0.417910 +vt 0.816964 0.417910 +vt 0.839286 0.410448 +vt 0.825893 0.417910 +vt 0.821429 0.410448 +vt 0.839286 0.402985 +vt 0.821429 0.402985 +vt 0.803571 0.402985 +vt 0.785714 0.410448 +vt 0.785714 0.402985 +vt 0.857143 0.402985 +vt 0.803571 0.410448 +vt 0.790179 0.417910 +vt 0.857143 0.410448 +vt 0.843750 0.417910 +vt 0.799107 0.440298 +vt 0.799107 0.417910 +vt 0.852679 0.440298 +vt 0.852679 0.417910 +vt 0.834821 0.440298 +vt 0.834821 0.417910 +vt 0.870536 0.425373 +vt 0.861607 0.410448 +vt 0.870536 0.410448 +vt 0.870536 0.425373 +vt 0.861607 0.410448 +vt 0.870536 0.410448 +vt 0.870536 0.425373 +vt 0.861607 0.410448 +vt 0.870536 0.410448 +vt 0.870536 0.447761 +vt 0.861607 0.432836 +vt 0.870536 0.432836 +vt 0.861607 0.432836 +vt 0.857143 0.425373 +vt 0.861607 0.425373 +vt 0.861607 0.402985 +vt 0.857143 0.410448 +vt 0.857143 0.425373 +vt 0.861607 0.425373 +vt 0.861607 0.402985 +vt 0.861607 0.410448 +vt 0.857143 0.410448 +vt 0.861607 0.432836 +vt 0.857143 0.425373 +vt 0.861607 0.425373 +vt 0.861607 0.402985 +vt 0.857143 0.410448 +vt 0.861607 0.425373 +vt 0.861607 0.432836 +vt 0.857143 0.425373 +vt 0.861607 0.402985 +vt 0.857143 0.410448 +vt 0.870536 0.432836 +vt 0.870536 0.402985 +vt 0.870536 0.425373 +vt 0.870536 0.402985 +vt 0.870536 0.432836 +vt 0.870536 0.402985 +vt 0.870536 0.432836 +vt 0.870536 0.402985 +vt 0.870536 0.410448 +vt 0.816964 0.440298 +vt 0.808036 0.417910 +vt 0.816964 0.417910 +vt 0.839286 0.410448 +vt 0.825893 0.417910 +vt 0.821429 0.410448 +vt 0.839286 0.402985 +vt 0.821429 0.402985 +vt 0.803571 0.402985 +vt 0.785714 0.410448 +vt 0.785714 0.402985 +vt 0.857143 0.402985 +vt 0.803571 0.410448 +vt 0.790179 0.417910 +vt 0.857143 0.410448 +vt 0.843750 0.417910 +vt 0.799107 0.440298 +vt 0.799107 0.417910 +vt 0.852679 0.440298 +vt 0.852679 0.417910 +vt 0.834821 0.440298 +vt 0.834821 0.417910 +vt 0.870536 0.425373 +vt 0.861607 0.410448 +vt 0.870536 0.410448 +vt 0.870536 0.425373 +vt 0.861607 0.410448 +vt 0.870536 0.410448 +vt 0.870536 0.425373 +vt 0.861607 0.410448 +vt 0.870536 0.410448 +vt 0.870536 0.447761 +vt 0.861607 0.432836 +vt 0.870536 0.432836 +vt 0.861607 0.432836 +vt 0.857143 0.425373 +vt 0.861607 0.425373 +vt 0.861607 0.402985 +vt 0.857143 0.410448 +vt 0.857143 0.425373 +vt 0.861607 0.425373 +vt 0.861607 0.402985 +vt 0.861607 0.410448 +vt 0.857143 0.410448 +vt 0.861607 0.432836 +vt 0.857143 0.425373 +vt 0.861607 0.425373 +vt 0.861607 0.402985 +vt 0.857143 0.410448 +vt 0.861607 0.425373 +vt 0.861607 0.432836 +vt 0.857143 0.425373 +vt 0.861607 0.402985 +vt 0.857143 0.410448 +vt 0.870536 0.432836 +vt 0.870536 0.402985 +vt 0.870536 0.425373 +vt 0.870536 0.402985 +vt 0.870536 0.432836 +vt 0.870536 0.402985 +vt 0.870536 0.432836 +vt 0.870536 0.410448 +vt 0.035714 0.283582 +vt 0.642857 0.283582 +vt 0.678571 0.880597 +vt 0.410714 0.402985 +vt 0.446429 0.611940 +vt 0.535714 0.611940 +vt 0.589286 0.611940 +vt 0.500000 0.611940 +vt 0.462054 0.358209 +vt 0.479911 0.358209 +vt 0.497768 0.358209 +vt 0.533482 0.358209 +vt 0.551339 0.358209 +vt 0.569196 0.358209 +vt 0.604911 0.358209 +vt 0.622768 0.358209 +vt 0.642857 0.343284 +vt 0.372768 0.358209 +vt 0.408482 0.358209 +vt 0.426339 0.358209 +vt 0.408628 0.464863 +vt 0.383929 0.492452 +vt 0.402833 0.479362 +vt 0.394160 0.489050 +vt 0.373698 0.489050 +vt 0.365025 0.479362 +vt 0.359229 0.464863 +vt 0.359229 0.430659 +vt 0.365025 0.416160 +vt 0.373698 0.406473 +vt 0.394160 0.406473 +vt 0.402833 0.416160 +vt 0.408628 0.430659 +vt 0.459821 0.388060 +vt 0.477679 0.388060 +vt 0.495536 0.388060 +vt 0.513393 0.388060 +vt 0.531250 0.388060 +vt 0.551339 0.373134 +vt 0.566964 0.388060 +vt 0.587054 0.373134 +vt 0.604911 0.373134 +vt 0.622768 0.373134 +vt 0.638393 0.388060 +vt 0.372768 0.373134 +vt 0.390625 0.373134 +vt 0.408482 0.373134 +vt 0.426339 0.373134 +vt 0.441964 0.388060 +vt 0.808036 0.440298 +vt 0.857143 0.410448 +vt 0.790179 0.440298 +vt 0.843750 0.440298 +vt 0.825893 0.440298 +vt 0.861607 0.447761 +vt 0.955357 0.328358 +vt 0.892857 0.298507 +vt 0.678571 0.880597 +vt 0.642857 0.283582 +vt 0.410714 0.402985 +vt 0.446429 0.611940 +vt 0.535714 0.611940 +vt 0.589286 0.611940 +vt 0.500000 0.611940 +vt 0.462054 0.358209 +vt 0.479911 0.358209 +vt 0.497768 0.358209 +vt 0.533482 0.358209 +vt 0.551339 0.358209 +vt 0.569196 0.358209 +vt 0.604911 0.358209 +vt 0.622768 0.358209 +vt 0.642857 0.343284 +vt 0.372768 0.358209 +vt 0.408482 0.358209 +vt 0.426339 0.358209 +vt 0.408628 0.464863 +vt 0.383929 0.492452 +vt 0.402833 0.479362 +vt 0.394160 0.489050 +vt 0.373698 0.489050 +vt 0.365025 0.479362 +vt 0.359229 0.464863 +vt 0.359229 0.430659 +vt 0.365025 0.416160 +vt 0.373698 0.406473 +vt 0.394160 0.406473 +vt 0.402833 0.416160 +vt 0.408628 0.430659 +vt 0.459821 0.388060 +vt 0.477679 0.388060 +vt 0.495536 0.388060 +vt 0.513393 0.388060 +vt 0.531250 0.388060 +vt 0.551339 0.373134 +vt 0.566964 0.388060 +vt 0.587054 0.373134 +vt 0.604911 0.373134 +vt 0.622768 0.373134 +vt 0.638393 0.388060 +vt 0.372768 0.373134 +vt 0.390625 0.373134 +vt 0.408482 0.373134 +vt 0.426339 0.373134 +vt 0.441964 0.388060 +vt 0.808036 0.440298 +vt 0.857143 0.410448 +vt 0.790179 0.440298 +vt 0.843750 0.440298 +vt 0.825893 0.440298 +vt 0.861607 0.447761 +vt 0.955357 0.328358 +vt 0.892857 0.298507 +vt 0.808036 0.440298 +vt 0.857143 0.410448 +vt 0.790179 0.440298 +vt 0.843750 0.440298 +vt 0.825893 0.440298 +vt 0.861607 0.447761 +vt 0.955357 0.328358 +vt 0.892857 0.298507 +vt 0.808036 0.440298 +vt 0.857143 0.410448 +vt 0.790179 0.440298 +vt 0.843750 0.440298 +vt 0.825893 0.440298 +vt 0.861607 0.447761 +vt 0.955357 0.328358 +vt 0.892857 0.298507 +vt 0.808036 0.440298 +vt 0.790179 0.440298 +vt 0.843750 0.440298 +vt 0.825893 0.440298 +vt 0.861607 0.447761 +vt 0.808036 0.440298 +vt 0.790179 0.440298 +vt 0.843750 0.440298 +vt 0.825893 0.440298 +vt 0.861607 0.447761 +vt 0.870536 0.402985 +vt 0.625000 0.283582 +vt 0.607143 0.283582 +vt 0.500000 0.283582 +vt 0.482143 0.283582 +vt 0.642857 0.283582 +vt 0.517857 0.283582 +vt 0.375000 0.283582 +vt 0.357143 0.283582 +vt 0.535714 0.283582 +vt 0.392857 0.283582 +vt 0.553571 0.283582 +vt 0.410714 0.283582 +vt 0.571429 0.283582 +vt 0.446429 0.283582 +vt 0.428571 0.283582 +vt 0.589286 0.283582 +vt 0.464286 0.283582 +vt 0.433036 0.402985 +vt 0.441964 0.402985 +vt 0.379464 0.402985 +vt 0.388393 0.402985 +vt 0.361607 0.402985 +vt 0.370536 0.402985 +vt 0.629464 0.402985 +vt 0.638393 0.402985 +vt 0.611607 0.402985 +vt 0.620536 0.402985 +vt 0.593750 0.402985 +vt 0.602679 0.402985 +vt 0.575893 0.402985 +vt 0.584821 0.402985 +vt 0.397321 0.402985 +vt 0.406250 0.402985 +vt 0.450893 0.402985 +vt 0.459821 0.402985 +vt 0.415179 0.402985 +vt 0.424107 0.402985 +vt 0.468750 0.402985 +vt 0.477679 0.402985 +vt 0.486607 0.402985 +vt 0.495536 0.402985 +vt 0.504464 0.402985 +vt 0.513393 0.402985 +vt 0.522321 0.402985 +vt 0.531250 0.402985 +vt 0.540179 0.402985 +vt 0.549107 0.402985 +vt 0.558036 0.402985 +vt 0.566964 0.402985 +vt 0.939732 0.283582 +vt 0.892857 0.283582 +vt 0.908482 0.283582 +vt 0.924107 0.283582 +vt 0.607143 0.283582 +vt 0.500000 0.283582 +vt 0.482143 0.283582 +vt 0.642857 0.283582 +vt 0.625000 0.283582 +vt 0.517857 0.283582 +vt 0.375000 0.283582 +vt 0.357143 0.283582 +vt 0.535714 0.283582 +vt 0.392857 0.283582 +vt 0.410714 0.283582 +vt 0.571429 0.283582 +vt 0.553571 0.283582 +vt 0.446429 0.283582 +vt 0.428571 0.283582 +vt 0.589286 0.283582 +vt 0.464286 0.283582 +vt 0.433036 0.402985 +vt 0.441964 0.402985 +vt 0.388393 0.402985 +vt 0.361607 0.402985 +vt 0.370536 0.402985 +vt 0.638393 0.402985 +vt 0.611607 0.402985 +vt 0.620536 0.402985 +vt 0.593750 0.402985 +vt 0.602679 0.402985 +vt 0.575893 0.402985 +vt 0.584821 0.402985 +vt 0.397321 0.402985 +vt 0.406250 0.402985 +vt 0.450893 0.402985 +vt 0.459821 0.402985 +vt 0.415179 0.402985 +vt 0.424107 0.402985 +vt 0.468750 0.402985 +vt 0.477679 0.402985 +vt 0.486607 0.402985 +vt 0.495536 0.402985 +vt 0.504464 0.402985 +vt 0.513393 0.402985 +vt 0.522321 0.402985 +vt 0.531250 0.402985 +vt 0.540179 0.402985 +vt 0.549107 0.402985 +vt 0.558036 0.402985 +vt 0.566964 0.402985 +vt 0.955357 0.283582 +vt 0.892857 0.283582 +vt 0.908482 0.283582 +vt 0.939732 0.283582 +vt 0.939732 0.283582 +vt 0.892857 0.283582 +vt 0.908482 0.283582 +vt 0.924107 0.283582 +vt 0.955357 0.283582 +vt 0.892857 0.283582 +vt 0.908482 0.283582 +vt 0.924107 0.283582 +vt 0.955357 0.283582 +vt 0.379464 0.402985 +vt 0.629464 0.402985 +vt 0.924107 0.283582 +vt 0.955357 0.283582 +vt 0.939732 0.283582 +vn 0.0000 -1.0000 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 -0.7071 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.8944 0.4472 0.0000 +vn -0.8944 0.4472 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.5774 0.5773 0.5773 +vn -0.5774 -0.5773 0.5773 +vn -0.5774 0.5773 -0.5773 +vn -0.5774 -0.5773 -0.5773 +vn 0.5774 0.5774 0.5774 +vn 0.5774 -0.5774 0.5774 +vn 0.5774 0.5774 -0.5774 +vn 0.5774 -0.5774 -0.5774 +vn 0.0000 -0.7071 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn 0.5774 0.5773 -0.5773 +vn 0.5774 -0.5773 -0.5773 +vn 0.5774 0.5773 0.5773 +vn 0.5774 -0.5773 0.5773 +vn -0.5774 0.5774 -0.5774 +vn -0.5774 -0.5774 -0.5774 +vn -0.5774 0.5774 0.5774 +vn -0.5774 -0.5774 0.5774 +vn 0.5773 0.5774 0.5774 +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.9239 0.3827 +vn 0.0000 0.3827 -0.9239 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.3827 0.9239 +vn -0.0000 -0.3827 -0.9239 +vn 0.0000 0.6169 -0.7871 +vn 0.0000 0.5735 -0.8192 +vn 0.0000 -0.6169 0.7871 +vn 0.0000 -0.5735 0.8192 +vn 0.0000 -0.9615 0.2747 +vn 0.0000 -0.9216 0.3882 +vn 0.0000 -0.7741 0.6331 +vn 0.0000 0.9615 -0.2747 +vn 0.0000 0.9216 -0.3882 +vn 0.0000 0.7741 -0.6331 +vn 0.0000 0.6169 0.7871 +vn 0.0000 0.5735 0.8192 +vn -0.0000 -0.6169 -0.7871 +vn -0.0000 -0.5735 -0.8192 +vn 0.0000 -0.9615 -0.2747 +vn 0.0000 -0.9216 -0.3882 +vn -0.0000 -0.7741 -0.6331 +vn 0.0000 0.9615 0.2747 +vn 0.0000 0.9216 0.3882 +vn 0.0000 0.7741 0.6331 +s off +f 835/1205/221 834/1206/221 833/1207/221 +f 838/1208/221 844/1209/221 841/1210/221 +f 837/1211/222 839/1212/222 838/1208/222 +f 841/1210/223 843/1213/223 842/1214/223 +f 848/1215/224 842/1214/224 843/1213/224 +f 845/1216/225 840/1217/225 837/1211/225 +f 851/1218/226 849/1219/226 850/1220/226 +f 836/1221/224 851/1218/224 834/1222/224 +f 833/1207/225 849/1219/225 835/1205/225 +f 835/1223/227 852/1224/227 836/1225/227 +f 834/1226/228 850/1220/228 833/1227/228 +f 856/1228/227 863/1229/227 855/1230/227 +f 853/1231/228 862/1232/228 854/1233/228 +f 855/1230/227 860/1234/227 856/1228/227 +f 854/1233/228 858/1235/228 853/1231/228 +f 856/1236/224 859/1237/224 854/1238/224 +f 853/1239/225 857/1240/225 855/1241/225 +f 854/1238/229 864/1242/229 856/1236/229 +f 855/1241/230 861/1243/230 853/1239/230 +f 881/1244/225 898/1245/225 897/1246/225 +f 883/1247/225 898/1248/225 882/1249/225 +f 884/1250/225 899/1251/225 883/1247/225 +f 885/1252/225 900/1253/225 884/1250/225 +f 885/1252/225 902/1254/225 901/1255/225 +f 887/1256/225 902/1257/225 886/1258/225 +f 888/1259/225 903/1260/225 887/1256/225 +f 889/1261/225 904/1262/225 888/1259/225 +f 889/1261/225 906/1263/225 905/1264/225 +f 891/1265/225 906/1266/225 890/1267/225 +f 892/1268/225 907/1269/225 891/1265/225 +f 892/1268/225 909/1270/225 908/1271/225 +f 894/1272/225 909/1273/225 893/1274/225 +f 894/1272/225 911/1275/225 910/1276/225 +f 896/1277/225 911/1278/225 895/1279/225 +f 881/1244/225 912/1280/225 896/1277/225 +f 921/1281/225 925/1282/225 913/1283/225 +f 931/1284/225 945/1285/225 929/1286/225 +f 932/1287/225 947/1288/225 931/1289/225 +f 933/1290/225 948/1291/225 932/1292/225 +f 934/1293/225 949/1294/225 933/1295/225 +f 935/1296/225 950/1297/225 934/1298/225 +f 935/1299/225 952/1300/225 951/1301/225 +f 937/1302/225 952/1303/225 936/1304/225 +f 937/1305/225 954/1306/225 953/1307/225 +f 938/1308/225 955/1309/225 954/1310/225 +f 939/1311/225 956/1312/225 955/1313/225 +f 941/1314/225 956/1315/225 940/1316/225 +f 941/1317/225 958/1318/225 957/1319/225 +f 942/1320/225 959/1321/225 958/1322/225 +f 943/1323/225 960/1324/225 959/1325/225 +f 944/1326/225 946/1327/225 960/1328/225 +f 929/1329/225 946/1330/225 930/1331/225 +f 990/1332/227 978/1333/227 979/1334/227 +f 967/1335/226 965/1336/226 966/1337/226 +f 963/1338/228 968/1339/228 964/1340/228 +f 962/1341/227 966/1337/227 961/1342/227 +f 964/1343/225 967/1335/225 962/1344/225 +f 961/1345/224 965/1336/224 963/1346/224 +f 976/1347/231 979/1348/231 975/1349/231 +f 972/1350/225 975/1349/225 970/1351/225 +f 969/1352/224 973/1353/224 971/1354/224 +f 971/1355/228 976/1347/228 972/1350/228 +f 970/1351/227 974/1356/227 969/1352/227 +f 974/1356/232 977/1357/232 973/1353/232 +f 976/1347/233 977/1358/233 980/1359/233 +f 975/1349/234 978/1333/234 974/1356/234 +f 1002/1360/224 977/1357/224 978/1361/224 +f 996/1362/228 980/1359/228 977/1358/228 +f 984/1363/225 979/1348/225 980/1364/225 +f 988/1365/227 1003/1366/227 992/1367/227 +f 1001/1368/224 997/1369/224 1004/1370/224 +f 994/1371/228 985/1372/228 998/1373/228 +f 993/1374/226 987/1375/226 981/1376/226 +f 981/1377/235 982/1378/235 983/1379/235 +f 984/1380/236 985/1372/236 986/1381/236 +f 987/1375/237 988/1382/237 989/1383/237 +f 990/1384/238 991/1385/238 992/1386/238 +f 993/1387/239 994/1388/239 995/1389/239 +f 996/1390/240 997/1369/240 998/1391/240 +f 999/1392/241 1000/1393/241 1001/1394/241 +f 1002/1395/242 1003/1366/242 1004/1396/242 +f 1000/1393/234 988/1365/234 987/1397/234 +f 990/1398/243 1003/1366/243 1002/1395/243 +f 992/1386/244 989/1383/244 988/1382/244 +f 987/1375/231 982/1399/231 981/1376/231 +f 984/1400/222 991/1385/222 990/1384/222 +f 986/1381/245 983/1379/245 982/1378/245 +f 981/1377/233 994/1371/233 993/1401/233 +f 996/1402/246 985/1372/246 984/1380/246 +f 998/1391/247 995/1389/247 994/1388/247 +f 993/1387/232 1001/1368/232 1000/1403/232 +f 999/1392/248 1004/1396/248 1003/1366/248 +f 1002/1404/223 997/1369/223 996/1390/223 +f 982/1399/225 991/1385/225 986/1405/225 +f 1006/1406/233 1007/1407/233 1005/1408/233 +f 1008/1409/224 1006/1410/224 1010/1411/224 +f 1007/1407/225 1009/1412/225 1005/1413/225 +f 1012/1414/234 1013/1415/234 1011/1416/234 +f 1014/1417/225 1012/1418/225 1016/1419/225 +f 1013/1415/224 1015/1420/224 1011/1421/224 +f 1030/1422/225 1022/1423/225 1024/1424/225 +f 1025/1425/224 1021/1426/224 1036/1427/224 +f 1019/1428/224 1034/1429/224 1017/1430/224 +f 1027/1431/224 1035/1432/224 1034/1429/224 +f 1026/1433/224 1036/1427/224 1035/1432/224 +f 1020/1434/225 1033/1435/225 1028/1436/225 +f 1028/1436/225 1032/1437/225 1029/1438/225 +f 1029/1438/225 1031/1439/225 1030/1422/225 +f 1043/1440/226 1041/1441/226 1042/1442/226 +f 1037/1443/225 1041/1441/225 1039/1444/225 +f 1039/1445/234 1044/1446/234 1040/1447/234 +f 1038/1448/233 1042/1442/233 1037/1449/233 +f 1040/1450/224 1043/1440/224 1038/1451/224 +f 1053/1452/224 1048/1453/224 1056/1454/224 +f 1051/1455/225 1045/1456/225 1050/1457/225 +f 1050/1457/231 1052/1458/231 1051/1455/231 +f 1054/1459/232 1056/1454/232 1055/1460/232 +f 1049/1461/226 1055/1460/226 1052/1458/226 +f 1060/1462/228 1067/1463/228 1059/1464/228 +f 1057/1465/227 1066/1466/227 1058/1467/227 +f 1059/1464/228 1064/1468/228 1060/1462/228 +f 1058/1467/227 1062/1469/227 1057/1465/227 +f 1060/1470/225 1063/1471/225 1058/1472/225 +f 1057/1473/224 1061/1474/224 1059/1475/224 +f 1058/1472/230 1068/1476/230 1060/1470/230 +f 1059/1475/229 1065/1477/229 1057/1473/229 +f 1085/1478/224 1102/1479/224 1101/1480/224 +f 1087/1481/224 1102/1482/224 1086/1483/224 +f 1088/1484/224 1103/1485/224 1087/1481/224 +f 1089/1486/224 1104/1487/224 1088/1484/224 +f 1089/1486/224 1106/1488/224 1105/1489/224 +f 1091/1490/224 1106/1491/224 1090/1492/224 +f 1092/1493/224 1107/1494/224 1091/1490/224 +f 1093/1495/224 1108/1496/224 1092/1493/224 +f 1093/1495/224 1110/1497/224 1109/1498/224 +f 1095/1499/224 1110/1500/224 1094/1501/224 +f 1096/1502/224 1111/1503/224 1095/1499/224 +f 1096/1502/224 1113/1504/224 1112/1505/224 +f 1098/1506/224 1113/1507/224 1097/1508/224 +f 1098/1506/224 1115/1509/224 1114/1510/224 +f 1100/1511/224 1115/1512/224 1099/1513/224 +f 1085/1478/224 1116/1514/224 1100/1511/224 +f 1125/1515/224 1129/1516/224 1117/1517/224 +f 1135/1518/224 1149/1519/224 1133/1520/224 +f 1136/1521/224 1151/1522/224 1135/1523/224 +f 1137/1524/224 1152/1525/224 1136/1526/224 +f 1138/1527/224 1153/1528/224 1137/1529/224 +f 1139/1530/224 1154/1531/224 1138/1532/224 +f 1139/1533/224 1156/1534/224 1155/1535/224 +f 1141/1536/224 1156/1537/224 1140/1538/224 +f 1141/1539/224 1158/1540/224 1157/1541/224 +f 1142/1542/224 1159/1543/224 1158/1544/224 +f 1143/1545/224 1160/1546/224 1159/1547/224 +f 1145/1548/224 1160/1549/224 1144/1550/224 +f 1145/1551/224 1162/1552/224 1161/1553/224 +f 1146/1554/224 1163/1555/224 1162/1556/224 +f 1147/1557/224 1164/1558/224 1163/1559/224 +f 1148/1560/224 1150/1561/224 1164/1562/224 +f 1133/1563/224 1150/1564/224 1134/1565/224 +f 1194/1566/228 1182/1567/228 1183/1568/228 +f 1170/1569/226 1172/1570/226 1169/1571/226 +f 1167/1572/227 1172/1570/227 1168/1573/227 +f 1166/1574/228 1170/1569/228 1165/1575/228 +f 1168/1576/224 1171/1577/224 1166/1578/224 +f 1165/1579/225 1169/1571/225 1167/1580/225 +f 1180/1581/232 1183/1582/232 1179/1583/232 +f 1176/1584/224 1179/1583/224 1174/1585/224 +f 1173/1586/225 1177/1587/225 1175/1588/225 +f 1175/1589/227 1180/1581/227 1176/1584/227 +f 1174/1585/228 1178/1590/228 1173/1586/228 +f 1178/1590/231 1181/1591/231 1177/1587/231 +f 1180/1581/234 1181/1592/234 1184/1593/234 +f 1179/1583/233 1182/1567/233 1178/1590/233 +f 1206/1594/225 1181/1591/225 1182/1595/225 +f 1200/1596/227 1184/1593/227 1181/1592/227 +f 1188/1597/224 1183/1582/224 1184/1598/224 +f 1192/1599/228 1207/1600/228 1196/1601/228 +f 1205/1602/225 1201/1603/225 1208/1604/225 +f 1198/1605/227 1189/1606/227 1202/1607/227 +f 1197/1608/226 1191/1609/226 1185/1610/226 +f 1185/1611/249 1186/1612/249 1187/1613/249 +f 1188/1614/250 1189/1606/250 1190/1615/250 +f 1191/1609/251 1192/1616/251 1193/1617/251 +f 1194/1618/252 1195/1619/252 1196/1620/252 +f 1197/1621/253 1198/1622/253 1199/1623/253 +f 1200/1624/254 1201/1603/254 1202/1625/254 +f 1203/1626/255 1204/1627/255 1205/1628/255 +f 1206/1629/256 1207/1600/256 1208/1630/256 +f 1204/1627/233 1192/1599/233 1191/1631/233 +f 1194/1632/246 1207/1600/246 1206/1629/246 +f 1196/1620/247 1193/1617/247 1192/1616/247 +f 1191/1609/232 1186/1633/232 1185/1610/232 +f 1188/1634/223 1195/1619/223 1194/1618/223 +f 1190/1615/248 1187/1613/248 1186/1612/248 +f 1185/1611/234 1198/1605/234 1197/1635/234 +f 1200/1636/243 1189/1606/243 1188/1614/243 +f 1202/1625/244 1199/1623/244 1198/1622/244 +f 1197/1621/231 1205/1602/231 1204/1637/231 +f 1203/1626/245 1208/1630/245 1207/1600/245 +f 1206/1638/222 1201/1603/222 1200/1624/222 +f 1186/1633/224 1195/1619/224 1190/1639/224 +f 1210/1640/234 1211/1641/234 1209/1642/234 +f 1212/1643/225 1210/1644/225 1214/1645/225 +f 1211/1641/224 1213/1646/224 1209/1647/224 +f 1216/1648/233 1217/1649/233 1215/1650/233 +f 1218/1651/224 1216/1652/224 1220/1653/224 +f 1217/1649/225 1219/1654/225 1215/1655/225 +f 1234/1656/224 1226/1657/224 1228/1658/224 +f 1229/1659/225 1225/1660/225 1240/1661/225 +f 1223/1662/225 1238/1663/225 1221/1664/225 +f 1231/1665/225 1239/1666/225 1238/1663/225 +f 1230/1667/225 1240/1661/225 1239/1666/225 +f 1224/1668/224 1237/1669/224 1232/1670/224 +f 1232/1670/224 1236/1671/224 1233/1672/224 +f 1233/1672/224 1235/1673/224 1234/1656/224 +f 1246/1674/226 1248/1675/226 1245/1676/226 +f 1241/1677/224 1245/1676/224 1243/1678/224 +f 1243/1679/233 1248/1675/233 1244/1680/233 +f 1242/1681/234 1246/1674/234 1241/1682/234 +f 1244/1683/225 1247/1684/225 1242/1685/225 +f 1278/1686/227 1266/1687/227 1267/1688/227 +f 1255/1689/226 1253/1690/226 1254/1691/226 +f 1251/1692/228 1256/1693/228 1252/1694/228 +f 1250/1695/227 1254/1691/227 1249/1696/227 +f 1252/1697/225 1255/1689/225 1250/1698/225 +f 1249/1699/224 1253/1690/224 1251/1700/224 +f 1264/1701/231 1267/1702/231 1263/1703/231 +f 1260/1704/225 1263/1703/225 1258/1705/225 +f 1257/1706/224 1261/1707/224 1259/1708/224 +f 1259/1709/228 1264/1701/228 1260/1704/228 +f 1258/1705/227 1262/1710/227 1257/1706/227 +f 1262/1710/232 1265/1711/232 1261/1707/232 +f 1264/1701/233 1265/1712/233 1268/1713/233 +f 1263/1703/234 1266/1687/234 1262/1710/234 +f 1290/1714/224 1265/1711/224 1266/1715/224 +f 1284/1716/228 1268/1713/228 1265/1712/228 +f 1272/1717/225 1267/1702/225 1268/1718/225 +f 1276/1719/227 1291/1720/227 1280/1721/227 +f 1289/1722/224 1285/1723/224 1292/1724/224 +f 1282/1725/228 1273/1726/228 1286/1727/228 +f 1281/1728/226 1275/1729/226 1269/1730/226 +f 1269/1731/235 1270/1732/235 1271/1733/235 +f 1272/1734/236 1273/1726/236 1274/1735/236 +f 1275/1729/237 1276/1736/237 1277/1737/237 +f 1278/1738/238 1279/1739/238 1280/1740/238 +f 1281/1741/239 1282/1742/239 1283/1743/239 +f 1284/1744/240 1285/1723/240 1286/1745/240 +f 1287/1746/241 1288/1747/241 1289/1748/241 +f 1290/1749/242 1291/1720/242 1292/1750/242 +f 1288/1747/234 1276/1719/234 1275/1751/234 +f 1278/1752/243 1291/1720/243 1290/1749/243 +f 1280/1740/244 1277/1737/244 1276/1736/244 +f 1275/1729/231 1270/1753/231 1269/1730/231 +f 1272/1754/222 1279/1739/222 1278/1738/222 +f 1274/1735/245 1271/1733/245 1270/1732/245 +f 1269/1731/233 1282/1725/233 1281/1755/233 +f 1284/1756/246 1273/1726/246 1272/1734/246 +f 1286/1745/247 1283/1743/247 1282/1742/247 +f 1281/1741/232 1289/1722/232 1288/1757/232 +f 1287/1746/248 1292/1750/248 1291/1720/248 +f 1290/1758/223 1285/1723/223 1284/1744/223 +f 1270/1753/225 1279/1739/225 1274/1759/225 +f 1306/1760/225 1298/1761/225 1300/1762/225 +f 1301/1763/224 1297/1764/224 1312/1765/224 +f 1295/1766/224 1310/1767/224 1293/1768/224 +f 1303/1769/224 1311/1770/224 1310/1767/224 +f 1302/1771/224 1312/1765/224 1311/1770/224 +f 1296/1772/225 1309/1773/225 1304/1774/225 +f 1304/1774/225 1308/1775/225 1305/1776/225 +f 1305/1776/225 1307/1777/225 1306/1760/225 +f 1342/1778/228 1330/1779/228 1331/1780/228 +f 1318/1781/226 1320/1782/226 1317/1783/226 +f 1315/1784/227 1320/1782/227 1316/1785/227 +f 1314/1786/228 1318/1781/228 1313/1787/228 +f 1316/1788/224 1319/1789/224 1314/1790/224 +f 1313/1791/225 1317/1783/225 1315/1792/225 +f 1328/1793/232 1331/1794/232 1327/1795/232 +f 1324/1796/224 1327/1795/224 1322/1797/224 +f 1321/1798/225 1325/1799/225 1323/1800/225 +f 1323/1801/227 1328/1793/227 1324/1796/227 +f 1322/1797/228 1326/1802/228 1321/1798/228 +f 1326/1802/231 1329/1803/231 1325/1799/231 +f 1328/1793/234 1329/1804/234 1332/1805/234 +f 1327/1795/233 1330/1779/233 1326/1802/233 +f 1354/1806/225 1329/1803/225 1330/1807/225 +f 1348/1808/227 1332/1805/227 1329/1804/227 +f 1336/1809/224 1331/1794/224 1332/1810/224 +f 1340/1811/228 1355/1812/228 1344/1813/228 +f 1353/1814/225 1349/1815/225 1356/1816/225 +f 1346/1817/227 1337/1818/227 1350/1819/227 +f 1345/1820/226 1339/1821/226 1333/1822/226 +f 1333/1823/249 1334/1824/249 1335/1825/249 +f 1336/1826/250 1337/1818/250 1338/1827/250 +f 1339/1821/251 1340/1828/251 1341/1829/251 +f 1342/1830/252 1343/1831/252 1344/1832/252 +f 1345/1833/253 1346/1834/253 1347/1835/253 +f 1348/1836/254 1349/1815/254 1350/1837/254 +f 1351/1838/255 1352/1839/255 1353/1840/255 +f 1354/1841/256 1355/1812/256 1356/1842/256 +f 1352/1839/233 1340/1811/233 1339/1843/233 +f 1342/1844/246 1355/1812/246 1354/1841/246 +f 1344/1832/247 1341/1829/247 1340/1828/247 +f 1339/1821/232 1334/1845/232 1333/1822/232 +f 1336/1846/223 1343/1831/223 1342/1830/223 +f 1338/1827/248 1335/1825/248 1334/1824/248 +f 1333/1823/234 1346/1817/234 1345/1847/234 +f 1348/1848/243 1337/1818/243 1336/1826/243 +f 1350/1837/244 1347/1835/244 1346/1834/244 +f 1345/1833/231 1353/1814/231 1352/1849/231 +f 1351/1838/245 1356/1842/245 1355/1812/245 +f 1354/1850/222 1349/1815/222 1348/1836/222 +f 1334/1845/224 1343/1831/224 1338/1851/224 +f 1370/1852/224 1362/1853/224 1364/1854/224 +f 1365/1855/225 1361/1856/225 1376/1857/225 +f 1359/1858/225 1374/1859/225 1357/1860/225 +f 1367/1861/225 1375/1862/225 1374/1859/225 +f 1366/1863/225 1376/1857/225 1375/1862/225 +f 1360/1864/224 1373/1865/224 1368/1866/224 +f 1368/1866/224 1372/1867/224 1369/1868/224 +f 1369/1868/224 1371/1869/224 1370/1852/224 +f 1398/1870/227 1386/1871/227 1387/1872/227 +f 1384/1873/222 1387/1874/222 1383/1875/222 +f 1380/1876/221 1383/1875/221 1378/1877/221 +f 1377/1878/226 1381/1879/226 1379/1880/226 +f 1379/1881/228 1384/1873/228 1380/1876/228 +f 1378/1877/227 1382/1882/227 1377/1878/227 +f 1382/1882/231 1385/1883/231 1381/1879/231 +f 1381/1884/245 1388/1885/245 1384/1873/245 +f 1383/1875/244 1386/1871/244 1382/1882/244 +f 1410/1886/226 1385/1883/226 1386/1887/226 +f 1404/1888/228 1388/1885/228 1385/1889/228 +f 1392/1890/221 1387/1874/221 1388/1891/221 +f 1396/1892/227 1411/1893/227 1400/1894/227 +f 1409/1895/226 1405/1896/226 1412/1897/226 +f 1402/1898/228 1393/1899/228 1406/1900/228 +f 1401/1901/225 1395/1902/225 1389/1903/225 +f 1389/1904/256 1390/1905/256 1391/1906/256 +f 1392/1907/240 1393/1899/240 1394/1908/240 +f 1395/1902/254 1396/1909/254 1397/1910/254 +f 1398/1911/242 1399/1912/242 1400/1913/242 +f 1401/1914/255 1402/1915/255 1403/1916/255 +f 1404/1917/239 1405/1896/239 1406/1918/239 +f 1407/1919/253 1408/1920/253 1409/1921/253 +f 1410/1922/241 1411/1893/241 1412/1923/241 +f 1408/1920/244 1396/1892/244 1395/1924/244 +f 1398/1925/248 1411/1893/248 1410/1922/248 +f 1400/1913/243 1397/1910/243 1396/1909/243 +f 1395/1902/222 1390/1926/222 1389/1903/222 +f 1392/1927/223 1399/1912/223 1398/1911/223 +f 1394/1908/246 1391/1906/246 1390/1905/246 +f 1389/1904/245 1402/1898/245 1401/1928/245 +f 1404/1929/247 1393/1899/247 1392/1907/247 +f 1406/1918/233 1403/1916/233 1402/1915/233 +f 1401/1914/231 1409/1895/231 1408/1930/231 +f 1407/1919/234 1412/1923/234 1411/1893/234 +f 1410/1931/232 1405/1896/232 1404/1917/232 +f 1390/1926/221 1399/1912/221 1394/1932/221 +f 1434/1933/228 1422/1934/228 1423/1935/228 +f 1420/1936/223 1423/1937/223 1419/1938/223 +f 1416/1939/221 1419/1938/221 1414/1940/221 +f 1413/1941/226 1417/1942/226 1415/1943/226 +f 1415/1944/227 1420/1936/227 1416/1939/227 +f 1414/1940/228 1418/1945/228 1413/1941/228 +f 1418/1945/232 1421/1946/232 1417/1942/232 +f 1417/1947/248 1424/1948/248 1420/1936/248 +f 1419/1938/247 1422/1934/247 1418/1945/247 +f 1446/1949/226 1421/1946/226 1422/1950/226 +f 1440/1951/227 1424/1948/227 1421/1952/227 +f 1428/1953/221 1423/1937/221 1424/1954/221 +f 1432/1955/228 1447/1956/228 1436/1957/228 +f 1445/1958/226 1441/1959/226 1448/1960/226 +f 1438/1961/227 1429/1962/227 1442/1963/227 +f 1437/1964/224 1431/1965/224 1425/1966/224 +f 1425/1967/242 1426/1968/242 1427/1969/242 +f 1428/1970/254 1429/1962/254 1430/1971/254 +f 1431/1965/240 1432/1972/240 1433/1973/240 +f 1434/1974/256 1435/1975/256 1436/1976/256 +f 1437/1977/241 1438/1978/241 1439/1979/241 +f 1440/1980/253 1441/1959/253 1442/1981/253 +f 1443/1982/257 1444/1983/257 1445/1984/257 +f 1446/1985/255 1447/1956/255 1448/1986/255 +f 1444/1983/247 1432/1955/247 1431/1987/247 +f 1434/1988/245 1447/1956/245 1446/1985/245 +f 1436/1976/246 1433/1973/246 1432/1972/246 +f 1431/1965/223 1426/1989/223 1425/1966/223 +f 1428/1990/222 1435/1975/222 1434/1974/222 +f 1430/1971/243 1427/1969/243 1426/1968/243 +f 1425/1967/248 1438/1961/248 1437/1991/248 +f 1440/1992/244 1429/1962/244 1428/1970/244 +f 1442/1981/234 1439/1979/234 1438/1978/234 +f 1444/1993/232 1439/1979/232 1445/1958/232 +f 1443/1982/233 1448/1986/233 1447/1956/233 +f 1440/1980/231 1448/1960/231 1441/1959/231 +f 1426/1989/221 1435/1975/221 1430/1994/221 +f 835/1205/221 836/1995/221 834/1206/221 +f 838/1208/221 839/1212/221 844/1209/221 +f 837/1211/222 840/1217/222 839/1212/222 +f 841/1210/223 844/1209/223 843/1213/223 +f 848/1215/224 847/1996/224 842/1214/224 +f 845/1216/225 846/1997/225 840/1217/225 +f 851/1218/226 852/1224/226 849/1219/226 +f 836/1221/224 852/1224/224 851/1218/224 +f 833/1207/225 850/1220/225 849/1219/225 +f 835/1223/227 849/1219/227 852/1224/227 +f 834/1226/228 851/1218/228 850/1220/228 +f 856/1228/227 864/1998/227 863/1229/227 +f 853/1231/228 861/1243/228 862/1232/228 +f 855/1230/227 857/1999/227 860/1234/227 +f 854/1233/228 859/2000/228 858/1235/228 +f 856/1236/224 860/2001/224 859/1237/224 +f 853/1239/225 858/2002/225 857/1240/225 +f 854/1238/229 862/1232/229 864/1242/229 +f 855/1241/230 863/1229/230 861/1243/230 +f 881/1244/225 882/1249/225 898/1245/225 +f 883/1247/225 899/2003/225 898/1248/225 +f 884/1250/225 900/2004/225 899/1251/225 +f 885/1252/225 901/2005/225 900/1253/225 +f 885/1252/225 886/1258/225 902/1254/225 +f 887/1256/225 903/2006/225 902/1257/225 +f 888/1259/225 904/2007/225 903/1260/225 +f 889/1261/225 905/2008/225 904/1262/225 +f 889/1261/225 890/1267/225 906/1263/225 +f 891/1265/225 907/2009/225 906/1266/225 +f 892/1268/225 908/2010/225 907/1269/225 +f 892/1268/225 893/2011/225 909/1270/225 +f 894/1272/225 910/2012/225 909/1273/225 +f 894/1272/225 895/1279/225 911/1275/225 +f 896/1277/225 912/2013/225 911/1278/225 +f 881/1244/225 897/2014/225 912/1280/225 +f 913/1283/225 914/2015/225 917/2016/225 +f 914/2015/225 915/2017/225 917/2016/225 +f 915/2017/225 916/2018/225 917/2016/225 +f 917/2016/225 918/2019/225 919/2020/225 +f 919/2020/225 920/2021/225 921/1281/225 +f 921/1281/225 922/2022/225 923/2023/225 +f 923/2023/225 924/2024/225 921/1281/225 +f 924/2024/225 925/1282/225 921/1281/225 +f 925/1282/225 926/2025/225 927/2026/225 +f 927/2026/225 928/2027/225 925/1282/225 +f 928/2027/225 913/1283/225 925/1282/225 +f 917/2016/225 919/2020/225 913/1283/225 +f 919/2020/225 921/1281/225 913/1283/225 +f 931/1284/225 947/2028/225 945/1285/225 +f 932/1287/225 948/2029/225 947/1288/225 +f 933/1290/225 949/2030/225 948/1291/225 +f 934/1293/225 950/2031/225 949/1294/225 +f 935/1296/225 951/2032/225 950/1297/225 +f 935/1299/225 936/2033/225 952/1300/225 +f 937/1302/225 953/2034/225 952/1303/225 +f 937/1305/225 938/2035/225 954/1306/225 +f 938/1308/225 939/2036/225 955/1309/225 +f 939/1311/225 940/2037/225 956/1312/225 +f 941/1314/225 957/2038/225 956/1315/225 +f 941/1317/225 942/2039/225 958/1318/225 +f 942/1320/225 943/2040/225 959/1321/225 +f 943/1323/225 944/2041/225 960/1324/225 +f 944/1326/225 930/2042/225 946/1327/225 +f 929/1329/225 945/2043/225 946/1330/225 +f 990/1332/227 1002/2044/227 978/1333/227 +f 967/1335/226 968/1339/226 965/1336/226 +f 963/1338/228 965/1336/228 968/1339/228 +f 962/1341/227 967/1335/227 966/1337/227 +f 964/1343/225 968/1339/225 967/1335/225 +f 961/1345/224 966/1337/224 965/1336/224 +f 976/1347/231 980/1364/231 979/1348/231 +f 972/1350/225 976/1347/225 975/1349/225 +f 969/1352/224 974/1356/224 973/1353/224 +f 971/1355/228 973/2045/228 976/1347/228 +f 970/1351/227 975/1349/227 974/1356/227 +f 974/1356/232 978/1361/232 977/1357/232 +f 976/1347/233 973/2045/233 977/1358/233 +f 975/1349/234 979/1334/234 978/1333/234 +f 1002/1360/224 996/2046/224 977/1357/224 +f 996/1362/228 984/2047/228 980/1359/228 +f 984/1363/225 990/2048/225 979/1348/225 +f 988/1365/227 999/1392/227 1003/1366/227 +f 1001/1368/224 995/1389/224 997/1369/224 +f 994/1371/228 983/1379/228 985/1372/228 +f 993/1374/226 1000/2049/226 987/1375/226 +f 1000/1393/234 999/1392/234 988/1365/234 +f 990/1398/243 992/1367/243 1003/1366/243 +f 992/1386/244 991/1385/244 989/1383/244 +f 987/1375/231 989/1383/231 982/1399/231 +f 984/1400/222 986/1405/222 991/1385/222 +f 986/1381/245 985/1372/245 983/1379/245 +f 981/1377/233 983/1379/233 994/1371/233 +f 996/1402/246 998/1373/246 985/1372/246 +f 998/1391/247 997/1369/247 995/1389/247 +f 993/1387/232 995/1389/232 1001/1368/232 +f 999/1392/248 1001/1394/248 1004/1396/248 +f 1002/1404/223 1004/1370/223 997/1369/223 +f 982/1399/225 989/1383/225 991/1385/225 +f 1006/1406/233 1008/1409/233 1007/1407/233 +f 1012/1414/234 1014/1417/234 1013/1415/234 +f 1030/1422/225 1031/1439/225 1022/1423/225 +f 1025/1425/224 1023/2050/224 1021/1426/224 +f 1019/1428/224 1027/1431/224 1034/1429/224 +f 1027/1431/224 1026/1433/224 1035/1432/224 +f 1026/1433/224 1025/1425/224 1036/1427/224 +f 1020/1434/225 1018/2051/225 1033/1435/225 +f 1028/1436/225 1033/1435/225 1032/1437/225 +f 1029/1438/225 1032/1437/225 1031/1439/225 +f 1043/1440/226 1044/1446/226 1041/1441/226 +f 1037/1443/225 1042/1442/225 1041/1441/225 +f 1039/1445/234 1041/1441/234 1044/1446/234 +f 1038/1448/233 1043/1440/233 1042/1442/233 +f 1040/1450/224 1044/1446/224 1043/1440/224 +f 1053/1452/224 1047/2052/224 1048/1453/224 +f 1051/1455/225 1046/2053/225 1045/1456/225 +f 1050/1457/231 1049/1461/231 1052/1458/231 +f 1054/1459/232 1053/1452/232 1056/1454/232 +f 1049/1461/226 1054/1459/226 1055/1460/226 +f 1060/1462/228 1068/2054/228 1067/1463/228 +f 1057/1465/227 1065/1477/227 1066/1466/227 +f 1059/1464/228 1061/2055/228 1064/1468/228 +f 1058/1467/227 1063/2056/227 1062/1469/227 +f 1060/1470/225 1064/2057/225 1063/1471/225 +f 1057/1473/224 1062/2058/224 1061/1474/224 +f 1058/1472/230 1066/1466/230 1068/1476/230 +f 1059/1475/229 1067/1463/229 1065/1477/229 +f 1085/1478/224 1086/1483/224 1102/1479/224 +f 1087/1481/224 1103/2059/224 1102/1482/224 +f 1088/1484/224 1104/2060/224 1103/1485/224 +f 1089/1486/224 1105/2061/224 1104/1487/224 +f 1089/1486/224 1090/1492/224 1106/1488/224 +f 1091/1490/224 1107/2062/224 1106/1491/224 +f 1092/1493/224 1108/2063/224 1107/1494/224 +f 1093/1495/224 1109/2064/224 1108/1496/224 +f 1093/1495/224 1094/1501/224 1110/1497/224 +f 1095/1499/224 1111/2065/224 1110/1500/224 +f 1096/1502/224 1112/2066/224 1111/1503/224 +f 1096/1502/224 1097/2067/224 1113/1504/224 +f 1098/1506/224 1114/2068/224 1113/1507/224 +f 1098/1506/224 1099/1513/224 1115/1509/224 +f 1100/1511/224 1116/2069/224 1115/1512/224 +f 1085/1478/224 1101/2070/224 1116/1514/224 +f 1117/1517/224 1118/2071/224 1121/2072/224 +f 1118/2071/224 1119/2073/224 1121/2072/224 +f 1119/2073/224 1120/2074/224 1121/2072/224 +f 1121/2072/224 1122/2075/224 1123/2076/224 +f 1123/2076/224 1124/2077/224 1125/1515/224 +f 1125/1515/224 1126/2078/224 1127/2079/224 +f 1127/2079/224 1128/2080/224 1125/1515/224 +f 1128/2080/224 1129/1516/224 1125/1515/224 +f 1129/1516/224 1130/2081/224 1131/2082/224 +f 1131/2082/224 1132/2083/224 1129/1516/224 +f 1132/2083/224 1117/1517/224 1129/1516/224 +f 1121/2072/224 1123/2076/224 1117/1517/224 +f 1123/2076/224 1125/1515/224 1117/1517/224 +f 1135/1518/224 1151/2084/224 1149/1519/224 +f 1136/1521/224 1152/2085/224 1151/1522/224 +f 1137/1524/224 1153/2086/224 1152/1525/224 +f 1138/1527/224 1154/2087/224 1153/1528/224 +f 1139/1530/224 1155/2088/224 1154/1531/224 +f 1139/1533/224 1140/2089/224 1156/1534/224 +f 1141/1536/224 1157/2090/224 1156/1537/224 +f 1141/1539/224 1142/2091/224 1158/1540/224 +f 1142/1542/224 1143/2092/224 1159/1543/224 +f 1143/1545/224 1144/2093/224 1160/1546/224 +f 1145/1548/224 1161/2094/224 1160/1549/224 +f 1145/1551/224 1146/2095/224 1162/1552/224 +f 1146/1554/224 1147/2096/224 1163/1555/224 +f 1147/1557/224 1148/2097/224 1164/1558/224 +f 1148/1560/224 1134/2098/224 1150/1561/224 +f 1133/1563/224 1149/2099/224 1150/1564/224 +f 1194/1566/228 1206/2100/228 1182/1567/228 +f 1170/1569/226 1171/1577/226 1172/1570/226 +f 1167/1572/227 1169/1571/227 1172/1570/227 +f 1166/1574/228 1171/1577/228 1170/1569/228 +f 1168/1576/224 1172/1570/224 1171/1577/224 +f 1165/1579/225 1170/1569/225 1169/1571/225 +f 1180/1581/232 1184/1598/232 1183/1582/232 +f 1176/1584/224 1180/1581/224 1179/1583/224 +f 1173/1586/225 1178/1590/225 1177/1587/225 +f 1175/1589/227 1177/2101/227 1180/1581/227 +f 1174/1585/228 1179/1583/228 1178/1590/228 +f 1178/1590/231 1182/1595/231 1181/1591/231 +f 1180/1581/234 1177/2101/234 1181/1592/234 +f 1179/1583/233 1183/1568/233 1182/1567/233 +f 1206/1594/225 1200/2102/225 1181/1591/225 +f 1200/1596/227 1188/2103/227 1184/1593/227 +f 1188/1597/224 1194/2104/224 1183/1582/224 +f 1192/1599/228 1203/1626/228 1207/1600/228 +f 1205/1602/225 1199/1623/225 1201/1603/225 +f 1198/1605/227 1187/1613/227 1189/1606/227 +f 1197/1608/226 1204/2105/226 1191/1609/226 +f 1204/1627/233 1203/1626/233 1192/1599/233 +f 1194/1632/246 1196/1601/246 1207/1600/246 +f 1196/1620/247 1195/1619/247 1193/1617/247 +f 1191/1609/232 1193/1617/232 1186/1633/232 +f 1188/1634/223 1190/1639/223 1195/1619/223 +f 1190/1615/248 1189/1606/248 1187/1613/248 +f 1185/1611/234 1187/1613/234 1198/1605/234 +f 1200/1636/243 1202/1607/243 1189/1606/243 +f 1202/1625/244 1201/1603/244 1199/1623/244 +f 1197/1621/231 1199/1623/231 1205/1602/231 +f 1203/1626/245 1205/1628/245 1208/1630/245 +f 1206/1638/222 1208/1604/222 1201/1603/222 +f 1186/1633/224 1193/1617/224 1195/1619/224 +f 1210/1640/234 1212/1643/234 1211/1641/234 +f 1216/1648/233 1218/1651/233 1217/1649/233 +f 1234/1656/224 1235/1673/224 1226/1657/224 +f 1229/1659/225 1227/2106/225 1225/1660/225 +f 1223/1662/225 1231/1665/225 1238/1663/225 +f 1231/1665/225 1230/1667/225 1239/1666/225 +f 1230/1667/225 1229/1659/225 1240/1661/225 +f 1224/1668/224 1222/2107/224 1237/1669/224 +f 1232/1670/224 1237/1669/224 1236/1671/224 +f 1233/1672/224 1236/1671/224 1235/1673/224 +f 1246/1674/226 1247/1684/226 1248/1675/226 +f 1241/1677/224 1246/1674/224 1245/1676/224 +f 1243/1679/233 1245/1676/233 1248/1675/233 +f 1242/1681/234 1247/1684/234 1246/1674/234 +f 1244/1683/225 1248/1675/225 1247/1684/225 +f 1278/1686/227 1290/2108/227 1266/1687/227 +f 1255/1689/226 1256/1693/226 1253/1690/226 +f 1251/1692/228 1253/1690/228 1256/1693/228 +f 1250/1695/227 1255/1689/227 1254/1691/227 +f 1252/1697/225 1256/1693/225 1255/1689/225 +f 1249/1699/224 1254/1691/224 1253/1690/224 +f 1264/1701/231 1268/1718/231 1267/1702/231 +f 1260/1704/225 1264/1701/225 1263/1703/225 +f 1257/1706/224 1262/1710/224 1261/1707/224 +f 1259/1709/228 1261/2109/228 1264/1701/228 +f 1258/1705/227 1263/1703/227 1262/1710/227 +f 1262/1710/232 1266/1715/232 1265/1711/232 +f 1264/1701/233 1261/2109/233 1265/1712/233 +f 1263/1703/234 1267/1688/234 1266/1687/234 +f 1290/1714/224 1284/2110/224 1265/1711/224 +f 1284/1716/228 1272/2111/228 1268/1713/228 +f 1272/1717/225 1278/2112/225 1267/1702/225 +f 1276/1719/227 1287/1746/227 1291/1720/227 +f 1289/1722/224 1283/1743/224 1285/1723/224 +f 1282/1725/228 1271/1733/228 1273/1726/228 +f 1281/1728/226 1288/2113/226 1275/1729/226 +f 1288/1747/234 1287/1746/234 1276/1719/234 +f 1278/1752/243 1280/1721/243 1291/1720/243 +f 1280/1740/244 1279/1739/244 1277/1737/244 +f 1275/1729/231 1277/1737/231 1270/1753/231 +f 1272/1754/222 1274/1759/222 1279/1739/222 +f 1274/1735/245 1273/1726/245 1271/1733/245 +f 1269/1731/233 1271/1733/233 1282/1725/233 +f 1284/1756/246 1286/1727/246 1273/1726/246 +f 1286/1745/247 1285/1723/247 1283/1743/247 +f 1281/1741/232 1283/1743/232 1289/1722/232 +f 1287/1746/248 1289/1748/248 1292/1750/248 +f 1290/1758/223 1292/1724/223 1285/1723/223 +f 1270/1753/225 1277/1737/225 1279/1739/225 +f 1306/1760/225 1307/1777/225 1298/1761/225 +f 1301/1763/224 1299/2114/224 1297/1764/224 +f 1295/1766/224 1303/1769/224 1310/1767/224 +f 1303/1769/224 1302/1771/224 1311/1770/224 +f 1302/1771/224 1301/1763/224 1312/1765/224 +f 1296/1772/225 1294/2115/225 1309/1773/225 +f 1304/1774/225 1309/1773/225 1308/1775/225 +f 1305/1776/225 1308/1775/225 1307/1777/225 +f 1342/1778/228 1354/2116/228 1330/1779/228 +f 1318/1781/226 1319/1789/226 1320/1782/226 +f 1315/1784/227 1317/1783/227 1320/1782/227 +f 1314/1786/228 1319/1789/228 1318/1781/228 +f 1316/1788/224 1320/1782/224 1319/1789/224 +f 1313/1791/225 1318/1781/225 1317/1783/225 +f 1328/1793/232 1332/1810/232 1331/1794/232 +f 1324/1796/224 1328/1793/224 1327/1795/224 +f 1321/1798/225 1326/1802/225 1325/1799/225 +f 1323/1801/227 1325/2117/227 1328/1793/227 +f 1322/1797/228 1327/1795/228 1326/1802/228 +f 1326/1802/231 1330/1807/231 1329/1803/231 +f 1328/1793/234 1325/2117/234 1329/1804/234 +f 1327/1795/233 1331/1780/233 1330/1779/233 +f 1354/1806/225 1348/2118/225 1329/1803/225 +f 1348/1808/227 1336/2119/227 1332/1805/227 +f 1336/1809/224 1342/2120/224 1331/1794/224 +f 1340/1811/228 1351/1838/228 1355/1812/228 +f 1353/1814/225 1347/1835/225 1349/1815/225 +f 1346/1817/227 1335/1825/227 1337/1818/227 +f 1345/1820/226 1352/2121/226 1339/1821/226 +f 1352/1839/233 1351/1838/233 1340/1811/233 +f 1342/1844/246 1344/1813/246 1355/1812/246 +f 1344/1832/247 1343/1831/247 1341/1829/247 +f 1339/1821/232 1341/1829/232 1334/1845/232 +f 1336/1846/223 1338/1851/223 1343/1831/223 +f 1338/1827/248 1337/1818/248 1335/1825/248 +f 1333/1823/234 1335/1825/234 1346/1817/234 +f 1348/1848/243 1350/1819/243 1337/1818/243 +f 1350/1837/244 1349/1815/244 1347/1835/244 +f 1345/1833/231 1347/1835/231 1353/1814/231 +f 1351/1838/245 1353/1840/245 1356/1842/245 +f 1354/1850/222 1356/1816/222 1349/1815/222 +f 1334/1845/224 1341/1829/224 1343/1831/224 +f 1370/1852/224 1371/1869/224 1362/1853/224 +f 1365/1855/225 1363/2122/225 1361/1856/225 +f 1359/1858/225 1367/1861/225 1374/1859/225 +f 1367/1861/225 1366/1863/225 1375/1862/225 +f 1366/1863/225 1365/1855/225 1376/1857/225 +f 1360/1864/224 1358/2123/224 1373/1865/224 +f 1368/1866/224 1373/1865/224 1372/1867/224 +f 1369/1868/224 1372/1867/224 1371/1869/224 +f 1398/1870/227 1410/2124/227 1386/1871/227 +f 1384/1873/222 1388/1891/222 1387/1874/222 +f 1380/1876/221 1384/1873/221 1383/1875/221 +f 1377/1878/226 1382/1882/226 1381/1879/226 +f 1379/1881/228 1381/1884/228 1384/1873/228 +f 1378/1877/227 1383/1875/227 1382/1882/227 +f 1382/1882/231 1386/1887/231 1385/1883/231 +f 1381/1884/245 1385/1889/245 1388/1885/245 +f 1383/1875/244 1387/1872/244 1386/1871/244 +f 1410/1886/226 1404/2125/226 1385/1883/226 +f 1404/1888/228 1392/2126/228 1388/1885/228 +f 1392/1890/221 1398/2127/221 1387/1874/221 +f 1396/1892/227 1407/1919/227 1411/1893/227 +f 1409/1895/226 1403/1916/226 1405/1896/226 +f 1402/1898/228 1391/1906/228 1393/1899/228 +f 1401/1901/225 1408/2128/225 1395/1902/225 +f 1408/1920/244 1407/1919/244 1396/1892/244 +f 1398/1925/248 1400/1894/248 1411/1893/248 +f 1400/1913/243 1399/1912/243 1397/1910/243 +f 1395/1902/222 1397/1910/222 1390/1926/222 +f 1392/1927/223 1394/1932/223 1399/1912/223 +f 1394/1908/246 1393/1899/246 1391/1906/246 +f 1389/1904/245 1391/1906/245 1402/1898/245 +f 1404/1929/247 1406/1900/247 1393/1899/247 +f 1406/1918/233 1405/1896/233 1403/1916/233 +f 1401/1914/231 1403/1916/231 1409/1895/231 +f 1407/1919/234 1409/1921/234 1412/1923/234 +f 1410/1931/232 1412/1897/232 1405/1896/232 +f 1390/1926/221 1397/1910/221 1399/1912/221 +f 1434/1933/228 1446/2129/228 1422/1934/228 +f 1420/1936/223 1424/1954/223 1423/1937/223 +f 1416/1939/221 1420/1936/221 1419/1938/221 +f 1413/1941/226 1418/1945/226 1417/1942/226 +f 1415/1944/227 1417/1947/227 1420/1936/227 +f 1414/1940/228 1419/1938/228 1418/1945/228 +f 1418/1945/232 1422/1950/232 1421/1946/232 +f 1417/1947/248 1421/1952/248 1424/1948/248 +f 1419/1938/247 1423/1935/247 1422/1934/247 +f 1446/1949/226 1440/2130/226 1421/1946/226 +f 1440/1951/227 1428/2131/227 1424/1948/227 +f 1428/1953/221 1434/2132/221 1423/1937/221 +f 1432/1955/228 1443/1982/228 1447/1956/228 +f 1445/1958/226 1439/1979/226 1441/1959/226 +f 1438/1961/227 1427/1969/227 1429/1962/227 +f 1437/1964/224 1444/2133/224 1431/1965/224 +f 1444/1983/247 1443/1982/247 1432/1955/247 +f 1434/1988/245 1436/1957/245 1447/1956/245 +f 1436/1976/246 1435/1975/246 1433/1973/246 +f 1431/1965/223 1433/1973/223 1426/1989/223 +f 1428/1990/222 1430/1994/222 1435/1975/222 +f 1430/1971/243 1429/1962/243 1427/1969/243 +f 1425/1967/248 1427/1969/248 1438/1961/248 +f 1440/1992/244 1442/1963/244 1429/1962/244 +f 1442/1981/234 1441/1959/234 1439/1979/234 +f 1444/1993/232 1437/1977/232 1439/1979/232 +f 1443/1982/233 1445/1984/233 1448/1986/233 +f 1440/1980/231 1446/2134/231 1448/1960/231 +f 1426/1989/221 1433/1973/221 1435/1975/221 +s 1 +f 876/2135/258 891/1265/243 875/2136/243 +f 869/2137/226 884/1250/259 868/2138/259 +f 877/2139/221 892/1268/258 876/2135/258 +f 870/2140/260 885/1252/226 869/2137/226 +f 878/2141/261 893/1274/221 877/2142/221 +f 871/2143/234 886/1258/260 870/2140/260 +f 879/2144/246 894/1272/261 878/2141/261 +f 872/2145/262 887/1256/234 871/2143/234 +f 880/2146/263 895/1279/246 879/2144/246 +f 873/2147/227 888/1259/262 872/2145/262 +f 866/2148/264 881/1244/228 865/2149/228 +f 865/2149/228 896/1277/263 880/2146/263 +f 874/2150/265 889/1261/227 873/2147/227 +f 867/2151/233 882/1249/264 866/2148/264 +f 875/2136/243 890/1267/265 874/2150/265 +f 868/2138/259 883/1247/233 867/2151/233 +f 913/2152/228 945/2043/264 914/2153/264 +f 903/2006/246 934/1298/261 902/1257/261 +f 926/2154/261 959/1321/246 927/2155/246 +f 902/1254/261 933/1295/221 901/1255/221 +f 925/2156/221 958/1318/261 926/2157/261 +f 901/2005/221 932/1292/258 900/1253/258 +f 924/2158/258 957/2038/221 925/2159/221 +f 900/2004/258 931/1289/243 899/1251/243 +f 923/2160/243 956/1312/258 924/2161/258 +f 899/2003/243 929/1286/265 898/1248/265 +f 897/2014/227 944/1326/262 912/1280/262 +f 922/2162/265 955/1309/243 923/2163/243 +f 898/1245/265 930/1331/227 897/1246/227 +f 912/2013/262 943/1323/234 911/1278/234 +f 921/2164/227 954/1306/265 922/2165/265 +f 911/1275/234 942/1320/260 910/1276/260 +f 927/2166/246 960/1324/263 928/2167/263 +f 904/2007/263 935/1299/246 903/1260/246 +f 914/2168/264 947/2028/233 915/2169/233 +f 928/2170/263 946/1327/228 913/2171/228 +f 905/2008/228 936/1304/263 904/1262/263 +f 915/2172/233 948/2029/259 916/2173/259 +f 906/1263/264 937/1305/228 905/1264/228 +f 916/2174/259 949/2030/226 917/2175/226 +f 907/2009/233 938/1308/264 906/1266/264 +f 917/2176/226 950/2031/260 918/2177/260 +f 908/2010/259 939/1311/233 907/1269/233 +f 918/2178/260 951/2032/234 919/2179/234 +f 909/1270/226 940/1316/259 908/1271/259 +f 919/2180/234 952/1300/262 920/2181/262 +f 910/2012/260 941/1317/226 909/1273/226 +f 920/2182/262 953/2034/227 921/2183/227 +f 1030/1422/266 1023/2050/267 1025/1425/266 +f 1036/2184/268 1022/1423/269 1031/1439/268 +f 1017/2185/270 1033/1435/271 1018/2051/270 +f 1034/2186/271 1032/1437/272 1033/1435/271 +f 1035/2187/272 1031/1439/268 1032/1437/272 +f 1019/1428/273 1028/1436/274 1027/1431/274 +f 1028/1436/274 1026/1433/275 1027/1431/274 +f 1029/1438/275 1025/1425/266 1026/1433/275 +f 1079/2188/246 1096/1502/261 1095/1499/246 +f 1073/2189/226 1088/1484/260 1072/2190/260 +f 1081/2191/221 1096/1502/261 1080/2192/261 +f 1074/2193/259 1089/1486/226 1073/2189/226 +f 1082/2194/258 1097/1508/221 1081/2195/221 +f 1075/2196/233 1090/1492/259 1074/2193/259 +f 1083/2197/243 1098/1506/258 1082/2194/258 +f 1075/2196/233 1092/1493/264 1091/1490/233 +f 1084/2198/265 1099/1513/243 1083/2197/243 +f 1077/2199/228 1092/1493/264 1076/2200/264 +f 1070/2201/262 1085/1478/227 1069/2202/227 +f 1069/2202/227 1100/1511/265 1084/2198/265 +f 1078/2203/263 1093/1495/228 1077/2199/228 +f 1071/2204/234 1086/1483/262 1070/2201/262 +f 1079/2188/246 1094/1501/263 1078/2203/263 +f 1071/2204/234 1088/1484/260 1087/1481/234 +f 1117/2205/227 1149/2099/262 1118/2206/262 +f 1107/2062/243 1138/1532/258 1106/1491/258 +f 1131/2207/243 1162/1556/258 1163/1555/243 +f 1106/1488/258 1137/1529/221 1105/1489/221 +f 1129/2208/221 1162/1552/258 1130/2209/258 +f 1104/1487/261 1137/1524/221 1136/1526/261 +f 1129/2210/221 1160/1549/261 1161/2094/221 +f 1104/2060/261 1135/1523/246 1103/1485/246 +f 1127/2211/246 1160/1546/261 1128/2212/261 +f 1103/2059/246 1133/1520/263 1102/1482/263 +f 1101/2070/228 1148/1560/264 1116/1514/264 +f 1126/2213/263 1159/1543/246 1127/2214/246 +f 1102/1479/263 1134/1565/228 1101/1480/228 +f 1116/2069/264 1147/1557/233 1115/1512/233 +f 1125/2215/228 1158/1540/263 1126/2216/263 +f 1115/1509/233 1146/1554/259 1114/1510/259 +f 1131/2217/243 1164/1558/265 1132/2218/265 +f 1108/2063/265 1139/1533/243 1107/1494/243 +f 1118/2219/262 1151/2084/234 1119/2220/234 +f 1132/2221/265 1150/1561/227 1117/2222/227 +f 1109/2064/227 1140/1538/265 1108/1496/265 +f 1119/2223/234 1152/2085/260 1120/2224/260 +f 1110/1497/262 1141/1539/227 1109/1498/227 +f 1120/2225/260 1153/2086/226 1121/2226/226 +f 1111/2065/234 1142/1542/262 1110/1500/262 +f 1121/2227/226 1154/2087/259 1122/2228/259 +f 1112/2066/260 1143/1545/234 1111/1503/234 +f 1122/2229/259 1155/2088/233 1123/2230/233 +f 1113/1504/226 1144/1550/260 1112/1505/260 +f 1123/2231/233 1156/1534/264 1124/2232/264 +f 1114/2068/259 1145/1551/226 1113/1507/226 +f 1124/2233/264 1157/2090/228 1125/2234/228 +f 1234/1656/276 1227/2106/277 1229/1659/276 +f 1235/1673/278 1225/2235/279 1226/1657/279 +f 1221/2236/280 1237/1669/281 1222/2107/280 +f 1238/2237/281 1236/1671/282 1237/1669/281 +f 1236/1671/282 1240/2238/278 1235/1673/278 +f 1223/1662/283 1232/1670/284 1231/1665/284 +f 1232/1670/284 1230/1667/285 1231/1665/284 +f 1233/1672/285 1229/1659/276 1230/1667/285 +f 1306/1760/266 1299/2114/267 1301/1763/266 +f 1312/2239/268 1298/1761/269 1307/1777/268 +f 1293/2240/270 1309/1773/271 1294/2115/270 +f 1310/2241/271 1308/1775/272 1309/1773/271 +f 1311/2242/272 1307/1777/268 1308/1775/272 +f 1295/1766/273 1304/1774/274 1303/1769/274 +f 1304/1774/274 1302/1771/275 1303/1769/274 +f 1305/1776/275 1301/1763/266 1302/1771/275 +f 1370/1852/276 1363/2122/277 1365/1855/276 +f 1371/1869/278 1361/2243/279 1362/1853/279 +f 1357/2244/280 1373/1865/281 1358/2123/280 +f 1374/2245/281 1372/1867/282 1373/1865/281 +f 1375/2246/282 1371/1869/278 1372/1867/282 +f 1359/1858/283 1368/1866/284 1367/1861/284 +f 1368/1866/284 1366/1863/285 1367/1861/284 +f 1369/1868/285 1365/1855/276 1366/1863/285 +f 876/2135/258 892/1268/258 891/1265/243 +f 869/2137/226 885/1252/226 884/1250/259 +f 877/2139/221 893/2011/221 892/1268/258 +f 870/2140/260 886/1258/260 885/1252/226 +f 878/2141/261 894/1272/261 893/1274/221 +f 871/2143/234 887/1256/234 886/1258/260 +f 879/2144/246 895/1279/246 894/1272/261 +f 872/2145/262 888/1259/262 887/1256/234 +f 880/2146/263 896/1277/263 895/1279/246 +f 873/2147/227 889/1261/227 888/1259/262 +f 866/2148/264 882/1249/264 881/1244/228 +f 865/2149/228 881/1244/228 896/1277/263 +f 874/2150/265 890/1267/265 889/1261/227 +f 867/2151/233 883/1247/233 882/1249/264 +f 875/2136/243 891/1265/243 890/1267/265 +f 868/2138/259 884/1250/259 883/1247/233 +f 913/2152/228 946/1330/228 945/2043/264 +f 903/2006/246 935/1296/246 934/1298/261 +f 926/2154/261 958/1322/261 959/1321/246 +f 902/1254/261 934/1293/261 933/1295/221 +f 925/2156/221 957/1319/221 958/1318/261 +f 901/2005/221 933/1290/221 932/1292/258 +f 924/2158/258 956/1315/258 957/2038/221 +f 900/2004/258 932/1287/258 931/1289/243 +f 923/2160/243 955/1313/243 956/1312/258 +f 899/2003/243 931/1284/243 929/1286/265 +f 897/2014/227 930/2042/227 944/1326/262 +f 922/2162/265 954/1310/265 955/1309/243 +f 898/1245/265 929/1329/265 930/1331/227 +f 912/2013/262 944/2041/262 943/1323/234 +f 921/2164/227 953/1307/227 954/1306/265 +f 911/1275/234 943/2040/234 942/1320/260 +f 927/2166/246 959/1325/246 960/1324/263 +f 904/2007/263 936/2033/263 935/1299/246 +f 914/2168/264 945/1285/264 947/2028/233 +f 928/2170/263 960/1328/263 946/1327/228 +f 905/2008/228 937/1302/228 936/1304/263 +f 915/2172/233 947/1288/233 948/2029/259 +f 906/1263/264 938/2035/264 937/1305/228 +f 916/2174/259 948/1291/259 949/2030/226 +f 907/2009/233 939/2036/233 938/1308/264 +f 917/2176/226 949/1294/226 950/2031/260 +f 908/2010/259 940/2037/259 939/1311/233 +f 918/2178/260 950/1297/260 951/2032/234 +f 909/1270/226 941/1314/226 940/1316/259 +f 919/2180/234 951/1301/234 952/1300/262 +f 910/2012/260 942/2039/260 941/1317/226 +f 920/2182/262 952/1303/262 953/2034/227 +f 1030/1422/266 1024/1424/267 1023/2050/267 +f 1036/2184/268 1021/2247/269 1022/1423/269 +f 1017/2185/270 1034/2186/271 1033/1435/271 +f 1034/2186/271 1035/2187/272 1032/1437/272 +f 1035/2187/272 1036/2184/268 1031/1439/268 +f 1019/1428/273 1020/1434/273 1028/1436/274 +f 1028/1436/274 1029/1438/275 1026/1433/275 +f 1029/1438/275 1030/1422/266 1025/1425/266 +f 1079/2188/246 1080/2192/261 1096/1502/261 +f 1073/2189/226 1089/1486/226 1088/1484/260 +f 1081/2191/221 1097/2067/221 1096/1502/261 +f 1074/2193/259 1090/1492/259 1089/1486/226 +f 1082/2194/258 1098/1506/258 1097/1508/221 +f 1075/2196/233 1091/1490/233 1090/1492/259 +f 1083/2197/243 1099/1513/243 1098/1506/258 +f 1075/2196/233 1076/2200/264 1092/1493/264 +f 1084/2198/265 1100/1511/265 1099/1513/243 +f 1077/2199/228 1093/1495/228 1092/1493/264 +f 1070/2201/262 1086/1483/262 1085/1478/227 +f 1069/2202/227 1085/1478/227 1100/1511/265 +f 1078/2203/263 1094/1501/263 1093/1495/228 +f 1071/2204/234 1087/1481/234 1086/1483/262 +f 1079/2188/246 1095/1499/246 1094/1501/263 +f 1071/2204/234 1072/2190/260 1088/1484/260 +f 1117/2205/227 1150/1564/227 1149/2099/262 +f 1107/2062/243 1139/1530/243 1138/1532/258 +f 1131/2207/243 1130/2248/258 1162/1556/258 +f 1106/1488/258 1138/1527/258 1137/1529/221 +f 1129/2208/221 1161/1553/221 1162/1552/258 +f 1104/1487/261 1105/2061/221 1137/1524/221 +f 1129/2210/221 1128/2249/261 1160/1549/261 +f 1104/2060/261 1136/1521/261 1135/1523/246 +f 1127/2211/246 1159/1547/246 1160/1546/261 +f 1103/2059/246 1135/1518/246 1133/1520/263 +f 1101/2070/228 1134/2098/228 1148/1560/264 +f 1126/2213/263 1158/1544/263 1159/1543/246 +f 1102/1479/263 1133/1563/263 1134/1565/228 +f 1116/2069/264 1148/2097/264 1147/1557/233 +f 1125/2215/228 1157/1541/228 1158/1540/263 +f 1115/1509/233 1147/2096/233 1146/1554/259 +f 1131/2217/243 1163/1559/243 1164/1558/265 +f 1108/2063/265 1140/2089/265 1139/1533/243 +f 1118/2219/262 1149/1519/262 1151/2084/234 +f 1132/2221/265 1164/1562/265 1150/1561/227 +f 1109/2064/227 1141/1536/227 1140/1538/265 +f 1119/2223/234 1151/1522/234 1152/2085/260 +f 1110/1497/262 1142/2091/262 1141/1539/227 +f 1120/2225/260 1152/1525/260 1153/2086/226 +f 1111/2065/234 1143/2092/234 1142/1542/262 +f 1121/2227/226 1153/1528/226 1154/2087/259 +f 1112/2066/260 1144/2093/260 1143/1545/234 +f 1122/2229/259 1154/1531/259 1155/2088/233 +f 1113/1504/226 1145/1548/226 1144/1550/260 +f 1123/2231/233 1155/1535/233 1156/1534/264 +f 1114/2068/259 1146/2095/259 1145/1551/226 +f 1124/2233/264 1156/1537/264 1157/2090/228 +f 1234/1656/276 1228/1658/277 1227/2106/277 +f 1235/1673/278 1240/2238/278 1225/2235/279 +f 1221/2236/280 1238/2237/281 1237/1669/281 +f 1238/2237/281 1239/2250/282 1236/1671/282 +f 1236/1671/282 1239/2250/282 1240/2238/278 +f 1223/1662/283 1224/1668/283 1232/1670/284 +f 1232/1670/284 1233/1672/285 1230/1667/285 +f 1233/1672/285 1234/1656/276 1229/1659/276 +f 1306/1760/266 1300/1762/267 1299/2114/267 +f 1312/2239/268 1297/2251/269 1298/1761/269 +f 1293/2240/270 1310/2241/271 1309/1773/271 +f 1310/2241/271 1311/2242/272 1308/1775/272 +f 1311/2242/272 1312/2239/268 1307/1777/268 +f 1295/1766/273 1296/1772/273 1304/1774/274 +f 1304/1774/274 1305/1776/275 1302/1771/275 +f 1305/1776/275 1306/1760/266 1301/1763/266 +f 1370/1852/276 1364/1854/277 1363/2122/277 +f 1371/1869/278 1376/2252/278 1361/2243/279 +f 1357/2244/280 1374/2245/281 1373/1865/281 +f 1374/2245/281 1375/2246/282 1372/1867/282 +f 1375/2246/282 1376/2252/278 1371/1869/278 +f 1359/1858/283 1360/1864/283 1368/1866/284 +f 1368/1866/284 1369/1868/285 1366/1863/285 +f 1369/1868/285 1370/1852/276 1365/1855/276 diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index d9801a2af..29f40d67f 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -54,6 +54,7 @@ "block.largeTurbineRunning": {"category": "block", "sounds": [{"name": "block/largeTurbine", "stream": false}]}, "block.damage": {"category": "block", "sounds": ["block/dam1", "block/dam2", "block/dam3", "block/dam4"]}, "block.electricHum": {"category": "block", "sounds": [{"name": "block/electricHum", "stream": false}]}, + "block.fensuHum": {"category": "block", "sounds": [{"name": "block/fensuHum", "stream": false}]}, "block.boiler": {"category": "block", "sounds": [{"name": "block/boiler", "stream": false}]}, "block.hornNearSingle": {"category": "block", "sounds": [{"name": "block/hornNearSingle", "stream": false}]}, "block.hornNearDual": {"category": "block", "sounds": [{"name": "block/hornNearDual", "stream": false}]}, diff --git a/src/main/resources/assets/hbm/sounds/block/fensuHum.ogg b/src/main/resources/assets/hbm/sounds/block/fensuHum.ogg new file mode 100644 index 000000000..d709f804d Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/fensuHum.ogg differ diff --git a/src/main/resources/assets/hbm/textures/gui/storage/gui_battery_redd.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_battery_redd.png new file mode 100644 index 000000000..3c32ee17d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/storage/gui_battery_redd.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/capacitor_base.png b/src/main/resources/assets/hbm/textures/models/machines/capacitor_base.png new file mode 100644 index 000000000..50e443456 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/capacitor_base.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/capacitor_bismuth.png b/src/main/resources/assets/hbm/textures/models/machines/capacitor_bismuth.png new file mode 100644 index 000000000..211e15c11 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/capacitor_bismuth.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/capacitor_copper.png b/src/main/resources/assets/hbm/textures/models/machines/capacitor_copper.png new file mode 100644 index 000000000..7626bef4a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/capacitor_copper.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/capacitor_gold.png b/src/main/resources/assets/hbm/textures/models/machines/capacitor_gold.png new file mode 100644 index 000000000..ab17e66c1 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/capacitor_gold.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/capacitor_niobium.png b/src/main/resources/assets/hbm/textures/models/machines/capacitor_niobium.png new file mode 100644 index 000000000..0e11f3ed4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/capacitor_niobium.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/capacitor_spark.png b/src/main/resources/assets/hbm/textures/models/machines/capacitor_spark.png new file mode 100644 index 000000000..88dc96a41 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/capacitor_spark.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/capacitor_tantalum.png b/src/main/resources/assets/hbm/textures/models/machines/capacitor_tantalum.png new file mode 100644 index 000000000..4a8390971 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/capacitor_tantalum.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/fensu2.png b/src/main/resources/assets/hbm/textures/models/machines/fensu2.png new file mode 100644 index 000000000..83d342115 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/fensu2.png differ